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.

CC3120: CC3120 Service Pack programming failed

Part Number: CC3120
Other Parts Discussed in Thread: UNIFLASH, CC31XXEMUBOOST

Hi TI,

I have a custom board with CC3120R on it. I am encountering an issue with programming CC3120 service pack.

If the board is new and CC3120 is blank, I can connect and program the CC3120 with UniFlash vs UART. 

But if the CC3120 is programmed before, I can not connect to the CC3120 with UniFlash anymore. I checked the power and reset pin, they all look good.

What could be wrong?

Thanks,

Jeff

  • Hi Jeff,

    May I know how do you connect UniFlash to your custom board with CC3120R?

  • Hi Jeff,

    Make sure the you didn't change anything in the hardware setup.

    There shouldn't be any impact to the SP that was programmed on a following programming.

    What exactly is the error when you try to connect? 

    See documentation in https://www.ti.com/lit/pdf/swru469,  https://dev.ti.com/tirex/explore/node?node=ABEoqU9o3snoxDcmIpW0EA__fc2e6sr__LATEST.

    Hi Robert, 

    See the documentation (and also the datasheet). The programming is done through the UART.

    Br,

    Kobi

  • Hi Kobi,

    Yes, I know it is done through UART. I just want to make sure Jeff has connected the right signals in this custom board.

    As you know I also use CC3120 in my custom board. I also designed my own Embedded Programming tool to run on macOS. But I never encounter the issue as stated by Jeff. So, I am interested in how Jeff connects the signals.

  • Hi Robert & Kobi,

    Thanks for your reply.

    I am using a CC31xxEMUBOOST board with jumper wires to my custom board. It is using UART for sure. I connected Rx/Tx/CTS/RTS/nHib and 3.3V supply to my custom board. It works with a blank new board. So I believe the connection is good. The UART port is only connected to CC31xxEMUBOOST. It doesn't connect to anywhere else on the custom board. 

    I supply the 32k clock from the host MCU to CC3120. does the CC3120 need the 32k clock for programming? with a blank board, the MCU doesn't output 32k clock.

    I checked the swra569 doc. for programming the CTS/RTS are not used. But I connected to EMUBOOST. Does those signal matter?

    Thanks,

    Jeff

  • Are you able to work with the device after the SP is programmed?

    What SP version are you installing? and what Uniflash version are you using?

    Also make sure you follow the guidelines in https://www.ti.com/lit/pdf/swru458

    only the UART RX, TX + nHIB/nRESET lines are needed for the programming.

    Br,

    Kobi 

  • Hi Kobi,

    Yeah, the board is working after programming the SP. 

    Does the SP version matter? The SP programmed on board is 3.16.0.0. The SP version I want to program but failed is 3.10.0.5. It is kind downgrade. does it work?

    The Uniflash is 6.1.0.

    The swru458 is the guideline for pcb layout. What do you want me to check with this guideline? My custom board is very small. The layout meets the length and impedance requirements. but I have fly wires jump from my custom board to EMUBOOST board, they definitely do not meet the impedance requirements. the baud-rate of UART is 921600bps. Does it work with fly wires?

    Jeff

  • shouldn't be related to the SP, just wanted to make sure the installed SP is suitable to the device.

    If I understand correctly you can't connect to the device , so it is not related to the SP that you want to update.

    what error code do you get? 

  • Hi Kobi,

    I got timeout error when I click "CONNECT" button. I believe it can't connect to the device. 

    Could it be I have CTS/RTS connected?

    Jeff

  • Can you send a screenshot? 

    I don't know how the installed SP is related to the connection issue.

    When the flash is empty, do you always succeed to connect?

  • Also, please try using the image creator CLI - see if you get more info on the failure.

  • Hi Kobi,

    It is weird. I removed CTS/RTS/RESET connection. and I also scoped the nHIB line. It does go down when I click "Connect" in UniFlash GUI. But again, It failed to connect to CC3120 on those programmed boards. but, it connected to the blank board every time!

    here is error message:

    And I also tried command line with UniFlash. here is the message when I try to connect it and get device info:

  • Hi Jeff,

    I probably know what is the root cause.

    Because you have MCU and CC3120 on custom board. MCU must connect to CC3120 with the same UART used by UniFlash. So, The UART is shared by three devices (MCU, CC3120 and PC).

    With a blank board, the MCU is never programmed. So, the UART port of MCU is usually configured as GPIO INPUT mode by default. The MCU.TXD pin will not drive CC3120.RXD pin. So, when this blank board is connected to PC, UniFlash can fully control PC.TXD pin i.e. CC3120.RXD.

    With a programmed board, the MCU is also programmed by you. MCU.TXD pin will be configured to UART mode and drive CC3120.RXD pin. When UniFlash also connects to the UART interface, there will be two sources driving CC3120.RXD pin. This is not allowed.

    You have two way to get rid of this issue:

    (1) Add a hardware jumper to disconnect MCU.TXD from CC3120.RXD. This will require circuit modification.

    (2) Design a "programming mode" in your MCU software. In my custom CC3120 board, I can press a key for 5 seconds to enter this programming mode. It will disable the MCU.UART driver and keep MCU.TXD as GPIO INPUT mode. Then, I can connect UART to PC for UniFlash or Embedded Programming. Once CC3120 is programmed, I disconnect UART from PC and recycle power to custom board. Then the custom board will run its normal firmware.

  • Hi Robert,

    On my custom board, the TX/RX are not connected to MCU. only the nHIB and nReset connected to MCU. I have tried the erase the MCU, but it doesn't help.

    Thanks, Jeff

  • Hi Jeff,

    That's really bad news!

    So, you use SPI interface for MCU and CC3120.

    I think I need your schematic to check the connection.

    To enter boot loader mode, CC3120.UART1_RX needs to be kept low while pulling nHIB or nRESET pin low/high. Could you scope nHIB/nRESET, RXD, nRTS pines and show me the waveform?

  • Hi Jeff,

    The scope captures can be useful.

    For the schematic review please use the following: https://www.ti.com/tool/SIMPLELINK-WIFI-DESIGN-REVIEWS.

    Br,

    Kobi