This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

FTDI USB to JTAG

Other Parts Discussed in Thread: MSP430F2274, MSP-TS430DA38, MSP430F1612

I been using the MSP430F2274 microcontroller for serval projects now at work.

What I would like to do is add the FTDI FT2232H dual channel to my custom pcb with the MSP430. It would be great to have my VCP data coming out on one channel and have JTAG progrommaming and debug on the other channel. Then all my communcations would be on one connector and cable to the PC.

The FTDI A-channel config to JTAG and the B-channel to Serial RS232.

Bench hardware i'm using in testing is: MSP-TS430DA38 and FT2232H MINI MODULE

The data sheets for the FTDI says it has the have JTAG options to use.

I have the RS232 side working, with data coming out of the UART to USB. The data is displayed in hyper terminal.

 

My questions are:

Is wiring TCK, TDO, TDI, TMS one to one, or do I need to cross any of the pins? 

Do i need to add the MSP430 reset pin to the FTDI?

In Code Composer Studio v5, How do I select the FTDI to use as my programmer/debugger?  Drivers, DLL?

Which mode of the FTDI chip should i use for JTAG?

 

Thank you

Greg

 

 

  • Greg,

    Before we tackle your questions, I did just respond to your other post (http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/262273.aspx.)

    In summary, you can't debug MSP430 at all with FTDI, but you can program it over FTDI with the boot-strap loader (BSL.) With this known, the best thing might be to switch to using FET. Other than hardware convenience though, is there another necessity with using the FTDI?

    Regards,

    Reagan

     

  • Greg Hughes said:
    The data sheets for the FTDI says it has the have JTAG options to use.

    AIUI, the MSP430 debug is not JTAG - it is a TI proprietary scheme...

  • In principle, it can be done. In practice, you need to have the stomach to dig into heaps of maggots.

  • First some background,  I am working on a miltrary project for the US Navy. We are air dropping test units. The MSP430 is reading pressure and poping the parachute.

    What I was hoping to do with the FTDI chip was to have both field programming of the MSP430 and the serial data output (Datalog) on one easy to use connector with standard cable like the USB micro.  I also also hoping to use the FTDI to program and debug, back here in our office.

     

    It sounds like I can still do the in-field programming and serial data on the FTDI chip using the boot loader. I would still need a second connector to pickup the JTAG singal for debugging with the TI FET..  

    Does this sound resonable?

     

    I'll start looking into the bootloader. I assume there some apt notes?

     

    Thankyou for the help.

    Greg

     

  • Greg,

    I'm assuming with the setup you just mentioned, that would mean any debugging would be performed with the FET tool; is this correct? The other possibility is to do somewhat of an on-board emulation like we have with some of our EVMs, including the Launchpad and the MSP-EXP430F5529. This would be a little expensive if you plan to produce numerous devices, but would allow not only field programming, but debugging as well.

    If you do plan to go with what you just mentioned though, the following app note will help:

    MSP430 Programming via the Bootstrap Loader: http://www.ti.com/lit/ug/slau319e/slau319e.pdf

  • Greg Hughes said:
    It sounds like I can still do the in-field programming and serial data on the FTDI chip using the boot loader. I would still need a second connector to pickup the JTAG singal for debugging with the TI FET..  

    Right. But I guess you won't debug it while it is in the field (which in this case means while flying)?

    You don't need a full-featured 14 pin header. You only need 7 pins of any type for 4-wire JTAG (4 for SBW, if supported), maybe even just test points or vias that you connect somehow.

    Greg Hughes said:
    I'll start looking into the bootloader. I assume there some apt notes?

    Look for SLAU319 and here.

  • In the pass I used a small JST 4 pin connector for programming (SBW).  I will not be doing any debugging in the field, Only flashing new firmware.

    I like something easy for the guys in the field to reflash the boards and get data out. This is why I was looking at the FTDI chip, everything over one USB connector.

    Its acceptable to have a second connector for bench debugging.

     

    In terms of using one of the 8 port gang programmers in the field,  can this be done through the USB/FTDI/bootloader ?

     

    Sorry for a delay reply, I'm also working on two unman vehicle projects, both for the Navy.

     

  • Greg Hughes said:
    In terms of using one of the 8 port gang programmers in the field,  can this be done through the USB/FTDI/bootloader ?

    No. Teh gang programmers attach to JTAG. They 'control' the CPU and the memory bus.
    The BSL, however, is a program on the MSP, in a separate, pre-programmed and protected area, that is executed before any user code in flash, when the MSP boot code detects the proper init sequence (on RST/TEST pins).
    So the GANG programmer doesn't use the BSL interface at all.

    In theory, you could do some sort of gang adapter for the BSL too. All MSPs would share the TX and RX pins (if they aren't used as outputs in the application) and the TEST pin connection, but have separate reset lines. The programmer would release reset only for the device currently programming. However, programming would be one after one still. For parallel programming, you would need a separate serial connection to each device. However, all existing BSL software only supports one device attached to one serial port.

  • With a multi-port USB-to-Serial unit, it shouldn't be hard to make a "gang" BSL programmer...

  • Greg Hughes said:

    I will not be doing any debugging in the field, Only flashing new firmware.

    I like something easy for the guys in the field to reflash the boards and get data out. This is why I was looking at the FTDI chip, everything over one USB connector.

    Its acceptable to have a second connector for bench debugging.

     In terms of using one of the 8 port gang programmers in the field,  can this be done through the USB/FTDI/bootloader ?

    My SBW+ multi-programer can flash 4 target devices at once, and have 4 Mbps UART-USB bridge. When it is pluged to PC (one USB cable) there are 2 CDC ports, first is for programing an 2nd is bridge.

    http://forum.43oh.com/topic/2972-sbw-msp430f550x-based-programmer/?p=34398

    And if you want to make something for MSP430 programming by yourself, don't lose time with BSL, it is wrong way for sure.

  • Jens-Michael Gross said:

    So the GANG programmer doesn't use the BSL interface at all.

    I don't have it so I don't know for sure, but on http://www.elprotronic.com/gangpro430.html there is GANG BSL option - up to six MSP430 can be programmed via BSL

  • zrno soli said:
    I don't have it so I don't know for sure, but on http://www.elprotronic.com/gangpro430.html there is GANG BSL option - up to six MSP430 can be programmed via BSL

    You're right, apparently the Elprotronic GANG (there's more than one from different manufacturers) can be wired to the MSPs BSL area by redefining the meaning of the connector pins. However, this requires a different header on the target boards than for JTAG.
    As JTAG goes to the JTAG pins, while BSL requires access to two port pins. You can't have both on the same connector.

    So yes, indeed, with the proper adapter cable, the elprotronic GANG adapter could be used for BSL programming in the field, requiring only RX/TX/RST/TEST and GND, which could be done with an USB connector when keeping shield GND separate form the signal pins (of course, if someone plugs in a real USB cable, thinking the device could be connected to a PC USB port...)
    However, I'm not sure why more than two ports could be required. It's nice to program 64 MSPs simultaneously, but then you have to replace 64MSPs which will take a long time (unless you have 64 people doing the swap simultaneously).
    So if you have two ports and while one programs, the other one is swapped, you're as fast if not faster. Especially if the software auto-detects when a new device is attached and auto-starts programming.
    For the PICs, I could have made good use of a multi-port GANG adapter because it took a minute or so to flash each of those tiny 4k devices. And I had hundreds of them at a time. Unfortunately, there was no affordable GANG programmer for PICs at these days.
    But for the MSPs, where it takes only a few seconds to flash even the biggest ones...

    Now the default BSL works on 9600Bd or (after initialization) with 19200Bd(?). So the plain data transfer is relatively slow.
    Using a multi-port BSL could be useful then.

  • Though my request for a low pin/lower cost msp430 with usb  from TI went on deaf ears.
    my post about it: http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/145459.aspx

    Maybe your best options would be to use a msp430F550x and use it's built-in usb support?

    Though maybe over-kill with to many gpio etc, at $2.50 each pretty budget friendly.
    http://www.mouser.com/Search/Refine.aspx?Keyword=msp430F550&Ns=Pricing%7c0&FS=True

    the cost with a 'msp430 + ftdi' combo could only be lower by having just one ftdi
    breakout board to interface to many msp430 boards.

     

     

     

  • Like to thank everyone for their inputs/replies. Its been great hearing the ideas.

     

    I been doing my reading and following up on the links people have posted.

    I ran across another possible,  I would like to know more about.

    I bought the MSP-EXP430F5529 board to tryout the F5 part.

     

    It has an ez430 embedded on the board that seems to do what I need. That is USB to programming the micro and has acess to the UART on the msp430 as a data stream. All on one USB connector....    Is this something I can intergate into my production PCBs?

    Where can I find more information?  I have been googling.. but if TI has some direct links, that would be great.

    Thanks again

    Greg

  • ez430 is limited to 9600 bps, same as $10 MSP430 Launchpad (that also can program MSP430F5xx devices). Don't know if 9600 bps is enough for you. For me it is not enough, because MSP430 UART can go over 1 Mbps, and why to be blocked at ultra-low-rate.

  • Greg Hughes said:
    It has an ez430 embedded on the board that seems to do what I need. That is USB to programming the micro and has acess to the UART on the msp430 as a data stream. All on one USB connector....    Is this something I can intergate into my production PCBs?


    You could, but do you want?

    If you take a look into the users guide, Chapter 4.1 'Hardware overview', you'll see the large area in the lower left labeled 'eZ430 Emulator'.
    It contains an MSP430F1612, a TUSB3510 and an I2C EEPROM. Thi sis basically a stripped-down FET430UIF. (the EZ430 is missing all the voltage supply-related stuff, no adjustable target voltage, no overload protection).
    So yes, you could, for lots of additional money and PCB space, loss of the low-power application and maybe a licensing problem (since you still need the firmware for both, the TUSB and the MSP1612).

    For much less money, and effort, you can put a standard 14-pin JTAG connector on your board and connect a real FET430UIF.

**Attention** This is a public forum