cancel
Showing results for 
Search instead for 
Did you mean: 

Need for series resistors for OCTOSPI on NucleoU5A5

tzijnge
Associate

Hi everyone,

I am working with a NucleoU5A5 and a W25Q16 flash chip in quad SPI mode (using the OctoSPI peripheral). For a couple of days I couldn't get it to work reliably: reading multiple bytes would fail on certain byte values coming from the flash chip. Specifically it would fail if three or four data lines were pulled high, but not if fewer than three data lines were pulled high. E.g. reading the value 0x03 would work fine (2 data bits high), but 0x07 would fail (3 data bits high).  Failure in this case means that the flash chip just stops responding at all. It's not like the signal gets distorted in any way (I looked at the analog signal with a scope). As I am still in an exploratory phase, the flash chip is connected to CN10 of the Nucleo board with 100mm wires. I noticed exactly the same behavior with clock frequencies from 100 kHz to 16 MHz.

I found this post but don't believe that my issue is one with reflections and transmission line impedance. It get the feeling that the input impedance of the MCU is just really low (but I'm expecting very high input impedance) when reading data, resulting in excessive current draw from the flash chip when it has to pull three or four bits high, causing a chip reset. If I had an issue with reflections, I would expect distorted waveforms, getting worse at higher frequencies. I would expect the same behavior regardless of the value I'm reading and I would not expect the flash chip to stop sending data entirely.

Anyway, I added a 100 Ohm series resistor in each of the data lines between the MCU and the flash chip and everything suddenly worked like a charm. I have tested it successfully up to a clock frequency of 16 MHz.

My question is: can anyone confirm or refute my reasoning? If the MCU input impedance is indeed very low, is this a bug in the chip? If my issue is not related to reflections/ringing/EMI, etc, what value should I use for the resistors?

1 REPLY 1

Have you got oscilloscope traces of the signals on the wires?

 


@tzijnge wrote:

the flash chip is connected to CN10 of the Nucleo board with 100mm wires. 


Doesn't sound great - please post some good, clear photos...