老旧设备液晶屏替换升级(1):泰克示波器TDS210更换TFT彩色屏幕

分享一篇老旧液晶屏替换升级的文章,如有侵权请联系我删除。

本文将介绍如何为泰克示波器TDS210的单色液晶屏LM32P07更换为当前流行的TFT彩色屏幕,甚至在以后准备将屏幕图像转换为HDMI输出,彻底对以往的老旧屏幕说拜拜。

一、缘起

1.与TDS210的相遇

2019年,那时本人还是电子信息工程专业的大一学生,一直梦想有一台属于自己的示波器,但因为还未工作经费不那么充足,于是想要在 “海鲜市场” 淘一台二手示波器。经过网上查询对比,发现二手示波器还是泰克的相对靠谱一些,于是乎就在 “海鲜市场” 买到了一台TDS210,60MHz的频率以及1GS/s的采样频率,虽然存储深度很低,折腾乐趣大于使用,但是对于我来说还勉强足够了。

老旧设备液晶屏替换升级,1:泰克示波器TDS210更换TFT彩色屏幕

为什么不自己搞一块现在流行的TFT全视角彩屏接上去呢,甚至如果可以将信号转换为HDMI信号,以接到通用显示器上不更爽歪歪。于是乎,说干就干。先放一下当前已经实现的显示效果。实测,延迟几乎没有,与原屏幕显示的刷新效果完全乎一致,使用上完全没问题,长期运行也无异常情况出现。当前仅仅在4.3寸的480x272屏幕上显示的,接下来还会将其显示到5寸800x480的屏幕上并等比放大,然后实现背景替换,颜色更改,甚至设置一些常用主题等功能。

当然还有很重要的价格问题,如果只是换用5寸 800x480 IPS全视角彩屏的话,屏幕加上自己设计的配套PCB板,全部价格会在100元以内。一个全新5寸 800x480 IPS全视角彩屏也就50元左右,使用的处理器也就15元,再加上其他电阻电容啥的最小系统组成器件,稳稳100元以内。

2.改装预想步骤

(1).可以显示到常用的IPS全视角彩屏上(已基本完成,花费了两天时间)

(2).可以将显示信号输出到HDMI上,以显示到通用显示器上(待实现,可实现机率90%,打算使用国产便宜的FPGA,已购买)

(3).将TDS210的控制主板(控制板很小,巴掌大,大赞)拿出来,自己重新画一个按键板,自制新的外壳,将TDS210的体积缩小至少一倍,近似便携。(待实现,可实现机率70%)

(4).改装为可以使用电池供电,或者外部独立供电的,更小的便携示波器。(待实现,可实现机率80%)

【注:实现机率为我的时间、是否继续下去的心以及其他影响,哈哈】

3.意义

说了这么多,有人会说,你费这么多功夫,折腾这么一个实用性没有那么好的东西,有什么意义呢?所以,我觉得我认为的意义也有必要列一下:

(1).首要意义就是换一款我看起来舒服的显示方案,以便我自己使用起来更舒心。

(2).在这过程中会收获很多实践经验。

(3).我在很多地方看到过其他电子爱好者有过IPS屏显示的需求。这个改装可以为其他电子爱好者提供一种其他的选择,这也是很有意义的一件事情。

二、我的DIY实现过程

1.查询屏幕通讯协议

首先拆开示波器,发现了屏幕的型号为LM32P07,然后搜索LM32P07的datasheet(注意,不要使用baidu引擎,否则搜不到,推荐必应。并且要直接搜索 “LM32P07 datasheet”,才能找到。),找到手册并打开,手动将手册重要部分翻译为中文。

(1)首先查看屏幕的引脚。

老旧设备液晶屏替换升级,1:泰克示波器TDS210更换TFT彩色屏幕

屏幕使用4线并口进行数据的传输,一个时钟信号、一个锁存信号以及一个扫描信号。具体每个信号是什么意思,可以在看协议时详细分析。

(2).屏幕显示像素点分布

因为屏幕是个单色屏幕,可以近似认为是单色led点阵(便于理解,以下也说是led点),所以从图上可以看出,分布非常简单,由左向右,由上向下的顺序排序,以此组成一个平面二维坐标点。每行有320个led点,共有240行。1.1就表示第一行第一列的点,这样标记后有利于后面协议的分析。

老旧设备液晶屏替换升级,1:泰克示波器TDS210更换TFT彩色屏幕

(3).查看协议,分析协议,将协议搞明白。

值得庆贺的是,这种屏幕的协议超级简单,很容易就能够看明白。根据下图可以看出,CP1来一个高脉冲,表示将要传输1行的数据,经过一点点间隔后,CP2信号开始传输。在CP2信号的下降沿处依次取D3、D2、D1、D0的数据,放置到此行的第1、2、3、4点上,以此类推。每个CP2下降沿传输4个数据,这样经过80个CP2下降沿,即可传输完4x80=320个点,即1行的显示数据。1表示点亮此处的led,0表示熄灭此处的led点。

这样就知道一行的开始以及每个数据的传输,但是如何确定当前数据是哪一行呢?所有有了S信号,当传输完第1行数据后(注意是第1行),S信号会发送1个脉冲,告诉屏幕现在已经将第1行的数据保存进缓冲区了,可以进行刷新了,然后屏幕就开始从第1行数据开始显示,一次刷新1行的数据。依次刷新完一帧的数据。然后再传输第1行的数据,再来1个S信号,屏幕再次开始刷新,循环以往。这样就确定了屏幕数据的开始和每1行的开始。

老旧设备液晶屏替换升级,1:泰克示波器TDS210更换TFT彩色屏幕

(4).配合处理器的通俗理解

因为屏幕的驱动是纯数字芯片构成的,所以tds210发送给屏幕的1行数据,可以暂时锁存到屏幕的缓存器上,并且只能暂存1行的数据。然后S信号高电平来后,屏幕会不断的将缓存器上的数据,从第1行开始,发送给具体的led点进行显示,直至240行刷新完,再次等待S信号。所以CP1引脚叫做输入数据锁存信号,S叫做扫描启动信号。这也是为什么S信号会在第1行数据发送完毕后产生。

如果使用处理器对协议进行交互的话,就可以保存所有的数据,而不是只能锁存1行的数据,这时这些引脚就又可以有一个通俗的理解:

老旧设备液晶屏替换升级,1:泰克示波器TDS210更换TFT彩色屏幕

这样一来,控制信号就明朗了起来,开局等待S信号下降沿表明开始新的一帧图像,等待CP1信号下降沿表示开始1行,根据CP2下降沿获取4个数据,循环以往就可稳定刷新数据。需要注意的是,S表示从第2行开始刷新,直至刷新到下一帧的第1行,这样也是完整的320x240数据。

2.根据协议选取合适的处理器以及屏幕

使用逻辑分析仪,将S、CPP1、CPP2以及D3-D0全部接上,捕捉屏幕的控制接口协议波形。优先查看的应该是频率最快的CPP2信号,可以看到一个CPP2信号的脉宽343.75ns,周期687.5ns,频率达到了1.45MHz。如果要对这么多信号同时进行采样捕捉、根据协议解码、并且实时将数据显示到320*240的彩色屏幕上的话,使用像如STM32f1、STM32f4等常见单片机,将会非常吃力,并且带LCD控制器的型号价格又非常的昂贵。显然对于使用常见单片机完成来说,是非常愚蠢的行为。那么找到一款运行主频高,带有LCD控制器,价格低廉,并且简单易用的处理器,就是非常必要的了。

老旧设备液晶屏替换升级,1:泰克示波器TDS210更换TFT彩色屏幕

还好,在此之前已经用过一个全志的ARM9芯片–F1C100S,但是这个芯片主要是面对主线linux的场景使用,所以程序代码就要在linux环境上编写。又还好,因为我也没学过linux,所以在此之前就研究如何当作单片机一样使用,经过各种网络搜索和学习,在其他大佬的肩膀上[非常非常感谢挖坑网上的大佬们],已经在裸机和RTOS环境实现基本常用的所有功能,完全可以当作一个单片机来使用了。并且也根据其原理图,添加用得到的外设电路,画了一块PCB板,全部器件也可以手动焊接完成,也编写了一套固件成功运行,相当于对这个芯片已经算是比较熟了。

F1C100S,标准主频408MHz,但是可以超频,在本DIY中实际运行在720MHz。其内置了32MB的DDR1 RAM,且带有LCD-RGB控制器,甚至内部还包含I-Cachel和D-Cachel缓存,对于逻辑判断、数值运算等的运行性能可以提升非常大。最主要的还是其价格,某宝一片仅需15元左右,而且常规应用场景下,仅使用2层板即可PCB布线成功,可以说是超超超超(x100)值了。

老旧设备液晶屏替换升级,1:泰克示波器TDS210更换TFT彩色屏幕

因为涉及频繁的IO操作,任何一点耗时操作都会影响代码的执行效率,所以在上面代码中,尽量直接操作寄存器,使用寄存器地址处理问题,尽量少使用判断语句等。最终,终于实现了简单的同步显示效果。

大家有需要的,可以先根据本文所述的代码和协议,移植到自己熟悉的平台上进行实现。等我做到一个算是合格的显示时,在整理整理资料全部开源。[比如在5寸屏上等比例放大显示,或者全屏显示,绘制配套的专用电路板后,在开源]

-------------------------------------------------------------------------------------------------------------------------

版权声明:本文为CSDN博主「超级网吧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_36300069/article/details/126896502