How can I read Status Register-1 on the S70FS01GS flash memory if my application doesn’t know the number of latency dummy cycles in advance?
The S70FS01GS flash memory does not support the Read Status Register-1 (RDSR1: 05h) command because it is a dual-die device where every die set of registers must be addressed separately. The Read Any Register (RDAR: 65h) command must be used instead to read device registers. However, this command uses a predefined number of latency dummy cycles as shown in Figure 1:
Figure1. Read Any Register Read Command Sequence
The number of latency dummy cycles is defined in the Configuration Register-2 as shown in Table 1:
Table 1: Configuration Register 2 Non-volatile (CR2NV)
The number of latency dummy cycles for the RDAR command varies based on the used SPI frequency as detailed in Table 2:
Table 2: Latency Code (Cycles) Versus Frequency
Read Command Maximum Frequency (MHz)
Mode Cycles = 0
- Use the WRAR command to write a well-known register value to CR2V (based on the used SPI frequency) and then use these latencies for any subsequent read operations that require dummy cycles.
- Restore the volatile version of the CR2 to the value it had before it was overwritten: Read CR2NV value and program it back to CR2V.
Additionally, S70FS01GS has two separate set of registers for its two FS512S dies. Each set of registers needs to be accessed and configured separately. Address A26 = 0 selects the lower address FS512S die and A26 = 1 selects the higher address FS512S die.
In other words, to access the registers on the lower FS512S die, use the address range: [0x00000000 … 0x00800040] and for the upper FS512S die registers, use the address range: [0x04000000 … 0x04800040].