FLEXSPI PortA1 and FLEXSPI PortB1 configuration and access

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

FLEXSPI PortA1 and FLEXSPI PortB1 configuration and access

1,278 Views
microcris
Contributor III

Hello!

I have a project where I'm trying to get 8MB flash (IS25LP064A) on FLEXSPI PortA1 (for system boot) and another 8MB flash (IS25LP064A) on FLEXSPI PortB1 (for user data).

After some search and read in this forum, it seams it is possible to do that, but... is there some kind of manual or guide?

I'm trying to use the Flash Component (nor_flash_component) example, but I'm not able to pass the "Nor_Flash_Init()"

Any help is very very welcome


MCU: MIMXRT106SDVL6B

Relevant Flags:
XIP_EXTERNAL_FLASH=1

XIP_BOOT_HEADER_ENABLE=0

Programming method:
Secure Provisioning 

 

 

 

 

Labels (1)
Tags (1)
0 Kudos
5 Replies

1,248 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,
Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
Before answering your question, I was wondering if you can introduce your testing environment, such as a schematic of your custom board, debug tool, IDE, etc.
Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

1,244 Views
microcris
Contributor III

Hello and thank you for your reply

My debug capabilities are very reduced, almost none. I opted by do not add the JTAG header and, instead, rely on the serial console. I can buy the i.MX RT1060 Evaluation Kit (MIMXRT1060-EVKB) but, for this particular case, I think it will not help much.

I'm using the MCUXpresso SDK for GCC with Eclipse IDE and I'm using the the MCUXpresso Secure Provisioning to program the system flash (I can put in here the entire Eclipse project, if needed). I also have the MCUXpresso IDE installed in order to run the SDK examples.

The MCU schematic is attached in this post.

 

Thank you for your attention.

0 Kudos

1,219 Views
jeremyzhou
NXP Employee
NXP Employee
Hi, Thanks for your reply. After going through the schematic, I find the label of the MCU is MIMXRT1064, however, you said you use the RT 1060, so suppose you use the RT1060, the U3 shouldn't use the GPIO_SD_B1_05 as the FLEXSPI_B_SS0_B, as for QSPI Flash as XIP function, to achieve the highest performance it is recommended to left FLEXSPI_A_DQS(GPIO_SD_B1_05)pin floating and config sample clock source as 01-loopback from DQS pad mode to achieve max 133MHz Flexspi_clk. Besides, it is also recommended to pull up QSPI flash pin1(CE) and pin7(hold) to make sure QSPI Flash boot-up stability. In my opinion, I think you'd better remove the U3 at firstly, then verify the RT1060 can boot-up from the U4 successfully, then populate the U3 for data implementation testing. Have a great day, TIC ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "Mark Correct" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. -------------------------------------------------------------------------------
0 Kudos

1,212 Views
microcris
Contributor III

Hello!

Going point by point:
I find the label of the MCU is MIMXRT1064, however, you said you use the RT 1060

Correct. The MCU page was imported from another project where I'm using the RT1064. 
In this prototype I'm using the RT1062 ... (long battle because it is very hard to find stock and I must keep things going on) ... and in the production board I will use the RT106S.

U3 shouldn't use the GPIO_SD_B1_05 as the FLEXSPI_B_SS0_B, as for QSPI Flash as XIP function, to achieve the highest performance it is recommended to left FLEXSPI_A_DQS(GPIO_SD_B1_05)pin floating

Noted.
In the next PCB iteration, GPIO_SD_B1_05 will be left floating and FLEXSPI_B_SS0_B will go to GPIO_SD_B0_04.

Config sample clock source as 01-loopback from DQS pad mode to achieve max 133MHz Flexspi_clk.

I'm not using the XIP boot header. In this case, I think the System flash configuration is made by the MCUXpresso Secure Provisioning.

Besides, it is also recommended to pull up QSPI flash pin1(CE) and pin7(hold) to make sure QSPI Flash boot-up stability.

Noted. Will be done in the next PCB iteration.

I think you'd better remove the U3 at firstly, then verify the RT1060 can boot-up from the U4 successfully, then populate the U3 for data implementation testing

The system flash (U4) is working great.
I'm working upon FREERTOS, I have a lot of stuff implemented, the board boots fine and what is implemented is working (fine, so far).
Now is the time to handle the U3 (User flash) in order to save configurations and (when I have some spare time) to save some log information.

I have checked the "flash_component_nor" and it seems to be what I need.
But as soon as I start to mess with the FLEXSPI/Pin_configuration, everything dies.

I'm assuming that I have to create functions to reconfigure flash pins, (re)configure  FLEXSPI PortA1 and FLEXSPI PortB1, load those functions to RAM and execute them.

 

0 Kudos

1,196 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,
Thanks for your reply.
Yes, you need to adjust the code prior to accessing the U3, further, I'd like to suggest you use the flexspi_nor_polling_transfer demo (~\boards\evkbmimxrt1060\driver_examples\flexspi\nor\polling_transfer) instead of flash_component_nor demo for testing.
Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
------------------------------------------------------------------------------o

0 Kudos