初级会员

- 积分
- 139
- 金钱
- 139
- 注册时间
- 2019-9-17
- 在线时间
- 61 小时
|
3金钱
本帖最后由 ukoikk 于 2019-11-6 22:14 编辑
学习用的LCD是4.3寸的TFTLCD,采用NT35510驱动,数据手册中,读写时序如下
在例程中,对FSMC的模式选择,都是用的模式A。
A-R
在模式A中,A[25:0]使用其中1个作为数据、指令选择,NBL不用,NEX片选,NOE用于RD,NWE用于WR,D[15:0]数据线。
其他模式,如模式C:
在C模式中,不用NADV,其他的时序就和模式A相同。
或者模式D:
在D模式中,不用NADV,其他的时序就和模式A相同。
问题1:是否可以用模式C和模式D取代模式A?毕竟不考虑NADV/NBL的话,那么其他的时序都是符合NT35510的8080并口时序。
问题2:如果不行,那么是不是说,即使时序相同,不同的模式也不能互相替代使用,而是有专门的运用地方?可以详细解释吗?
视频例程中,主要是以2.8寸的TFTLCD讲解,驱动是ILI9341。9341的时序图如下,
对照FSMC模式A的时序,在模式A中,是先ADDSET后DATAST,其中ADDSET周期内,NOE(用于RDX)是高电平,在DATAST周期内,NOE(用于RDX)是低电平。
而9341时序中,RD的时序是先低电平,后高电平。
问题3:模式A的NOE(用于RDX)电平,是先高后低,9341的RD是先低后高,所以模式A是怎么应用于9341的?
问题4:在视频中讲到,ADDSET的建立时间,“对 ILI9341 来说,这里相当于 RD 高电平持续时间,为 90ns”,图中有提到trdhfm和trdh都是90ns,在图中的时序图都是在右边。所以这里的问题,也可以归类到问题3中,高低电平为什么与模式A颠倒还能用?是哪个时序图错了?还是我理解错了?
我用的是4.3寸TFTLCD模块,驱动IC是NT35510,时序图如下:
问题4中提到“对 ILI9341 来说,这里相当于 RD 高电平持续时间,为 90ns”,所以对于NT35510的ADDSET的时间,也是RD的高电平时间,也就是trdh/trdhfm,图框中的ttrdh的是90ns,trdhfm的是250ns。
下面是例程中关于时间参数的设置,按视频中讲解,2.8寸的TFTLCD时序中(驱动是ILI9341),trdh/trdhfm=90ns,所以可以6*15=90ns,所以 readWriteTiming.FSMC_AddressSetupTime = 0XF。
readWriteTiming.FSMC_AddressSetupTime = 0XF; //地址建立时间(ADDSET)为16个HCLK 1/168M=6ns*16=96ns
readWriteTiming.FSMC_AddressHoldTime = 0x00; //地址保持时间(ADDHLD)模式A未用到
readWriteTiming.FSMC_DataSetupTime = 60; //数据保存时间为60个HCLK =6*60=360ns
readWriteTiming.FSMC_BusTurnAroundDuration = 0x00;
readWriteTiming.FSMC_CLKDivision = 0x00;
readWriteTiming.FSMC_DataLatency = 0x00;
readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A; //模式A
问题5:在驱动IC35510中,trdh=90ns,trdhfm=250ns,1/168M=6ns,而250ns/6ns=42,远远超过了15,而 readWriteTiming.FSMC_AddressSetupTime 这最大存15,而这个例程也能正常点亮屏幕。为什么例程的建立时间(15)远小于时序要求(42)也能点亮屏幕?例程中也未发现第二个地方对FSMC_BTRx赋值的地方了。
求教!
|
|