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.

JTAG/SWD Switch on LP

Other Parts Discussed in Thread: CC3200, UNIFLASH, CC3100, CC31XXEMUBOOST

The JTAG/SWD circuit in LP looks quite complicated. How widely used is SWD debug interface? If one customer does not need SWD, can the three data buffer chips (N74LVC125APWR) be saved? In another word, connect the JTAG pins directly to the FTDI chip?

  • Hi Peng,

    May be I have misunderstood your question, but if you are talking about designing a custom board. I don't believe you will require the FTDI chip for JTAG programming/debugging, as the FTDI chip is used for the USB/Serial protocol for the "Stellaris" ICDI (In-Circuit Debug Interface).

    Not even sure you will require the data buffers, you should be able to connect the JTAG pins directly to the CC3200 MCU. Check out the relevant pins in the data sheet here - http://www.ti.com/product/CC3200/datasheet/terminal_configuration_and_functions?search=JTAG#swas031941

    I have not been able to look into this in great detail, I am just assuming that programming the CC3200 via JTAG is pretty much the same as programming the Tiva C (then again the CC3200 has external flash, so may be this will make a difference??)

    The Hardware Design Review Spreadsheet may include more information, but I have not been able to access it, as the link isn't working from the CC31xx & CC32xx Hardware Design Review page.

    Could someone more knowledgable correct me if my assumptions are wrong!

    Glenn.

    p.s. I assume you mean SWD and not AWD?

  • Glenn, you are absolutely correct. 
    Peng, the CC3200 LP also supports working with external emulator. See the UG here http://www.ti.com/lit/ug/swru372/swru372.pdf

    If you are putting custom board, you can follow that approach. You dont need to have onboard emulation for custom board

  • Hi Geet and Gleen,

    Thanks the replies!

    Yes, I meant SWD. The assumption is if a customer will also need to design a debug board by themselves

  • Hi Peng,

    There is no need to design your own debug board, as emulation will be provided by the external debugger/programmer/emulator. TI has designed a number of these including XDS100, XDS200 and XDS560 which can be order from here - https://estore.ti.com/Emulators-C36.aspx . Other emulators can be used, please refer to CCS6 for details.

    Let us know if this has answered your question by selecting Verify Answer.

    Glenn.

  • Glenn,

    Thanks for the discussion! Actually the purpose was to design a better/simpler debug board. It needs to suport sFlash programming feature. The existing XDS emulators cannot do the sFlash programming job.The newest version slprogrammer works with the FTDI chip.  

  • Hi Peng and Gagan,

    Other than developing our own debug board or using the CC3200 LP in some way....how would we go about programming the SFlash on our custom boards?

    I was under the assumption that the CC3200 UniFlash would be able to do this, once it has been updated and merged into the main UniFlash (which supports the XDS emulators). 

    Can someone please verify and explain how we would program the SFlash once we have a custom board?

    Glenn.

  • Glenn,

    UniFlash is MCU's on-chip flash. The sFlash here for CC3200 is external, which can only be programmed through UART. Or, one can do gang programming in advance before assembling the flash.

  • Thanks Peng,

    What are TI's recommended tools and process to use UART to program the SFlash on a custom board?

    Glenn.

  • The information is in the Launchpad userguide Gagan has mentioned. The UART to USB chip FTDI (FT2232D) is the recommendation. The tool is SimpleLink Programmer as mentioned in the userguide.

  • Thanks Peng,

    I now clearly understand that the CC3200 LaunchPad expose the UART line as a virtual com port via FTDI chipset, and this is how you then program the SFlash.

    But to have to include this all on a custom board, just for programming is obviously wasteful and adds to the expense of the products BOM. So an external programmer of some sort is required to perform this task.

    I have tried to find which programmer performs this task, but have not been able to find one. The SimpleLink Programmer is mentioned, but I have not found this device anywhere, and it is only mentioned when describing the CC3200 LaunchPad and CC3100 BoosterPack. 

    Do we need to develop our own FTDI based programmer, or does TI have a device suitable for this task? Or is there a recommended method to route from the CC3200 LaunchPad to our custom board? 

    Would it be possible to use an FTDI based USB TTL Serial Cable, and if so which one from this list is recommended - http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm ?

    Glenn.

  • Glenn,

    SimpleLink Programmr is a software tool to program the sFlash through UART. So far this tool has been used with the FTDI chip as on the Launchpad.

    So for the best stability, if one is going to develop a board, the circuit is better to copy the one on Launchpad, combining the UART and debug funciton (both JTAG and SWD).

    I was wondering how widely SWD debug interface is used since I saw people normally use JTAG.

  • Thanks Peng,

    I wonder if TI will provide a board/programmer for this or perhaps explain how we can adapt the C3200 to perform this tasks. As having to create our own board just for programming the SFlash on our custom board is not the best solution (Extra cost, work etc.) I also wonder if any of the FTDI cables will do what is required?

    Can anyone from TI explain what is planned regarding this?

    Glenn

    p.s. JTAG is more commonally used, but some people are quite passionate about using SWO/SWD ... Cb1mobile on the Tiva C forum for instance ...where you will find some good discussions regarding the pros and cons

  • Hi Glenn,

    TI provides CC31xxEMUBOOST board which can do the flash programming job. Please reference P15 of CC3100 BoosterPack Hardware User's Guide downloadable on the Wiki.

    For the production line, the most effecient way is gang programming, i.e., programming the serial flashes in advance

    before assembling.

    BTW, thanks for the information on SWD!

  • Thanks Peng,

    Ok, so you are saying we could use the CC31xxEMUBOOST to work as the programmer on a custom board. Is there any information on how we would accomplish this? For example, which headers need to go to which pins on the SFlash? I am sure this information is going to be needed by others!

    Gang programming is fine for large production runs, but it does not help if you need to update product already assembled. So an on-board update will also need to be provided with most products.

    And any comments on using one of the FTDI cables to program?

    Sorry to be a pain about this, I just think it is important info that many people are going to want to understand when designing their custom board. So would be good if the information is provided in these forums for people to access.

    Glenn.

  • Hi Guys,

    You will need your CC3100 UART1 RX/TX lines to accomplish this. The CC3100 accepts data on the UART1 lines, and then writes it to the SFLASH for you. You can use the Emulation board to provide power your board as well. No direct connection to the SFLASH should be used!

    Use the Uniflash tool to flash files to the CC3100, because it knows how to communicate with the CC3100 via UART1.

    Uniflash Quick Start Guide: http://processors.wiki.ti.com/index.php/CC31xx_%26_CC32xx_UniFlash_Quick_Start_Guide

    The UART RX/TX lines on the Emulation board are P1.3, P1.4.

    I don't see any reason off hand why you couldn't use a FTDI cable as well.

    Make sure to pull SOP2 high during boot to flash anything to the CC3100.

    Thanks,

    Aaron

  • Thanks Aaron,

    I am sure this will be very useful for many people. 

    Might be good if TI could recommend the appropriate FTDI cable, as this will be what people will most likely use on a custom board, a lot cleaner than running jumpers from the Emulation Board.

    Glenn

  • Hello Glenn and all,

    I have exactly the same questions regarding a programmer for cc3200, UART cables.  Have you found the answers?

    Also, does anyone know of a simple guideline and schematics that one could follow to design a custom board with an interface for production programming. What's the required hardware/software? Is this part covered by TI for cc3200 chip? 

    Thanks,

    David

  • Also seeking this information for a custom CC3200 board.

    In summary, so far:

    1. Break out UART TX/RX (GPIO1 and GPIO2) for flash programming (or gang program)

    2. Break out JTAG or SWD for MCU programming

    3. Break out SOP pins for setting programming mode

    1&2 is achieved on the launched via an FTDI 2322D on the LP (to allow programming/debug via USB).  Also includes a 93LC46B-I/MS EEPROM for emulation (how is this programmed?).

    3 is achieved via jumpers J15-J17 but is there a better way for production?

    Also, I see there is a newly released (7-Nov) OTA update in the SDK but limited documentation on how this works.