26.3.1  模式选择

该外设可以在以下四种模式之一

1)从机发送模式

2)从机接收模式

3)主机发送模式

4)主机接收模式

IIC协议时序

STM32F103之I2C学习记录-LMLPHP

MSB:Most Significant Bit(最高有效位)

起始条件:SCL为高电平状态,SDA从高电平拉低

停止条件:SCL为高电平状态,SDA从低电平拉高

数据发送的顺序:先发送高位

I2C模块图

STM32F103之I2C学习记录-LMLPHP

可以看出IIC模块中有:

1)数据寄存器、数据移位寄存器、比较器、PEC计算器

2)自己地址寄存器、双地址寄存器、PEC寄存器

3)数据控制单元

4)时钟控制单元

5)噪声滤波器

26.3.3  I2C主模式

主模式所需的序列

1)配置I2C_CR2寄存器,以生成正确的计时

2)配置时钟控制寄存器

3)配置上升时间寄存器

4)配置I2C_CR1寄存器使能该外设

5)设置I2C_CR1寄存器的起始位,以生成一个起始条件

外围输入时钟:

在sm mode下,至少2MHZ

在Fm mode下,至少4MHZ

SCL主时钟生成

CCR位用于生成SCL时钟的高电平和低电平,分别从上升沿和下降沿的生成开始。当一个从设备可能延伸SCL线路时,外设在被编程的时间结束时检查来自总线的SCL输入,在上升沿生成时。

如果SCL线是低的,这意味着一个从节点正在拉伸总线,而高层计数器将停止,直到SCL线被检测到是高的。这就保证了最小值高周期的SCL时钟参数。

如果SCL线高,则高电平计数器继续计数。如果SCL线高,则高电平计数器继续计数。

实际上,从外围设备生成SCL上升边缘到外围设备检测SCL上升边缘的反馈循环需要时间,即使没有从设备延长时钟。

起始条件

当忙位被清除时,设置起始位将使得接口生成起始条件,并且切换到主模式。

在主模式下,设置开始位将导致接口在当前字节传输结束时生成重启条件。

一旦起始条件被发送了:

SB位由硬件设置,如果设置了ITEVFEN位,就会产生一个中断。

26.3.6 SMBus

系统管理总线(SMBus)是一个两线接口,通过它,各种设备可以彼此通信,也可以与系统的其他部分通信。

它基于I2C操作原则。SMBus为系统和电源管理相关的任务提供了一个控制总线。

系统可以使用SMBus来在设备之间传递消息,而不是切换各个控制线路。

系统管理总线规范涉及三种类型的设备。

1)从设备是接收或响应命令的设备。

2)主设备是发出命令、生成时钟并终止传输的设备。

3)主机是为系统的CPU提供主接口的专用主机。主机必须是主从主机,并且必须支持SMBus主机通知协议。

系统中只允许一个主机。

SMBus与I2C之间的相同点

1)都是有两条线:时钟线和数据线+可选线

2)主从通信,主机提供时钟

3)多主能力

4)数据格式类似

SMBus与I2C之间的不同点

STM32F103之I2C学习记录-LMLPHP

26.4  I2C中断

STM32F103之I2C学习记录-LMLPHP

STM32F103之I2C学习记录-LMLPHP

STM32F103之I2C学习记录-LMLPHP

26.6  I2C寄存器

STM32F103之I2C学习记录-LMLPHP

/========================STM32CUBEMX分析IIC===============================/

1、首先要选择模式,有以下几个模式

STM32F103之I2C学习记录-LMLPHP

2、对IIC的一些参数配置

STM32F103之I2C学习记录-LMLPHP

3、IIC涉及的中断

STM32F103之I2C学习记录-LMLPHP

05-21 13:26