概述
Exynos 4412支持四路多主机I2C串行总线,为了使连接总线上主机和外设之间实现数据传输,使用了一条SDA(Serial Data Line)线和一条SCL(Serial Clock Line)线,这两条都支持双向传输。
当I2C总线处于多主机模式时,多个Exynos 4412处理器都可以与从设备收发数据。I2C总线上的主设备负责启动和结束一次数据传输。Exynos 4412的I2C总线使用标准的总线仲裁规程来实现多主机、多从机的数据传输。
要实现对I2C总线的控制,你需要修改下面这些寄存器的值:
- 控制寄存器 —— I2CCON
- 控制/状态寄存器 —— I2CSTAT
- 发送/接收移位寄存器 —— I2CDS
- 地址寄存器 —— I2CADDR
当I2C总线处于空闲状态时,SCL和SDA都是高电平。当SCL为高电平时,SDA从高电平变为低电平表示一个开始信号;当SCL为高电平时,SDA从低电平变为高电平表示一个结束信号。
开始信号和结束信号由主设备负责生成。当发出起始信号后,I2CDS的前七位将作为从设备的地址被发送到SDA线上。这个地址决定了主设备选择了总线上的哪一个从设备。I2CDS的第八位标识主设备是要读取数据还是写入数据。
每一次数据传输放到SDA总线上的数据必须是一个字节,即8位。至于传送多少个字节则没有限制。数据发送时,总是从数据的最高位MSB(Most Significant Bit)开始发送。在每一个字节的最后,也就是第九个时钟周期,将紧跟一个ACK位,由接收方发出,表示数据已收到。
特征
- 9通道、多主机、多从机的总线接口。&#x