这个农行的U盾是两年多前(2020年5月)拆的,当时把屏点亮后,试着用这个小屏搭建了一个晶体管测试仪,没有成功,就搁置下来了。 现在花了点时间,整理一下前面做的,找出了问题,打了个测试板,终于做完,发帖交个作业。
分三个部分汇报下: 一是拆屏并点亮; 二是完成测试仪的测试; 三是一些资料及说明。
一、拆农行的U盾 1、拆屏跑电路 当时的照片已找不到多少了,有些只能补拍了
电路板
跑了一下板上的电路,确定了几个引脚接法
有几个是与板上的25Qxx连接的
TSE1G6012液晶屏接口的对应情况 其实,主要的引脚已经可能确定了。
2、找屏的PIN 为了进一步确定引脚,挂玩具逻辑分析,分析一下各引脚的信号,算是验证一下吧
信号如下
关键信号说明: REST:上电时有一个变低电平的过程(复位),之后一直为高电平。 SCLK:最多8个一起,很均匀的脉冲,频率最高。8个与下8个间有短暂高电平。 A0(D/C):在两个连续的8个SCLK脉冲之间,SCLK短暂为高电平时,有变高或变低的变化。 SDA(DATA):在8个SCLK连续均匀脉冲之间有高低电平的变化。 CS:高电平有效。在两个连续的8个SCLK脉冲之间有高低电平的变化。
由上图可知:5为CLK、6为D/C、7为RESET; 由上图知:4为DATA、8为CS。
最后确定了屏的定义为:
3、用Arduino点亮 用洞洞板做个屏的接口转换板
找了个程序,修改一下,可能点亮
4、关于12864屏 此屏控制芯片为ST7565,12864就是128列,64行,共8192个像素。 路程序,再挂玩具逻辑分析仪
下面是初始化阶段
对应程序中的命令
ST7565的命令表,具体命令解释要看下ST7565p数据手册
发送的控制命令(页地址和列起始地址)及数据(128个)
LCD控制芯片的RAM实际是132*65
所以在程序中进行全部测试时,是发送了RAM的9页像位进行测试的,程序中已注释 行还是64 在发送字模是按128*64的
后来又测试了一下,发现这个LCD就是128*64的,不用写第9页 在sheetdata中发现了这句话“ST7565芯片内含65个通用输出电路和132个段输出电路,单芯片即可驱动65x132点阵显示器。” ST7565控制器是通过“数据显示RAM”内的数据,直接显示RAM内数据。而数据显示RAM容量是65 x 132 = 8580位。
再研究一下这个屏 共有8页
找一个字模数据,
程序中的定义
二、测试M328 1、当时,用的是面包板测试,使用的是自制的UNO,16M晶振
面包板上有屏的转换
各区的分布
测试不准确,应该说差得不是一点。
一直是用WinAVR编译Makefile,导出HEX,用USBISP下载到UNO中。 后来又看了下源项目的说明(翻译了),在WinAVR中,配置好Makefile 插上USBASP,连接到UNO的ICSP口,编译后就直接下载到UNO中。
当时认为可能的问题: 一个是使用了面包板,接触不好; 再一个就是使用了16M晶振。 这就搁置下来了。 最近翻资料又看到了这个,干脆打个板 又翻译了一下Makefile
2、终于完成了 电路与网上及源项目的是一样的,就是标号有些不一样。
和我以前修过的玩具(这个现在涨价了)对了一下
准备打板,为了方便调试,用直插元件
板子到了,觉着有点浪费
搬板时发现,原来有一个电阻的阻值弄错了。 这是一个关键的电阻,应该为470K,两年前怎么就用了47K,一直没有发现,看来这个就是测量不准的问题所在。
焊好后,上电没有问题
开始也是测试不准确,经检查是C6用错了,源说明中说可以不使用,干脆拆了
测试基本准确了
到此,完成了,也算是交了个作业。
由于使用了旋转编码按键,所以功能也多了一些,当然这些功能要再Makefile中配置才能有。
频率输出情况,约3.9KHZ,峰值约5V
10bit PWM输出,占空分别为25%和75%
第三部分是关于晶体管测试仪的一点资料,若感兴趣,请移步楼下
|