Read and Write the memory section of Flash(S25HL512T)

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

cross mob
vijayks
Level 1
Level 1
10 sign-ins 5 replies posted 5 questions asked

Hi,

       I was facing the problem in writing and reading the data into the Flash memory of S25HL512T in QSPI mode. I have the Flash to operate in QSPI mode by writing the configuration registers. The following steps are done for write and read the flash memory.

  • Writing the memory
    • WRENV_0_0
    • Write command(0x12)
    • Address
    • Input data
  • Reading the memory
    • Read command(0xEC)
    • Address

    I was following the above steps, but I was not able to Write/read the memory. Please help to resolve.

0 Likes
8 Replies
BushraH_91
Moderator
Moderator
Moderator
750 replies posted 50 likes received 250 solutions authored

Hello,

Thank you for contacting Cypress Technical Support, an Infineon Technologies company. Please provide see below

  1. Write Enable command for writing memory array should be WRENB_0_0 (0x06). Not WRENV_0_0.
  2. Is the address for write command 4-byte address? Write Command (0x12) requires 4-byte address.
  3. After sending write command, should check Status Register 1 for the program operation completeness, before proceeding with memory array reading operation.
  4. Is the address for read command 4-byte address? Read Command (0xEC) requires 4-byte address.
  5. What is the clock frequency the flash running at?
  6. If everything above are correct and it still fails, please read Status Register 1, Configuration Register 1 and Configuration Register 2 when failure happens. Then send us the register values for analysis.

Thank you

Regards,

Bushra

0 Likes
vijayks
Level 1
Level 1
10 sign-ins 5 replies posted 5 questions asked

Hello,

     I am still facing error in writing and reading the Memory of Flash. I am using 4 byte address & trying to Write & Read the memory in QSPI Mode. The below are the configuration register values

  • Conf. Register_1 = 0xC0
  • Conf.Register_2 = 0x18

 The below are the following steps involved in Writing & reading the Flash 

  • 0xD8 - Erase command
  • 2 sec delay
  • 0x06 - Write enable
  • 0x02 - Program page command followed by single address
  • 5 sec delay
  • 0x05 - cmd for reading status register 1 to ensure device is busy or not
  • 0xEC - command for Reading  the memory of flash followed by address
     I have followed above steps, but I was not to read the correct value what I have written. Iam trying to write 0xAB data at 0x00000000 & reading back data at same location. Kindly help to resolve the above issue
0 Likes
BushraH_91
Moderator
Moderator
Moderator
750 replies posted 50 likes received 250 solutions authored

Hello,

I will discuss your issue with PE. Please bear with me.

Thank you

Regards,

Bushra

0 Likes
BushraH_91
Moderator
Moderator
Moderator
750 replies posted 50 likes received 250 solutions authored

Hello,

The CR1 and CR2 values do not seem correct. In the  read CR1 and CR2 values, CR1 bit7 and CR2 bit4 are 1. While in datasheet, these two bits are reserved bits and must be in default value 0.

BushraH_91_0-1637390916785.jpeg

 

BushraH_91_1-1637390916791.jpeg

 

 

I think you didn’t read CR1 and CR2 correctly, or the flash is not functional at all. Can you please check on below detail?

  1. When you say “in QSPI mode”, do you mean 1-4-4 (command sent in SI and address and data are on four IOs), or 4-4-4 (all command, address and data are on 4 IOs)?
  2. What is the clock frequency the flash running at?
  3. Can you share with us the schematic of flash connection? If cannot share on forum, is it ok to send us through email?
  4. Please try read device ID (0x9F) at both 1-1-1 mode and 4-4-4 mode, send us the read values.

Thank you

Regards,

Bushra

0 Likes

Hello,

Is your issue resolved?

Thank you

Regards.

Bushra

0 Likes
vijayks
Level 1
Level 1
10 sign-ins 5 replies posted 5 questions asked

Hello,

    CR2 = 0xC0 & CF3 = 0x08, I am using QPI with 4 byte addressing and I am able to read the Manufacturer Id by sending 0x9F & getting 0x34 in 4-4-4 mode.

The below are the following steps involved in Writing & reading the Flash 

  • 0xD8 - Erase command
  • 2 sec delay
  • 0x06 - Write enable
  • 0x02 - Program page command followed by single address
  • 5 sec delay
  • 0x05 - cmd for reading status register 1 to ensure device is busy or not
  • 0xEC - command for Reading  the memory of flash followed by address
     I have followed above steps, but I was not to read the correct value what I have written. Iam trying to write 0xAB data at 0x00000000 & reading back data at same location. Kindly help to resolve the above issue
0 Likes
BushraH_91
Moderator
Moderator
Moderator
750 replies posted 50 likes received 250 solutions authored

Hello.

Your command sequence and command code are correct. Here are something else to check:

  1. Are all the operations running at 4-4-4 mode (i.e., all command, address and data are on four IO pins)?
  2. What is the clock frequency for flash? CR2=0 sets Read Latency code to 0. With read latency code = 0, read flash command 0xEC can only work up to 43MHz.
  3. In the test flow, after step 2 (2 sec delay), please read Status Register 1 and let us know the SR1 value.
  4. Step 4, what does “Program page command followed by single address” mean?
  5. Step 6, 0x05 cmd – what is SR1 value?
  6. Are you able to hook up a Logic Analyzer to capture the trace of the read operation and output data?

Thank you

Regards,

Bushra

0 Likes

Hello,

Is your issue resolved? Did you check all the suggestion we recommended to do?

Thank you

Regards,

Bushra

0 Likes