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: Internal/XIP flash not working

Part Number: CC3220SF
Other Parts Discussed in Thread: UNIFLASH, CC3220S, CC3200, CC3220MOD

I am using the CC3220SF microcontroller (secure with chip internal/XIP flash) on a custom board.
On about two out of ten of these boards, the chip internal flash is not working/not available: The flash can not be erased using the UniFlash tool and the debugger scripts of the Code Composer Studio (CCS) report a timeout while flashing (mostly on address 0x0100000, the flash header).

Here is a picture of the layout of my custom board:


I spent already many hours of finding the issue, but without any success.


What I found out alredy:
1. Replacing the CC3220SF on the faulty boards does not help.
Either the issue is on the board. Or all my remaining CC3220SF have the same issue with the internal flash.

2. Replacing the external SPI flash on the faulty board does not help.

3. The faulty boards/faulty CC3220SF MCUs work as expected if using the external SPI flash for the user program.
For this I changed the linker script to cc3220s.cmd and the according target configuration for the CC3220S.

4. On some faulty boards, the DC/DC converter for the flash voltage just make some switches and the gives up.
The picture below shows the voltages on some pins of such a faulty board:


Channels: channel 1 (blue): DCDC_ANA2_SW_P (pin 45), channel 2 (red): DCDC_DIG_SW (pin 43), channel 3 (green): VDD_ANA2 (green).
The spikes on all channels are due to crosstalks on the measuring wires.
The picture shows that the DC/DC converter for the flash voltage (channel 1, blue) makes some switches and the flash voltage increases a bit (channel 3, green). But than the DC/DC converter stops and the flash voltage remains constant (i.e. there can not be a short on this voltage).

On some other faulty boards/MCUs, the DC/DC converter for the flash voltage does not make any switches, i.e. the flash voltage is 0.

The picture below shows the voltages on the same pins on a working board where the chip internal flash is available (can be erased and programmed).



5. On the faulty boards using the external SPI flash for the user program (see point 3 above), I tried to erase and program the internal flash in the user program using functions of the DriverLib, but without any succuess: the function FlashErase stays in its while loop.

My questions now:
A. Is this issue "chip internal flash not available" already known? Are there any work arounds?


B. Can you give me hints to read out some registers of the flash controller or global registers (e.g. GPRCM or HIB*) to find more details of the status of the DC/DC converter for flash and the flash controller?
Like the registers GPRCM_BASE + GPRCM_O_TOP_DIE_ENABLE, HIB1P2_BASE + x in the FlashDisable function, which are not documented in the reference manual.

C. Should I inspect the voltage on other special pins?
I already inspected the voltage on a lot of pins (e.g. , but with no luck.

  • Hi Peter,

    If 8 ouf 10 of your boards are working properly, then unfortunately is sounds like your issue is most likely hardware related.

    You can also check out these related threads to help rule things out:
    e2e.ti.com/.../683919
    e2e.ti.com/.../2308003
    e2e.ti.com/.../588229

    Thanks,
    Alexis
  • Yes, I think it is hardware related.
    The related threads do not help.
    I need more information about the registers of the DC/DC converter for flash.
    Because the faulty boards do not have a proper flash voltage.

    Now here are some pictures (they got lost in the first post):

    Channels: channel 1 (blue): DCDC_ANA2_SW_P (pin 45), channel 2 (red): DCDC_DIG_SW (pin 43), channel 3 (green): VDD_ANA2 (green).
    The spikes on all channels are due to crosstalks on the measuring wires.
    The picture shows that the DC/DC converter for the flash voltage (channel 1, blue) makes some switches (after reset) and the flash voltage increases a bit (channel 3, green). But than the DC/DC converter stops and the flash voltage remains constant (i.e. there can not be a short on this voltage).

    The picture below shows the voltages on the same pins on a working board where the chip internal flash is available (can be erased and programmed).

    Here is a picture of the layout of my custom board:

  • Hi,

    Your PCB design is not correct. CC3220SF chip is not qualified to be used at two layers board. You need to redesign your board to four layers and layout similar like at LaunchPad - www.ti.com/lit/ug/swru458/swru458.pdf at chapter 4.2.

    Please see:

    (information related DC-DC at CC3200 are same for CC3220 as well)

    Jan

  • I know that a four layer PCB is proposed for the CC3220.
    But this increases the costs too much.
    The same holds true for the CC3220MOD.
    If both are the only choices, then I need to switch to the compatitor device from espressif.

    I still think that a two layer PCB is feasible for my application.
    The SWRU458 document does not help much, because it is about the CC3220 without the flash DC/DC converter.
    And exactly this DC/DC converter is the problem in my case.

    Is it possible to "disable" the flash DC/DC converter and feed in the flash voltage from the external VDD (3.3V)?
    For example remove the inductor on pins 45 an 46 and connect pin 47 to 3.3V?

  • Hi,

    I am working with WiFi SoC devices for many years and I can say that there is many differences between ESP and CC32xx devices, although it may not look like that. For some low cost applications are ESP32 excellent choice, but for some application are terrible. Yes I agree that modules with CC3220SF are expensive in comparison ESP modules, but four layers board not costs that much (it is generally + 10-20% in higher volume in comparison with two layers board). For ESP32 in QFN48 package is also recommanded four layers board - see ESP32 layout guidelines. With two layers board is proper layout of 50ohm RF output slightly complicated.

    I am not able to say you how you should solve your issue with collapsing DC-DC at two layers board. You can wait for answer from TI. According my experiences is wasting of time try to design two layers board for CC3220 QFN. I don't say that this is not possible, but it may to be hard. My recommendation is to do proper four layers board.

    Jan