Not able to read device id using device id command in S25FS256S

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

cross mob
Anonymous
Not applicable

Hi,

   

I was successfully executing the device-id command(0x9F) but after executing the WRAR command on some registers, I am not able to read even basic device-id command. In this case Executing the device-id command is  returning 0xFFFFFFFF.

   

Reading the SR1 and CR1 registers before executing the device-id command is giving 0x0 and after the device-id command both the registers are giving 0xFF.

   

My command sequence are-

   

device-id read = 0x1C04049F and then STOP command

   

WRAR command is = 0x08180471

   

                                - 0x00002001.

   

 

   

Kindly help me out, device-id was working initially but not working now.

   

Thank You,

   

Om

0 Likes
1 Solution
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hello Om,

   

As per my understanding, 0x00800000 is the base address of flash memory and you are trying to write to locations 0, 2 and 3 in the flash memory. Please correct me if I am wrong.

   

Are you able to read the contents from these locations immediately after the program operation? Also, please make sure that the program operation was successfully finished by checking the WIP bit in status register. If it is set the device will be busy and you won't be able to perform any other operations. You have to poll this bit and make sure that the device is not busy (WIP = 0) before the next operation. Please note that you have to make CS# pin HIGH after executing each operation.

   

Thanks and Regards,

   

Sudheesh

View solution in original post

0 Likes
3 Replies
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hello Om,

   

Could you please let us know which are the regisiters you modified using WRAR command? Also, please let us know the corresponding register values.

   

Thanks and Regards,

   

Sudheesh

0 Likes
Anonymous
Not applicable

Hi Sudheesh, Thanks for your quick reply.

   

I wrote following registers- 

   

Addr 0x00800003 , data 0x0

   

Addr 0x00800000, data 0x0

   

Addr 0x00800002, data 0x20202020

   

The register value after the my board reset i am getting as 0x0 for all the registers. But, after this if i include id read command (ID read value that i am getting is 0xffffffff) and again read all the above registers, i am getting values as 0xFF

   

ThankYou,

   

Om

0 Likes
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hello Om,

   

As per my understanding, 0x00800000 is the base address of flash memory and you are trying to write to locations 0, 2 and 3 in the flash memory. Please correct me if I am wrong.

   

Are you able to read the contents from these locations immediately after the program operation? Also, please make sure that the program operation was successfully finished by checking the WIP bit in status register. If it is set the device will be busy and you won't be able to perform any other operations. You have to poll this bit and make sure that the device is not busy (WIP = 0) before the next operation. Please note that you have to make CS# pin HIGH after executing each operation.

   

Thanks and Regards,

   

Sudheesh

0 Likes