MSP-FET430UIF on Mac OS X

Using the MSP430 toolchain in Ubuntu 11.04 is very simple to set up but what about on Macintosh OS X? It turns out that the fink instructions on the MSPGCC wiki for Mac OS X are very good and work flawlessly, even easier than the Linux install. However, the MSP430 USB-Debug-Interface (MSP430UIF) didn’t work immediately, but here is the fix!

System

This procedure has been tested on a MacBook2,1 running Mac OS X 10.6.8 in conjunction with a MSP430 USB-Debug-Interface (MSP-FET430UIF).

Attention TI LaunchPad and TI ez430 Users: Do not use these instructions, instead follow, “How do I get an RF2500/Launchpad working on OS/X?”

Obtain Driver

Download the TUSB3410 Mac OS X Virtual COM Port Driver Binaries from Texas Instruments’ (TI) website.

The extracted download includes two files: “TIVCPSerial.kext,” a Kernel EXTension (KEXT) package directory, and “TIVCPSerial Driver Documentation.rtf,” a real text formatted (RTF) document.

Read the TIVCPSerial Driver Documentation.rtf carefully and then follow the install instructions.

The remainder of this document details how to obtain the information needed to configure the TI kernel extension for Mac OS X.

Find bcdDevice, Product ID and Vendor ID

Before the KEXT will work right it needs the configuration file, Info.plist, updated with the specific bcdDevice, Product ID and Vendor ID of specific Universal Serial Device (USB).

The most comprehensive way to obtain the necessary information is to use Apple’s OS X USB Debug Kit (IOUSBFamily). This kit includes the IOUSBFamily KEXT, USB Prober. The USB Prober is a very handy tool to have around and even includes USB logging capabilities for most versions.

These utilities are included with the Apple Development Tools and thus do not require that any additional software be installed or downloaded.

Screenshot of the Macintosh USB Probe Application

Run the USB Prober application, locate the “MSP-FET430UIF JTAG Tool” device in the USB list.

TIVCPSerial.kext requires that the specific “bcdDevice, Product ID and Vendor ID” be obtained for configuration. Expanding the entry in USB Prober reveals a list of USB Descriptors including the required information. In USB Prober, the bcdDevice is called “Device Version Number.”

Before the TIVCPSerial.kext can be updated the obtained values need to be converted from hexadecimal (base 16) to decimal (base 10). The conversion can be done by any preferred method but sometimes a quick script or calculator can help reduce error. For example the following script could be used via Python 3.

[python]
#!/usr/local/bin/python3

bcdDevice = ‘0101’
vendorID = ‘0451’
productID = ‘F430’

hexValues = bcdDevice, vendorID, productID

decValues = [int(hedValue, 16) for hedValue in hexValues]

print(“bcdDevice: {0[0]}, Vendor ID: {0[1]}, Product ID: {0[2]}”.format(decValues))
[/python]

Using the above screen shot as an example the converted decimal values would be 257 for the bcdDevice, 1105 for the Vendor ID and 62512 for the Product ID.

These three decimal values can now be used to configure TIVCPserial.kext.

Edit Info.plist

With these three values in hand, open /System/Library/Extensions/TIVCPSerial.kext/Contents/Info.plist for editing.

In the IOKitPersonalities section, find the three TIVCP3410 (TIVCP3410, TIVCP3410Boot, TIVCP3410Merge) entries and change bcdDevice, idProduct and idVendor appropriately.

Do not change anything else in the file, if the specific value doesn’t already exist for each of the entries do not add it.

Using the New Driver

Restarting the computer will likely be enough for the changes to take but it’s not necessary if the KEXT is unloaded and then reloaded.

[bash light=”true”]
$ sudo kextunload -b com.ti.driver.TIVCPSerial -v

$ sudo kextutil -b com.ti.driver.TIVCPSerial
[/bash]

Conclusion

In this document basic instructions were given for obtaining both the TI binary driver for OS X and Apple USB debugging tools, using the Apple debugging tools and then configuring the TI driver.

If everything worked right and mspdebug is installed a session can be started by executing the following.

[bash light=”true”]$ mspdebug uif -j -d /dev/tty.TIVCP34103d10[/bash]

Troubleshooting

Check system profiler, make sure extension actually loaded.

Read the help documentation for kextutil and kextunload if there are problems. The man files on these are pretty short and are very helpful. But if too impatient, here are some commands that proved useful.

[bash light=”true”]
$ sudo kextutil -t /System/Library/Extensions/TIVCPSerial.kext
$ sudo kextunload -b com.ti.driver.TIVCPSerial -v
$ sudo kextload /System/Library/Extensions/TIVCPSerial.kext/
$ sudo kextutil -tnb com.ti.driver.TIVCPSerial
[/bash]

Advertisements

One Comment on “MSP-FET430UIF on Mac OS X”

  1. clvrmnky says:

    Nice, concise instructions that aggregates all the stuff you need to get the TTY working. This page got my MSP430 blinking.

    Thanks.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s