I2C总线协议工作原理简述

发布时间:2024年01月20日

前提:SDA和SCL接上拉电阻;时钟线始终由主机持续产生恒定频率的信号

开始:主机在SCL为高电平时下拉SDA;

主机往从机传输数据:主机在SCL低电平时写数据(置0/置1),SCL高电平时从机读数据,如此进行8次,当一个字节(共8位)传输完成时,数据接收方(从机)返回一个ACK应答信号;

ACK信号:数据接收方拉低SDA代表接收到了;

从机往主机传输数据:从机在SCL低电平时写数据(置0/置1),SCL高电平时主机读数据,如此进行8次,当一个字节(共8为)传输完成时,数据接收方(主机)返回一个ACK应答信号;

结束:主机在SCL为高电平时上拉SDA;

小细节:I2C通信,stm32端口输出设置为开漏输出,不是推挽输出.

推挽输出情形,当主机释放SDA(置1)时,SDA相当于接到了VCC,从机无法实现下拉;

开漏输出情形,SDA高电平由上拉电阻(弱上拉)实现,从机可以实现下拉电平.

文章来源:https://blog.csdn.net/weixin_46855342/article/details/135685255
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。