AnsweredAssumed Answered

Strange behaviour with get feature command of NAND SPI Flash MX35LF1GE4AB

Question asked by Lutz Volkmann on Feb 10, 2020
Latest reply on Feb 20, 2020 by Hui_Ma

Hi,

 

on our custom board we are using the NOR flash MX25L6433F connected to port A1 for the application and the NAND flash MX35LF1GE4AB connected to port B1 for a read only database.
All SPI commands for the NOR flash are working as expected.
The same applies for the NAND flash except the get/set feature command.
If  I load and start the application via debugging interface and without configured NOR flash,
the  get/set feature command execution last about half a second.
If I flash the application via  the MCU BootUtility, the get/set feature command execution last the same and in addition I have to lock the global interrupt for that command, otherwise the processor reboots immidiatelly after triggering the FlexSPI command.

 

We are using the following chip configuration and LUT sequence:
  const flexspi_device_config_t deviceMX35LF1GE4ABconfig = {
      .flexspiRootClk = 104000000,
      .flashSize = 0x20000,
      .CSIntervalUnit = kFLEXSPI_CsIntervalUnit1SckCycle,
      .CSInterval = 2,
      .CSHoldTime = 5,
      .CSSetupTime = 4,
      .dataValidTime = 0,
      .columnspace = 0,
      .enableWordAddress = 0,
      .AWRSeqIndex = 0,
      .AWRSeqNumber = 0,
      .ARDSeqIndex = 0,
      .ARDSeqNumber = 0,
      .AHBWriteWaitUnit = kFLEXSPI_AhbWriteWaitUnit2AhbCycle,
      .AHBWriteWaitInterval = 0,
  };
    /* 9 - Get Feature */
    /*[NAND_CMD_LUT_SEQ_IDX_GET_FEATURE*4]     = */
    FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR,       kFLEXSPI_1PAD, 0x0F,kFLEXSPI_Command_RADDR_SDR, kFLEXSPI_1PAD, 8),
    /*[NAND_CMD_LUT_SEQ_IDX_GET_FEATURE*4+1]   = */
    FLEXSPI_LUT_SEQ(kFLEXSPI_Command_READ_SDR,  kFLEXSPI_1PAD, 0x01,kFLEXSPI_Command_STOP,      kFLEXSPI_1PAD, 0),
    0,0,

 

    /* 10 - Set Feature */
    /*[NAND_CMD_LUT_SEQ_IDX_SET_FEATURE*4]     = */
    FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR,       kFLEXSPI_1PAD, 0x1F,kFLEXSPI_Command_RADDR_SDR, kFLEXSPI_1PAD, 8),
    /*[NAND_CMD_LUT_SEQ_IDX_SET_FEATURE*4+1]   = */
    FLEXSPI_LUT_SEQ(kFLEXSPI_Command_WRITE_SDR, kFLEXSPI_1PAD, 0x01,kFLEXSPI_Command_STOP,      kFLEXSPI_1PAD, 0),
    0,0,

Has someone any idea what we are doing wrong ?
BR
Lutz

 




Outcomes