IIC的原理和在设计中遇到的问题

IIC的原理
现在大部分的外设控制信号都是用 IIC 信号,IIC 信号主要的优点是可靠,简单,兼容 性好。IIC 有握手协议,还是时钟线同步信号线,通信的准确率是 100%的,一个总线可以挂 多个设备,节省 IO 口。协议只需要读取两个 IO 口的点平,很容易用软件模拟 IO 口的方式 实现,所有控制器芯片都可以使用。IIC 可以跑各种各样的速率,只要 IO 口足够快,几乎所 有的速率都可以跑。所以 IIC 是所有外设控制信号的首选。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
IIC 调试常见的问题:

  1. 连接到控制芯片的 IIC 的序号。控制芯片 IIC 有可能有几个通道,需要确认该外设 IIC 连接到控制芯片的序号。
  2. 外设的 IIC 速率。有时候外设的 IIC 速率是比较低的,要注意控制芯片的速率不能高于 外设的规格书。
  3. 连接到控制芯片的不同外设的 IIC 地址不能一样。IIC 地址一样,外设会冲突。并且注 意 IIC 规格书是 8 位地址还是 7 位地址。
  4. 连接到控制芯片的 IIC 设备不能相互干扰。有些时候 IIC 设备上电时,会出现瞬间脉冲 干扰 IIC 信号。而连接同一路 IIC 的设备有可能由于该设备的 IIC 脉冲干扰而陷入死循环,从 而把 IIC 拉死。如果是主控拉死,可以通过复位主控的 IIC 可以恢复。就是在机器 在上电外设之后(确认是那种会拉死 IIC 的外设),都对主控的 IIC 进行复位。 如果是外设 拉死 IIC,一般是没有办法解决。只能尽量避开这种现象,采用的原则是哪个外设会拉死 IIC, 那个外设要放在最后面上电。
  5. 有些时候,外设对于 IIC 的信号要求比较高,一般来讲,IIC 传输数据位,时钟线在低 的时候,数据线应该要先预设好要传输的电平。如下图
    在这里插入图片描述
    数据变化的时间最好是时钟电平的中心位置。有些主控默认的不是这样子,这样会导致一些 器件误判把数据位判断为起始位或者结束位。
  6. 有些外设的 IIC 命令之后,要做适当的延时才能下另外的命令。否则会出错。因为外 设收到 IIC 命令之后,要执行命令,执行命令需要时间。不同外设执行不同命令的需要延时 都是不一样的。往往这种信息在规格书都是没有说明的,而且出现的问题也都是概率性的, 只能调试的时候注意去检查 。
  7. IIC 的访问一般只跟硬件关联,硬件通了,IIC 就可以访问。所以调试 IIC 一般要看下供 给外设的电源电压是否正确,时钟频率和幅度是否对,IO 口电平是否正常。
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IIC(Inter-Integrated Circuit)是一种串行通信协议,常用于连接微控制器和外设芯片之间的通信。它是由飞利浦(Philips)公司开发的,现在已经成为一种广泛应用的标准。 IIC通信的原理和过程如下: 1. 总线结构:IIC通信使用两条线路构成总线,分别是数据线(SDA)和时钟线(SCL)。所有的设备都通过这两条线路进行通信。 2. 主从模式:IIC通信,有两种设备角色,分别是主设备(Master)和从设备(Slave)。主设备负责发起通信请求,而从设备则被动响应主设备的请求。 3. 起始和停止条件:通信开始前,主设备发送起始条件(Start Condition),即将SDA从高电平拉低后再将SCL从高电平拉低。通信结束时,主设备发送停止条件(Stop Condition),即将SDA从低电平拉高后再将SCL从低电平拉高。 4. 地址传输:主设备在起始条件后会发送一个7位的设备地址和一个读/写位(R/W)位,用于选择要通信的从设备。地址的最高位是固定为0,其余7位由从设备决定。 5. 数据传输:主设备和从设备通过时钟线同步数据传输。在每个时钟周期,数据线上的数据可以被读取或写入。主设备通过发送时钟信号来控制数据传输的速度。 6. 确认信号:在每个字节的传输结束后,接收数据的一方(无论是主设备还是从设备)都会发送一个应答信号(ACK),表示成功接收到数据。 7. 重复起始条件:在多个字节的传输过程,主设备可以选择发送重复起始条件,而无需发送停止条件。这样可以在不释放总线的情况下选择与另一个从设备进行通信。 8. 时钟速率:IIC通信的时钟速率可以根据具体的应用需求进行调整,通常有几十kHz到几百kHz的范围。 总之,IIC通信通过两条线路进行串行数据传输,采用主从模式,并且具有起始条件、停止条件、地址传输、数据传输、确认信号等特点。这种通信协议在许多嵌入式系统和电子设备得到广泛应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值