技术文章—有关I2C隔离器的六大设计问题

2019-05-20来源: EEWORLD作者: 德州仪器Anthony Viviano关键字:I2C

1.什么情况下需要隔离I2C?

 

隔离可防止系统两个部分之间的直流电和异常的交流电,但仍然支持两个部分之间的信号和电源传输。隔离通常能够阻止电气组件或人员遭受危险电压和电流浪涌的伤害;用于保护人员的隔离称为增强型隔离。I2C已成为许多系统中流行的全球标准;因此,隔离I2C已经扩散到大多数高压市场。

 

常见的隔离I2C应用包括:

 

网络和服务器电源中的微控制器(MCU)到MCU通信。

 

汽车电池管理系统和医疗系统中MCU到模数转换器通信。

 

以太网供电系统中的MCU到供电设备控制器通信。

 

MCU与电流/电源监控系统的通信。

 

2.是否可以在数字隔离器上连接两个单向信道,以实现I2C通信的双向信道?

 

不可以,连接两个相反方向的单向信道不会产生双向信道。如果用数字隔离器替换隔离I2C器件,数字隔离器将闩锁到单一状态并变得无响应。使用数字隔离器实现隔离I2C总线需要外部组件。有关如何使用标准数字隔离器实现隔离I2C的更多信息,请参阅模拟设计期刊文章“使用数字隔离器设计增强型隔离I2C总线接口。”此外,E2E社区隔离论坛主题中更详细地说明了为什么数字隔离器在双向I2C应用中无外部组件的情况下将闩锁到单一状态。

 

3.ISO1540和ISO1541隔离I2C器件的电流消耗是多少?

 

ISO154x数据手册中的表6.10列出了不带任何上拉电阻的ISO1540和ISO1541的电流消耗。添加上拉电阻时,电阻会消耗额外的电流。例如,在SDA2/SCL2处向器件添加1kΩ的上拉电阻,在SDA1/SCL1处添加10kΩ的上拉电阻,VCC1 = VCC2 = 5 V时,上拉电阻消耗的额外电流将对于SDA1/SCL1为约为5mA,对于SDA2/SCL2约为0.5 mA。

 

对于需要更低功耗的隔离I2C应用,超低功耗ISO7041可以替代ISO7731器件,如模拟设计期刊文章中第2个问题所述。ISO70xx的功耗将比ISO77xx器件提升一个数量级。

 

4.建议什么逻辑高低输入电压电平应用于ISO1540和ISO1541隔离I2C器件?

 

表1列出了ISO1540 and ISO1541器件1侧和2侧输入的推荐逻辑输入电压电平。

Side1

 Side2

VIL1 < 0.5 V

VIL2 < 0.3*VCC2

VIH1 > 0.7*VCC1

VIH2 > 0.7*VCC2

表1:ISO154x输入电压电平

 

5.为什么ISO1540和ISO1541双向I2C隔离器的1侧上的逻辑低电平输出电压VOL1高达0.8 V?

 

为了实现隔离I2C器件的双向功能,器件需要设计有两个背靠背连接的单向信道,以实现单个双向信道。直接连接两个单向信道会导致锁定情况,两个信道都是低电平。为避免这种情况,1侧输出端的二极管使1侧输出信道的低电平输出看起来像1侧输入信道的高电平。图1显示了二极管的位置。

 


 

图1:ISO154x简化原理图

 

由于该二极管,VOL1的电压最高可达0.8 V.当2侧检测到2侧为低电平时,1侧将打开场效应晶体管,使二极管导通,产生非零正向电压。ISO154x器件中的阈值经过精心设计,可确保双向信道平稳运行 - 只要VOL和VIL规范符合ISO154x数据表中表6.9.所示的ISO154x器件阈值即可。这种方法已成为业界用于实现双向I2C功能的常见做法。低逻辑电平的非零电压仍将与I2C规范兼容。

 

请注意,这仅适用于VOL1。由于器件的2侧不需要二极管,因此VOL2最大值为0.4 V,这在大多数数字隔离器中很常见。

 

6.如何为I2C隔离器构造隔离型电源?

 

为I2C隔离器构造隔离型电源有几种可选的方法;最佳解决方案须视具体的应用需要而定。

 

一个选择是使用 SN6501这样的变压器驱动器,此种驱动器可用于具有次级侧变压器和可选整流低压差稳压器的推挽式配置(图 2)。SN6501的功率高达1.5 W,可作为隔离型电源。此设备具有高度灵活性,几乎可用在所有应用中。这是因为变压器和匝数比能为电源提供必要的隔离等级和输出电压。如果您需要为其他设备提供隔离电源,则可使用SN6505而不是SN6501,获得高达5 W的输出功率。SN6505具有额外的保护特性,例如过载和短路、热关断、软启动和压摆率控制等,方便设计人员构筑稳健的解决方案。

 

 

图2:采用ISO1541的信号和电源隔离I2C解决方案

 

另一个针对空间受限应用的可选方法是ISOW78xx系列器件,该系列可在小外形集成电路16引脚封装中提供信号和电源隔离特性。ISOW7842还可以与外部组件结合使用。图3提供了具有双向数据和单向时钟的系统解决方案示例,当使用一些额外组件进行修改时,可以支持双向数据和时钟信号。

 

 

图3:采用ISOW7842的信号和电源隔离I2C解决方案

 


关键字:I2C 编辑:muyan 引用地址:http://news.eeworld.com.cn/qrs/ic462219.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:技术文章—详解C程序(源代码)是如何运行在硬件上的
下一篇:面向物联网生态,RT-Thread加强同意法半导体合作

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

如何使用示波器解决I2C通信开发中遇到的问题
I2C总线是PHLIPS公司上世纪80年代推出的一种两线式串行总线,最初为音频、视频设备所开发,如今则多在各种嵌入式系统中用于连接微控制器及其外围设备。I2C总线仅需采用两根通信线(一根为串行数据线“SDA”,一根为串行时钟线“SCL”),而传输速率在高速模式下可达3.4Mbit/s,并且是多主总线。每一个挂接在I2C总线上的I2C器件均可通过唯一的地址进行访问。在嵌入式系统开发中应用I2C总线可有效缩减元器件面积、改善抗干扰能力及增强设计的兼容性。当然,在享受其设计便利性的同时,信号的复杂性也将提高系统调试的难度。本文阐述了在实际开发中所遇到的I2C通信问题及使用示波器分析问题和解决问题的方法。分析过程中采用了RIGOL公司最新
发表于 2019-11-15
如何使用示波器解决I2C通信开发中遇到的问题
AVR I2C通信程序
;   uchar i=0;        SCL_1;        delay();        while((SDA_Return())&&(i<250))i++;        SCL_0;        delay();}void I2C_init(void){        SDA_1;        delay
发表于 2019-11-14
stm8 调试硬件I2C心得
这次调试stm8的硬件真是艰辛,没有想到这样恼火!整整搞啦 我5天的时间,参考网上很多例子和风驰的stm8讲解!和自己的实践,终于搞通啦!特将自己在调试过程中一些心得希望的大家分享。由于本人水平有限也希望大家指出不足和错误的地方!Stm8不需要专门配置GPIO口,执行初始化就可以啦!有些stm8需要打开EEPROM设置I2C(看官方文档)。Stm8主要靠SR1和SR3状态寄存器判断I2C的情况(while(!XXXXX)就是出自这里),多半大家调不通!就是卡在这里(需要注意的是 寄存器有些位,只要读寄存器就可以清除,在仿真的时候,最好不要打开寄存器页面)。这里分软故障和硬故障:首先是硬故障: 一般是stm8芯片IO口坏
发表于 2019-11-12
STM8L驱动I2C类型的12864
原理之前没有操作过12864这种类型的屏,但是,操作过其他类型的,原理都是相通的。12864是拥有128x64像素点这类屏幕的称号吧。屏幕有64行,128列;每个汉字是16x16,所以一个这样的屏,最多可以显示4x8的汉字或者8x16的字符。我使用的是不带字库的I2C接口的屏幕,主芯片是ST7656。这样的屏,只能写,不能读。先配置屏幕,然后通过字模制作软件制作出待显示内容的像素数字,最后,通过数据线传送给屏幕显示。了解了原理后,接下来就根据主芯片的数据手册进行配置屏幕就好了。硬件连线CS:片选RST: 复位RS:数据或命令选择SDA:I2C数据线SCL:I2C时钟线I2C采用的是软件模拟的底层写操作#define
发表于 2019-11-11
STM8S003的GPIO模拟I2C切换输入输出的解决办法
刚开始学STM8,很多东西刚了解,正在做一个温湿度显示小板,就是使用I2C驱动SHT20传感器,并显示到数码管,数码管用的四位一体共阴数码管,STM8管脚有限,添加了一片TM1650做驱动,不过SHT20和TM1650都是用的I2C接口,由于对STM8硬件I2C还不了解,先打算用软件模拟,这就涉及到需要对GPIO做输入输出切换处理来检测ACK响应,刚开始,直接操作DDR寄存器,但是出现从输出切换到输入就会出现单片机死机,不解,查资料,得到一个解决办法,在输出状态时,可以不用切换到输入,我使用管脚D4,D5这两个管脚,这两个管脚比较特殊,就是真正开漏,在管脚描述为T,其它描述为HS(高吸收电流)。解决办法,将IO设置为开漏输出,外部
发表于 2019-11-11
STM8 I2C从机
宏定义#define SLAVE_ADDR 0x51#define I2CSPEED 400000 //i2c速度stm8l051 i2c从机初始化    /* I2C  clock Enable*/    CLK_PeripheralClockConfig(CLK_Peripheral_I2C1, ENABLE);    I2C_DeInit(I2C1);    I2C_Init(I2C1, I2CSPEED, SLAVE_ADDR ,        I2C_Mode_I2C
发表于 2019-11-11
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved