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.

CC3220MODA: Questions about how to program the Serial FLASH CC3220MODASF.

Part Number: CC3220MODA
Other Parts Discussed in Thread: UNIFLASH, TMDSEMU110-U, CC3220SF-LAUNCHXL, CC3220SF

Hi Texas Instruments.

I am designing a board for the CC3220MODASF module.

I added the FTSH-105-01-F-D-K connector to the board design for the JTAG function.

I found some posts on the forum that says that the module's serial FLASH can only be programmed through the SPI-FLASH or UART interface.

I have a few questions about the serial FLASH programming process:

1 - Is there no way to program the serial FLASH by JTAG?


2 - I also read that the recording image can be of two types: development or production. What is the difference between these versions? Once I record a production type image, the CC3220 module's JTAG interface is permanently disabled or I can go back recording a development image on top to have the JTAG function again?


3 - I purchased the XDS110-JTAG Probe, it has a 14-pin auxiliary interface with UART interface. Can I use it to program the serial FLASH memory through this UART interface?


4 - If the answer to the previous question is yes, I drew a diagram to provides power, reset and image transfer using the AUX BREAKOUT card that comes with the Probe, can you check the connections?

4.1 - I connected TGTSUPPLYOUT to power supply my board. I connected TGTVDD(SENSE) together because I saw this tip in another post and it also worked for me;
4.2 - I am configuring the SOPs pins using DIP switches / jumpers. Can I use the GPIOOUT1 output to momentarily control SOP1 during the serial FLASH recording process?

I made the connections with a CC3220MODASF LaunchPad to illustrate.

Description of cable colors:

Black: GND;
Red: TGTSUPPLYOUT -> VBATs;
Orange: TGTVDD(SENSE) -> VBATs;
Blue: GPIOOUT0 -> nRESET;
Yellow: UARTTX -> GPIO02;
Green: UARTRX -> GPIO01.

5 - If I can use GPIOOUT0 to generate nRESET. Can I also use the UniFlash software to automatically control this pin? If so, how I do it?

Thank you.

  • Hi,

    To answer your questions:

    1. No, you must program the serial flash either by using the UART connection to the CC3220 and sending bootloader commands to copy files onto the serial flash, or program the SPI flash directly with a SPI flash programmer. You cannot write to the serial flash through JTAG.

    2. In development mode, a few security features are disabled for ease of development. Along with JTAG access, things like file accesses through Uniflash are enabled, and the generated serial flash filesystem contents are locked to the MAC address of a specific device. It is recommended that you use development mode while developing, and then test with and flash production devices in production mode

    3. I do not have a standalone XDS110 probe with the breakout board, but given the connections listed it will be able to program the CC3220.

    4. Your wiring seems correct and you should be able to program with your connections. You can always refer to the schematic of the CC3220 launchpads for reference on these connections, as it uses an XDS110. I have asked a member of the hardware applications team to take a look at your connections to verify.

    5. Uniflash will automatically assert a GPIO on the XDS110 to toggle nRESET. However, I do not know which GPIO is used. I suggest you take a look at that CC3220 schematic to verify the wiring.

    Regards,

    Michael

  • Carlos,

    TGTSUPPLYOUT can supply target power but only when using CCS + JTAG. See section 3.1.2 in the XDS110 Debug Probe User's Guide.

    BR,

    Seong

  • Thanks for the reply Michael.


    1 - Just to confirm the answer to question 2. If I record a
    production image on the CC3220, will I still be able to record a
    development image later and use JTAG again?

    2 - I checked the schematic diagram of the CC3220MODASF LaunchPad,
    as shown in the image below, the RESET pin on the CC3220 is
    controlled by the PA6 pin (# 40) of the TM4C1294NCPDTI3R
    processor. I was unable to find the schematic diagram of the
    XDS110 Probe to compare and find out if PA6 is GPIOOUT0 or
    GPIOOUT1. Is there a schematic diagram for the XDS110 Probe?

    Thanks a lot for the help.

  • Hi,

    Yes, you can reflash a CC3220 from production to development. You do so by erasing the external serial flash, which is a step that Uniflash will perform for you automatically as part of the flashing process.

    Unfortunately the design files for the XDS110 are not public. I suggest you connect the XDS110 to your PC, run uniflash, and then monitor the GPIOout signals with a scope/logic analyzer/tool of your choice to see which one is toggled when you click "connect". Uniflash should auto-detect the cc3220 and then run attempt to connect, which will involve toggling the reset pin externally through GPIOout of the XDS110.

    Regards,

    Michael

  • Hi,

    Just a one warning about using TGTSUPPLYOUT to power your board with CC3220 device. In case you have TMDSEMU110-U probe without option TMDSEMU110-ETH, current output of TGTSUPPLYOUT is limited to ~400mA. And this current may not be enough to NWP startup due to higher calibration peak current (450mA @ 3.3V) and other your circuits at your board.

    Jan

  • Thank you very much for the tip Jan.

    After Seong's warning that power via XDS110 only works with CCS + JTAG. I decided not to use TGTSUPPLYOUT during the serial FLASH recording process.

    Thank you so much Jan and Seong for your support.

  • Hello Michael.

    I will do the test with Uniflash and XDS110 using GPIOOUT0 and GPIOOUT1 and then I will post the results.

    Thank you very much.

  • Hello Michael.

    Sorry for the delay.
    I did the tests, but I was not successful.

    Below I show in detail what I did:

    1 - I made the connections between the LAUNCHCC3220MODASF board and the XDS110 probe (breakout board).

    1.1 - I removed the jumpers that had J6 (TX) and J5 (RX) from the LAUNCHCC3220MODASF board.

    I connected the UARTTX signal of the breakout board to the center pin of J5 (RX), yellow wire.
    I connected the UARTRX signal to the center pin of J6 (TX), green wire.

    1.2 - I removed all 5 J3 jumpers.

    I connected the GPIOOUT0 signal to the RST pin of J3, blue wire;
    I also tested with the GPIOOUT1 signal connected to RST.

    1.3 - I connected the breakout board ground (GND) with LAUNCHCC3220MODASF, black wire

    2 - I ran the UniFlash program version 6.0.0.2710.

    3 - I chose CC3220SF-LAUNCHXL LaunchPad Serial.

    4 - The welcome screen appeared.

    5 - I chose to create a new project, filling in the options as shown below.

    6 - The Development Mode - Simple View screen appeared.

    7 - I pressed Connect, because I read somewhere that in Debug mode it is necessary to search the MAC address of the target.

    After a few seconds, the error message below appears.

    What am I doing wrong?
    I also tried to use the GPIOOUT1 signal connected to RST, but it didn't work either.
    I tried to change the target to CC3220SF (BOOTLOADER) Serial and I was also unsuccessful. I would like to take the opportunity to ask for an explanation of the device options indicated as "On-Chip" and "Serial".

    Thank you.

  • Hello Michael.

    Excuse me, in my previous post, I think I attached the wrong photo.
    I put a photo where the TX and RX connections are not crossed.
    As I was not getting results, I tried to invert the TX and RX connections between the probe and the lauchpad.
    I tested it both ways and was unsuccessful, when pressing "Connect" the same error message appears.
    This is the photo illustrating the connection with crossed TX and RX.

    Sorry for the mistake.

  • Hi,

    The steps you are performing should be correct. A couple things to check though:

    1. What are your SOP pin settings? In order for Uniflash to be able to connect, the device bootloader needs to be placed into either flashing mode (SOP = 100) or functional 4WD mode (SOP = 010)

    2. Are you able to use a logic analyzer or scope to check the UART TX/RX lines + reset at the CC3220 EVM header pins? This will ensure allow us to see whether the XDS110 is sending the expected commands to the CC3220.

    Regards,

    Michael

  • Hello Michael.

    Thank you very much for the answers.

    First by answering your questions:

    1 - The SOP pin configuration is 010. I also tried with other combinations but without success.

    2 - I did not get to test the UART TX / RX pins with a logic analyzer, as I was able to verify that they are working in the comment below.

    I wanted to inform you that I was able to make progress.
    I found a tip in a post and decided to try using the command prompt.
    1 - I opened a command prompt window in the UniFlash installation folder and ran the command: "dslite --mode cc32xx gui_cfg --port COM4", as shown in figure 1;

    Figure 1.


    2 - In my case, I used COM4, ​​as this is the number that is assigned to the port "XDS110 Class Application-User UART";


    3 - When executing the command, the command prompt displays the messages in figure 2 and a browser window appears, figure 3,
    presenting a type of UniFlash web interface;


    Figure 2.


    Figure 3.


    4 - In the web interface window, I selected the "Test" project, which is probably the project I had previously created in the UniFlash program, see figure 4;

    Figure 4.


    5 - After selecting the Test project, I selected the "Connect" option. At the command prompt, I was asked to turn off the device, as shown in figure 5;

    Figure 5.


    6 - I disconnected the USB cable that powers my launchpad. I pressed ENTER and the command prompt advanced to figure 6;

    Figure 6.


    7 - I reconnected the USB cable to the lauchpad and on the web interface the device information appeared in the right corner, as shown in figure 7;

    Figure 7.

    8 - I was able to validate the UART communication between the XDS110 probe and the launchpad. I tried to flashing the project, pressing "Burn", showing the screen in figure 8;
    In my test, the MCU image is the bin file of the "Out Of Box of the CC3220" project and the Service Pack is the most recent version that I downloaded.

    Figure 8.


    9 - At the command prompt, the message appears again asking me to turn off the device, see figure 9;

    Figure 9.


    10 - I disconnected the USB cable again, press "ENTER" and everything ends as shown in figure 10.

    Figure 10.

    From the command prompt it may have worked because I indicated the COM number and it may be what is missing for UniFlash to work, I don't know ...
    I also found another post explaining how to automate the RESET process using two Python scripts: power_on_com.py and power_off_com.py.
    The post link is: e2e.ti.com/.../2545142
    I tested connecting the launchpad RST pin to GPIOOUT0 and also to GPIOOUT1 on the breakout board, but it didn't work. I believe that the script must be activating the pin nRESET (15 of the CTI-20 connector).
    I saw in the XDS110 manual, that the pins GPIOOUT0 and GPIOOUT1 can be controlled by the command "dbgjtag -Y gpiopins, config = number, write = number, read = boolean, mask = number", but I'm not sure how to do it.


    At the moment I got a way to flash the CC3220's serial memory, but I would like to do it in an easier way.

    Thank you very much for your help

  • Hi,

    It would probably be most straightforward for you to use the pure CLI version of Uniflash/Imagecreator, without the gui_cfg. The Uniflash GUI should be able to auto-detect XDS110 devices though. Have you ensured that the XDS110 probes have their drivers installed correctly and show up in your device manager?

    You can find some documentation on how to use the dbgjtag command including examples here:

    http://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds110.html#section-3-7-3-3-gpio

    the dbgjtag executable is bundled with CCS, and can be found at ccs1000/ccs/ccs_base/common/uscif of your CCS install directory.

    Regards,

    Michael