数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1955|回复: 91

[综合] 串行通信之SPI协议、IIC协议实践,点亮两个12864液晶屏/U盾

    [复制链接]
发表于 2022-9-14 16:32:13 | 显示全部楼层 |阅读模式
手头有两个什么行的U盾
000.jpg

拆之,试试能不能点亮

分两部分
************************************
第一部分,SPI通信的实践

一、先拆黑的
001.jpg

主板
002.jpg


003.jpg

元件
004.jpg
005.jpg


二、分析时序

简单看下屏的接口,有9个引脚根据电路可以确定几个脚
000.jpg

挂逻辑分析仪
001.jpg
002.jpg
003.jpg

当把U盾接入电脑时,电脑上是有弹窗,并有一个新的盘符逻辑分析仪采集的数据也较多
004 接入电脑.jpg

而只给U盾加电时,数据量少一些
005 只加电.jpg

各信号的特征
006.jpg

放大后具体对照一下
007 PIN.jpg

由图可知:00为DATA;01为SCK;02为D/C;03为RESET;04为SS。定义为
007PIN .jpg

看一下时钟与数据的对应关系应该在时钟脉冲的后沿进行采样的,而且时钟为高是为空闲符合SPI的MODO3
008 MODO.jpg

这部分的内容可以看之前的一帖:学习一下常用的串行通信协议(UART/IIC/SPI)这个SPI协议是比较怪的,没有校验、没有应答,就好像从设备是个听话的小孩子让做什么就会做什么的回到正题,设置协议, 009 协议.jpg
数据获取正确
010 正确.jpg

试试改变SPI模式,都是错误数据
011 错误0.jpg
011 错误1.jpg

找到指令区
012 指令 熟悉.jpg
012 指令.jpg

导出数据
014 数据 导出.jpg

整理
014 数据 整理.jpg

与常见的LCD指令比较
014 指令解释.jpg

LCD应该使用了ST7565的主控
整体数据情况
015 整体.jpg

看了一下ST7565手册中的时序,确实使用了MODO3
016 手册中串行工作时序.jpg

下面这个图是使用另一个逻辑分析仪
017 other.jpg


三、点亮

程序中使用了SPI库,并且使用模式3
000 使用SPI库.jpg

再分析一下程序的时序
001.jpg

LCD初始化情况
002 初始化.jpg

确认使用MODO3
003 MODO3.jpg

顺利点亮
004. 点亮.jpg
005 点亮.jpg

四、12864屏的按页寻址

在屏的转换期间,可以拍到下图的情况
000 1按页寻址.jpg

这是因为程序中使用了按页寻址的方式整体128*64的屏分为8页,每页码为128*8字模的16*16取的大概就是这样的
001 整体.jpg

取模的方式为
002 取模.jpg
003 取模.PNG

Arduino使用SPI通信方式点亮ST7565为主控的LCD的程序:
test_SPI_LCD.rar (2.47 KB, 下载次数: 2)


**************************************


第二部分,IIC通信的实践

一、拆白色的屏
001.jpg

主板
002.jpg

主板背面
003.jpg

元件
004.jpg

屏接口
005.jpg

电池信息
006.jpg

屏线丝印
007.jpg

这个屏有7个引脚,除了电源和地,背光,还有3个引脚根据在路电路
008 pin.jpg

估计屏使用的是IIC通信上逻辑分析仪
009 .jpg

为什么要带着屏?这个也走了弯路,看了后面就明白了


二、分析时序

获取数据
001.jpg

信号特征
image.png

放大
003.jpg

配置协议
004.jpg

取得数据
005.jpg

从设备写地址
006.jpg

导出数据
007 数据导出.jpg

分析数据
008 整理.jpg

注意:每个指令前要发送0x80。就是说0x80后跟着一个字节的指令,而0x40后则跟着一直是数据。

指令情况,又是ST7565
009 指令解释.jpg

屏的脚位定义
010 PIN.jpg
011 pin .jpg

前面说要带屏取数据,是因为没有屏的时候,相当于没有从设备,没有应答会取不全数据的
050 withoutLCD.jpg
052 withoutLCD.jpg

三、修改库文件

1、确认屏的地址用程序扫描一下
000 adress 0x3F.jpg

屏的地址是0x3F
其写地址应该是0x7E
000 Wadress 0x7E.jpg

逻辑分析仪也能看出,只有0x7E有应答
000 adress 0x7E.jpg

2、修改ARDUINO的wire库文件写好程序,不能点亮屏,又用逻辑分析仪观察了一个数据
000.jpg

怎么会只写32个字节就停止了呢?
原来,在wire库中的空间分配有给了32个字节
001 Y32wire.PNG

相应的两个文件位置
003 文件位置.jpg

修改为150个字节总够了吧
004 修改为150.jpg

修改后的全局变量增加了不少
005 改后编译.jpg


四、点亮

这回点亮了
001.jpg

使用IIC的好处是接线是比较少的
004.jpg

加个背光
005.jpg
006.jpg

Arduino使用IIC通信方式点亮ST7565为主控的LCD的程序:
test_I2C_LCD.rar (2.74 KB, 下载次数: 3)

谢谢观赏!!
祝坛友们快乐每一天!!


打赏

参与人数 22M币 +380 收起 理由
lf8013 + 10 優秀文章
hxjxyz + 20 優秀文章
kyhwhb + 20 優秀文章
亚历山大 + 20
沙漠臭屁虫 + 20
亲爱的混蛋 + 20
ch104517745 + 20 原創內容
ljlun + 20 優秀文章
jpdd521 + 5 点屏大湿果真是666
sonj + 20 優秀文章

查看全部打赏

发表于 2022-9-14 16:49:22 | 显示全部楼层
楼主厉害了,佩服佩服。。。

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 16:49:54 | 显示全部楼层
大神在此膜拜

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 16:56:45 | 显示全部楼层
专业人士,学习了。

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 17:11:39 | 显示全部楼层
厉害了~学习一下

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 17:22:49 | 显示全部楼层
不错不错,逻辑分析仪玩的很溜,一般i2c接口屏就4个有效引脚板子上无硬件复位的最多再多一个软件reset  ,spi看排线就差不多能确认了,管脚多几个,并口一般用的不多。通过解码信息对照主控初始化值快速找到对应主控是个好办法~

打赏

参与人数 2M币 +20 收起 理由
jf201006 + 10 精彩回帖
8139 + 10 精彩回帖

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 17:25:16 | 显示全部楼层
专业啊,太厉害了,我就有个这种玩意,可小了,带个显示屏,能废物利用就太棒了。

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 17:48:33 | 显示全部楼层
这个玩得溜啊,高手

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 18:18:04 | 显示全部楼层
厉害厉害,这月薪得6位数吧

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 18:21:37 | 显示全部楼层
专业人士,学习了

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 1 反对 0

使用道具 举报

发表于 2022-9-14 18:34:21 | 显示全部楼层
这个确实比较厉害
第一种U盾,我也有

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 18:35:30 | 显示全部楼层
谢谢,大神的分享。很好的经验,知识科普了。

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 19:01:22 | 显示全部楼层
太复杂,很多地方没看懂,捂脸路过

打赏

参与人数 2M币 +16 收起 理由
qrut + 10 歡迎探討
jf201006 + 6 精彩回帖

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 20:06:19 | 显示全部楼层
厉害了,大神

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 20:39:33 | 显示全部楼层
楼主高手,第二个U盾有一个,还在用。

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 21:37:56 | 显示全部楼层
楼主技术高
   
拆个U盾都是精华帖

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 21:40:02 | 显示全部楼层
拆机狂魔 发表于 2022-9-14 18:18
厉害厉害,这月薪得6位数吧

楼主以后改名吧,就叫6位数

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2022-9-14 21:50:53 | 显示全部楼层
不错不错,楼主玩的很开心

打赏

参与人数 1M币 +6 收起 理由
jf201006 + 6 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|数码之家

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2022-10-3 18:49 , Processed in 0.124800 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2021, MyDigit.cn

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