4 months agoPosted by MortenSchmidt 30 points 3 replies
We are using AT25SL128A and have a problem with data corruption. We use 8MHz plain SPI mode and have also tried 4MHz clock. We operate in SPI mode 3, verified with logic analyzer the SPI format is valid.
One in about 10-50 writes fail our readback test. Subsequent reads produce consistent output, the problem is isolated to the write operations.
The corruption also always results in one or two bits that should be 1 being corrupted to 0. Never the other way around.
The corruption always occurs in the 2nd last byte in a block.
Most of the time only one bit is corrupted but we have sometimes seen two, and when this happens they are two adjacent bits.
We have verified signal integrity. MISO from AT25SL128A has rise and fall times just about 2.2ns without ringing and CLK+MOSI have rise/fall times just about 7ns without ringing. Traces are quite short. Further the fact we have seen two 1's in a row corrupted to two 0's steers suspicion away from a signal integrity problem.
We have also experimented with improved power supply decoupling and even external 1.8V from an independent 1.8V supply, none of this has made any difference.
What could possibly be the problem here?