STM32 I2C
1.I2C介绍
1.1 基本信息-特征
-
高速模式 Hs 模式 ,它将位速率增加到 3.4Mbit/s Hs 模式的器件可以和 I2C 总线系统,中快速和标准模式器件混合使用 位速率从 0~3.4Mbit/s
-
电源电压是 2V 或更低的器件,保持和电源电压更高的器件兼容
3.10 位寻址 允许 1024 个额外的从机地址
4.两条总线线路 一条串行数据线 SDA ,一条串行时钟线 SCL
5.多主机总线,一个主机可以对应多个从机,主机具有绝对主导权
1.2 应用
消费者电子 、电讯和工业电子:
1.智能控制 通常是一个单片的微控制器
2.通用电路 例如 LCD 驱动器 远程 I/O 口 RAM EEPROM 或数据转换器
3.面向应用的电路 譬如收音机和视频系统的数字调谐和信号处理电路 或者是音频拨号电话的DTMF 发生器
2. I2C 总线的概念
两线――串行数据 SDA 和串行时钟SCL 线在连接到总线的器件间传递信息
2.1 I2C 总线术语的定义
I2C 总线是一个多主机的总线:主机 —从机和接收器— 发送器
2.2 传输数据的过程
1.假设微控制器 A 要发送信息到微控制器 B
• 微控制器 A 主机 寻址微控制器 B 从机
• 微控制器 A 主机 发送器 发送数据到微控制器 B 从机 接收器
• 微控制器 A 终止传输
2.如果微控制器 A 想从微控制器 B 接收信息
• 微控制器 A 主机 寻址微控制器 B 从机
•微控制器 A 主机 接收器 从微控制器 B 从机 发送器 接收数据
• 微控制器 A 终止传输
仲裁时的时钟信号是用线与连接到 SCL 线的主机产生的时钟的同步结合
2.3 数据的有效性
SDA 线上的数据必须在时钟的高电平周期保持稳定 数据线的高或低电平状态只有在 SCL 线的时钟信号是低电平时才能改变
2.4 起始和停止条件
在 I2C 总线中 唯一出现的是被定义为起始 S 和停止 P 条件:
当 SCL 线是高电平时 SDA 线从高电平向低电平切换 这个情况表示起始条件
当 SCL 是高电平时 SDA 线由低电平向高电平切换表示停止条件
起始和停止条件一般由主机产生。
3. 传输数据
3.1 字节格式和响应
发送到 SDA 线上的每个字节必须为 8 位 每次传输可以发送的字节数量不受限制 每个字节后必须跟一个响应位。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ExsyEnpg-1665725120551)(
在响应的时钟脉冲期间 接收器必须将 SDA 线拉低 使它在这个时钟脉冲的高电平期间保持稳定的低电平 。
在从机未响应从机地址时 例如它正在执行一些实时函数不能接收或发送 从机必须使数据线保持高电平。
3.2 地址格式
7 位的地址格式:这个地址共有 7 位紧接着的第 8 位是数据方向位 R/ W ,0 表示发送 写 1 表示请求数据 读 数据传输一般由主机产生的停止位 P 终止。
注意:
1.起始条件后面立即跟着一个停止条件 报文为空 是一个不合法的格式
2.自动增加或减少之前访问的存储器位置等所有决定都由器件的设计者决定
注意:
1.起始条件后面立即跟着一个停止条件 报文为空 是一个不合法的格式
2.自动增加或减少之前访问的存储器位置等所有决定都由器件的设计者决定