与模拟 I2C 结合的硬件 I2C

      最后更新:2021-11-03 14:09:51 手机定位技术交流文章

      综合电路(Inter-Inter-Inter-Inter-Inter-Cirective)公交车是两线系列公交车,由PHLIPS设计,用于连接微型线路。

      CPU与索赔的IC之间的双向数据通信,以及IC与IC之间的双向数据通信,使用高速ICC公共汽车。

      高达400kbps或以上。

      连接I2C通讯设备的普及方式:

      STM32的外部 I2C 主机和服务器, 支持 7 和 10 位设备地址, DMA 数据传输, 以及

      这是对SMBus2.协议0的I2C外部支持,SMBus协议相当于I2C,主要适用于笔。

      笔记本手册无法用于膝上型计算机电池管理,但感兴趣的读者可在SMBus20文件中找到。

      I2C 硬件 I2C 响应芯片上外部的I2C,配有适当的 I2C 驱动电路,而 I2C 管脚的使用同样是专业化的,因此是有效的。

      对于软件模拟而言,这个费率大大高于I2C;它通常也比较可靠,但这种方法比较繁琐。Hardware(硬件) I2C是直接调用。

      建立了部门登记册;软件I2C缺乏登记册的概念。

      软件I2C通常控制SCL、用于高低电解输出的SDA线,并使用GPIO管脚复制i2c协议的时间序列。

      例如,在I2C信号的开始和结束时,我们可以模拟:

      I2C接线
      GPIO引脚 模拟I2C引脚
      GPIOB11 SDA
      GPIOB12 SCL

      代码如下:


      同样,我们可以根据波模式读写字节函数,并封装更复杂的操作(发送指令等)。

      硬件 i2c 程序程序员只是调用 i2c 控制功能, 不直接操作 SCL、 SDA 或低水平输出 。

      然而,一些单一影片装置的硬件i2c并不可靠,调试也比较困难。

      主要对比:

      一. 硬件国际独立调查委员会的利用更为复杂,国际独立调查委员会的模拟程序更为明确。

      2. Hardware IIC比模拟更快,可与DMA结合使用。

      3. 可在任何管脚上模拟IIC,而硬件只能模拟在管脚上。

      ①I2C通讯引脚

      STM32芯片有若干I2C配置,其I2C通信信号导致不同的GPIO触发器,这些触发器在使用时必须适应这些声明的触发器。

      ②数据控制逻辑

      I2C 的SDA 信号主要与数据传输登记册连接。 当数据发送出去时,数据转换登记册被用作数据源,通过SDA信号线逐个发送数据;当从外部收到数据时,数据移动器将数据从SDA信号线样本储存到数据保存器中的数据。如果数据可以核实,收到的数据将由PCE计算器计算,结果储存在 PEC 登记册中。 当STM32 I2C 从机器模式中工作并接收设备地址信号时,数据传输登记册将收到的地址与STM32 自己的I2C 地址登记册的价值进行比较,以便对主机位置作出反应。 STM32 自己的 I2C 地址可以修改,修改自己的地址登记册,以支持使用两个I2C 设备地址,这些地址分别储存在 OAR1 和 OAR2 。

      ③时钟控制逻辑

      I2C 由独立的时钟源计时, 它允许它独立于 PCLK 频率独立运行。 这个独立的时钟可以指定给 SYSCLK 系统。 I2C IO 提供一个 20 m2 输出流驱动快速模式操作, 由 ScL 和 SDA 脚驱动完成。 SCLH 和 SCLL 的 I2C 时钟必须在启用前在 I2C- TIminGR 登记册中配置 。

      SDA 和 SCL 时钟的配置公式如下:

      I2C 频率钟周期后: tPRESC = (PRESC+1) * tI2CCLK

      当SDA数据在传输模式中准备就绪时,SCL会升至输入的延迟:tSCLDEL = (SCLDEL+1) *tPRESC

      当 SL 在传输模式下传时改变 SDA 数据所需的时间: tSDADEL = SDADEL x tPRESC

      tSCLH = (SCLH+1) x tPRESC SCL 高级别时间

      短链氯化石蜡的低水平持续时间: tSCLL = (SCL+1) x tPRESC

      tI2CCLK的时钟周期是I2C,通过PRESC、SCLDEL、SDADEL、SCLH和SCLL来控制I2C-TIminGR登记册。

      在使用基于I2C的通信时,它为不同通信阶段的“国家记录员(ISR)”的不同数据位谱写参数,我们通过阅读这些登记信号来理解通信状态。

      I2C 主机以以下格式传输数据流图(例如,发送的数据的两字节) :

      I2C主机传输数据流如下:

      主计长制作启动信号(S),发送设备地址,等待返回信号(A)。
      如果设备地址成功传输, 事件“ EV1” 就会发生, I2C_ ISR 注册的“ TXIS” 位数将设置为 1, 以显示设备地址被正确传输 。
      随后将发送的数据写入I2C数据登记册TDR数据1,而答复信号(A)正在等待。
      当数据传输时,会创建事件“EV2”, I2C_ISR 登记册的“TXIS”位数设为 1, 以示数据已成功传输 。
      数据 1 发送后, 数据 Data2 以同样方式发送, 此程序可以多次发送多个 bytese additionalta 1 发送, 数据 Data2 以同样方式发送, 此程序可以重复多次发送多个 字节 。
      当数据传输时, I2C 设备以自动停止模式生成停止信号,表示通信的结束。一旦数据传输完成,即创建事件“EV3 ”,在这种情况下,I2C_ISR 登记册的“TC” 位置设置为 1, 以表明数据传输已完成, 软件要么重新启动交付, 要么关闭通信 。
      I2C主机以下列格式(例如,两个字节)接收数据流图:

      I2C主机接收程序:

      主机发送启动信号(S),然后发送设备地址,等待响应信号(A)。
      当主机获得数据1, 发生“ EV1” 事件, I2C_ ISR 登记册的“ RXNE” 位置设置为 1 时, 显示接收的数据登记册不是空的。 然后我们可以读取登记册中的数据, 当读取时, 我们控制 I2C 传输响应信号( A) 并继续接收数据 。
      数据2的接收方式相同,重复这一程序可以收到许多字节。在收到数据后,控制 I2C 提供无响应信号,表示传输应终止。
      当收到数据时, I2C 设备生成一个停止信号, 以自动停止模式标记通信的结束。 收到数据后, 事件“ EV3” 被创建。 此时, I2C_ ISR 登记册的“ TC” 位置被设为 1, 以信号显示数据传输已经完成, 程序可以选择重新启动发送或关闭通信 。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/12690.html

          热门文章

          文章分类