cancel
Showing results for 
Search instead for 
Did you mean: 

Problem of program using qspi mt25qL128 with octospi STM32H735VGT

PUN CHEE HUEY
Associate II

Hi All,

I have a custom board with STM32735VGT(this mcu is with 1=quad SPI but using the register octpspi). I am using the micro mt25qL128 NOR flash.

I am using the 1-1-1(1 bit instruction, 1 but data) for read and configure the registers, erase

I am using the 1-4-4(1 bit instruction, 4 bits address and data) for read and program.

All read registers, configure registers and erase is working fine.

Using 1-4-4 to read the flash is working fine too.

But when using program flash, the status is ok. I can see WIP and ready bit is correctly changed. But the flag status register read back is 144=0x90. Bit7 means ready. But bit4=1 shows it has failure and protect error or crc error.

Please help.

 

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
KDJEM.1
ST Employee

Hello @PUN CHEE HUEY and welcome to the community :),

Can you share with me your code so I can help you.

Which mode are you using?

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

12 REPLIES 12
KDJEM.1
ST Employee

Hello @PUN CHEE HUEY and welcome to the community :),

Can you share with me your code so I can help you.

Which mode are you using?

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Please edit post/title to reflect STM32H735VGT

For Micron parts show actual value of Status Register, I've encountered a lot of cases where people accidentally set the BPx (Block Protect) bits, perhaps as a side-effect of Macronix or Winbond targeted code trying to set "QE" bits to enable Quad Pins (not Quad Mode).

If the upper or lower, or other blocks, are protected the Erase / Write operations can fail immediately. On multi-die parts you should also be using the alternate status register as the WIP doesn't work in the manner you need/expect.

Also, mask the address bits, the devices are ZERO based, they don't understand the 0x90000000 address the STM32 decodes at. The MT25QL128 will also not recognize 32-bit (4-byte) addressing modes/commands.

Show CODE.. present enough detail for others to understand and replicate

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Attached 3 files is the code. The SDK is STM32Cube_FW_H7_V1.11.0. I am using extended SPI mode. mt25ql128_ReadData() and mt25ql128_ProgramData() is using 1-4-4. All other functions is using 1-1-1.

Hi,

Please help.

I attached the pins config file.

PUN CHEE HUEY
Associate II

How to edit the post title ?

There's a (V) icon in the upper right corner of pane, and then a drop-down menu

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Bounding condition here is broken
  addr = 0x00FF0000; // 2nd sector; end_addr = 0x00010000;
Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

I have fixed it. I have second board, after erase, program, read verfiy for 50 times. Then the problem occur. I only use the last sector of the flash.