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.

Flash boot fails with slow rising power supply (Vin)

Other Parts Discussed in Thread: CC3200

Approx 10% of my pre-production batch has an issue that the Flash Bootloader stops transferring code to memory (boot sequence). It is related to my slow rising power supply (Vin). I have an external brown out reset that holds the nReset low until Vin is withing 10% of my operating 2.5V (I expected slow rising input voltage).

My o-scope shows clean a reset release, and then 32KHz starting after ~1 sec, and then Flash load starting (as expected).

However, if my power supply rises slowly (over approx 3 sec from 0V to 2.5V), the Flash load operation stops after the first few hundred bytes read from Flash (approx 500us of reading Flash data). If I change my design to have a fast power supply rise time the CC3200 boots correctly.

When it has not booted (Flash read stops after 500us), if I then toggle the nReset pin, it does complete the boot from Flash correctly (Completing the full flash read sequence and then running my application).

The reason why I have a slow rising Vin is because I used a super-cap (1F @ 2.7V) to handle the expected 500mA calibration current pulse - I know that 1F is too big, but it was the lowest cost option (over kill), and also solved other problems I had in my design. The source impedance from the power source is very high, thus the super-cap handles the transient current very neatly.

Another couple of relevant notes about my design:

1) 1F/2.7V supercap on Vin

2) Operates at 2.5V 400mA DC-DC converter. The DC-DC Converter has a POK output, that is released when the output voltage (Vin) is above 2.25V (~10% of the final value of 2.5V.

3) The Flash chip is Spansion: S25FL164K0XMFI011 64Mb 2.7V-3.6V, so I run it from a separate linear regulator 2.7V.

4) The nReset has a clean rise (including the 100K and 100nF delay as in the Launchpad). It does not fall again while flash is being read.

5) I have tries holding the nReset low until well after the Super-Cap has charged, and then releasing it. It still stops early though reading from Flash. It will load from flash OK if the reset is toggled again.

6) There is a diode between 2.5V (Super-cap, Vin) and Flash 2.7V to prevent power sequencing CMON-latch-up issues.

My only solution is a re-design with an external watchdog IC to force a second reset if the processor does not start within 2 seconds. I would prefer not to have to add this extra cost to my low cost design (defeats the purpose of the low cost CC3200 choice). Plus I have to re-cad and squeeze it in.

 

My Questions:

A) Could the CC3200 be sensitive to slow Vin rise times (3 seconds), even though the reset is held low until Vin is above 2.25V?

B) Can you suggest any other methods to gracefully recover from this issue?

  • Ian,
    To be frank we have never experimented with such a slow rise time of the Vcc. Can you route the POK signal as nRESET to the CC3200 device. I am not sure of your complete schematic. I am assuming the 1F supercap is at the input of the DC-DC.
    Do you have a pull-up resistor on the CS# pin of the serial flash. I think the issue is related to the s-flash booting up later than the CC3200. The CC3200 starts to work down from 2.1V but the s-flash in this case would need 2.7V to reliably power-up. So during the first power ON the CC3200 tries to access the s-flash after 1.1 sec of supply reaching 2.1V. At this time, if the s-flash is not ready (the supply has not reached 2.7V), the CC3200 will not download the code correctly. Then by the 2nd nRESET pulse, the s-flash has stabilized and then it works OK. Can you try to use an s-flash which works down to 2.3V? The part used on our boards M25PX80 works well at this range. Im sure you would be able to find a larger part which works at lower voltage.