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.

CC3220SF: Target board MCU Error Connecting to Target (Error -1170) Even though Successfully Programmed Development Mode via Uniflash

Part Number: CC3220SF
Other Parts Discussed in Thread: , UNIFLASH

I am using the CC3220SF-LAUNCHXL to attempt to debug an external CC3220SF on my custom PCB.  

All the JTAG jumpers on the dev board are disconnected (RST, TMS, TCK, TDI, TDO), my custom PCB is connected via standard 10-pin JTAG connector to J4 (XDS110 OUT), the SOP jumpers on the dev board are set to 100 (not even sure if that matters since I am trying to connect to the external target, and the SOP on my custom board is set to 000 (for functional 4 wire debug - this may be incorrect).  

I have followed the Uniflash directions to set the device into Development mode from production mode (Uniflash was very picky about what USB port worked to connect to the MCU) and successfully programmed (after multiple unsuccessful attempts even connecting until I found a USB port it liked).

Unfortunately, when I try to debug the MCU in CSS, I am still getting the "Error connecting to target (-1170)" which indicates it is still in production mode.  Although it cannot debug, the device passes JTAG integrity tests in CCS.  

I'm thinking this may be a problem of the SOP pins on my target PCB being set to 000 when I programmed it into development mode via Uniflash, however it is quite strange that it did successfully program via Uniflash with the SOP pins set like this.  I'd like to get your feedback before I start reworking the target PCB to other SOP configurations.  

Pictured below is the JTAG and SOP sections of my target board schematics, in case the problem is hardware-related (off-picture, n_reset pin is pulled high to +3.3V w/12kohms).  Thanks for all the help!

-Andy

  • Hi,

    The CC3220 is programmed through Uniflash over the UART pins, not JTAG. JTAG is solely used for runtime debugging and loading code non-persistently into RAM.

    Please connect the UART pins from the CC3220 launchpad to your custom board's CC3220 and try programming with Uniflash again. The Uniflash Imagecreator's user's guide has more documentation detailing the flashing process that might be useful as a reference: http://www.ti.com/lit/swru469

    Regards,

    Michael

  • Michael

    Thanks for the reply!  Unfortunately this leaves me still with more questions.  I clearly am missing something from the documentation, so feel free to point me in the right direction.  

    1. Specifically which UART pins on the launchpad should be connected to which pins on the external target MCU?  Again I'm certain this is documented so please point me to the document which specifies this - I've been unable to find this info in the Uniflash manual you provided as well as the CC3220 series datasheet or launchpad's user guide.  I count 18 pins that can be mux'd as UART so it is a bit risky for me to assume. 

    2.  Before programming via UART/Uniflash, I'm assuming I will need to set only the target MCU's SOP pins to UART mode when Uniflash programming, and then back to JTAG mode for debug.  Is this right?

    3.  From a hardware standpoint, is there anything else that I should know about setting up this Uniflash connection that may not be documented?

    Thanks!

    -Andy

  • Hi Andy,

    To answer your questions:

    1. Pins 55 and 57 are the UART pins that the bootloader uses to connect to Uniflash. These are the same pins used by the CC3220 launchpad to connect to the USB to UART XDS110 chip.

    2. You can use SOP = 010 to set the bootloader to functional programming mode. This will allow you to keep the same SOP configuration for both flashing and JTAG operation.

    3. You need reset as well as the UART signals from the XDS110 on the launchpad in order to program a CC3220. Other than that, there isn't anything else that comes to mind.

    Regards,

    Michael

  • Michael

    Gotcha, thanks.  So there's no way to use any other pins on the target board other than 55 and 57?  

    If not I may have to complete another spin of my PCB.  I have pins 3 and 4 broken out for UART0, and pins 7 and 8 broken out for UART1, so it would be a godsend if I could use those.  Otherwise I suppose my board is useless as is.

    Out of pure curiosity are these uniflash uart pin definitions documented anywhere?  I'm not seeing any notes about these extremely critical pin definitions even in the Pin Description or Pin Attributes tables of the CC3220 datasheet.  I must be missing something?  I would like to know where this info is documented so I can avoid this sort of problem if I utilize other TI microcontrollers in the future.  

    -Andy

  • Hi Andy,

    You cannot use any other sets of UART pins, as the bootloader will only function in flashing mode on pin55/57.

    You can flash the board, or more accurately the SPI flash on the board directly, without the use of the UART pins. This SPI flashing method is detailed in the production line guide, and is actually the most straightforward production method of programming the devices as there is no dependency on specific software or hardware: http://www.ti.com/lit/swra568

    If you have a SPI flash programmer then you can follow the SPI flashing procedure to flash a development mode image which will allow you to use the JTAG debug interface.

    The UART pins are mentioned in the hardware design checklist: https://www.ti.com/lit/zip/swru462

    The UART pins are also connected to the debugger on the CC3220 launchpad schematics.

    Regards,

    Michael

  • Michael

    Awesome info!  Thanks for that documentation too, I think that will help a lot moving forward.

    -Andy