数码之家

 找回密码
 立即注册
搜索
查看: 4162|回复: 104

[Arduino] 点亮一片低配NT7086 LCD单色液晶屏,并科普驱动原理(GEM-TECH GTG-3201283)

    [复制链接]
发表于 2023-7-16 19:00:02 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
二手市场入手了几片超大单色液晶屏(GEM-TECH GTG-3201283),分辨率 320x128,在众多 12864 中算是鹤立鸡群。

然而价格低的离谱:每片 ¥19.99 包邮,要示例代码的话额外加钱。
一看这主控都有型号,自己测测也就点亮了,于是果断放弃要代码,准备自己搞。

img0a.JPG

img0b.JPG


然而大意了,这片液晶根本不是开往幼儿园的车,跳车都来不及。
为了点亮它我几乎复习了整个液晶的驱动原理,特写下来与大家分享。


【显示原理】

关于显示为啥要用点阵,大概就是用数字方块来模拟现实世界的一种方式吧,参考 minecraft。

首先考虑发光管 LED 点阵,就是满大街光污染的走字广告牌,显示电路大致如下图 (a) 所示:

img1-Fake.png

行线(Commons) 与 列线(Segments) 同时使能时(=ON),对应交叉点的 LED 正向通电点亮。

然而这种方式对液晶 LCD 点阵无效,参考上图 (b). 液晶的每个像素相当于一个小电容,充电就“变黑”,放电就“透明”。
对于未使能的行线,即 Commons=OFF 状态,电容可能被反向充电,导致 LCD 像素意外“变黑”,显示出错。


为此需要用更复杂的波形驱动 LCD 点阵,如下图 (b) 所示。行线、列线上被加载了不同振幅、不同相位的交流信号,
只在行列均使能(=ON)的交叉点上,电容可以获得最高 Vpp 的交流信号,像素正确“变黑”。

img2-Real.png

其他像素虽有交流信号,但 Vpp 未达到“变黑”阈值,也就保持透明状态。
该阈值若匹配不当,就是点阵液晶常见的“暗淡”、“鬼影”现象。


【串行传输】

基于上述分析,工程上有常见的芯片组合实现相应驱动,如下图所示。

img3-Module.png

LED 点阵常用 HC595-HC164 组合,HC595 级联后加载列线(Segments),HC164 级联后加载行线(Commons);
LCD 点阵的芯片比较花,我这次入手的就是 NT7086 驱动,四片级联驱动列(320px),再两片级联驱动行(128px)。

从原理上来看,此次入手的液晶屏驱动时序应该与 LED 点阵相仿,需要单片机正确输出移位+锁存信号。


【为何没用u8g2】

说到玩屏,估计不少朋友都接触过 Arduino 以及 u8glib/u8g2 图形库,简单粗暴有疗效。
我起初也是这么想的,结果等理清了液晶电路,彻底傻眼:

img4-NoMPU.png

传统的牛屎 12864 或者 FPC-COG 液晶如右侧所示,在 NT7086 或同类基础上多了一片 MPU,实现物理显存、总线适配。
这也是单片机访问完 12864 以后,可以去做其他工作的原因,例如 delay 完全卡死也不影响显示。

而这次的 320x240 液晶,完全拿掉了这片 MPU(左图),导致单片机得模拟这片 MPU 工作,得有显存,得有扫描时序...
更糟糕的是,液晶的 Commons 线有 128 根,扫描时序为 1/128 duty. 但凡驱动单片机停一下,液晶就变成一条亮线...

而 u8glib/u8g2 的 HAL 层,都是默认了有 MPU 的液晶模块;像这片需要手动扫描的,资源完全不够用(需要模拟MPU)。

不过这都不是问题,点亮屏幕才是关键。


【点屏】

分析到这里,基本确认了驱动方向:模拟 MPU 扫描,然后在适当的位置模拟个显存。

液晶的排线为 12PIN-FPC1.0MM,为此特地购入抽屉座、排线以及杜邦线板,连接也要优雅:

img5-FPC.jpg

img6a.JPG

由于 NT7086 本质上是移位寄存器,因而应该有静态特性,先写个手动扫描固件压压惊: BasicDrv-手动NT7086.zip (7.77 KB, 下载次数: 3)
通电测试下效果,加载列驱动时液晶没反应,再搞上行驱动,液晶顺利点亮一条亮线。

确认驱动逻辑没毛病后,写一个简单的周期图像:

img6b.JPG

至此只是显示了些马赛克,还没真正达到刷屏状态,目标刷一张 320x128 的位图。

需要一张二值图,GIMP 先搞起来,充斥着修图取模的艰辛:

img7-PS.png

最后取模完成,刷进去没白瞎研究这么久:

img8a.JPG

大合照,没有额外的负压生成器,于是得两套独立电源:

img8b.JPG


最后附上主固件,含NT7086 手册: DynamicDrv-扫描NT7086.zip (640.98 KB, 下载次数: 5)




以上,点亮了一片低配的单色液晶,顺手科普下液晶驱动原理。

最后祝大家点屏愉快!





从晶体管讲起,科普下 NT7086 系列 LCD 液晶屏代码该怎么写
https://www.mydigit.cn/thread-403154-1-1.html



补充内容 (2023-7-26 17:32):
Arduino 直连版本的 PCB 已搞好,详见 92 楼

打赏

参与人数 11家元 +302 收起 理由
springvirus + 30 原創內容
newnet1234 + 30 優秀文章
hongo + 30 優秀文章
lxvtag + 20 優秀文章
jf201006 + 30 優秀文章
200birds + 30
zzqqzzz + 30 给大佬递茶!( ̄▽ ̄)"
aping365 + 30 優秀文章
兰陵 + 30 謝謝分享
kkdkj + 30 謝謝分享

查看全部打赏

发表于 2023-7-16 19:29:19 | 显示全部楼层
太牛了,让我好好消化一下原理,不咋理解
回复 支持 反对

使用道具 举报

发表于 2023-7-16 19:47:33 来自手机浏览器 | 显示全部楼层
厉害,只是这个屏并不便宜,我买的12864只1元,还能并口能串口连接,按照5倍像素算楼主这个屏只值5元,还不算没mpu的问题,更不算自己研究驱动的辛苦
回复 支持 反对

使用道具 举报

发表于 2023-7-16 19:52:12 | 显示全部楼层
牛牛牛 厉害啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-16 19:57:27 | 显示全部楼层
wwb2002 发表于 2023-7-16 19:47
厉害,只是这个屏并不便宜,我买的12864只1元,还能并口能串口连接,按照5倍像素算楼主这个屏只值5元,还不 ...

哪里的 12864 能处理到这个白菜价,估计是 COG 软排线那种吧。

12864 这个分辨率太经典,各种实例也很多。
回复 支持 反对

使用道具 举报

发表于 2023-7-16 19:59:05 | 显示全部楼层
这是一位单片机大神,大神你就是我的偶像,我要学哪些东西才能达到你现在的水平?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-16 20:21:22 | 显示全部楼层
whypyz 发表于 2023-7-16 19:29
太牛了,让我好好消化一下原理,不咋理解

受限于篇幅,科普性质好多没去细写。 但整体方向算是写了出来。

打赏

参与人数 1家元 +30 收起 理由
springvirus + 30

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2023-7-16 20:23:07 | 显示全部楼层
月工资最少2W吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-16 20:26:26 | 显示全部楼层
猪小呆 发表于 2023-7-16 19:59
这是一位单片机大神,大神你就是我的偶像,我要学哪些东西才能达到你现在的水平? ...

主要就是多写代码 + 多调试。

某宝入手液晶,刚开始需要店家资料才能点亮,代码多是拷贝;
慢慢脱离资料,只要有个主控+模块脚序,就能看手册点亮,代码需要自己写;
再慢慢连主控型号、脚序一概不知,店家也没资料,只是看眼缘就能点亮,代码全凭经验手写。

这样就差不多了。

打赏

参与人数 1家元 +30 收起 理由
springvirus + 30 楼主竟然有21篇精华!!!

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2023-7-16 20:42:45 来自手机浏览器 | 显示全部楼层
给楼主的意志力跪了^_^
回复 支持 反对

使用道具 举报

发表于 2023-7-16 20:57:59 | 显示全部楼层
t3486784401 发表于 2023-7-16 20:26
主要就是多写代码 + 多调试。

某宝入手液晶,刚开始需要店家资料才能点亮,代码多是拷贝;

大神,这种很便宜但是没资料的屏,有没有办法让它正常显示?是夏普的屏
https://item.taobao.com/item.htm?id=720878161170
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-16 21:01:22 | 显示全部楼层
猪小呆 发表于 2023-7-16 20:57
大神,这种很便宜但是没资料的屏,有没有办法让它正常显示?是夏普的屏
https://item.taobao.com/item.htm ...

彩屏主控比较乱,协议也大多是私有,一般得上逻辑分析仪才有可能。
回复 支持 反对

使用道具 举报

发表于 2023-7-16 21:18:56 | 显示全部楼层
能自己写驱动代码,那是大师级的!
回复 支持 反对

使用道具 举报

发表于 2023-7-16 22:50:47 | 显示全部楼层
收下我的膝盖
回复 支持 反对

使用道具 举报

发表于 2023-7-16 22:57:13 | 显示全部楼层
高手就是高手,牛!
回复 支持 反对

使用道具 举报

发表于 2023-7-16 23:53:03 来自手机浏览器 | 显示全部楼层
t3486784401 发表于 2023-7-16 19:57
哪里的 12864 能处理到这个白菜价,估计是 COG 软排线那种吧。

12864 这个分辨率太经典,各种实例也很多 ...

有pcb的,间距2mm的,可惜现在没了,某宝老王电子diy,应该还有其他的1元多的,有个1.7元pos机还在,有个12864,还有150mah锂电,全新的电池过放电,充电不上的话要拆开充电。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-17 02:00:25 | 显示全部楼层
wwb2002 发表于 2023-7-16 23:53
有pcb的,间距2mm的,可惜现在没了,某宝老王电子diy,应该还有其他的1元多的,有个1.7元pos机还在,有个 ...

小屏都玩腻了,尤其那个超小OLED12864,唱戏机专用,费老半天劲还没个数码管效果好。

我比较喜欢玩 STN 大点阵,分辨率不要紧关键是屏要大,比如这种的:https://www.mydigit.cn/thread-245035-1-1.html
回复 支持 反对

使用道具 举报

发表于 2023-7-17 06:47:39 | 显示全部楼层
感觉是上个世纪九十年代的产品,很有年代感
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-6-2 13:24 , Processed in 0.436801 second(s), 15 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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