完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
2 硬件结构
TMS320LF2407A是TI公司推出的一款高性能定点DSP控制器。液晶显示模块采用的驱动控制器为KS0108B及其兼容显示控制驱动器。图1为液晶显示模块与DSP的硬件电路,系统主要由DSP控制器、隔离缓冲电路和液晶显示模块3部分组成。隔离缓冲电路由两片74LS245组成。调节滑动电阻R1可以调节液晶显示对比度。 |
|
|
|
3 相关问题及解决方案
3.1 电压匹配 DSP的数据、地址、控制总线通过接口信号线连接至液晶显示模块。DSP的I/O端口工作电压为3. 3 V,由于DSP有时将数据写入控制器,有时又从控制器读数据,因此数据总线是双向的。如果直接把两者连接,数据的流向可能会对3.3 V系统造成损害,所以本设计中DSP和液晶模块通过两片74LS245进行连接,74LS245具有隔离作用。74LS245(1)连接DSP对液晶输出模块的控制信号.信号为单向,引脚DIR始终置为"1",使得控制信号由741S245的A口流向B口。而74LS245(2)连接DSP与液晶模块的数据线,数据为双向,因此引脚DIR则由DSP的IS的反来控制数据的流向。由于DSP输出的信号电压均为3.3 V,而液晶模块的驱动电压为5 V,所以需要在74LS245和液晶模块之间加入上拉电阻,这样才能与LCD控制器准备接收的数据相匹配。 3.2 抗干扰 LCD显示屏常置于仪表的面板上,通过一条扁平电缆连接至主控板。测控仪表内部的电磁干扰对LCD的工作有一定的影响[3,4],如果该仪表工作于工业生产过程,恶劣的环境对于液晶屏的工作更为不利,这就需要在设计中采用各种抗干扰措施。本系统采取的主要抗干扰措施如下: (1)设计LCD模块的接口时,在VSS和VDD之间接一只0.1μF的去耦电容,接10μF或20μF电容滤波,提高电源输入的稳定性。 (2)LCD模块的工作电流很小,为几毫安,但其背光部分所需要的电流远大于其工作电流,因此在设计中需将工作电源和背光电源分别布线。 (3)为避免其他不明干扰源对液晶显示的影响,采用软件掩饰显示不正常的问题,即定期对液晶屏复位(通过RES的反引脚),保证液晶显示屏长期工作的稳定性。如果不允许液晶屏定期复位,可以检测LCD内部工作寄存器和显示RAM,一旦发现LCD不正常,可以对LCD复位。 3.3 PCB布线 所有电路设计的最后一步就是印制电路板(PCB)的布线,如果这部分设计不当,PCB会发射出过量的电磁干扰(EMI),使整个电路工作不正常。在电能质量监控装置中,DSP输出的信号频率高达几兆赫兹甚至几十兆赫兹,因此任何一条PCB布线都可能成为天线。布线的长和宽都会影响线路电阻和电感量,进而影响系统的响应速度。同时高频信号传输线路过长会引起信号失真,导致显示不正常。因此在布线时,液晶模式和DSP之间所有传输信号的布线都应尽可能的短且宽,这样可以减少其分布参数和相互间的电磁干扰,保证高频信号高质量传输,从而保证电路正常工作。 3.4响应速度 在传统液晶显示控制电路的软件编程中,由于液晶显示模块的上电复位过程迟于控制器的复位时间,所以在程序上电执行液晶模块初始化程序之前需要先运行一段延时程序,而且一般每次对液晶模块控制器的控制端口、数据端口进行读、写操作时,必须调用延时子程序,否则将无法正常显示。笔者在进行初步开发时,遵循了上述开发经验,增加了一定的延时程序,这时便出现了响应速度的问题。虽然DSP的运行速度相当快,但是每段延时程序累积起来,再加上循环程序的运行需要,整个系统响应速度将会很慢,甚至会被误认为显示不成功,这样对于电能质量实时监控系统而言是不允许的,因此在设计过程中不断地缩短延时时间,最后不需要添加任何延时程序也能进行正常的显示,所以在对液晶模块编程时要根据实际情况设计延时程序,以保证系统的响应速度。 3.5时序匹配 在显示系统中,由于DSP控制器的运算速度非常快,机器周期很短(25 ns,工作频率40 MHz)。在这种情况下,液晶的控制器难与其同步(0CM12864模块读写数据的时序如图2所示,时序参数如表1所示)。本系统采用的解决方案是在DSP数据接口与LCD数据接口之间使用三态总线收发器74LS245进行数据缓冲。同时在软件设计方面根据两者时序关系,在程序中加入DSP等待状态周期(根据工作频率的不同改变程序中的参数来满足时序要求),延长DSP输出信号的持续时间。 |
|
|
|
4 字符显示软件设计
字符显示函数DISP的形参ARRAY、PAGE、COL及TYPE分别代表定义的字模数组、页面物理地址、列物理地址及显示类型(汉字TYPE=16,数字字母TYPE=8)。程序中PAGE的范围为0~7。使用物理地址,该值与第0页指令代码0xOB8相"或"后。就可得到期望页面的指令代码,从而提高了编程效率。同样的,COL范围0~127也使用了物理地址,在每写一列数据前,软件都会判断当列所在的物理位置,以调用左屏或右屏的驱动子程序,与第0列指令代码0x40相"或"后即可得到设置列地址的指令代码。至于写反显字符只需将DATA取反(即~DATA)写入相应I/O口即可。字符显示流程如图3所示,下面给出具体程序: |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1900个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36318 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4383 浏览 0 评论
6034 浏览 1 评论
6753 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4201 浏览 0 评论
610浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
608浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
596浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
687浏览 2评论
784浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 21:51 , Processed in 1.093357 second(s), Total 85, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号