数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 10057|回复: 133

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

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


拆之,试试能不能点亮

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

一、先拆黑的


主板





元件




二、分析时序

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


挂逻辑分析仪




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


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


各信号的特征


放大后具体对照一下


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


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


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


试试改变SPI模式,都是错误数据



找到指令区



导出数据


整理


与常见的LCD指令比较


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


看了一下ST7565手册中的时序,确实使用了MODO3


下面这个图是使用另一个逻辑分析仪



三、点亮

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


再分析一下程序的时序


LCD初始化情况


确认使用MODO3


顺利点亮



四、12864屏的按页寻址

在屏的转换期间,可以拍到下图的情况


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


取模的方式为



Arduino使用SPI通信方式点亮ST7565为主控的LCD的程序:



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


第二部分,IIC通信的实践

一、拆白色的屏


主板


主板背面


元件


屏接口


电池信息


屏线丝印


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


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


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


二、分析时序

获取数据


信号特征


放大


配置协议


取得数据


从设备写地址


导出数据


分析数据


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

指令情况,又是ST7565


屏的脚位定义



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



三、修改库文件

1、确认屏的地址用程序扫描一下


屏的地址是0x3F
其写地址应该是0x7E


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


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


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


相应的两个文件位置


修改为150个字节总够了吧


修改后的全局变量增加了不少



四、点亮

这回点亮了


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


加个背光



Arduino使用IIC通信方式点亮ST7565为主控的LCD的程序:


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


本帖子中包含更多资源

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

x

打赏

参与人数 25家元 +2420 收起 理由
闻太师 + 30
nokia5320 + 10
mydigit + 2000 恭喜获得原创文章热度奖励2000M.
lf8013 + 10 優秀文章
hxjxyz + 20 優秀文章
kyhwhb + 20 優秀文章
亚历山大 + 20
沙漠臭屁虫 + 20
亲爱的混蛋 + 20
ch104517745 + 20 原創內容

查看全部打赏

 楼主| 发表于 2022-9-21 07:49:04 来自手机浏览器 | 显示全部楼层
grkuqq 发表于 2022-9-21 06:17
好奇问问,BL+,BL- 引线是什么意思?

背光接线。这个屏用LED作背光,BL+接LED的正极。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-23 12:03:26 | 显示全部楼层
晓风电脑维修 发表于 2022-9-22 11:52
楼主技术精湛,学习了,请问楼主用的是什么逻辑分析仪最近正想买一台便宜的, ...


如果是只用8通道,要求不高的,X宝上有二三十元的




16通道的可以使用DSLogic逻辑分析仪



个人喜好


本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-23 12:20:18 | 显示全部楼层
tjjtds1 发表于 2022-9-16 20:38
我也买了一个20多的逻辑分析仪,觉得很实用,单片机学习用这个看的清清楚楚。
就是软件不太会用。
楼主有几 ...

估计是SaleaeLogic这个软件吧
我用的是1.2.17版的

网上有很多教程的。
不同品牌的逻辑分析仪使用不同的软件,一了般不通用的。有说sigrok比较好,但没有用过,
只要一种软件用熟练了,基本工作都能完成。
对逻辑分析来说,好的软件就是内置的协议多一些

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-26 08:51:35 | 显示全部楼层
zhigao1986 发表于 2022-9-25 22:10
IIC 屏指令跟SSD1306 好像一样,可以用SSD1306驱动么?

基本指令是一样的,但7565没有动画的指令,初始化时有个别指令也是不一样的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-5 14:50:26 | 显示全部楼层
xueyunmichen 发表于 2022-10-4 21:23
我也把吃灰好多年的工行U盾 改了 板子不要 直接用原耳机插 连接到排线上 刚好四根线 res直接接3.3 0用软件 ...

这个方法不错嘀
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-9 13:33:43 | 显示全部楼层
woozwooz 发表于 2022-10-6 22:02
看到IIC液晶屏有一个坏点?  应该不是程序bug吧。

现在 液晶屏 驱动IC太多了,这种有主机的屏还好分析,

看的好仔细,那个不是坏点,是屏上有点脏了
对于光板屏,还真是不好弄。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-19 10:03:28 | 显示全部楼层
jude365 发表于 2023-2-17 20:15
期待楼主啥时候能搞个并口8080的

学习并行(Parallel)通信的两种协议,并实践点亮一个LCD(多图慎入)
https://www.mydigit.cn/forum.php ... &fromuid=940188
可以看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-15 09:59:02 | 显示全部楼层
jude365 发表于 2023-3-21 13:29
还有,大佬有个问题不知道可否赏脸解答下,创新zen micro photo 是oled显示屏,但现在屏幕老化完全没显示 ...

改源程序或加一个协议转换吧
回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-19 09:28 , Processed in 0.140400 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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