Hi @kerryzhou,
We are using a custom board with iMXRT1062 MCU and external QSPI flash IS25LP512M.
When running our application I got HardFault error in the SystemInit. So, I tried running the iled_blinky example and the result was same. The changes we have done from the previous board is replacing the QSPI flash from IS25WP064A to IS25LP512M.
Some other notable changes on the hardware side are on the Boot configuration switch and the DQS pin as can be seen in the attached file. I saw in some other post in the forum that the DQS pin need to be left floating but, in our case, it is assigned to some other functionality. Also, some of the Boot cfg pins are connected to LCD and not tied to GND as in the Eval board. Will these affect the flash functionality.
What are the changes I should consider on software side when I change the flash from IS25WP064A to IS25LP512M.
NOTE: I tried changing the flexSPI frequency to 60Mhz and DQS loop to internal mode and didn't face the issue of Hardfault error.
Thanks for your help in advance.
Plz see the below comments.
Step1. Be sure "DQS loop to internal mode", then use "flexspi polling" SDK to check the hardware is workable or not
Step2. Plz try to use RAM boot instead of external Flash base same blink sample code to check if it is an external flash problem.
Best regards,
Sam
Hi,
When I change the DQS loop to internal mode and set the sample frequency to 60MHz then it is working.
So, I would like to check if this is issue is because of we have assigned the DQS pin to some other functionality instead of leaving it floating. Also, as in the attached image in the previous post we have not connected all BOOT CFG pins to GND. Will these have any impact. What should be the default state of Boot cfg pins for external QSPI flash of 64MB.
Also, I would like to know what changes should be done on software for accessing the 64MB flash as it uses both 3 byte and 4 bytes addressing?
Thanks.
For Flash with more than 16MB of space, there is always the problem of 3/4-byte address access. JESD216 specifies standard commands for 3/4-byte address access. For 3-byte address Fast Read, the command is FRD (0x0B); and for 4-byte address Fast Read, the command is 4FRD (0x0C). For a 32MB Flash, if you only need to access the lower 16MB space, you can use FRD; if you need to access the upper 16MB space, you need to use 4FRD. Please use "flexspi polling" SDK to check the hardware is workable or not.
B.R.
Sam