(my chip won't successfully talk to the flash over...
# mpw-2-silicon
g
(my chip won't successfully talk to the flash over the HK-flash bridge either)
t
If you can talk to the SPI, though, then you should be able to reach the SPI flash using the pass-through mode. Is there any evidence that after sending the pass-through command to the housekeeping SPI, that you can see signaling between the Caravel chip and the SPI flash chip?
g
going to see if there's a scope or LA around here to check that (otherwise, I'll do it at home this evening). SPI housekeeping reads are reliable enough; though
t
Yes, and I have never had any trouble running the pass-through command (but in addition to not being able to use the stream write command, I also found that the fixed-number-of-bytes writes only work for the 1st byte, so only the single-byte write command works). N-byte reads and stream reads both work correctly.
I assume that when you say you can't "successfully talk to the flash", you're getting the common "Winbond not found" error?
g
Yeah, and checking the flash ID it's all FF
t
That's an unusual error that I'm not sure I've seen before (that is, personally, in any of the chips I have here on my desk; there have been similar reports from other people, and we need to put together a spreadsheet of errors, causes, solutions, and workarounds). I do know that the "Winbond not found" error is not very well targeted, because the initial read of the manufacturer ID from the housekeeping SPI isn't being checked in the software, so you'll get the same message if the housekeeping SPI isn't working as you will if the pass-through mode isn't working. But so far, all the "Winbond not found" cases I've seen were due to the housekeeping SPI itself not working. There is one case of everything failing to work because some program is running on the flash and immediately configures the GPIO pins being used by the SPI into a state that is no longer compatible with the SPI, requiring a power cycle with the reset held down. But you are clearly talking to your chip's housekeeping SPI and can read out the manufacturing ID, so that doesn't seem to be the case here.
g
Yes - I have some code running passthrough enable + read flash ID in a loop and I'm not seeing any corresponding activity on the flash pins on the scope...
t
How many chips do you have mounted on daughterboards, and have you tried more than one?
g
I tried another chip earlier and had exactly the same behaviour - I might try another in a bit although I'm starting to think something might be up with the pin connections, in fact
I am now seeing flash activity
but not a correct read...
flash_cs
is going between 0V and about 1.9V rather than the expected 3.3V which is somewhat concerning
t
Is the
3V3
line hitting 3.3V?
g
yes, as is the flash sck and si
oh, it was a "flexi-pin shorting onto the jumpers" below issue
with the board lifted slightly I can now read the SPI flash ID!!
looks like we have enough IO passing in the check to be able to bring up our chip, too. thanks for your help today
t
Good to know!
(I forgot about the "Winbond not found" error related to smashed pins. . . That's why I need to get up a spreadsheet of problems and solutions.)
I didn't actually think about this when I soldered my header pins into the Nucleo board, but it makes a difference which way you insert the header. If you put the side of the header with the shorter pins facing up, then the hat fits snugly on the board. . . but also that squashes the flexi-pins. If you put the side of the header with the longer pins facing up, then the hat does not go all the way down, and stands off about half a centimeter which is enough for the flexi-pins to comfortably clear the Nucleo board.
@jeffdi: My comment above should be included in the instructions we send along with the Nucleo boards, unless we're sending users the Nucleo boards with the header pins already installed, in which case we need to tell the assembler which way to install the headers.
g
they come with the headers already installed
t
Thanks for the info.
Seems advisable to put some kind of stand-off so that you can just push the Caravel board all the way down without worrying about smashing the pins.