2020-05-15 03:43 PM
I've been trying for some time now to get my F767ZI writing to an ILI9341 8080 LCD.
The equations detailed in the AN2790 datasheet:
(1) DATASET*tHCLK = tWP
(2) ((ADDSET+1) + (DATASET+1))*tHCLK >= MAX(tWC)
(3) DATASET >= ((tAVQV + tsu(Data_NE) + tv(A_NE))/tHCLK) - ADDSET - 4
I am not super confident I am applying all these equations properly, though.
My system is running at 168MHz (tHCLK = 5.95ns).
Here's the data for 8080 timings for the ILI9341 (found on page 226 of the ILI9341 datasheet):
tWC >= 66ns
tWRL (write low pulse width) = tWRH (write high pulse width) >= 15ns
tRAT (read access time) <= 40ns
And here's some data for the values in (3) that I found from here
(https://www.st.com/resource/en/datasheet/stm32f767zi.pdf:(
tv(A_NE) = 0
tsu(Data_NE) >= tHCLK - 1
Assumptions:
tWP = tWRL = tWRH
tAVQV = tRAT = 40ns (??)
I can't find tAVQV anywhere. It's defined as "address valid to output valid time", but I'm not sure where to deduce that. I'm using "read access time" right now as a fill-in value?
Equation 1:
DATASET = tWP / tHCLK = (15ns / 5.95ns) ~= 2
Equation 2:
ADDSET + DATASET + 2 >= tWC/tHCLK
ADDSET + 4 >= (66/5.95)
ADDSET >= 7
Equation 3:
ADDSET + 6 >= (tAVQV + tsu(Data_NE) + tv(A_NE))/tHCLK
ADDSET + 6 >= 44.95/5.95
ADDSET >= 1
So all in all I find that DATASET = 2, and ADDSET >= 7.
Did I screw up anywhere?