数码之家

 找回密码
 立即注册
搜索
查看: 5033|回复: 140

记一次对未知液晶屏幕GWMS15197C19120207的软硬件逆向过程

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

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

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

x
前言

很久以前从淘宝店铺“老王电子数码DIY”买了几个屏幕。在商品评价中已有卖家提供了点亮图片,但是这个卖家是偶然点亮的,无法能提供更多的信息。
卖家评论图片.png

从卖家评论的图片可以获得一些有效信息:
1、这是一个COG的字符型液晶屏;
2、该屏幕可显示两行5*8的字符,再加一行图标;
3、该屏幕有10个引脚,通信方式为SPI或I2C;
4、根据图标中的文字,kWAh、Prepay 可以确定这是一个智能电表上使用的定制屏幕。在淘宝搜索的智能电表,售卖的电表均使用中文图标显示信息。对比可以确定这个屏幕是外贸产品。查找相似屏幕驱动IC型号。

在拿到屏幕后,将屏幕从支架上拆下。屏幕背部的标签显示,此屏幕的型号为:GWMS15197C19120207;生产日期为:2020年2月17日。
屏幕标签.JPG

在淘宝搜索“COG 1602”,搜索到的屏幕都是使用ST7032、ST7032S或ST7032I作为驱动芯片。获取ST7032的数据手册。ST7032的芯片尺寸为 5130.0 x 1080.0μm。测量本屏幕的驱动芯片宽度约4mm。尺寸不对,确认本屏幕的驱动芯片不是ST7032。

拆解驱动芯片

此时已经没有了探索方向。只能拆下驱动IC,看看能否从驱动芯片上获取到一些信息。开始拆解屏幕驱动芯片。

拆解驱动芯片步骤:
1、将棉签去掉棉花,把木棒削成一字螺丝刀的形状。
棉签1.png

2、用削好的棉签刮掉IC周围的密封胶。木棒相对ITO线路是比较软的,不会划伤ITO。使用木棒刮掉大部分密封胶,此时还有一层密封胶附着在玻璃上,继续使用棉签刮除密封胶,通过表面反光可以观察到密封胶是否刮除干净。这里刮除干净是为了后续拍摄ITO线路,如果只为了拆IC,则刮除掉大部分即可。
IMG00484.JPG

3、加热IC背面,使用尺子推下IC。加热拆IC是在逛咸鱼时,从卖拆屏幕驱动芯片加热台的视频里学来的。ACF胶大概在180到200摄氏度软化,如果使用加热台拆IC,温度开到200摄氏度左右即可。由于此屏幕使用铁夹引出引脚,无法使用加热台,所以这里演示使用936烙铁拆IC。

首先将烙铁横放,温度开到350摄氏度以上。然后将驱动芯片朝上放到烙铁上。等到ACF胶升温软化,这里的时间自己把握,温度高了时间短点儿。使用钢尺包两层高温胶带,尽可能平着推IC,不要使用太大力,防止IC推下来后撞到屏幕上层玻璃碎裂。这里也可以不用钢尺,只要是端面平整、耐高温、且不是非常硬的都可以,比如PCB尺子。
将烙铁横放.jpg

将烙铁横放

将驱动IC放到烙铁上.jpg

将驱动IC放到烙铁上

使用钢尺将IC推掉.jpg

使用钢尺将IC推掉

IMG00486.JPG

4、对拆下来的IC进行清洗。IC表面的ACF胶使用常见的溶剂,如酒精、530、洗板水,是无法洗掉的,要使用专业的ACF去除液,淘宝可以买到。ACF去除液的使用方法请根据商家提供的操作方法使用。注意:ACF去除液属于酸性易挥发液体,使用时请注意通风和安全。打开瓶盖时,瓶口和打开位置要朝外,防止液体飞溅到身上,必须要佩戴护目镜和橡胶手套。5、 到此拆解驱动芯片完成。

从IC上查找型号信息

清洗干净IC后使用工业单筒显微镜配合2X的镜头对IC进行拍照拼接。拼接图片使用开源图像编辑软件GIMP。 die.png
拍摄到的IC没有明显的型号、厂商标志。且分辨率较低无法看到比较小的文字。于是,更换为工业同轴光单筒显微镜配合明兹长距离无限远平场5X金相物镜进行查找有用信息。依然没有找到任何有用的信息。果断买了明兹长距离无限远平场10X金相物镜。使用10X金相物镜后,终于找到了一串编码:A2099,由此确定此芯片属于Sitronix。

技巧:Sitronix的芯片都没有型号或厂商标志,只有一串“Axxxx”形式的编码,以A开头后跟4位数字。
IMG00490.JPG

在Sitronix官网查找COG、字符型、带ICON的驱动芯片。有可能的芯片为ST7032、ST7032S、ST7036、ST7038S、ST7039S。通过网络找到了ST7032、ST7036、ST7038、ST7038S的数据手册。对比数据手册中的芯片尺寸和焊盘排列,确认此屏幕驱动芯片为ST7038S。
Sitronix字符型驱动芯片.png

下图是使用5X金相物镜拍摄,芯片表面滴加了酒精,以提高清晰度。可以看到编码“A2099”已经无法分辨。
IMG00492.JPG

逆向芯片外围电路和屏幕引出引脚

使用金相显微镜对屏幕ITO进行拍摄拼接。通过对比数据手册,得出了屏幕引脚定义和芯片外围电路。
屏幕ITO2.png
屏幕ITO1.png

观察芯片外围电路,这里有一些问题:
1、IF2,IF1,IF0=HHL,在数据手册未给出此种配置。
2、32~35 Reserved引脚并未按数据手册要求连接到VSS,而是32和34连接到VDD,33和35连接到VSS。猜测这些引脚可能有作用。
3、DB0~DB7并没有按照数据手册中的要求连接。通过DB0~DB7的电路,可以确定是此屏幕是使用I2C通信。但无法确定屏幕Pin7和Pin8哪个是SCL,哪个是SDA。

屏幕断裂检测

Pin1和Pin10是连接到一起的,环绕整个屏幕,用于检测屏幕是否破裂。测量得到Pin1和Pin10间的阻值为20KΩ。通过检测Pin1和Pin10之间的阻值或通断,可以判断屏幕是否完好。
断裂检测ITO示意图.png

检测屏幕引脚定义和I2C地址
使用合宙Air101,写了一段I2C地址扫描程序。通过交换屏幕与Air101的引脚连接,最终确定引脚定义为:
引脚定义.jpg
注:屏幕正面朝上,引脚朝向自己,从左到右。屏幕I2C地址为0x3E。

开始点屏

初次点屏:根据ST7038S数据手册中的I2C初始化步骤,写了初始化程序,可以点亮屏幕。对比度调到最大。
初次点屏.jpg

对比度调到0x58。
调节对比度到0x58.jpg

开始测试扩展指令

对数据手册中的“扩展指令”(记住了只对扩展指令做了测试,等会儿要考)逐个测试,发现了很多问题。
1、不能设置为2行显示,双高显示。
2、无法设置COM/SEG的扫描方向。
3、无法设置CGRAM大小。
4、不能显示图标。
5、ICON/Power Control指令的DB3必须置1,才能正常显示,DB2~DB0无效。

无论怎样对这些扩展指令做修改,都无法修改显示设置。此时点屏进度陷入停滞,开始怀疑屏幕是坏的,驱动芯片是坏的。为了验证程序的正确性和驱动芯片是否正常,斥巨资(相对于这个屏幕)买了两个驱动芯片是ST7038S的LCD1603屏幕。使用相同的指令测试LCD1603,各项显示设置都能正确显示。由此更加开始怀疑屏幕或驱动芯片是坏的。

使用可调电源测试面板ITO线路是否正常对之前拆解芯片的屏幕做测试。将可调电源调到6.5V,使用电源正极在ITO上滑动,对应的像素可以正常显示,第二行字符也有显示,图标也能显示。确认面板没有损坏。

COM0~7测试。
第一行COM测试.jpg

COM8~15测试。
第二行COM测试.jpg

SEG测试。
SEG测试.jpg

示波器测试驱动信号和升压电路

使用一个新的屏幕,去除密封胶,初始化屏幕,使用有示波器直接测试玻璃上的驱动信号。
搭建测试环境。通过玻璃反光,可以看到很清晰的ITO线路。
示波器测试平台.jpg

示波器测试平台,探针与ITO接触

探针与ITO接触.jpg

测试后,发现COM0~COM7,ICON以及SEG都有驱动信号,COM8~COM15上没有驱动信号。屏幕引出的电源引脚上也有电平。

CH1:COM0~COM7;CH2:COM8~COM15。
COM0-7_COM8-15.jpg

CH1:COM;CH2:SEG。
COM_SEG.jpg

CH1:COM;CH2:ICON。
COM_ICON.jpg

CH1:COM;CH2:V0。
COM_V0.jpg

CH1:COM;CH2:XV0。
COM_XV0.jpg

CH1:COM;CH2:VG。
COM_VG.jpg

CH1:XV0;CH2:V0。
XV0_V0.jpg

由此猜测可能是IC没有压接好,或者IC损坏。
但是,屏幕已经装好支架,肯定是测试正常的,驱动芯片和面板肯定好的,绝对可以排除驱动芯片和面板损坏的情况。

突破口:由另一款屏幕带来的突破

点屏又陷入了停滞,于是转头去点亮另一款驱动芯片为ST7032的1601屏幕。突破口来了。
在ST7032数据手册中,COM/SEG扫描方向和CGRAM大小由硬件引脚电平配置。联想到此屏幕驱动芯片的引脚连接与数据手册不匹配。于是大胆猜测,这款屏幕使用的ST7038S极有可能是一款定制功能的芯片。
32-35引脚.png

通过芯片引脚连接,能够发现32~35引脚并未按数据手册要求连接到VSS,而是32和34连接到VDD,33和35连接到VSS,之前猜测这些引脚可能有作用,现在来看这个猜测可能是正确的。
根据逆向的面板ITO电路、显示效果和数据手册对比可以确定:SEG的扫描方向为79->0,COM的扫描方向为0->23,扫描方向配置为SHLC=1,SHLS=0;根据显示效果可以确定CGRAM的大小为8 Byte,CGRAM大小的配置为OPR1=1,OPR2=0。
COM和SEG的扫描方向.png

按照ST7032的引脚排列猜测的ST7038S的32到35引脚名,根据ITO电路得到的引脚电平,以及配置的作用,如下图所示。
32-35引脚名称和配置.png

现在可以确定了,这款屏幕的驱动芯片是定制的。
而带来的思考是:既然引脚都可以定制,那么指令集是否也做了定制呢?答案是肯定的,不然屏幕早就完全点亮了。

对扩展指令集2遍历测试

对Set Display Mode指令:0x1x低4位从0x00到0x0F遍历测试,显示效果没有任何变化。对Select CGRAM & COM/SEG direction指令:0x4x低4位从0x00到0x0F遍历测试,显示效果没有任何变化。对Set Frame Rate指令:0x5x低4位从0x00到0x0F遍历测试,显示效果没有任何变化。对0x6x低4位从0x00到0x0F遍历测试,当发送0x68、0x69、0x6c或0x6d指令时,屏幕全显。对0x7x低4位从0x00到0x0F遍历测试,当发送0x71、0x73、0x75、0x77、0x79、0x7D或0x7F指令时,屏幕显示关闭;当发送0x72、0x7A、0x7B或0x7E指令时,屏幕轻微闪烁后正常。因为0x6x和0x7x在ST7038S和ST7032的数据手册中都没有提及,猜测这两个指令可能是用于芯片或屏幕测试。

对扩展指令集1遍历测试
对Follower Control指令:0x1x低4位从0x00到0x0F遍历测试。随着指令从0x10到0x17变化,光标闪烁速度在加快;当指令从0x17变为0x18,显示对比度会发生轻微的变化。在ST7032数据手册中,指令表1的0x1x指令用于设置偏压和时钟频率,这正好与观察到的显示现象相符。确认本屏幕驱动芯片的扩展指令表1的0x1x指令的DB3用于设置偏压,DB2~DB0用于设置时钟频率。

ST7032扩展指令集1 设置内部时钟频率。
ST7032扩展指令集1 设置内部时钟频率.jpg

对Set ICON RAM Address指令:0x4x低4位从0x00到0x0F遍历测试。屏幕没有任何变化,图标不显示。对ICON/Power Control指令:0x4x低4位从0x00到0x0F遍历测试。必须将DB3 Ion置1,屏幕才能正常显示,DB2~DB0Bon、Ron、Fon不影响显示效果。这里还发现了一个现象:DB3 Ion置1后,过几秒,再将DB3Ion置0,会显示异常,表现为第一行字符的7和8两行全部显示,部分图标显示。

正常显示。
Ion正常显示.jpg

异常显示。
Ion错误显示.jpg

对V0 Control 2指令:0x7x低4位从0x00到0x0F遍历测试。对比度正常变化。
对V0 Control 1指令:0x5x低3位从0x00到0x07遍历测试。对比度正常变化。注意了,这里埋了雷,没有对DB3进行测试。

对扩展指令集0遍历测试

对Cursor or Display Shift指令:0x4x低4位从0x00到0x0F遍历测试。屏幕正常按照预期显示。
对Set CGRAM Address指令:0x4x低6位从0x00到0x3F遍历测试。可以正常写入数据到CGRAM,屏幕正常显示。

又陷入停滞:还是从ST7032数据手册找到方向

在对所有的扩展指令进行测试后,还是没有找到设置双行显示、双高显示和显示图标的指令,又没有了方向。到现在所有的测试都是在对扩展指令进行测试,没有对默认指令表做测试,埋的雷还在。此屏幕设置偏压和设置时钟频率指令与ST7032相同,所以继续对比ST7032和ST7038S 的指令表。找到了两个芯片默认指令表的Function Set指令有不同。

雷终于露头了。于是,对Function Set指令:0x2x低5位从0x00到0x1F遍历测试。终于找到了关于双行显示、双高显示的设置指令。Function Set指令的DB3设置单行还是双行显示,DB2设置单高还是双高显示。

单行单高。
单行单高显示.jpg

单行双高。
单行双高显示.jpg

双行单高。
双行单高显示.jpg

寻找显示图标的指令

此时还没有找到打开ICON显示指令。继续研究扩展指令集1的ICON/PowerControl指令。通过改变ICON/Power Control指令设置和测量XV0、V0、VG,确认ICON/Power Control指令并不影响升压电路。当改变对比度时,测量XV0、V0、VG的电压,此时电压是有变化的。在研究过升压、稳压、跟随电路的作用后,我认为ICON/Power Control指令的DB3是Fon,可以控制跟随电路的开启和关闭;DB2~DB0,无作用。在研究ICON/Power Control指令时,瞟到了V0 Control 1指令的DB3 “PD”,从开始到现在还没有对这位做过测试。最后一个雷露头了。将PD置1后,图标终于可以正常显示了。

图标显示。
图标显示.jpg

整理指令集

所有的指令都已经通过测试,最终整理出了这份指令表。到此所有的逆向工作都已完成。
指令集.jpg


总结

在测试过程中,没有做笔记记录想法和操作,且精神高度集重,导致我忘记了很多细节,而且还要去补拍一些图。拍照时使用台灯打光,亮度较暗,而且屏幕会反光,导致拍出来的图片质量不太好,后续可能要做个打光的高亮度灯。

在整个逆向过程中,对我来说并没使用到高级知识和技术,更多的是对示波器、显微镜、GIMP等软硬件的基础操作。即使是使用LUA编程也没有用到比较高级的编程技术,只用了很简单的I2C库的基础操作,因此我的测试代码没有参考意义,就不再粘贴代码了。

吐槽

买的两个TMD 1603屏幕是真TMD贵。1.44寸TFT彩屏才TMD7块多一个,这TMD一个单色1603,居然TMD要卖TMD14一个,居然还TMD有TMD18块一个的。


使用到的工具

软件:
1、  VS Code ,代码编辑器
2、  DSview,DSLogic逻辑分析仪上位机
3、  GIMP,开源图像编辑软件
硬件:
1、 DSLogic逻辑分析仪
2、 DS1052E示波器
3、 Air101开发板


资料整理

所有的图片资料、指令集、引脚定义和数据手册已上传到百度网盘。分享连接:https://pan.baidu.com/s/1QPGD6CTOTzIqLwWhT4D2Hw?pwd=jg14




打赏

参与人数 18家元 +480 收起 理由
springvirus + 30 真心不容易,为了一块屏,也是拼了.
reiyawea + 24 工具齐全,开了眼界了
long007 + 30 原創內容
suhui + 12 非常牛逼
nnbuchicao + 8 秀儿
jf201006 + 30 謝謝分享
cushion + 30 原創內容
newnet1234 + 30 優秀文章
兔包公 + 30 優秀文章
cat_li + 30

查看全部打赏

发表于 2023-7-16 17:11:36 | 显示全部楼层
真正的大神
回复 支持 1 反对 0

使用道具 举报

发表于 2023-7-16 17:19:16 来自手机浏览器 | 显示全部楼层
这个是真大神,也是费心费神。
回复 支持 1 反对 0

使用道具 举报

发表于 2023-7-16 17:20:40 来自手机浏览器 | 显示全部楼层
高手高手,这屏老王不知道忽悠了多少人。说是12864,那销量蹭蹭的,后来有人图片说不是12864,瞬间没了销量。就再也没人对这屏有兴趣了。你这一点亮,这屏可以当1602用啊。
回复 支持 2 反对 0

使用道具 举报

发表于 2023-7-16 18:37:13 | 显示全部楼层
真神人,分析出来。现在屏幕太多了,量又大。慢慢等好屏幕。
回复 支持 反对

使用道具 举报

发表于 2023-7-16 20:03:27 | 显示全部楼层
这是真大神,是我只能扔垃圾桶了
回复 支持 反对

使用道具 举报

发表于 2023-7-16 20:20:50 来自手机浏览器 | 显示全部楼层
哈哈,电子垃圾真害人
回复 支持 反对

使用道具 举报

发表于 2023-7-16 20:23:35 来自手机浏览器 | 显示全部楼层
本帖最后由 wwb2002 于 2023-7-16 20:28 编辑

推荐精华!这屏没资料还要10几块钱,是为什么
回复 支持 反对

使用道具 举报

发表于 2023-7-16 21:30:25 来自手机浏览器 | 显示全部楼层
金相显微镜太好用了,比我的双目立体显微镜好多了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-16 22:49:03 | 显示全部楼层
wwb2002 发表于 2023-7-16 20:23
推荐精华!这屏没资料还要10几块钱,是为什么

14元一个的1603屏幕是从1688上液晶屏制造商那里买的。被逆向的屏幕是从淘宝买的,只要一块钱一个。
回复 支持 反对

使用道具 举报

发表于 2023-7-16 23:04:44 | 显示全部楼层
来来,显摆一下你的装备吧
回复 支持 反对

使用道具 举报

发表于 2023-7-16 23:20:18 | 显示全部楼层
我买了OLED 屏
回复 支持 反对

使用道具 举报

发表于 2023-7-16 23:34:22 | 显示全部楼层
没有资料点屏,大神收下我的膝盖
回复 支持 反对

使用道具 举报

发表于 2023-7-17 00:27:35 来自手机浏览器 | 显示全部楼层
很专业的大神。
回复 支持 反对

使用道具 举报

发表于 2023-7-17 07:43:36 来自手机浏览器 | 显示全部楼层
这屏幕不值钱了
回复 支持 反对

使用道具 举报

发表于 2023-7-17 08:05:00 来自手机浏览器 | 显示全部楼层
大神这个屏幕能做什么用?
回复 支持 反对

使用道具 举报

发表于 2023-7-17 08:09:06 | 显示全部楼层
这个屏幕可被楼主吃透了
回复 支持 反对

使用道具 举报

发表于 2023-7-17 08:16:59 | 显示全部楼层
这个真是太厉害了,膜拜大神
回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-28 08:30 , Processed in 0.109200 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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