F物的自我救赎(笑) 2023-02-25 17:32 采纳率: 73.8%
浏览 35
已结题

关于#stm32#的问题:IIC的空闲状态只能有外部上拉, 而此时空闲设备被拉到了高阻态,也就是相当于断路, 整个IIC总线只有开启了的设备才会正常进行通信

问题:i2c的高电平与高阻态迷惑

我们知道IIC的所有设备是接在一根总线上的,那么我们进行通信的时候往往只是几个设备进行通信,那么这时候其余的空闲设备可能会受到总线干扰,或者干扰到总线,怎么办呢?

为了避免总线信号的混乱,IIC的空闲状态只能有外部上拉, 而此时空闲设备被拉到了高阻态,也就是相当于断路, 整个IIC总线只有开启了的设备才会正常进行通信,而不会干扰到其他设备。

问题在于,SDA与SCL总线都外接了一个上拉电阻,这不应该是给予了一个高电平而不是高阻态了吗?

img

  • 写回答

2条回答 默认 最新

  • 路漫漫其修远. 博客专家认证 2023-02-25 18:32
    关注

    在IIC总线上,每个设备都需要有一个唯一的7位或10位地址,以便其他设备能够找到它。当一个设备不需要与其他设备通信时,可以通过设置自身地址为0x00,使其在总线上保持静默。这样可以避免该设备向总线发送干扰信号,同时也可以避免总线向该设备发送干扰信号。

    此外,还可以采取以下措施来减少总线干扰:

    • 合理布局PCB,降低总线线长、线宽、线间距等参数,以减少信号的串扰和互相干扰。
    • 在总线的两端加上电阻和电容等元器件,以防止信号反射和抑制干扰。
    • 选择合适的总线驱动芯片和总线保护器件,以提高总线的抗干扰能力和可靠性。
    • 在设计中考虑使用总线控制器或者操作系统的IIC驱动程序,以便更好地管理总线的访问和使用。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月6日
  • 已采纳回答 2月26日
  • 创建了问题 2月25日

悬赏问题

  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答