首页
›
嵌入式基础与RISC-V
›
121-I2C总线协议
›
《Linux驱动移植I2C从机地址与时钟拉伸调试实战》
VIP10
本课程属于:121-I2C总线协议
嵌入式基础与RISC-V · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Linux驱动移植I2C从机地址与时钟拉伸调试实战
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
I2C协议基础回顾
总线架构 · 时序图 · 7位与10位地址格式
I2C
协议基础回顾
02
从机地址的硬件决定
硬件引脚配置与数据手册解读
从机地址的硬件决…
硬件引脚配置
03
从机地址的软件配置
设备树中reg属性的正确写法
从机地址的软件配…
reg
04
地址不匹配的常见原因
移位问题 · 读写位混淆 · 地址掩码
地址不匹配的常见…
移位问题
05
使用i2cdetect探测总线
工具用法与结果分析
i2cdetect
使用
06
使用i2cget与i2cset进行寄存器读写
验证地址正确性
i2cget
i2cset
07
驱动中地址的动态配置
通过platform_data或sy…
驱动
地址的动态配置
08
多从机地址支持
同一设备响应多个地址的场景
多从机地址支持
同一设备响应多个…
09
时钟拉伸(Clock Stretching)原理
为什么从机要拉低SCL
Clock
Stretching
10
时钟拉伸的硬件支持
主控IP是否支持?如何确认
时钟拉伸的硬件支…
IP
11
时钟拉伸的软件配置
I2C控制器时钟与超时设置
时钟拉伸的软件配…
I2C
12
时钟拉伸导致总线挂死的现象
SCL被拉低 · 无ACK · 系统卡死
时钟拉伸导致总线…
SCL
13
使用逻辑分析仪抓取时钟拉伸波形
触发设置与波形解读
使用逻辑分析仪抓…
触发设置
14
使用示波器测量SCL低电平时间
判断是否超时
SCL
使用示波器测量
15
驱动中处理时钟拉伸超时
i2c_msg的flags与retr…
驱动
处理时钟拉伸超时
16
内核I2C核心层的超时机制
adapter->timeout与算…
I2C
内核
17
从机驱动实现时钟拉伸
在中断服务中控制SCL
从机驱动实现时钟…
SCL
18
时钟拉伸与DMA传输的冲突
DMA无法处理拉伸
DMA
时钟拉伸
19
调试技巧
增加内核printk打印I2C传输细…
调试技巧
printk
20
调试技巧
使用ftrace跟踪i2c_tran…
调试技巧
ftrace
21
调试技巧
动态修改设备树属性进行快速验证
调试技巧
动态修改设备树属…
22
实战案例1
移植温湿度传感器SHT30 · 地址配置错误
实战案例1
SHT30
23
实战案例2
移植气压传感器BMP280 · 时钟拉伸导致读数为0
实战案例2
BMP280
24
实战案例3
移植触摸屏FT5x06 · 多地址与中断冲突
实战案例3
FT5x06
25
实战案例4
移植音频编解码器WM8960 · 时钟拉伸与PLL配置
实战案例4
WM8960
26
常见SoC平台差异
STM32MP1 · i.MX6ULL · RK3399的I2C控制器特性
SoC
常见
27
内核版本差异
Linux 4.19 vs 5.10…
内核版本差异
Linux
28
从机地址冲突检测
多设备共享同一条总线时的地址规划
从机地址冲突检测
多设备共享同一条…
29
时钟拉伸的标准化测试
编写用户空间测试程序
时钟拉伸的标准化…
编写用户空间测试…
30
总结与最佳实践
I2C驱动移植的Checklist
最佳实践
I2C
所属VIP或分类
同VIP:I2C多设备通信总线电容计算与上拉电阻驱动开发实战
同VIP:I2C多设备通信总线电容计算与故障排查项目实战
同VIP:Linux驱动移植I2C传感器数据采集项目实战