【科普贴】I2C接口详解——偏硬件解析

这篇具有很好参考价值的文章主要介绍了【科普贴】I2C接口详解——偏硬件解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 I2C接口简介

I2C最早是Philips公司开发的一款简单的双向总线,实现有效的IC控制。把这个总线写成Inter IC 简称IIC或I2C(PS:说白了2就是两个“I”的意思。)
I2C总线一些特征:
1、 只有两根线分别是串行数据线(SDA),串行时钟线(SCL)。
2、 每个连接到总线的器件有唯一一个地址。
3、 总线中可以存在一个主机多个从机的模式,也存在多个主机的模式(实际应用非常少,本文不做累述)。
4、 使用串行8位双向数据传输方式。有标准模式(Standard mode)传输速度达100kbit/s;快速模式(Fast mode)传输速度达400kbit/s;超快速模式(Fast mode Plus)传输速度达1Mbit/s;高速模式(High speed mode)传输速度达3.4Mbit/s。通常多用到标准模式。
5、 总线上的设备数量只受到总线电容(Bus capacitance)小于400pf的限制。
6、 可以使用普通GPIO口模拟I2C,但要需要将GPIO配置成OD模式(开漏模式)

二、I2C位传输规则

1、起始信号&停止信号
起始条件:当SCL为高电平时,SDA从高电平向低电平切换。
停止信号:当SCL为高电平时,SDA从低电平向高电平切换
【科普贴】I2C接口详解——偏硬件解析
2、数据的有效性
I2C信号为电平采样信号(其他很多协议都是信号沿采样,如SPI)。规定SDA上的数据在SCL高电平周期内保持稳定,在SCL低电平周期内允许变化。
【科普贴】I2C接口详解——偏硬件解析
3、响应时钟信号(ACK)
数据传输必须带响应 相关的响应时钟脉冲由主机产生 在响应的时钟脉冲期间发送器释放SDA线(高)。
在响应的时钟脉冲期间接收器必须将SDA 线拉低使它在这个时钟脉冲的高电平期间保持稳定的低电平。
通常,被寻址的接收器在接收到的每个字节后,必须产生一个响应。
当从机不能响应从机地址时,例如它正在执行一些实时函数不能接收或发送。从机必须使数据线保持高电平,主机然后产生一个停止条件终止传输或者产生重复起始条件开始的传输。
如果从机接收器响应了从机地址但是在传输了一段时间后不能接收更多数据字节,主机必须再一次终止传输,这个情况用从机在第一个字节后没有产生响应来表示,从机使数据线保持高电平,主机产生一个停止或重复起始条件。
【科普贴】I2C接口详解——偏硬件解析
4、地址格式
在发送起始信号后,主机会发送一个从机地址,这个地址共有7位。紧接着第8位(R/ W)“0”表示“写”,“1”表示请求数据“读”。
第一个字节的头7位组成了从机地址最低位(LSB)是第 8 位,它决定了报文的方向
第一个字节的最低位是“0”表示主机会写信息到被选中的从机“1”表示主机会向从机读信息
当发送了一个地址后,系统中的每个器件都在起始条件后将头7位与它自己的地址比较 如果一样,器件认为它被主机寻址,至于从机是接收数据还是发送数据都由 R/ W 位决定。
【科普贴】I2C接口详解——偏硬件解析

三、I2C电气特性标准

I2C通讯的时候需要注意时序是否满足条件,特别注意建立时间,保持时间等时序。如出现问题需要测试波形与表格中的电气特性进行详细对比。

【科普贴】I2C接口详解——偏硬件解析【科普贴】I2C接口详解——偏硬件解析

四、I2C上拉电阻选择

1、SDA和SCL都是双向的线路,都是通过一个电流源或者上拉电阻接到电源电压,这个电流源的最大值为3mA。
2、开漏状态下有3mA的反向电流,SDA,SCL的低电平的最大值为VOL(max)=0.4V。(I2C协议中可以看到)
通过上述既可以得到:
【科普贴】I2C接口详解——偏硬件解析【科普贴】I2C接口详解——偏硬件解析
3、最大上拉电阻的受到上升时间和负载电容的响应,具体的计算公式见下,具体的tr可在电气特性表中找到
【科普贴】I2C接口详解——偏硬件解析【科普贴】I2C接口详解——偏硬件解析
所以说有些人说I2C的标准上拉电阻是2.2K是不正确的。文章来源地址https://www.toymoban.com/news/detail-467142.html

到了这里,关于【科普贴】I2C接口详解——偏硬件解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 HAL FreeRTOS 硬件I2C 使用

    因为某个项目想要颜色识别,去识别球的颜色,但是又不想多来个摄像头,所以想尝试一下颜色传感器的方案。但是经过尝试,HAL库生成的 FreeRTOS 硬件 I2C 读写一直在报错。 刚好手头上有九轴陀螺仪的例程代码。最后用FreeRTOS 硬件 I2C 读取数据。 这里提到了阻塞式 HAL 函数(

    2024年02月20日
    浏览(43)
  • STM32 SHT40驱动源码(使用硬件I2C)

    目录 简介: SHT40.c: SHT40.h 测试结果:         SHT40是瑞士Sensirion公司推出的第四代温湿度传感器,内部集成加热器用于去除表面微小液滴。集成I2C接口,典型的相对湿度精度1.8%RH,典型温度精度0.2℃,运行在0-100%RH和-40-125℃的环境中。 主控:STM32H7B0VBT6 平台:STM32CubeIDE SHT4

    2024年03月19日
    浏览(61)
  • GD32 单片机 硬件I2C死锁解决方法

    在I2C恢复函数下个断点(检测到I2C多次超时之后,应该能跳转到I2C恢复函数) 使用镊子,将SCL与SDA短接,很快就能看到程序停到恢复函数的断点上,此时再执行恢复函数,看能否正常走出(可在回复函数中写个死循环,只有I2C正常才跳出,检测I2C正常的办法,可以读从设备的

    2024年02月05日
    浏览(51)
  • STM32F407系列硬件I2C笔记

    STM32F407系列有3个硬件I2C: I2C1:该接口位于GPIOB引脚上,包括PB6(I2C1_SCL)和PB7(I2C1_SDA)。 I2C2:该接口位于GPIOB引脚上,包括PB10(I2C2_SCL)和PB11(I2C2_SDA)。 I2C3:该接口位于GPIOA和GPIOC引脚上,包括PA8(I2C3_SCL)和PC9(I2C3_SDA)。   硬件I2C的速度比软件I2C更快,硬件I2C通常可以

    2024年02月04日
    浏览(40)
  • STM32 硬件IIC 控制OLED I2C卡死问题

    #更新通知:2023-09-06 STM32L151 固件库 使用I2C 太难了,又宕机了,建议不要在固件库版本上尝试硬件IIC 了,一般人真用不了,直接使用软件模拟的,或者不要使用固件库了,用HAL 库吧,据说HAL 库没这么多问题,不死心的我还是死心了,等有空再研究吧 3.1 I2C模式,我这里选的

    2024年02月09日
    浏览(38)
  • S32K3系列 --- 硬件I2C Mcal配置

    网上看到很多I2C的教程,基本都是模拟I2C,现在S32K3的芯片支持硬件I2C,我想着就配一个硬件的出来吧,这边记录一下,供大家学习。 这里主要教大家如何去配置,去使用。 原理的话可以参考这篇文章: 一文搞懂I2C通信总线_i2c通信的详细讲解-CSDN博客 I2C时序 这里我们用I2C与

    2024年01月18日
    浏览(34)
  • 嵌入式中I2C 相关的硬件问题汇总及死锁解决办法

    本文主要介绍如何解决I2C设备硬件设计上的各种问题,希望对大家有所帮助! 关于I2C协议详细的讲解,可以参考之前的推文:全面解析 I2C 通信协议 一般情况下, i2c 设备焊接没什么问题,按照设备手册一步步来,基本上就顺风顺水能够用起来。如果这么一个简单的东西,有

    2024年02月19日
    浏览(52)
  • STM32配合cubeMX硬件I2C驱动0.96寸OLED

    目录 一、简单介绍 1.1   OLED 1.2   I2C协议 二、实战 2.1 工程配置 2.2 测试工程 2.3 波形分析 三、驱动OLED 3.1 初始化代码 3.2 清屏函数 3.3 设置坐标函数 3.4 显示字符函数 3.5 显示字符串函数 3.6 显示图片函数 附录 驱动代码文件 oled.c oled.h f6x8.h 有机发光二极管 (英语:Organic

    2024年02月08日
    浏览(52)
  • 【STM32】STM32学习笔记-硬件I2C读写MPU6050(35)

    I2C(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。 串行的 8 位双向数据传输位速率在标准模式下可

    2024年01月25日
    浏览(49)
  • 01_STM32软件+硬件I2C读取MPU6050(HAL库)

    目录 1、I2C简介 2、I2C时序单元 2.1 起始条件 2.2 终止条件 2.3 发送一个字节 2.4 接收一个字节 2.5 发送应答 2.6 接收应答 3、I2C完整时序 3.1 指定地址写一个字节 3.2 当前地址读一个字节 3.2 指定地址读一个字节 4、简单软件I2C代码(HAL) 4.1 软件I2C 4.2 软件I2C读MPU6050寄存器 5、ST

    2024年04月17日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包