Hi,
I try to program a NAND page with FlexSPI with iMXRT1024.
I write the cache register in several parts.
When I write data to cache register FlexSPI doesn't sends column address to the flash. It always send 0 as address and the cache content always changed from 0 location.
My LUT entry is:
/* Page Program Load */
lookup_table[4 * NAND_CMD_LUT_SEQ_IDX_PROGRAMLOAD] =
FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x84, kFLEXSPI_Command_CADDR_SDR, kFLEXSPI_1PAD, 0x10),
lookup_table[4 * NAND_CMD_LUT_SEQ_IDX_PROGRAMLOAD + 1] =
FLEXSPI_LUT_SEQ(kFLEXSPI_Command_WRITE_SDR, kFLEXSPI_1PAD, 0x40, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0),
The code that executes transfer:
flash_transfer.port = PSP_QSPI_FLEXSPI_PORT;
flash_transfer.SeqNumber = 1;
flash_transfer.deviceAddress = address; // I expect to send this address after command and 4 dummy bits.
flash_transfer.cmdType = kFLEXSPI_Write;
flash_transfer.seqIndex = NAND_CMD_LUT_SEQ_IDX_PROGRAMLOAD;
flash_transfer.data = (uint32_t p_data;
flash_transfer.dataSize = data_size;
status = FLEXSPI_TransferBlocking( FLEXSPI, &flash_transfer );
The same happens when I try to read data from cache register starting from a non-zero page location.
What is the correct LUT entry to do this?
Thanks in adcance!
BR.
Zoltan