cancel
Showing results for 
Search instead for 
Did you mean: 

Facing issue while creating external flash loader

Nagarajan
Associate III

I am using NUCLEO-H563ZI evaluation board and i want to create external flash loader for IS25LP128 QSPI flash memory. I used external loader files from GIT HUB and .stldr file in STCUBE programmer external loader folder location. when i try to read from 0x90000000 location, i am getting read failure error. I used the below path to create external loader for IS25LP128 QSPI flash memory,

stm32-external-loader/Loader_Files/other devices at contrib · STMicroelectronics/stm32-external-loader · GitHub

Could you please help me to solve the below issue?

 

Nagarajan_2-1711548543593.png

 

 

52 REPLIES 52

I'm working on this same chip right now for the U5 series using QSPI.  I'd like to get it working correctly for just SPI first, since you have the special QE register bit that has to be properly set at initialization.

Are you using your own initialization code from STM32CubeIDE?  I'm wondering how people are able to get this working, since I'm to the point where my PC application side is working, but I have two projects, and one works with read, sometimes, and the other doesn't work with anything at all.

I took a different approach though, I took the U575 example and ported each function one at a time to my proper chip, figuring I'd have much better luck that way.

 

The different phases can be 1, 2, 4-bits, etc per configuration.

Most parts require some configuration into 4-pin mode, and then optionally another mode selection to use 4-bit command mode.

Enumerate pins, and MCU / board details, and I'll add to my external loader data base.

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

Thanks.  This part is interesting, as it is the same command for 1-bit and 4-bit modes.  There is a 4-bit more QE configuration register which is set in the status register.

In SPI mode i tested the same code it is working perfectly. I am able to write multi page and multi sectors, so there is no issue with flash memory. I feel like there is a problem with configuring XSPI in STM32H5 chip only. Is it possible to get XSPI configuration code for STM32H5 chip interface with IS25LP128 flash memory from ST?

Please find the pin details below,

PE11 - CE

PF10 - SCK

PF8 - SI/IO0

PF9 - SO/IO1

PE2 - WP/IO2 

PF6 - HOLD/IO3

With the IS25LP128, are you setting the quad enable for the QSPI?

When configuring it, you need to know that the QSPI is enabled (QE bit) and set the address, instruction, and data width appropriately.  Depending on the instruction, you might have a 1-bit instruction mode, or a 4-bit instruction mode.

The QE allows for 4-pin operation so WP# / HOLD# are available, and 4-bit commands are allowed. Otherwise only the single/dual commands are available. I think they are all different commands. Which ones where you thinking of?

https://www.issi.com/WW/pdf/IS25LP128.pdf

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

IS25LP128 flash memory gives two ways to go in Quad mode. One is Quad bit enable another one is Quad entry instruction (0x35) enable. Both are independent operation. if you enable Quad bit, no need to give quad entry instruction (0x35). if you give Quad entry instruction (0x35), no need to enable quad bit in status register. They are providing multiple options to read data from flash memory. for example, same 0xEB fast read instruction,

if QE bit enabled, instruction line is 1 bit and address & data lines are 4 bits operation.

if Quad entry instruction (0x35) given, all instruction, address and data lines are 4 bits operation.

 

for your information, i am working with by giving Quad entry instruction (0x35). So, in my case all instruction, address and data lines are 4 bits operation. Yes, i am using WP and HOLD pins as I02 and IO3 respectively.

Nagarajan
Associate III

It seems like I am facing connecting wires issue. Is there any specific high frequency shielded type connecting wires available for SPI pins?

Nagarajan
Associate III

After putting external pull up and pull down resistor in HOLD and WP pins accordingly, i am able to pass main test but still i am facing data read failure with external loader file. I feel like there is a problem with Loader_src.c file. Anybody having STM32H5 series working loader files?

I am able to pass the main test 100 sectors read and write. I am able to create external loader file (.stldr). When i select the 0x90000000 Address, first time i am getting data read failure but after that every time when i press the read button in cube programmer, i am getting data read success but all data are zeros. May i know what could be the reason?