1
\$\begingroup\$

Why would an SPI flash chip stop working after a short random period of time but work fine with a 1M resistor from the power pin to ground?

I'm debugging a problem with an SPI flash chip (W25Q80) driven by Atmega 328P at 765 KHz SPI clock stopping to work after random small intervals of time (200ms-5s) or not working right from the power up. This failure is seen as the chip stopping to respond on the MISO line (the line is floating) where it was responding to the same command just before that (the same power up cycle).

I've tried ceramic through hole capacitors of 100nF, 100pF and 15pF from power pin to ground and this doesn't help.

Then I connected a scope to the power pin of the flash chip and it started working.

Connecting a resistor of 1M from the power pin to ground also makes it work.

What could be an explanation here? Am I using wrong bypass capacitors with wrong ESR and the resistor acts as a small but sufficient bypass cap with high enough ESR?

This is reproducible with 2 chips so this makes it less likely that this is because of a faulty chip.

The datasheet for the flash chip doesn't give any recommendations about bypassing.

\$\endgroup\$
2
  • 4
    \$\begingroup\$ How about your show us your schematic? \$\endgroup\$
    – Matt Young
    Jan 1, 2017 at 18:13
  • 3
    \$\begingroup\$ What voltage is your ATmega running at? Which specific (full suffix) version of the flash chip do you have? What is the rated voltage range for that, and what is being supplied? \$\endgroup\$ Jan 1, 2017 at 18:54

2 Answers 2

3
\$\begingroup\$

Some things to think about and investigate:

  1. Are you 100% sure that the SPI Flash chip VCC has a good solid connection to the power supply?
  2. Do you have the possibility that the part is actually being phantom powered up through the input protection diodes of the input control signals?
  3. Check to make sure that the SPI Flash chip has a good solid GND connection in common with the microcontroller and the power supply.
  4. Carefully check your design to see if you possibly have a potential silicon charge injection / latch-up condition caused by biased input pins to the FLASH part when the VCC of the chip is not yet applied.
  5. Check during active communications between the MCU and the SPI Flash Chip if there are significant negative overshoots on the signal edges that go more than about 0.5V below the GND level as measured at the chip. Significant negative spikes can also disrupt the chip operation.
\$\endgroup\$
5
  • \$\begingroup\$ Thanks, for the answer! Check first 3 all appear to be fine, not sure what the 4th means yet, will look it up and check. \$\endgroup\$
    – axk
    Jan 1, 2017 at 18:56
  • \$\begingroup\$ The item #4 refers to input pins that may have signals present on them above about 1V when the VCC/VDD pin is at a voltage of way less than that or at GND. Under these conditions the ABS MAX ratings for input signal range is violated and can result in improper things happening inside the chip resulting in circuit latch-up happening as the VDD does come on. This can lead to improper operation, no functionality or even destructive action to the chip structure itself. \$\endgroup\$ Jan 1, 2017 at 21:45
  • \$\begingroup\$ I have added a 5th item that you will also want to check. \$\endgroup\$ Jan 1, 2017 at 21:45
  • \$\begingroup\$ I don't know what your power supply is, but can it be that it needs some continuous load (i.e. at least 1M) to work properly? Some power supplies perform very poorly if the load is too light. \$\endgroup\$ Jan 2, 2017 at 7:10
  • \$\begingroup\$ @GuillermoPrandi - I doubt that the 3.3uA load afforded by a 1M resistor at 3.3V will be particularly noticed by the power supply. If it is a switcher even those typically use feedback resistors (which is also a load on the supply) that are in the 10's of K ohm size range. \$\endgroup\$ Jan 2, 2017 at 18:06
2
\$\begingroup\$

This was a dumb mistake!

The flash chip has a HOLD active low pin next to the power pin. I didn't connect the HOLD pin to VCC and it was floating causing this erratic behavior. When I was soldering to the VCC pin it must have solder bridged to the HOLD pin and it started working, then I re-soldered and it stopped working again...

\$\endgroup\$
1
  • \$\begingroup\$ Now see that if you had provided a schematic that would have jumped out immediately to anyone familiar with deployment if serial SPI Flash parts. \$\endgroup\$ Jan 2, 2017 at 18:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.