Introduction: Programming MSP430 DIP Using an Ez430
When I found TI's ez430 USB programmer, it looked to be one of the easier methods for getting up and running with an MCU. How could I be wrong, it has ez in the name! It turns out that it is in fact easy... mostly.
The ez430 is great if you want to use the small target boards TI sells, but the lack of information for the true beginner is frustrating when trying to move to programming external chips, and the amount of technical info from Texas Instruments is daunting.
In this brief article I hope to show how to get up and running with those DIP samples you ordered from TI using the ez430. I'll be working with the same microcontroller unit (MCU) as on the ez430 target board, namely the MSP430F2013. Any MSP430x2xx will work with the same method, and as far as I know the entire MSP430 line uses the same programming connections. If you use a package other than a dual in-line package (DIP or DIL) or a device other than the MSP430x2xx then you'll need to refer to the datasheet for the device to find the appropriate pin locations.
Step 1: Parts
To program the msp430 there are only a few parts you need. Here's the list:
4 pin socket (.050 Grid interconnect)
A quick note on the 4pin socket. The ez430 users guide lists the Mill-Max part number. Mouser.com had them in stock when I last checked, and Mill-Max may offer samples.
Note that the picture has additional parts for the proto-board mentioned later in the article. I used Kynar coated 30 gauge wire for the wrap connections.
Step 2: Boards
Programming an MSP430 requires only 4 wires, including the Vcc and Vss connections. The schematic below should help. These are the only connections you need to download a program to the MCU.
I've built two programming boards. The first uses a small breadboard, ZIF socket, and 4 wires from an old IDE cable with the 4 pin socket soldered to one end. The Zero Insertion Force socket just saves on effort when moving the MCU around.
The second uses a DIP socket from Mill-Max and some pins I had laying around, as well as some other components. I've wire wrapped most of the connections. It was only necessary to solder the 4 pin socket. Basically it's a proto-board without the oscillator. See here for the proto board schematic.
Table 2-2 of TI document slau144c (the MSP430x2xx Users Guide) shows the unused pin terminations. This is important for your project board, but not the programming. The MCU won't run your program unless you pull the RST pin high using the 47k resistor.
Another note on pin sockets. When you connect the ez430 pins to your 4 pin socket be sure that the Vcc connection is correct. You can verify this by looking at the schematic in the ez430 Users Manual. Notice that R10 is attached to Vcc on the ez430 side. You should be able to follow the lead on the board back to the nearest connector pin which is pin 1 of the connector.
As an aside, you could build the 4 wire programming connection, called Spy-Bi-Wire, into your final application, and you wouldn't have to remove the chip at all. If you decide to do it that way, then you can power the MCU from your application's 3V power source and just connect pins 2 and 3 (see J1) on the USB programmer to your MCU.
Step 3: Programming
As I mentioned, once you have the hardware ready, the ez430 is easy to use. The IAR Kickstart program that is included with the device will get you up and running quickly. There is an example program included that flashes an LED attached to port 1.0. In order to run the example program on your board, just add in the LED and resistor on pin 2 and the 47k ohm pull up resistor on pin 10 and you should be off and blinking.
Another programming resource to learn to use the msp430 can be found at this website.
That's pretty much it. There are a few other example programs out there. If you want to try them before you jump into programming your own a quick search for 'msp430 projects' should net you quite a few results. Good luck and happy programming!
Step 4: Useful Links
We have a be nice policy.
Please be positive and constructive.