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.
Tool/software:
Hello,
I recently made a custom board for the CC3235MODASF. I have been struggling to flash or even connect to my device. Here are the relevant parts of my schematic:
I am attempting to connect to the device through the JTAG interface. I am using the XDS110 Rev.A USB debugging probe. The SOP pins are connected to a switch that enables a hardware pullup. I only put one 10kR since it seems that more than one SOP pin will ever need to be pulled high for my use. I believe I followed almost all mandatory design rules as defined within the hardware design checklist. However, I made a mistake. I failed to add 100k resistors to pins 46 and 47 as per instructed. I may have also made a mistake with the nRESET net, but I'm uncertain.
I've tried to use CCS & SYSCFG, as well as UniFlash to program the device. I have tried setting the image.syscfg 'image mode' option to both production and dev with every SOP mode. I have done the same thing in UniFlash. I noticed when using UniFlash, if you select your connection to be the XDS110 debugging probe, any relevant cc32xx device vanishes from the selection menu. Does this mean it is not compatible? I can select it from the menu if the debug probe is not used as the connection interface:
I've probed around the custom board and everything seems to have power and be working properly, apart from the CC3235 itself. Just as a sanity check, I've tried every SOP combination with CCS and UniFlash with the debug header inverted, as well as using a second XDS110 debug probe (I own 3 or 4 of them) and two separate custom PCBs. I've made custom boards in the past with different chips (like the msp432e401y) and have flashed via JTAG just fine.
Are the 100k resistors on pins 46 and 47 required to flash via the JTAG interface? Do you see anything apparent that I've missed?
Any help would be much appreciated,
Dan
Hi Dan,
Do you have connected device via UART interface (pins 46, 47)? JTAG is used for development purpose only (debugging from IDE). Image programming from Uniflash (Sysconfig Image creator) is done via UART (RX, TX, RST, GND).
At the default mode (production mode) is JTAG locked. To unlock JTAG device need to be switched into development mode and this can be done via UART only.
btw .. .do you have connected anything to pins FLASH_SPI_*?
Jan
Thank you for your quick response.
I tried, unsuccessfully, to connect the XDS110 to pins 46 and 47. Which pins on the XDS110, specifically, should I connect to P46 and P47?
Should I connect P12 on the AUX header to P46 & AUX P14 to P47? Alternatively, could I instead use P17 & P19 from the expansion header instead of the AUX interface?
The RST and GND pins are connected through the Debug connection & CM10 adapter. Is that sufficient?
Okay, thank you.
The FLASH_SPI_* pins have been broken-out to some pin headers, but nothing else is attached.
I have a Beefy 3 FTDI laying around. Do you suppose I might be able to use it if I am unable to use the XDS110?
Hi Dan,
Usage of stand alone XDS-110 debug probe (TMDSEMU110-U) is little bit problematic with CC32xx devices. Much easier way is to use LaunchPad with integrated XDS-110 and connect them to your external board.
Main problem is with control of reset pin of your CC32xx module from TMDSEMU110-U. At CC32xx LaunchPad is reset of CC32xx connected to pin PA6 of TM4C chip. And this pin is controlled from Uniflash when is reset needed. But at TMDSEMU110-U is reset controlled by another pin than PA6. But I am not sure what exact pin at TMDSEMU110-U can be controlled by Uniflash. Maybe one of GPIO pins, but I am not sure. As to be honest. Although I have TMDSEMU110-U, I never used them due to connection issues. I always used XDS110 from LaunchPad.
You need to connect when stand alone TMDSEMU110-U is used:
Jan
Thank you for your advice. I see how the TMDSEMU110-U could be annoying to use with the CC32xx devices.
I am going to make another board revision to fix this in addition to some other issues. I have a couple launchpads available. Which pins exactly would I need to break out and jumper from the integrated Launchpad XDS-110 to the custom board in order to flash it?
Are the above pins on the LP the only ones I would need for flashing & JTAG (after the device is set into development mode)?
Will the above pins on the CC3235MODASF be the pins to jumper to the LP? Are there electrical constraints on the length of those jumper wires?
If using the LP's XDS110, do I still need to include 2x 100k resistors on the RX (47) and TX (46) nets?
After the custom board is flashed over UART via the LP's XDS110, will I then be able to directly use the JTAG interface for debugging and flashing with the TMDSEMU110-U?
I appreciate the help
Hi Dan,
Yes, your image of connection to CC32xx LaunchPad is correct. If you want to you can use SWD and save two wires for JTAG. I am not sure, if you not swapped RX, TX lines, but this is not a big deal. If you use reasonable long (let say 10 - 15 cm wires) and wires with reasonable quality it should be fine. Usage of very long and very thin ones wires may to be problematic.
I am nut sure whether pull-up at TX line is needed. But pull-up at RX line is needed when device is used at SOP mode (0-1-0). At this mode is UART loader executed when RX line is low after reset. When is RX line floating, this can cause errantry entering into UART loader. For more details about SOP mode please see datasheet. When RX line will be permanently connected to XDS-110, you will not see any issue even ins SOP mode 0-1-0. You will see problems when RX line will be disconnected without pull-up.
JTAG is dedicated for development purpose only (debugging from IDE). For image programming into sFlash you will still need to use UART. With small exception when production programming via lines FLASH_SPI_* is done. Production line guide nicely describes all possibilities.
Jan