凡亿教育-婷婷
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | 解析STM8的I2C接口核心机制与配置
解析STM8的I2C接口核心机制与配置

STM8的I2C接口是实现片间通信的关键外设,通过双线制总线实现主从设备数据交互。本文从物理层、寄存器、时序、中断、拓扑、诊断六大维度,提供具体配置框架。

1.png

一、物理层基础

引脚定义

SCL(时钟线):输出方波,频率由主设备控制

SDA(数据线):双向传输,高电平表示空闲

上拉电阻

典型值:4.7kΩ(标准模式) / 2.2kΩ(快速模式)

二、寄存器架构

控制寄存器(I2C_CR1/CR2)

PE位:使能I2C模块

START位:触发起始条件

ACK位:控制应答信号

状态寄存器(I2C_SR1/SR2)

SB位:起始条件已发送

ADDR位:地址匹配完成

BTF位:字节传输完成

三、工作模式配置

主设备模式

频率设置:通过I2C_CR2的FREQ位配置时钟分频

地址广播:7位地址+读写位(0x00-0xFE)

从设备模式

地址屏蔽:I2C_OAR寄存器配置自身地址

广播响应:I2C_CR1的ENGC位使能广播地址识别

四、时序规范

起始/停止条件

SCL高电平期间,SDA产生下降沿(起始)或上升沿(停止)

数据有效性

SDA在SCL低电平时改变,高电平时保持稳定

应答机制

接收方在第9个时钟周期拉低SDA表示应答(ACK)

五、中断机制

关键中断事件

EV5:起始条件已发送(I2C_SR1的SB位)

EV6:地址匹配(ADDR位)

EV8_2:字节传输完成(BTF位)

中断使能步骤

配置I2C_IER寄存器的TXIE/RXIE位

NVIC中启用I2C中断通道

六、多设备拓扑

地址分配

7位地址模式:支持127个设备(0x00-0x7F保留)

10位地址模式:通过头字节(0xF0-0xF7)扩展

总线仲裁

主设备在SCL低电平时检测冲突,高电平时保持SDA状态

七、故障诊断要点

常见错误类型

AF位(应答失败):从设备无响应

ARLO位(仲裁丢失):多主竞争失败

BERR位(总线错误):时序违反

恢复策略

软件复位:通过I2C_CR2的SWRST位重置模块

硬件重启:发送停止条件后重新初始化


本文凡亿教育原创文章,转载请注明来源!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论