OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6126|回复: 7

F407使用FSMC控制LCD的地址建立时间和数据保持时间的时序理解问题

[复制链接]

7

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-6-20
在线时间
45 小时
发表于 2023-2-3 12:52:35 | 显示全部楼层 |阅读模式
3金钱
本帖最后由 ningzhen 于 2023-2-3 12:52 编辑

学到探索者F407的TFTLCD实验库函数版本,看开发指南和4.3寸屏的NT35510的手册,对于程序中设置的数据保持时间DATAST地址建立时间ADDSET有一些疑惑。
查询论坛相关帖子后,目前是按照这个帖子进行一些理解,但还是有若干不懂问题,望得到原子哥和各位先进们的指点:
http://47.111.11.73/forum.php?mod=viewthread&tid=45395&highlight=%B5%D8%D6%B7%BD%A8%C1%A2%CA%B1%BC%E4

以读时序为例(开发指南库函数P264,如图1),结合NT35510手册P361的时序图和表,如图2表1,有如下理解:

经过地址建立时间,地址稳定后,单片机才拉低OE线。
问题1:
图2和表1中,35510手册上的地址建立时间tAST是很小的,写时序是0ns,读时序是10ns,但是程序中设定地址建立时间ADDSET为90ns。
我的理解是:因为手册上有对OE线的高电平持续时间tRDHFM的最小要求,所以除了tAST之外,还应考虑到tRDHFM,因此程序中设置的ADDSET应该是按照大于等于手册中的tRDHFM设定的?
问题2:
读时序下的OE线、写时序下的WE线的电平变化都是高-低-高。图1和图2的读时序,高电平持续时间tRDHFM在低电平之前;图2中的写时序是低电平在高电平持续时间tWRH之前,我是否可以这样理解:
高电平持续时间在低电平之前还是之后根本无所谓,保证两次读取的低电平之间有足够长的高电平持续时间即可?
问题3:
F407的库函数的例程中:
  1. readWriteTiming.FSMC_AddressSetupTime = 0XF;         //地址建立时间(ADDSET)为16个HCLK 1/168M=6ns*16=96ns.
复制代码
我记得原子哥说过F407的FSMC性能还行,那程序中设定的ADDSET是不是应该按照35510手册里面的tRDHFM设置为至少250ns?不然高电平持续时间会不够吧
可是例程中设置为90ns,实际使用也没发现有问题,这是为什么呢?
问题4:
如图1,OE的下降沿提示RAM开始准备指定地址的数据,从OE的下降沿开始,CPU经过tRDLFM时间准时拉高OE线读取数据。因此RAM必须在tRATFM时间内(手册给出最大值,早于OE上升沿)在数据线上准备好数据,并将数据至少保持一段时间,以保证OE的上升沿能读到数据。因此OE线的下降沿到上升沿这段时间(tRDLFM)就是数据保持时间DATAST。根据图2,SRAM会在OE的读数据上升沿过后再将数据保持tODH(至少5ns)时间,不过这个与程序的设计就无关了。
我这样理解正确吗?如有谬误还请不吝指点。


2 35510手册时序.png
表1 35510手册时序表.png
1 开发指南模式A读时序.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
发表于 2023-2-3 14:25:49 | 显示全部楼层
你问题3 你应该看错了数据  FSMC_AddressSetupTime 应该指的是TAST的参数规格最低10ns读的时候 F429我实测33ns是可以的 看英文也是一样的意思不懂你为啥看上面那个 上面那个应该指的是读数据的保持时间
回复

使用道具 举报

7

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-6-20
在线时间
45 小时
 楼主| 发表于 2023-2-3 14:43:54 | 显示全部楼层
远命 发表于 2023-2-3 14:25
你问题3 你应该看错了数据  FSMC_AddressSetupTime 应该指的是TAST的参数规格最低10ns读的时候 F429我实测3 ...

问题3和问题1、2其实说的是一块儿的事:
我认为tAST这10ns指的是地址会在10ns以内稳定下来,这个时间很好满足。
但是时序图上还有OE线的高电平保持时间tRDHFM啊,我认为这个也需要满足,所以高电平应该持续250ns,而不仅仅是手册上的tAST的10ns或是例程中的90ns。
但偏偏实际上设置90ns运行起来也还行,您实测33ns也没得问题......想不通啊

不知道我这样表达明白我的意思没?您再帮看看呗
回复

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
发表于 2023-2-3 15:41:48 | 显示全部楼层
ningzhen 发表于 2023-2-3 14:43
问题3和问题1、2其实说的是一块儿的事:
我认为tAST这10ns指的是地址会在10ns以内稳定下来,这个时间很 ...

我知道你的意思了 这么跟你说吧 正点的意思是 在写状态下高电平持续时间几乎等于高电平地址建立时间,因为高电平保持是在读状态下起效,所以在读状态下会慢得多 所以他采用的是异步模式 把读写分开来写了  FMC_DataSetupTime才是保持时间 他设置的应该是300多ns @正点原子 我这样解释应该没问题吧
回复

使用道具 举报

7

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-6-20
在线时间
45 小时
 楼主| 发表于 2023-2-3 16:30:59 | 显示全部楼层
远命 发表于 2023-2-3 15:41
我知道你的意思了 这么跟你说吧 正点的意思是 在写状态下高电平持续时间几乎等于高电平地址建立时间,因 ...

我也是这个意思。我对数据保持时间,也就是低电平持续时间没有疑义的,readWriteTiming.FSMC_DataSetupTime例程里设置的360ns足够了。
----------------------------------------------------------
我有疑问的是地址建立时间,也就是高电平持续时间,我看35510的手册要求250ns以上,例程里设置的90ns,我认为设置少了。
但是设置为90ns实际跑起来又是没问题的,我是这个想不通。
回复

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
发表于 2023-2-3 17:24:36 | 显示全部楼层
ningzhen 发表于 2023-2-3 16:30
我也是这个意思。我对数据保持时间,也就是低电平持续时间没有疑义的,readWriteTiming.FSMC_DataSetupTi ...

ILI9341 不是NT35510
回复

使用道具 举报

7

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-6-20
在线时间
45 小时
 楼主| 发表于 2023-2-5 16:43:04 | 显示全部楼层
@正点原子
原子哥有时间麻烦帮忙看看
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2023-2-7 00:59:05 | 显示全部楼层
ningzhen 发表于 2023-2-3 14:43
问题3和问题1、2其实说的是一块儿的事:
我认为tAST这10ns指的是地址会在10ns以内稳定下来,这个时间很 ...

芯片有一定兼容性,或者你可以理解为支持超频使用。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 20:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表