Hi
I am now debugging my customized board with RT1051 and IS25LP064A QSPI flash as the external flash.
When I tried to flash the code into the flash with the GUI Flash Tool in McuXpresso, the following error showed up:
The hardware connection is the same as the IMXRT1050-EVKB and I used the MIMXRT1050_SFDP_QSPI.cfx suggested from other posts.
What does the error code rc 136 (0x88) stand for?
Thanks
Solved! Go to Solution.
Hi jayyehtw
Please check the MCUXPresso IDE:
C:\nxp\MCUXpressoIDE_11.2.1_4129_prc1\ide\Examples\Flashdrivers\NXP\iMXRT\iMXRT1050_QSPI
Modify the related code, change the frequency below 60Mhz. Then build it, you will find the new .cfx in that project:
iMXRT1050_QSPI\iMXRT1050_QSPI\builds
Then your app project use your new .cfx, please try it.
Wish it helps you!
Best Regards,
Kerry
Hi,
I've done the necessary adjustments including the switch position, resistors, and power setting.
With the example you mentioned, I found that no matter what data I tried to read, the return value were all 0x44.
For example, the flexspi_nor_get_vendor_id should return the ISSI vendor ID 0x9D, but I got 0x44 instead.
I also tried to read the status with command 05h, it also return 0x44.
But from the picture I posted in the original question, there's a message "Flash variant 'JEDEC_SFDP_Device' detected (8MB = 128*64K at 0x60000000)".
So I think somehow the device should be working, or otherwise there should not be a flash with correct size being detected.
Hi jayyehtw,
Thanks for your updated information.
Now, because it is your own designed board, could you please use the MIMXRT1050-EVKB board, and modify the on board QSPI chip to your IS25LP064A QSPI? Please also note to modify the power from 1V8 to 3V3, then use the same software and the IDE, whether you can finish the QSPI operation or not? I just want to make sure your software test side has no issues, then we can do more checking in your own board.
Please also check your own board FlexSPI_DQS pin, do you leave it as floating?
Best Regards,
Kerry
Hi
Thanks for the prompt response.
I've done changing the on board flash to IS25LP064A and it woks.
On my customized board, the GPIO_SD_B1_05 pin is used as I2C_SDA instead of DQS pin.
After changing the flexspi_nor_flash_init function as the following:
Now on my customized board, the flexspi_nor_polling_transfer example could be run successfully and the read, write, erase operations seemed to be working.
Is it the suggested way to set the rxSampleClock?
How could I modify the same setting to the cfx file and the xip?
Hi jayyehtw,
Thanks for your feedback.
Now, your root issue is caused by the DQS pin GPIO_SD_B1_05 which is used as other function, normally, this DQS pin, we suggest the customer to leave it as float, as it will influence the flexspi communication speed.
Please check the RT1050 DATASHEET:
Now, two options for you:
1. leave DQS pin as float
2. Change your flexSPI frequency low to 60Mhz. and DQS loop internal mode.
In your app, XIP modify it like this:
don't need to modify the CFX now.
You can try it on your side.
Any updated information, please kindly let me know.
Best Regards,
Kerry
Hi,
Without modifying the cfx file, I could not program the code into the flash.
I still got the rc 136 error when I tried to use the GUI flash tool.
Hi jayyehtw,
Do you modify the XIP code which I mentioned you in the helloworld project?
Modify the DQS as internal loopback, and the frequency as 50Mhz, just smaller than 60Mhz.
Best Regards,
Kery
Hi
Yes. I did the requested modifications.
Hi jayyehtw
Please check the MCUXPresso IDE:
C:\nxp\MCUXpressoIDE_11.2.1_4129_prc1\ide\Examples\Flashdrivers\NXP\iMXRT\iMXRT1050_QSPI
Modify the related code, change the frequency below 60Mhz. Then build it, you will find the new .cfx in that project:
iMXRT1050_QSPI\iMXRT1050_QSPI\builds
Then your app project use your new .cfx, please try it.
Wish it helps you!
Best Regards,
Kerry
Hi
Thanks a lot for your help.
After debugging with the flash driver source code, now I have a customized cfx file that could flash my board.
Hi jayyehtw,
To the MIMXRT1050-EVKB, do you consider the on board is using the hyperflash in default?
If you are using the QSPI flash, you need to refer to :
OPTION2: USE QSPI FLASH(Mount R153~R158, DNP R356,R361~R366
Do you also use this connection?
BTW, the MIMXRT1050-EVKB is using IS25WP064AJBLE, it is the 1V8 Voltage, your chip is 3V3 voltage, do you also consider this point?
If all the above points you have considered, please refer to this code and run it at first in the SDK:
C:\KerryPC\IMXRTCode\Practice\RT1050\SDK_2.8.2_EVKB-IMXRT1050\boards\evkbimxrt1050\driver_examples\flexspi\nor
Please run it in the internal RAM, and check whether you can finish the external flash erase and write or not?
Please try it at first.
If you still have question, just kindly let me know.
Best Regards,
Kerry
Hi,
I've done the necessary adjustments including the switch position, resistors, and power setting.
With the example you mentioned, I found that no matter what data I tried to read, the return value were all 0x44.
For example, the flexspi_nor_get_vendor_id should return the ISSI vendor ID 0x9D, but I got 0x44 instead.
I also tried to read the status with command 05h, it also return 0x44.
But from the picture I posted in the original question, there's a message "Flash variant 'JEDEC_SFDP_Device' detected (8MB = 128*64K at 0x60000000)".
So I think somehow the device should be working, or otherwise there should not be a flash with correct size being detected.