📘 I2C 驱动开发
30章 · 实战
⚡ 配色 · 活泼专业
01
I2C协议基础
总线起源 · 物理层 · 上拉电阻 · 对比SPI/UART
02
I2C协议时序
起始/停止条件 · 数据有效性 · ACK/NACK
03
I2C寻址与通信流程
7位/10位寻址 · 读写流程 · 多主机仲裁
04
I2C时钟同步与扩展
时钟拉伸 · Hs-mode · 超快模式UFm
05
Linux I2C子系统架构
I2C Core/Bus/Adapter/Client · 数据结构关系
06
I2C核心层数据结构
i2c_adapter/algorithm/client/driver
07
I2C适配器驱动编写
注册/注销 · master_xfer · DTS绑定
08
I2C设备驱动编写
i2c_driver · probe/remove · DTS匹配
09
I2C数据传输API
i2c_master_send/recv · i2c_transfer · SMBus
10
I2C消息与SMBus协议
i2c_msg结构 · SMBus读写 · PEC校验
11
用户空间I2C访问
/dev/i2c-N · ioctl · i2c-tools
12
I2C设备驱动实例(EEPROM)
AT24系列 · 读写时序 · 页写入
13
I2C设备驱动实例(传感器)
BMP280 · 配置寄存器 · 数据读取
14
I2C设备驱动实例(RTC)
DS3231 · BCD码 · 闹钟设置
15
I2C设备驱动实例(ADC)
ADS1115 · 单次/连续转换 · 数据率
16
I2C设备驱动实例(DAC)
MCP4725 · 快速/正常写入 · 掉电模式
17
I2C设备驱动实例(IO扩展)
PCF8574 · 中断处理 · 输入输出
18
I2C设备驱动实例(显示)
SSD1306 OLED · 页寻址 · 帧缓冲
19
I2C多设备管理与总线仲裁
地址冲突 · 总线锁 · 原子操作
20
I2C中断处理与异步通信
中断触发 · 工作队列 · threaded IRQ
21
I2C电源管理
挂起/恢复 · Runtime PM · 休眠唤醒
22
I2C调试与故障排查
dynamic debug · 总线分析仪 · 逻辑分析仪
23
I2C时序问题与解决方案
速率不匹配 · 毛刺 · 电平转换
24
I2C设备树绑定详解
reg/compatible · 中断GPIO · 自定义属性
25
I2C ACPI支持
ACPI描述 · _CRS资源 · 微软HID
26
I2C虚拟化与模拟
QEMU虚拟控制器 · 模拟设备 · 测试框架
27
I2C安全与校验
SMBus PEC · 数据完整性 · 重放防护
28
I2C性能优化
批量传输 · DMA · 中断合并 · 缓存
29
I2C与其它子系统交互
IIO · HWMON · Input子系统集成
30
综合实战项目
多传感器采集 · 用户态监控 · 性能基准
⚡ 点击任意卡片跳转至对应章节 (01.html ~ 30.html)