这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【换取手持数字示波器】浅谈FSMC控制LCD过程中的注意事项

共4条 1/1 1 跳转至

【换取手持数字示波器】浅谈FSMC控制LCD过程中的注意事项

高工
2024-03-07 09:53:41   被打赏 40 分(兑奖)     打赏

        在调试使用ST7789V主控的TFTLCD时,由于240*240的分辨率较高,为提高刷屏速度,决定使用STM32F103VCT6的FSMC进行控制(注意一般只有100pin以上单片机才会带FSMC功能),通过CubeMX生成初始化程序。

        可以把 TFTLCD 当成 SRAM 设备用:首先我们了解下外部 SRAM的连接, 外部 SRAM 的控制一般有: 

            地址线 (如 A0~A18)

            数据线 (如 D0~D15)

            写信号 (WE)

            读信号 (OE)

            选信号 (CS) ;

        TFTLCD的信号包括:RS、D0~D15、WR、RD、CS、RST 和 BL 等,其中真正在操作 LCD 的时候需要用到的就只有:RS、D0~D15、WR、 RD 和 CS。

        其操作时序和 SRAM的控制完全类似,唯一不同就是 TFTLCD 有 RS 信号,但是没有地址信号。TFTLCD 通过 RS 信号来决定传送的数据是数据还是命令,本质上可以理解为一个地址信号。

        我们将RS连接到FSMC的A16上,开始调试,通过示波器观察发现A16对应的引脚并没有输出,通过排查排除硬件电路问题,为什么没有输出呢?

        通过资料的查找,发现了一个差异:对于8/16数据所对应的地址偏移是不一样的。    

        HARRD[25:0]包含外部存储器地址,由于HARRD为字节地址,而存储器按字寻址,所以根据存储器数据的宽度的不同,实际向存储器发送的地址也将有所不同,如下图:

1.png

        当 Bank1 接的是 16 位宽度存储器的时候:HADDR[25:1]-->FSMC[24:0]。

        当 Bank1 接的是  8 位宽度存储器的时候:HADDR[25:0]-->FSMC[25:0]。

        我配置的数据位宽是8位,对应HADDR[25:0]-->FSMC[25:0],故A16对应为Bank1的0x60010000。

        接下来就可以使用初始化功能快速进行显示控制了,提示速度明显。





关键词: FSMC     LCD控制    

专家
2024-03-10 00:48:57     打赏
2楼

谢谢分享


专家
2024-03-10 08:03:43     打赏
3楼

谢谢分享


院士
2024-03-10 10:44:50     打赏
4楼

谢谢楼主的分享~!


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]