0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C如何解决系统中遇到的实际问题

星星科技指导员 来源:TI 作者:TI 2023-04-08 10:36 次阅读

I2C是使主设备(例如处理器微控制器MCU)或专用集成电路ASIC))能够与同一双线总线上的其它外围设备通信的流行通信协议。一条线专用于数据传输,而另一条用于时钟信号。想象它就像一个双车道公路:每个车道都有汽车从一端流向另一端,就像数据包将从主设备(处理器、MCU、ASIC)传输到外围设备(温度传感器湿度传感器及其它设备)。

那I2C到底是什么呢……现在,为什么要使用它?I2C可以在同一总线上轻松实现多个外设 - 例如,使用各种传感器来监视服务器的温度。I2C协议实际上设计用于在单个总线上支持多个设备,而如串行外设接口(SPI)的其他协议的设计用于点对点单设备支持。双线I2C接口还可以帮助简化对四线SPI接口的布线,并减少通用输入/输出(GPIO)。

TI的用于构建I2C树状图的产品组合可以分为三个功能,如图1所示:缓冲转换器、I / O扩展器和I2C开关。

pYYBAGQw0yKAItdeAAB_sJVSyB0921.png

图1:具有各种I2C功能设备的电子系统

当您的设计在集成电路(IC)之间的长走线和/或电压失配时遇到劣化信号时,I2C缓冲转换器可以帮助您。例如,如果您发现3.3V MCU I2C I / O和5V温度传感器之间存在电压失配,则可以使用I2C电压转换器(如PCA9306)。此外,对于长走线上的相同电压失配,您可使用缓冲转换器(如TCA9617B)来解决输出刷新信号时的电压差。

I2C I / O扩展器顾名思义 - 当选定的处理器无可用端口时,它们会扩展I / O数量,如图2所示。这些设备与标准GPIO扩展器不同,因为它们直接与I2C总线上的设备通信。该组合还提供了多种功能,具体取决于您的特定系统需求,例如通道数、复位引脚和电平转换。

poYBAGQw0yOAEFiFAABwff8Vf_k034.png

图2:微控制器或处理器使用I / O扩展器控制外设

I2C开关可以解决两个不同的问题。第一个问题与地址冲突有关。当同一总线上的两个设备具有相同地址时通常会发生冲突。如果系统在同一I2C总线上有两个温度传感器和两个湿度传感器,所有地址为0xFF - 一个I2C开关可以一次切换到单个传感器;见图3。第二个问题与功耗有关。I2C开关一次只为I2C总线的一部分供电,从而在不使用时保持总线的未使用部分掉电。

pYYBAGQw0ySAEbEPAACWKnxZSaY822.png

图3:具有八个通道的I2C开关示例

起初,互联网搜索将会告诉您,I2C使系统设计人员能够轻松实现鲁棒的系统控制。这一协议不仅有用,而且还具有很多设备功能,可令您的系统受益。您可以使用缓冲中继器、I / O扩展器和I2C开关来增强,扩展并修改I2C总线实现,以满足您的独特设计目标。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18496

    浏览量

    223234
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16090

    浏览量

    344461
  • asic
    +关注

    关注

    34

    文章

    1162

    浏览量

    119400
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1350

    浏览量

    121036
收藏 人收藏

    评论

    相关推荐

    i2c总线规范

    ? 快速模式器件的斜率控制和输入滤波改善了EMC 性能注意100kbit/s 的I2C 总线系统或100kbit/s 器件都没有改变1.2 版本2.0-1998I2C 总线实际上已经成
    发表于 08-13 17:18

    I2C规范,I2C总线原理

    ................................................... 3518 F/S 模式I2C 总线系统的双向电平转换器
    发表于 04-09 18:34

    I2C总线实际应用隐藏的一些问题的探讨

    I2C总线实际应用隐藏的一些问题的探 I2C 如今已经成为芯片间低速串行通信的事实标准,被广泛使用在消费、控制类电子设备场合。本文就实际
    发表于 10-20 11:52

    基于CPLD的系统I2C总线的设计

    基于CPLD的系统I2C总线的设计
    发表于 08-17 11:17

    到底什么是I2C

    之间的通信链路。这一解释已经很清楚了,但我还有更多的问题:它究竟是什么?什么类型的设备使用I2CI2C如何帮我解决系统遇到
    发表于 07-23 04:45

    I2C总线简介

    定居下来。实际上,这些缩写是指系统管理总线,它与I 2 C总线不同,尽管几乎相同。最初的I
    发表于 09-06 10:16

    I2C不迷茫--系列文章讲透I2C

    这篇文章给大家带来了I2C系列的合集,可以系统学习I2C协议。大家赶紧看看吧!1、I2C总线:何时使用I2C缓冲器本文讨论了使用
    发表于 09-22 09:31

    何解i2c设备主机与从机直接无法正常数据交互的问题

    手册,甚至发送和接收的每一条命令与数据都知道是什么意思,仍然无法解决问题,那该怎么办呢?  本文主要针对 i2c 设备,讲解如何解i2c 设备主机与从机直接无法正常数据交互的问题,侧重点是针对硬件
    发表于 12-30 07:49

    I2C简介

    与 SMBus 2.0 兼容。它可以用于多种用途,包括 CRC 生成和验证、 SMBus(系统管理总线)以及 PMBus(电源管理总线)。根据器件的不同,可利用 DMA 功能来减轻 CPU 的工作量二.IIC物理层它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个
    发表于 08-10 08:10

    linux I2C系统的相关资料分享

    文章目录linux I2C系统框架在设备树添加从设备信息,mpu5060I2C driver 程序的编写mpu6050 I2C程序具体实
    发表于 02-10 06:06

    I2C到底能做什么?

    什么?什么类型的设备使用I2CI2C如何帮我解决系统遇到实际问题
    发表于 11-15 07:31

    最新版本的F4 STM32Cube FW DMA模式下的I2C问题求解

    _MEMADD_SIZE_8BIT),“hi2c->MemaddSize”的值仍然为 0。这会导致功能“HAL_I2C_Mem_Write_DMA”出现故障作为解决方法,我在 MX_I2C1_Init 函数
    发表于 12-30 08:55

    工具链/IDE项目中不支持的I2C CMSISDriver版本如何解决?

    FLEXCOM_I2C_CMSIS:“工具链/IDE 项目中不支持的 I2C CMSIS 驱动程序版本。要求:2.2.0,实际 2.3.0 ”为什么会这样,我该如何解决这个问题? 仅
    发表于 03-23 08:15

    Wemos D1 mini pro - GPIO16禁I2C是为什么?如何解决?

    可以打开和关闭 LED。问题出在 I2C 上。当我将 D0(GPIO16) 设置为输出时,I2C 接口停止工作。我无法与其他传感器通信。如果我再次将 D0 设置为输入,I2C 将再次工作。为什么 GPIO16 会干扰
    发表于 06-06 06:02

    I2C如何帮我解决系统遇到实际问题

    之间的通信链路。这一解释已经很清楚了,但我还有更多的问题:它究竟是什么?什么类型的设备使用I2CI2C如何帮我解决系统遇到实际问题
    的头像 发表于 12-19 16:00 1742次阅读
    <b class='flag-5'>I2C</b>如何帮我解决<b class='flag-5'>系统</b>中<b class='flag-5'>遇到</b>的<b class='flag-5'>实际问题</b>