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?