wx:嵌入式工程师成长日记
(一)简介
-
STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能,减轻CPU的负担
-
支持多主机
-
支持7位/10位地址模式
-
支持不同的通讯速度,标准速度(高达100 kHz),快速(高达400 kHz)
-
支持DMA
多主机模式下,两个主机同时通讯占用总线就要发起总线仲裁。可变多主机模式,所有设备一视同仁,谁想当主机谁就站出来。
关于I2C地址,可以通过修改低位可变地址部分来避免地址冲突,也可以另外再开辟I2C总线,比较容易解决。
SCL:串行时钟线,传输CLK信号,一般是主设备向从设备提供;
SDA:串行数据线,传输通信数据 I2C使用一个7bit的设备地址,一组总线最多和112个节点通信。最大通信数受限于地址空间及400pF的总线电容。
I2C总线广泛应用在EEPROM、实时时钟、LCD及其他芯片的接口。
I2C允许相当大的工作电压范围,典型的电压基准为:+3.3V或+5V。
常见的I2C总线以传输速率的不同分为不同的模式:标准模式(100Kbit/s)、低速模式(10Kbit/s)、快速模式(400Kbit/s)、高速模式(3.4Mbit/s), 时钟频率可以被下降到零,即暂停通信。