Jump to content

Interfacing to PE Micro USB Multilink


danren924

Recommended Posts

I have a PE Micro USB Multilink cable for interfacing to a Freescale MPC850 microcontroller. I have also purchased the UNITPPC software package from PE Micro, which includes the unitppcz.dll application extension. There are several routines within this dll that I have tried to call from LabVIEW using the Call Library Function Node, but I have had no luck exercising any control or reading any data back from the micro. The Multilink cable seems to work fine when I run the PE Micro executables. I want to incorporate the dll into a large LabVIEW test application that will exercise complete control of the circuit board through the micro.

 

Has anyone tried this, or does anyone know of a LabVIEW application like this that incorporates the PE Micro Multilink cable?

 

Thanks.

Link to comment
  • 2 weeks later...

While I have received no replies to my question, I have made some progress. The correct sequence of DLL calls has enabled me to exercise control of the processor through the Background Debug Mode (BDM) Port, using the Call Library Function Node in LabVIEW. I'll outine my progress, in case someone else out in the LabVIEW universe is trying this.

 

The PE Micro DLL must first be loaded into memory, and remain in memory for subsequent calls, which requires dynamic loading of the DLL. Dynamically loading the DLL is accomplished by setting up the Call Library Function Node to specify the path to the DLL on the diagram of the calling vi. 

 

Right-click on the Call Library Function Node, and select Configure.

Check the "Specify path on diagram" checkbox on the "Function" tab, and click on OK.

There will now be a path input to the Call Library Function Node.

Wire a constant or control to the path input that points to the DLL.

 

That took care of the dynamic loading of the DLL. Be sure to include logic in the vi that loads the DLL that will also enable it to unload the DLL, which must be accomplished in the same vi that loads the DLL. Unloading is accomplished by wiring a blank or empty path constant to the path input of the Call Library Function Node. A simple select function allows you to either load or unload the DLL by hooking the path to the DLL on one input, and an empty path to the other, and have the output of the select function feed the path input to the Call Library Function Node. Then a simple boolean control can be used to select whether the vi loads, or unloads the DLL.

 

Once the DLL was loaded, I still had to determine the proper sequence to get the PE Micro Multilink Interface to actually talk to the MPC850 processor on the circuit board. The sequence of calls to functions within the DLL that I used is listed below:

 

reenumerate_all_port_types

get_enumerated_number_of_ports (The Port Type input to this would be "3", as that is the designation of the USB Multilink Interface.)

open_port (Port type is 3, port num is 1)

reset_hardware_interface

 

Once I had this sequence worked out, I was able to start reading from and writing to memory and register locations with the other functions in the DLL, which, so far, has opened up a lot of the processor and circuit board for testing.

 

I hope someone else finds this information useful.

Dan

  • Like 2
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.