FreeCalypso > hg > fc-magnetite
changeset 483:15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 20 Jun 2018 07:53:32 +0000 |
parents | ad7f986afae3 |
children | a1946652f71c |
files | doc/FCDEV3B-hardware-bug |
diffstat | 1 files changed, 20 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/FCDEV3B-hardware-bug Tue Jun 19 17:03:34 2018 +0000 +++ b/doc/FCDEV3B-hardware-bug Wed Jun 20 07:53:32 2018 +0000 @@ -17,12 +17,17 @@ * On all of the boards there is a problem with sleep modes: when the firmware is running from flash as opposed to RAM, certain sleep-wake sequences cause - an erratic self-reboot or a hang. It is suspected (though not proven yet) - that the FDP output goes low during all sleep modes, our Spansion flash chip - gets unhappy with the reset timing it gets subjected to, and some flash reads - (instruction fetches) don't work after wakeup. So far the only workable + an erratic self-reboot or a hang. Oscilloscope probing on a decased Pirelli + DP-L10 motherboard on which Calypso's FDP output is accessible seems to + confirm my (Mychaela's) suspicion that this FDP signal goes low during all + sleep modes, and the current working hypothesis is that our Spansion flash + chip gets unhappy with the reset timing it gets subjected to, and some flash + reads (instruction fetches) don't work after wakeup. So far the only workable solution has been to disable all sleep modes in all FCDEV3B fw builds; - nothing else has been successful. + nothing else has been successful. However, re-enabling all of these sleep + modes with AT%SLEEP=4 works fine when the firmware image executes out of RAM + instead of flash, further supporting our current working hypothesis as to the + root cause. The fcdev3b-hacks directory contains two hacks that can be applied to FCDEV3B firmware images (fwimage.bin builds) as xxd binary patches: @@ -43,7 +48,13 @@ interface with AT+CFUN=1 in the l1reconst config when running from flash with small sleep enabled still triggers erratic misbehaviour even with this patch. -The proper fix will be to change the PCB to not connect the flash chip's reset -input to FDP any more, and connect it to a pull-up resistor instead. But this -fix will require an expensive PCB respin, hence some experiments to test this -idea will need to be done first. +The proper fix will require a new PCB spin to change the flash reset wiring: +instead of driving it with Calypso's FDP output, use the ON_nOFF master reset +signal from Iota's VRPC block, fed through a logic voltage level translating +buffer to change it from 1.5 V to 2.8 V logic. The flash chip we are using has +lower power consumption when it is NOT held in reset, hence unlike TI's intent +with FDP, we don't want our flash chip to go into reset during any sleep at all. + +The new PCB revision with this change is now in the process of being finalized, +and we will soon need the funding to produce the new boards. Anyone who is +interested in helping to make FCDEV3B V2 a reality should email Mychaela.