当前位置: 首页 > news >正文

TY-290ES计算器屏幕逆向

刷拼多多时看到个便宜的TY-290ES计算器,到手价只需要人民币11块多,还是个点阵屏,真是难以想象国产计算器能做这么便宜,买一个来研究下。
1757774888344-843972727

廉价小商品大本营(浙江)发的货,,,先点亮看看,功能很少,比82ES还差点意思。屏幕点阵粗略估了下,应该是96x31像素的,顶部有一行图标占了显存位置,所以有效点阵区域高度只有31像素。屏幕对比度看着一般,STN正显灰膜白底蓝字,响应速度比较慢,和LCD1602那种模组一个水平。
2025-09-13_2251142

后壳6个十字螺丝拧下来就可以拆开了,无卡扣。主板相当简洁,分立器件只有2个电容 + 1个电阻,主控是个COB封装的牛屎芯片,估计是某些4位单片机做的。
2025-09-13_2251502

屏幕排线总计20PIN,最左边是1脚,FPC上1脚和2脚都是空脚,剩余18个有物理连接的IO,这个规模来看,大概率是低速单片机最喜欢用的i8080并口了。
目视观测PCB走线,万用表可以直接测出VCC和GND。C8,C9,C10这三个boost升压电容板子没上件,应该是屏幕尺寸较小,靠屏幕驱动IC内部的硅电容也可以提供足够的电流和可接受的电源纹波。
C2P接一个无极性电容到GND,C3P和C3N两端接一个无极性电容,参考值1uF/25V来自ST7567手册,这些低分辨率点阵屏驱动IC硬件接口都差不多,可以互相参考。
2025-09-13_231536

剩下的13根数据线可以先分成两组:左边8根和右边5根,假设左边8根是数据线,右边5根是控制线。当然也可以反过来,一次不对再试一次就行。
port

PCB上测点都留好了,直接飞线上逻辑分析仪看看。由于手边的Saleae Logic逻辑分析仪只有8个通道,先抓取右侧的5个信号看看。
2025-09-13_2325362

很明显的i80接口时序,这5跟线是右边的一组,那么左边一组就是8位数据接口了。
2025-09-13_232657

放大查看这个WR#时钟波形,速率只有33KHz,这种龟速可以直接用rp2040逻辑分析仪来抓取。
2025-09-13_232706

2025-09-13_233010

稍微调整下就可以看到上电初始化的数据了。
2025-09-13_234158

屏幕的引脚顺序也水落石出。
2025-09-13_233409

移动到写显存的位置,可以看到写显存前,先发了B0 12 04这三个命令(A0=0),那么就可以猜到主控芯片应该是ST7565,ST7567这些常见的132X65点阵屏驱动IC了。
2025-09-13_234220

找一个ST7567A的手册来对照分析下初始化序列,除了有个03 0FAC 00的命令没对上,其他的都能匹配。实际上,要驱动这个屏幕只需要把抓到的初始化序列原样发一遍就行了。

IO初始状态都为0RD=0, D0~D7=0
CS=1, RST=1, A0=1, WR=1
delay=1665usRST=0
delay=5usRST=1
delay=555usCS=0
delay=560usA0=0
delay=10usRD=1
D0~D7 -> 0x2A // Read IC Status
delay=25us0xE2 -> D0~D7 //  Software reset
Gen WR Clock
CS=1
delay=5.2msA0=0
CS=0Gen RD Clock
D0~D7 -> 0x2A // Read IC Status0xFF, 0x72, 0xFE, 0xD6, 0x95, 0x98, 0xFF, 0x03,
0x0F, 0xFE, 0xA2
-> D0~D7
Gen WR Clock Repeat
delay=365us// 0xFF Enter extension command table
// 0x72 Enter display setting
// 0xFE Exit extension command table
// 0xD6 Set duty(DT[3:0]=0x6)
// 0x95 Set bias(BA[2:0]=0x5)
// 0x98 Set frame rate(FR[2:0]=0x0)
// 0xFF Enter extension command table
// 0x03 
// 0x0F 
// 0xFE Exit extension command table
// 0xA2 Select bias setting bit0=0: 1/9; bit0=1:1/7 (at 1/65 duty)0xA1, 0xC0
-> D0~D7
Gen WR Clock Repeat
delay=430us// 0xA1 Set scan direction of SEG, bit0(MX)=1: reverse direction, bit0(MX)=0: normal direction
// 0xC0 Set output direction of COM,bit3(MY)=1, reverse direction, bit3(MY)=0, normal direction0xF8 -> D0~D7
Gen WR Clock
delay=550us0x00 -> D0~D7
Gen WR Clock
delay=565us// F8 00
// 0xF8 0x00(bit0=BL), Double command!! Set booster level:BL=0: 4X, BL=1: 5X0x21, 0x81, 0x15,
-> D0~D7
Gen WR Clock Repeat
delay=570us// 0x21 bit0~bit2: Select regulation resistor ratio
// 0x81 0x15(bit0~bit5) Double command!! Set electronic volume (EV) level0x2C, 0x2E, 0x2F, 0x40, 0xA6
-> D0~D7
Gen WR Clock Repeat
delay=375us// 0x2C(bit2=VB bit1=VR bit0=VF) Control built-in power circuit ON/OFF
// 0x2E(bit2=VB bit1=VR bit0=VF) Control built-in power circuit ON/OFF
// 0x2F(bit2=VB bit1=VR bit0=VF) Control built-in power circuit ON/OFF
// 0x40(bit2=RR2 bit1=RR1 bit0=RR0) Select regulation resistor ratio
// 0xA6 Inverse Display bit0(INV)=1: inverse display, bit0(INV)=0: normal display0xAC, 0x00
-> D0~D7
Gen WR Clock Repeat
delay=5us// AC ??
// 00 ??CS=1
delay=905us// init sequence done.// fill GRAM startCS=0
A0=0
Write: B0 12 04
A0=1
Write: 04 (00 x 95)// B0(low 4bit) Set page address
// 12(low 4bit) Set column address (MSB)
// 04(low 4bit) Set column address (LSB)A0=0
Write: B1 12 04
A0=1
Write: (00 x 96)A0=0
Write: B2 12 04
A0=1
Write: 04 (00 x 95)A0=0
Write: B3 12 04
A0=1
Write: (00 x 96)A0=0
Write: B8 10 00
A0=1
Write: (00 x 96)CS=1
delay=40usCS=0
delay=10us
A0=00xA4, 0xAF
-> D0~D7
Gen WR Clock Repeat
delay=5us// 0xA4 Set All Pixel ON, bit0(AP)=1: set all pixel ON, bit0(AP)=0: normal displa
// 0xAF Set Display ON/OFF, bit0(D)=1: display ON, bit0(D)=0, display OFFCS=1
delay=2045us
http://www.wxhsa.cn/company.asp?id=3153

相关文章:

  • CF1559E
  • 笔记 哈希
  • 题解:CF566A Matching Names
  • Tarjan 求连通性相关
  • 暑假学习笔记
  • qoj #8557. Goldberg Machine 题解
  • centos7云主机磁盘清理过程纪要
  • 『随笔』我的唱歌练习史
  • 2025浙江省信息通信业职业技能竞赛-数据安全管理员竞赛-决赛wp
  • Java基础核心问题解析
  • 2025年浙江省信息通信业职业技能竞赛-数据安全管理员竞赛-初赛WriteUp
  • 九三阅兵实时记录+次日补
  • 铸网-2025”山东省工业互联网网络安全职业技能竞赛wp(职工组)
  • 视洞R33定制版改造自制IPC网络摄像头(可rtsp可web)
  • 二十一、流水线的冒险与处理
  • java线程的一些思考
  • 2025智能数据分类分级产品选型指南:构建数据治理的智能基座
  • 这是我的第一个博客
  • eqw
  • 2.第一个c语言项目
  • GitHub Copilot 2025年8月最新更新!
  • NOIP 模拟赛十五
  • 面试必备进程调度:fg,bg,jobs,ctrl+z,
  • 完整教程:计算机毕设 java 多媒体教室管理系统 基于 Java+SSM 的多媒体教室运维平台 Java+MySQL 的教室预约与设备管理系统
  • 笔记一
  • 二十、指令流水线的基本实现
  • 物料模板匹配成功后,自动跟随的逻辑
  • TCL t508n 关闭电话语音王提醒/改用4G
  • 完整教程:Markdown 编辑器 语法
  • 天地图的带洞多边形操作