Hello,
For the last 2 weeks, I've struggled to add a second QSPI chip to a RT1060EVK dev board. I have posted numerous forum questions and I don't know what the issue is. The app note AN12564, while useful, doesn't actually show you how to modify the code to make the second chip work and the reference manual has a lot of detail, but doesn't explain what needs to happen in code.
On the dev board, we have hooked up a second QSPI device to FlexSPI A. The device is identical to the one already on the board and we set FLEXSPI_A_SS1_B to [H13] GPIO_AD_B1_08.
In software, we are trying to modify the "evkmimxrt1060_flexspi_nor_polling_transfer" project. In the project settings, we added the second flash as "Flash_00" and assigned it to 0x60800000 and a size of 0x800000. We have updated the pin_mux files and added the ".sflashA2Size" command to "xip\evkmimxrt1060_flexspi_nor_config.c". In app.h, the FLASH_SIZE was increased from 0x2000 to 0x4000 and in the project, we modified the flex_spi_flash_init() command to include "FLEXSPI_SetFlashConfig(base, &deviceconfig, kFLEXSPI_PortA2)"
Looking at the memory viewer, I can see that the memory location 0x60800000 seems to contain memory configuration data, but starting at location 0x60802000 I can see the actual A1 program data. Additionally, the A2 chip select signal is not toggling when I try reading the A2 memory locations which tells me that I have a setup issue.
Numerous Questions:
- Given the example, does anyone see any issues with the demo?
- What needs to happen to specifically assign SS1 to be used by the internal memory controller?
- If we have the same exact chip, do I need to update the LUT? (It looks like there is only a single LUT for all chips so we shouldn't need to update it.)
- We plan to use the second memory chip as a XIP memory location that gets called by a bootloader. Looking at the reference manual, app notes and other forum posts, it looks like I do not want to set the chips up as parallel. Is that correct?
- Looking in the reference manual, and other posts, it seems like I should be able to have both devices on the same FlexSPI bus. However, one suggestion would be to move the second chip to FlexSPI B. Is that necessary? (It would be a big problem since the final design has provisioned these pins to other signals.)
- One thought was that I might need to update "MIMXRT1060_SFDP_QSPI.cfx", but I cannot locate the source code and working with the RT1050 example did not prove helpful. Do I need to continue pursuing the source code so I can modify it or is that not going to help?