已解决! 转到解答。
Hi,
I need to perform a read from serial flash. I did a single byte write. After that, I am trying to do a read from the same address location. Opcode+3 address bytes are send first.
Buff[0] = 0x03; /* opcode for read */
Buff[1] = 0x00; /* first address byte*/
Buff[2] = 0x01; /* middle address byte*/
Buff[3] = 0x00; /* last address byte*/
write (fp, Buff, 4);
Then a call to
read (fp, &Buf, 1);
is made.
When I check with oscilloscope, I find that after the opcode +3 address bytes have been send the chip select becomes high and then becomes low for the clock cycle for read. The read command is returning 0x00 always. As per actual requirement, the chip select should continuously remain low until the read is over.
What could be the problem here? The transfer mode is QSPI_TRANSFER_MODE_3. The CSIVbit in QWR is zero. During the write operation, the CS was remaining low throughout.
Thanks,
Chen