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

发布者:EEWorld资讯最新更新时间: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 引用地址:技术文章—有关I2C隔离器的六大设计问题

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

推荐阅读最新更新时间:2024-11-11 06:33

STM8 I2C的学习
STM8的I2C接口 1、I2C模式选择 接口有4种模式:从设备发送模式;从设备接收模式;主设备发送模式;主设备接收模式。 默认条件下,I2C模块工作于从模式。接口在产生起始条件后自动地从从模式切换到主模式;当仲裁失败或发送STOP信号时,则从模式切换到从模式。 2、通信过程 主模式时,I2C接口启动数据传输并产生时钟信号。串行数据传输总是以起始条件开始并以停止条件结束。起始条件和停止条件都是在主模式下由软件控制产生。 相关功能寄存器 1、I2C控制寄存器1(I2C_CR1) 2、I2C控制寄存器2(I2C_CR2) 3、I2C频率寄存器(I2C_FREQR) 允许的时钟范围在 1-24MHz 4、I2C自身地址寄存器LSB
[单片机]
STM32CubeMX学习教程之十:硬件I2C读写AT24C02
网上有流传已久一种说法,就是STM的I2C有bug,不好用。确实很多人在实际应用中都遇到了各种问题,所以绝大部分人都是在用软件模拟IIC。 有了STM32CubeMX,我们可以尝试使用硬件I2C了,官方的优化总不会有错了吧?(其实还是有个小bug,不过可以改过来的)。本文的目标就是使用STM32CubeMX的硬件I2C对麒麟座板载的AT24C02 EEPROM进行完整的读写操作。 软件版本: STM32CubeMX V4.25.0 System Workbench V2.4 固件库版本: STM32Cube FW_F1 V1.6.1 固件库版本: STM32Cube FW_F1 V1.6.1 硬件
[单片机]
STM32CubeMX学习教程之十:硬件<font color='red'>I2C</font>读写AT24C02
PIC单片机应用专题三:I2C读写24C02
自从开始学习单片机起,就觉得I2C是个很有用的东西,它能大大节省我们的端口,现把软件模拟的I2C程序写出来,既是给大家分享,也是为自己做一下备份.下面的程序是用I2C存储24C02: INCLUDE P16F5X.INC ;同样可用于其他型号 ;*************************定义变量************************ STATUS EQU 3H PORTB EQU 6H PORTC EQU 7H EEPROM EQU 08H ADDR EQU 09H
[单片机]
如何使用带有I2C和SPI解码的示波器排查系统问题
大多数基于微控制器的设计都使用I2C或SPI,或两者兼用,来实现控制器之间以及控制器与外围芯片之间的通信。当芯片发送特定的I2C或SPI数据包时,能够看到嵌入式系统内部的操作对于排除故障至关重要。许多管理相对较慢参数的芯片,如温度传感器、电机控制器、人机界面或电源管理等,都将这些总线作为与系统其他部分通信的主要手段。其他高速芯片,如通信集成电路、时钟和模数转换器,通常也通过这些总线进行配置。例如,在电源启动后排查冷却风扇问题时,查看发送到风扇控制器集成电路的SPI命令的时序和结构,以及风扇的驱动信号和电源,可能会有所帮助。 I2C和SPI总线定义明确且相对稳健,但仍然可能受到噪声、板级布局、复位问题以及实现上的微妙差异的影响。
[测试测量]
如何使用带有<font color='red'>I2C</font>和SPI解码的示波器排查系统问题
UART、IrDA、SPI、I2C MSP430学习
SPI、IIC、UART区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Sla
[单片机]
I2C之知(四)--I2C总线的7bit从机地址
时钟拉伸(Clock stretching) clock stretching通过将SCL线拉低来暂停一个传输.直到释放SCL线为高电平,传输才继续进行.clock stretching是可选的,实际上大多数从设备不包括SCL驱动,所以它们不能stretch时钟. 从字节级来看,一个设备可能在快速模式下接受数据,但是需要更多的时间来存储接收到的字节或者准备将要传输的另一个字节.从机可以以一种握手的处理方式在接受和应答字节后将SCL线拉低来强制使得主机进入wait状态知道从机准备好下一个字节的传输. 从位级来看,I2C总线上的设备可以通过增长每一个时钟的低周期来降低总线时钟.所以每个主机可以适应这个设备的内部操作速率. 在Hs模式,握
[嵌入式]
1.10.1_I2C_I2C协议与EEPROM_P
在2440开发板上,有两个接口SCL和SDA,其中SCL是时钟线,SDA是数据线,他们分别连接一个上拉电阻(控制SDA的电平和SCK电平),这两条线上挂载了许多设备,这些设备也有两条线,分别连接ARM的SCL和SDA。 那么我们怎么传输数据? 比如说和一个存储芯片连接,我们需要把数据发给它,也要从芯片里读取数据。 假设有一个老师和ABCD四个学生,假设老师要发球,那么他会这样做。 老师会告诉学生说,注意我要发球了(start) 然后老师会申明这个球要发给哪个学生,比如发给A,老师会说,A,我要把球给你了(地址方向,地址A,方向是从老师到A) 然后老师把球扔出来(传输) 最后A收到球了,他要告诉老师,老师我收到球了
[单片机]
1.10.1_I2C_I2C协议与EEPROM_P
stm32之i2C硬件驱动ht16c22
使用硬件i2c,驱动ht16c22,程序不稳定是肯定的,还是贴出来吧,项目中最好不要用。 文件i2c.h内容: #ifndef _STM32F103_I2C_H_ #define _STM32F103_I2C_H_ #include stm32f10x.h #define SlaveAddress 0x7e //0x7e //#define ModeSet 0b10001100 //80Hz,turn on sys and LCD bias,1/3 bias #define ModeSet 0x8C //80Hz,turn on sys and LCD bias,1/3 bias //#define VlcdAdjus
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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