I'm studying S25FS512S. I want to change the register CR3V [3] to 1. How can I operate it? Thank you.

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
didi_4175006
Level 1
Level 1
5 replies posted 5 sign-ins First reply posted

Hi  

I learned S25FS512S on I.MXrt1060 platform, i.mxrt1060 used Flexspi controller to operate external nor flash, but I don't know if the value of S25FS512S register changed when using FlexSpi controller to program S25FS512S; I want to know how to send commands to change the value of S25FS512S register;

I would appreciate it if you could provide examples.

0 Likes
1 Solution
Apurva_S
Moderator
Moderator
Moderator
100 likes received 500 replies posted 250 solutions authored

Hi Ding,

Thank you for contacting Cypress Semiconductor.

  • We are not aware about the functioning of I.MXrt1060 platform, hence we cannot comment on FlexSPI controller.
  • I would like to inform you that CR3V[3] bit is a Volatile read only bit. Which means this bit shall not be written to a value different than the value of CR3NV[3]. The value of CR3V[3] may only be changed by writing CR3NV[3].
  • I would also like to inform you that CR3NV[3] bit is an OTP (one time programmable) bit with default value 0 (4 KB Erase enabled), which means it can be programmed to 1 (4 KB Erase disabled) only once in the entire lifetime of the chip. It cannot be programmed to 0 again.

WRAR (71h) command is used to program CR3NV register. The steps that should be followed for writing to CR3NV[3] bit is as follows -

  1. Make CS LOW.
  2. Send WREN(06h) command.
  3. Make CS HIGH.
  4. Make CS LOW.
  5. Send WRAR(71h) command.
  6. Send the address of CR3NV register (0x00000004)
  7. Send the data to be programmed to CR3NV.
  8. Make CS HIGH.
  9. Make CS LOW.
  10. Read status register to check value of WIP bit.
  11. Make CS HIGH.
  12. Keep polling the WIP bit till the value becomes zero, which means successful completion of write operation.

I am attaching our low level driver for serial flash devices with this response. You can use it in your code for easy implementation of the above code.

View solution in original post

1 Reply
Apurva_S
Moderator
Moderator
Moderator
100 likes received 500 replies posted 250 solutions authored

Hi Ding,

Thank you for contacting Cypress Semiconductor.

  • We are not aware about the functioning of I.MXrt1060 platform, hence we cannot comment on FlexSPI controller.
  • I would like to inform you that CR3V[3] bit is a Volatile read only bit. Which means this bit shall not be written to a value different than the value of CR3NV[3]. The value of CR3V[3] may only be changed by writing CR3NV[3].
  • I would also like to inform you that CR3NV[3] bit is an OTP (one time programmable) bit with default value 0 (4 KB Erase enabled), which means it can be programmed to 1 (4 KB Erase disabled) only once in the entire lifetime of the chip. It cannot be programmed to 0 again.

WRAR (71h) command is used to program CR3NV register. The steps that should be followed for writing to CR3NV[3] bit is as follows -

  1. Make CS LOW.
  2. Send WREN(06h) command.
  3. Make CS HIGH.
  4. Make CS LOW.
  5. Send WRAR(71h) command.
  6. Send the address of CR3NV register (0x00000004)
  7. Send the data to be programmed to CR3NV.
  8. Make CS HIGH.
  9. Make CS LOW.
  10. Read status register to check value of WIP bit.
  11. Make CS HIGH.
  12. Keep polling the WIP bit till the value becomes zero, which means successful completion of write operation.

I am attaching our low level driver for serial flash devices with this response. You can use it in your code for easy implementation of the above code.