Port external Nand Flash to S32K344 using QSPI interface

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

Port external Nand Flash to S32K344 using QSPI interface

816 Views
Li_Chen
Contributor III

I have reviewed existed example Fls_Example_S32K344 from S32DS IDE, which could communicate with external NOR flash MX25L6433FM2I-08G 64Mb. I'm trying to port Nand flash from ISSI 37-38SML-SMW01G8A-02G8A-04G8A-08G8A.pdf (issi.com), its read/write protocol are split address between block/page address and byte address. For example for Read operation from Host side:

  1. Send Page read command 0x13
  2. Send 24bit block+page address with dummy bits inside
  3. Read Status to check
  4. If status ok, send read cache command 0xEB
  5. Send 16bit byte address with dummy bits inside
  6. Send 4 dummy cycles
  7. read data back, and the data length must be less or equal to the page byte size.

From the ISSI data sheet, each block has 64 pages, and each page has 2048 bytes data and extra 128 bytes for ECC.

I'm just wondering if it's possible to use Fls module LUT operation to split address like example above.

0 Kudos
Reply
3 Replies

759 Views
Nhi_Nguyen
NXP Employee
NXP Employee

Hi Chen,

I read document of external memory that attached by you.

As far as I know, We need to configure 2 addresses, one for page address, one for data address in cache. So, I think we need to have 2 sequences, at least. But, in driver, a sequence to read:

step 1. write address where we want to read data from external memory.

step 2: trigger sequence that set LUTs corresponding to steps as your example.

We have only one time to set address that want to read data from if use

Fls_Write()

Fls_MainFunction()

Have this parameter:

Nhi_Nguyen_0-1683714539570.png

I think can use this parameter to send Page Read sequence. then call Fls_Write(), Fls_MainFunction() to read data. But this parameter just initialized at init, you can't change page that you want to read.

Anyway, It is difficult to use this external memory, I think.

I'll contact to developer of Fls to get more idea and get back to you later.

Best regards,

Nhi

 

0 Kudos
Reply

751 Views
Li_Chen
Contributor III

Hi  Nhi_Nguyen,

 

Thank you!

I ended up using Qspi APIs Qspi_Ip_RunCommand and Qspi_Ip_RunReadCommand to implement the read function. I'm using S32 DS 3.4 and RTD SW version 2.0.0, build version S32K3_RTD_2_0_0_D2203_ASR_REL_4_4_REV_0000_20220331

0 Kudos
Reply

743 Views
Nhi_Nguyen
NXP Employee
NXP Employee

Hi Chen,

Yeah, If you can use IPL functions, this problem can be solved.

I'm glad to hear that.

Best regards,

Nhi

 

0 Kudos
Reply