文章目录
- 引言
- I2C基础知识
- 概念和特性
- 协议,四种信号组合
- I2C调试手段
- 硬件
- 软件
- HDF框架下的I2C设备驱动
- 案例描述
- 驱动Dispatch
- 驱动读写
- 总结
引言
I2C基础知识
概念和特性
- 集成电路总线,由串网12C(1C、12C、Inter-Integrated Circuit BUS)行数据线SDA和串行时钟线SCL组成,对于-个12C接口的器件,至少还需要电源和地线
- 12C总线是双向、半双工传输支持多主机、多从机同时挂接在一条12C总线上,多主机同时请求总线时,可以通过冲突检测和仲裁机制防止总线数据被破坏;
- 每个从设备都有唯一的地址,从设备可被寻址(又称被选中)只有被选中的从设备才能参与通信,每次通信只有一个主设备和个从设备参与;
- 主设备发起一次通信,从设备响应:主从设备都可以发送和接收数据,SCL时钟由主设备发出,在工程中常见MCU或SOC作为主设备,主从设备地位可能交换。
12C是串行低速总线,常见传输速度如下
- 标准模式(Standard-mode):速率高达100kbit/s
- 快速模式(Fast-mode):速率高达400kbit/s
- 快速模式+(Fast-mode Plus):速率高达1Mbit/s。
- 高速模式(High-speed mode):速率高达3.4Mbit/s
工程中常见兼容标准模式和快速模式的12C从设备。
- 一条12C总线上的所有从设备都有一个唯一的设备地址,不能与线上的其他设备地址重复;
- 设备地址有7位和10位两种格式,常见7位格式;
- I2C主设备对从设备可执行写操作和读操作,通过写地址和读地址区分写操作和读操作;
设备地址7位:1010000 (0x50)
写地址8位:设备地址左移1位,末位补0,10100000 (0xA0)
读地址8位:设备地址左移1位,末位补1,10100001 (0xA1)
- 同一个I2C从设备可能具有多个设备地址,通常可通过从设备的管脚配置,以I2C接口的ROM芯片AT24C256为例: