I2C 模块实现MCU 与外部I2C 接口器件之间的同步通信,硬件实现串并转换。支持I2C 的主机模式,不支持从机模式和多主机模式。
特点:
⚫ 只支持I2C 主机模式, 不支持从机模式和多主机模式
⚫ 支持7 位或10 位从机地址
⚫ 传输速度支持标准模式(100K)和快速模式(400K)
⚫ 支持DMA
接口时序描述
时钟有效时序:SDA 引脚通常被外围器件拉高。SDA 引脚的数据应在SCL 为低时变化(参见图
12-2);当数据在SCL 为高时变化,将视为下文所述的一个起始或停止命令。
起始命令:当SCL 为高,SDA 由高到低的变化被视为起始命令,必须以起始命令作为任何一次读/
写操作命令的开始(参见图 12-3)。
停止命令:当SCL 为高,SDA 由低到高的变化被视为停止命令,在一个读操作后,停止命令会使
EEPROM 进入等待态低功耗模式(参见图 12-3)。
输出应答: SDA 上的数据都是以8 位为一组串行输入和输出的,MSB 先发,接收方在收完每个字
节后应当在第9 个周期回发一个回应acknowledge 位(以下简称ack),ack 的时钟由主机提供。发送
方在ack 期间悬空SDA,接收方须将SDA 拉低,确保ack 时钟高电平期间SDA 为低,形成有效的
ack 信号。