I2C
芯片名称与内核版本
芯片名称 | 内核版本 |
---|---|
所有芯片 | 所有版本 |
前言
ROCKCHIP 系列芯片为客户提供标准 I2C 总线,方便客户实现对不同外接设备的控制和访问。I2C 总线控制器通过串行数据(SDA)线和串行时钟(SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一地址识别(无论是微控制器——MCU、LCD 驱动器、存储器或键盘接口),并且都可以作为一个发送器或接收器(由器件的功能决定)。
Rockchip I2C 控制器支持以下功能:
- 兼容 I2C 与 SMBus 总线
- 仅支持主模式下的 I2C 总线
- 软件可编程时钟频率支持到 400kbps,部分芯片可高达 1000kbps
- 支持 7 位和 10 位寻址模式
- 一次中断或轮询至多 32 个字节的数据传输
下图为 I2C 总线的硬件连接方式,需要上拉电阻,改变上拉电阻大小可调节 I2C 总线的上拉强度。
ROCKCHIP I2C 在不同 芯片,不同内核版本上的驱动不一样:i2c-rk3x.c
或者 i2c-rockchip.c
(i2c-rockchip.c
驱动为 3.10 内核版本上使用),I2C 可以运行的最高频率一般为 1000K。
读者对象
本文档主要适用于以下工程师:
- 技术支持工程师
- 软件开发工程师
1. I2C 流程
I2C 的流程在两个驱动上大致是一样的,写是单纯的 TX 模式 (I2C_CON[1:0]=2’b00),而读一般使用 TRX 模式 (I2C_CON[1:0]=2’b01)。下面的 I2C 控制器操作流程图是描述软件如何通过这个 I2C 控制器寄存器来配置和执行 I2C 任务。描述分为 3 部分:传输模式,混合模式和接收模式。