瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。
【公众号】迅为电子
【粉丝群】258811263(加群获取驱动文档+例程)
【视频观看】嵌入式学习之Linux驱动(第十五篇 I2C_全新升级)_基于RK3568
【购买链接】迅为RK3568开发板瑞芯微Linux安卓鸿蒙ARM核心板人工智能AI主板
第176章 通过逻辑分析仪认识I2C波形
在本章节将使用逻辑分析仪对前面章节编写的FT5X06 I2C驱动产生的波形进行分析,由于采集触摸芯片的波形需要飞线,操作较为复杂,所以同学们不需要自己实际进行采集,只需要看作者采集到的波形即可。
采集到的整体波形如下所示:
接下来对每一部分的波形进行分析。
176.1写操作
在数据传输之前,主机要先发送一个起始信号,起始信号为SDA线从高电平到低电平的跳变,同时SCL线保持高电平,就对应下图所示部分,逻辑分析仪软件也用一个绿色的远点进行了标注,
然后传输了一个8位的数据,分别为7位的地址和读写方向,前七个时钟周期的值为0111000,转换为16进制就是0x38,也就是FT5X06的芯片地址,第8个时钟周期为0,表示读写方向为写入。
然后是一个ACK应答信号,这里为0低电平表示I2C外设已发送应答,然后就要数据传输了,要操作的寄存器地址为0x80,要写入的数据为0x4b,具体波形图如下所示:
发送完成之后主机会发送一个终止信号,终止信号为SDA线从低电平到高电平的跳变,同时SCL线保持高电平,具体波形图如下所示:
可以将写操作分为以下步骤:
1.主机发送一个起始信号
2.主机发送I2C外设的地址和写操作,等待应答信号
3.从机发送应答信号
4.主机要发送寄存器的地址,等待应答信号
5.从机发送应答信号
6.主机发送要写入的寄存器的数据,等待应答信号
7.从机发送应答信号
8.主机要发送终止信号,如果写多个寄存器,重复6,7步骤。
176.2读操作
无论是读操作还是写操作,都要先写入I2C外设地址,所以最开始的波形是相同的,如下图所示:
然后是发送要都读取的寄存器地址,也就是0x80,具体波形如下图所示:
接下来主机就可以读取该寄存器地址的数据了,读取到的数据为0x4B,具体波形如下图所示:
可以将读操作分为以下步骤:
1.主机发送一个起始信号
2.主机要发送12C外设地址和写操作,等待应答信号
3.从机发送应答信号
4.主机要发送要读取的寄存器的地址,等待应答信号
5.从机发送应答信号
6.主机发送起始信号
7.主机发送要读取的12C外设的地址和读操作,等待应答信号
8.从机发送应答信号
9.从机发送数据,也就是要读取的寄存器的数据,等待应答或者非应答信号
10.主机如果不在读取数据,就要发送非应答信号,如果继续读取,就发送应答信号