Sunday, May 18, 2008

Repurposing the TI EZ430U, Part 1

by Travis Goodspeed <travis at utk.edu>
at the Extreme Measurement Communications Center
of the Oak Ridge National Laboratory

JTAG port

Lately I've been playing with the EZ430U, which is the adapter that ships with the TI EZ430 kits. The kits are an amazing deal, $20 gets you a spy-bi-wire MSP430 FET, while $50 gets you a similar FET with two wireless sensor nodes. Page 13 of SLAU227 contains the schematic diagram for Rev 2.0 of the MSP430U board, which ships packages as both the classic EZ430f2013 and the new EZ430rf2500; the only hardware difference is the color of the board, being green or red respectively.

The software differences, however, aren't so forgiving. While the classic kit readily creates a USB->serial device under Linux, the RF kit is as yet unusable in Linux as the interface was altered to support a second serial line, one to target board.

Each kit is composed of two types of boards, a programmer (EZ430U) and a target (RF2500T or T2012). While the target boards are a lot of fun, an email I received after my initial release of msp430static introduced me to something just as fun. Namely, the JTAG fuse of the EZ430U board is left unblown. The following diagram shows pin connections from the row of 5 testpoints on the side of the board.

The lack of a common ground is no problem, as ground and power both come from the same computer through USB. You'll need a proper JTAG FET; another EZ430 won't do. (The EZ430 programmer only supports spy-bi-wire; it cannot program traditional JTAG boards.)

Having ripped the firmware from both the RF kit and the 2013 kit, I thought it might be interesting to compare the two. For a brief visual comparison, consider the following memory maps. The first is of an EZ430U from a classic 2013 kit, the second is of the EZ430U from an RF kit.
ez430u memmap ez430urf memmap
Taking the difference of the two images yields
ez430u memmap diff
The lowest bands of the image, being ram and I/O, ought to be ignored. Still, higher memory makes it visually clear that the firmware images are different. Comparing library checksums confirms this: few functions are identical between the two revisions.

The RF firmware reports itself to the USB controller as "0451:f432" while the classic board reports itself as "0451:f430". The identification appears must reside in the ROM of the 3410 chip, as the RF variant identifies itself as f432 even when loaded with the classic variant's firmware.

The second installment of this series continues with details of the TUSB3410 firmware, which resides on an EEPROM.

10 comments:

Travis Goodspeed said...

Apparently I'm color-blind. What I call the green board is actually blue.

Shivdas Gujare said...

Hi Travis,
Thanks a lot for such a good article. It cleared my lot of doubts.
I am trying to get eZ430-RF2480 kit, working with linux, but I don't have any extra hardware other than eZ430 dongle and 3 CC2480 target boards.
Do I needs to load any firmware, to make it work with linux?
What all extra accessories needs to make eZ430-RF2480 working under linux, at any way.

Abimbola said...

Hi Travis,
I bought eZ430rf2500 and I'm trying to see send data through the USB-Serial port. I found that the baud rate has been fixed to 9600 bps. Please, is there a way of increasing the baud rate while still using the SimplicTI APIs? If not, how can the baud rate be increased?

Thanks

Travis Goodspeed said...

Abimbola,

9600 baud is used because that is the fastest baud rate that the TUSB3410's bit-banged second serial port can handle. (If you look at the EZ430U schematic, the fast serial port goes to the MSP430F1612.)

With a better serial port, you could change the baud rate by the UCA0 control registers on the MSP430F2274 of the target board.

--Travis

Travis Goodspeed said...

Shivdas,

The RF2480 kit will not work with Linux unless its MSP430 is reflashed and its CAT24C EEPROM disabled.

Instead, buy an EZ430F2012 for $20 to program the target boards and a 3V FTDI adapter to handle serial communication with the target boards.

--Travis

Shivdas Gujare said...

Hi Travis,

I really appreciate your help.
You mentioned "buy an EZ430F2012 for $20 to program the target boards " but I can use windows & IAR to program target boards, then why should I need EZ430F2012.

What I want is just get eZ430_RF2480 detected as a serial device, write an application on linux host, which will use ttyUSB0 to control rest of zigbee devices in network.

Will it be possible that I can use USB half of EZ430F2012 and Radio from ez430-RF2480 to achieve my job.

Thanks for your help.

Travis Goodspeed said...

Joe,

Not without some very tricky soldering. The USB serial port of the original TI EZ430U goes directly to the MSP430F1612. It does not go to the target board. (Even if the pins exist--which they do in the second hardware revision--the firmware which drives them does not work in Linux.)

You can use a 3 volt FTDI adapter. Just run TX and RX as it says in the EZ430 documentation, then connect at 9600 baud.

--Travis

Alejandro Clemotte said...

Hi Travis.

I am in the same Shivdas's situation. I have the eZ430-RF2480 and i want to work under linux because i am treating to donwload a TinyOS application in the target board. I want to know if you have the email of Shivdas? I want to know if he get to work with the EZ430F2012 & EZ430RF2480 to program the target boards. I think he can help me without bother you.

Thank a lot.

Vaati said...

Hi,

I got the TI EZ430-Chronos kit, which includes an eZ430u usb emulator/programmer. Included manuals say I can use it to reprogram the Chronos, but am I also able to program other texas instruments MCU's with it without seriously modding it?

Thanks.

Rohit said...

I have the same query as Vaati. I have the eZ430 classic kit as well as a Chronos watch. I would like to start using some of the other MSP430 chips. Can I use the eZ430/Chronos dongles (these are called 'FETs', right?) to program the other chips?