AnsweredAssumed Answered

Please tell me about iMX7 Quad SPI

Question asked by masaru kamimura on Jun 29, 2020
Latest reply on Jul 12, 2020 by masaru kamimura

Hello  iMX engineer.

I am trying to read/write serial flash using QuadSPI of iMX7.

The serial flash is ISSI IS25WP512M.

Please tell me about QSPI of iMX7.

 

1. When reading the status register, the value of QuadSPI1_LUTKEY changes. Please tell me why it will change.

For example:

QuadSPI1_LUT12 = 1c010405

QuadSPI1_LUTKEY = 5AF05AF0
QuadSPI1_LCKCR = 00000001

QuadSPI1_MCR = 000F4C0C
QuadSPI1_SPTRCLR = 00000101

QuadSPI1_IPCR <- 03000001  WRITE
:
QuadSPI1_LUTKEY  5AF05AF0 changes to 5AF05AF3. 

Why? Is something missing?

 

2.When writing a value with Page Program, 0 is written in the first 16 bytes.
   Please tell me why 0 is written.

For example:

Serial flash address   60000000 -  ALL "FF" DATA

 

QuadSPI1_LUT16 = 08180402
QuadSPI1_LUT17 = 00002004

QuadSPI1_MCR = 000F4C0C
QuadSPI1_SPTRCLR = 00000101

 

QuadSPI1_TBDR <- 32 Times write

128Byte Write
00010203
04050607
08090a0b
0c0d0e0f

 

00000011
00220033
00440055
00660077

00880099
00aa00bb
00cc00dd
00ee00ff

 

00000000
00001111
00002222
00003333

 

00004444

00005555
00006666
00007777

 

00008888

00009999
0000aaaa
0000bbbb

 

0000cccc

0000dddd
0000eeee
0000ffff

 

00111111

00555555
00aaaaaa
00ffffff

 

QuadSPI1_IPCR <- 04000028 (40Byte write)

 

Serial flash address  60000000 - 6000000F  ALL 00 DATA

Serial flash address  60000010 - 6000001F

DATA

00000011
00220033
00440055
00660077

 

Why is 0 written to 16 bytes first?

Please give me some advice.

 

Outcomes