Port external Nand Flash to S32K344 using QSPI interface

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Port external Nand Flash to S32K344 using QSPI interface

815件の閲覧回数
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 件の賞賛
返信
3 返答(返信)

758件の閲覧回数
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 件の賞賛
返信

750件の閲覧回数
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 件の賞賛
返信

742件の閲覧回数
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 件の賞賛
返信