Skip to main content



3 months ago

Posted by grai2907 10 points 1 reply


I'm using AT25XE321D serial flash IC in one of the project I'm working on. I've gone through the datasheet of this and was trying to program it using SPI mode. But I found that even at the first step while trying to read the JEDEC ID, it reads the id as 0 (5 Bytes). I proceeded and tried to read status registers and there also I got 0 value. Thinking that it is the default values I tried to do the "write enable" by writing to status register 1 (set bit 1). Even after this when I tried to read the status register 1 value, I get 0 itself.  

Is there something I'm missing? Is there any document which can guide me through the correct way of doing this?

3 months ago

gordonmacnee 220 points

Hello grai2907,

Reading the JEDEC ID and status reg is just as it is for all other xx25yyy Flash memory parts so something else is going wrong. 

Have you tried multiple devices? Which uController are you using? Are you using single SPI bus (not QSPI) Can you share the relevant part of the schematic? Can you provide some 'scope captures of the signal and power lines? What SPI clock speed are you using, what voltage are you running the system at? Are there any other devices on the SPI Bus or is there anything else that could be holding the MISO low? Does the MISO line ever go high?

If you would prefer to discuss this out with the forum, please send the info to