Problems with Programming Configuration Register-1 (CR1) on S25FL-S FLASH Memory - KBA231885
Question: When using the Write Register command (WRR 01h), programming the Configuration Register-1 from 0x00 to 0x20 is successful, but when programming from 0x20 back to 0x00, programming is unsuccessful and the Status Register-1, Bit-6 (SR1) is set to “1” (programming error occurred). What may be causing the problem?
Answer: The issue is that when programming, the value 0x20 to Configuration Register-1, Bit 5 (CR1) is One-Time Programmable (OTP). Therefore, any attempt to change CR1 back to “0” will fail and the Status Register-1, Bit 6 (P_ERR in SR1) will be set to “1” indicating the occurrence of a programming error. The same error is expected for Configuration Register-1, Bits 4, 3, and 2 (CR1[4:2]). When set to “1”, the Programming Error bit can be reset to “0” with the Clear Status Register (CLSR 30h) command.