跳到主要内容

AN-CM-285 I2C总线复用器

内容

术语和定义

2CInter-Integrated电路
SDA串行数据行
sci串行时钟线
附近地区查表
也不一种数字逻辑门,当两个输入为0时输出为真(1或高)

参考文献

有关文件及软件,请浏览:

//www.wsdof.com/configurable-mixed-signal

下载我们的免费GreenPAK软件设计师(1打开.gp文件[2],浏览建议的电路设计。使用GreenPAK开发工具(3.在几分钟内将设计冻结到您自己的定制IC中。雷竞技电竞平台Dialog Semiconductor提供完整的应用说明库[4],其中包括设计实例,以及对对话IC的功能和模块的解释。

  1. GreenPAK设计软件软件下载和用户指南,Dialog Semiconductor雷竞技电竞平台
  2. AN-CM-285 I2C总线复用器GreenPAK设计文件,对话框半导体雷竞技电竞平台
  3. GreenPAK开发工具GreenPAK开发工具网页,Dialog Semiconductor雷竞技电竞平台
  4. GreenPAK应用笔记GreenPAK应用说明网页,Dialog Semiconductor雷竞技电竞平台
  5. SLG46826V, Datasheet, 雷竞技电竞平台Dialog Semiconductor。

www.i2c.info

作者:Anas Ajaj

简介

在这个应用注释中,我们将阐明如何构建一个双向2位多路电路,可以与I一起使用2C线。该电路还具有额外的功能,如有需要,可作为电平移位器操作。设计是基于GreenPAK SLG46826V,尽管任何GreenPAK与I2C可以用于此目的。由于SDA和SCL线路的双向性,该设计可用于单主机或多主机I2C通信。

SLG46826V g派克是一种双轨集成电路,包含了构建适合I的双向多路复用电路所需的所有元素2C协议。g派克集成电路的使用使得外形系数小。除了已经实现的小尺寸外2C多路复用电路,GreenPAK还能够集成电路所需的振荡器和上拉电阻。

该设计已经针对真实世界的应用程序进行了优化,并且可以很容易地修改以适应读者系统的需求。

通过把它放在一个I中进行了检查2C网络由一块Arduino板和四个I组成2C-LCD屏幕,其中每个屏幕包含相同的I2C的地址。在GreenPAK IC的帮助下,每个屏幕都是单独写入的。

2C协议

连接两个或多个设备来传输和接收信息需要一个特殊的通信路径,由发送方和接收方共享的通信协议控制。集成电路总线,也被称为I2C,是一种非常常见的双向通信总线,使用两条线路在设备之间发送串行信息。

2C语言用于创建控制器和一组外设之间的通信网络。由于它效率高,易于操作,因此得到了众多电子传感器和执行器的支持。我的2C总线支持7位和10位地址空间设备,由两条信号线组成:SCL线和SDA线,用于与设备通信。SCL是“串行时钟”的缩写,它携带由主时钟驱动的时钟信号。SDA的意思是“串行数据”,在这种情况下,主服务器和从服务器都可以发送和接收数据。当I之间没有转移时2C外设,SCL和SDA线都被拉到VDD

我们可以使用I连接多达128个设备2C协议,所有共享相同的SCL和SDA线。一个小规模的例子显示在图1

对于不同的集成电路,系统通常需要几个不同的电源电压,而今天的外围设备通常在I的帮助下连接到微控制器2C路和I路2C电平移位器或I2c总线多路复用器解决兼容性问题。

图1:我2C网络图

2C总线多路复用器

在我2C网络中每个设备必须有一个唯一的不可重复的地址,以实现主和从设备之间的正确通信,但当许多传感器和外设组合在同一总线上时,可能会发生相同的I2C地址被分配给多个设备。为了解决这个问题,我们实现了一个独特的多路复用电路,它将具有相同地址的从站连接到通信总线,并且我们可以通过轮询输入交换通道。

我的2C总线多路复用电路是用于SCL和SDA总线的双向选择器,采用SLG46826双轨IC设计,构建了一个四通道输出多路复用电路,如图所示图2.SCL线的双向性,尽管单主机系统不需要,但确保了拓扑可以在多主机配置中使用,其中主主机(附加到的左侧)图2)可以仲裁二级主机(连接到地址的右侧图2)可以向主I发送命令2C网络。

图2:我2C总线多路复用IC图

GreenPAK设计

本设计主要包括两个部分;SDA线路复用器和SCL线路复用器。该电路的关键行为是SLG46826双向引脚的配置和灵活性,以及配置特定引脚是输入还是输出的OE(输出使能)逻辑。

SDA线多路复用器

在本部分中,根据输入A0和A1的状态,引脚3将连接到引脚7、13、15、16中的一个。这些输入被配置为数字输入/输出。输出类型是开放漏NMOS和输入拉到10 kΩ电阻。见图3NOR门控制每个引脚的OE‘输出使能’;当OE为“低”时,引脚成为连接到10K上拉电阻的输入,当OE为“高”时,引脚成为输出,是GND。

图3:SDA线路复用器设计

3位LUT7的输出连接到引脚3的OE上,3L8 NOR门的输出复用连接到引脚7、13、15、16的OE上。时间延迟块被配置为作为下降边缘延迟操作,因此生成NOR门的时间延迟。2位分复用器使用块3L3、3L4、3L5、2L2和2L3构建。

因此,当[A1A0] =[00]时,3L8输出通过引脚7,活动通道是0到3L3,而其余通道是输入拉到1。当[A1A0] =[01]时,3L8输出通过引脚13到3L4,当[A1A0] =[10]时,输出通过引脚15到3L5,当[A1A0] =[11]时,3L8输出通过两个and门2L3和2L2到引脚16。

图4:Pin 6属性

用块3L0、3L1、3L2构建2位多路复用电路;然后,它选择一个来自引脚7,13,15,16的输入信号,并将其传递到NOR门,以便稍后传递到引脚3 (SDA)。引脚4和5被配置为连接到下拉电阻的输入,然后通道0在初始状态下作为[A0A1] =[00]激活。

MF1和MF2是多功能块,可以配置为执行多个功能。在这个设计中,它们被用来产生一个时间延迟,另外,还被用来构造NOR门。每个计数器的“DLY IN”输入连接到NOR门输出。

图5:MF1(多功能块)配置

事件的设计顺序:

当总线处于Idle状态(不发送或接收)时,通信引脚连接到一个上拉电阻(高),所有引脚根据传递到OE的信号处于输入状态。如果其中一个输入接收到LO信号,则该信号通过NOR门传播,在基于A0A1的适当OE处产生HI信号。这将引脚配置为输出,并因此保持到GND。如果输入返回HI,将产生一个短时间延迟来保持OE状态,以考虑引脚需要从LO到HI(从输入到输出)更改的时间。

为了继续进行事件的顺序,考虑下面的例子:

初始状态下,总线上没有通信,[A1A0] =[00]。例如,所有引脚都是输入,由于上拉电阻被激活的输入,信号HI从所有输入进入IC。当pin3收到主电路的LO时,信号传给3L8,然后传给3位的LUT3,当信号到达pin7的OE时,3L3的输出也很低,使pin7从输入状态变为输出状态。LO信号通过总线SDA0传播到外部设备。

当主控释放通信总线时,由于现有的上拉电阻,输入变为HI。然后HI传递到3L8, 3L8将信号反转,并将低信号传递到引脚7的OE,导致引脚从输出状态变为输入状态。由于上拉电阻是活动的,HI被传递到外部设备,并在下降沿上应用一个时间延迟,以便在接收新值之前给引脚足够的时间来改变其IO状态。

sci系列多路复用器

与SDA总线多路复用电路的设计一样,SCL总线的另一个多路复用电路也设计了相同的配置,其中引脚6、17、18、19和20被配置为数字输入/输出,并在引脚上激活内部的上拉电阻。因此,从主电路通过引脚6的信号将根据A1和A0连接到引脚17、18、19和20中的一个。3L11、3L12、3L13、2L0块用于构建2位解复用器,4L0、3L6、2L1块用于构建2位多路复用器,实现双向通信。

图6:SCL线路复用器设计
表1:选择输入状态
A0
A1
启用通道
0
0
通道0
1
0
通道1
0
1
通道2
1
1
通道3

水平转移特性

SLG46826具有双电源DD和VDD2,这允许设计添加电平移动作为多路复用电路的另一个功能。引脚3,6,7由V供电DD13、15、16、17、18、19、20引脚由V供电DD2.因此,可以使用这个多路复用电路作为通道1、2、3的电平转移电路,而不需要通道0。所需电压(VDD和VDD2)可从项目信息中选择。

表2:实现的多路复用器的GreenPAK引脚图
权力
GreenPAK销
函数
GreenPAKPin
函数
权力
VDD
3.
SDA
7
SDA0
通道0
VDD
VDD
6
sci
17
SCL0
VDD2
13
SDA1
通道1
VDD2
18
SCL1
VDD2
15
SDA2
通道2
VDD2
19
SCL2
VDD2
16
SDA3
通道3
VDD2
20.
SCL3
VDD2

结果

为了确保设计按照预期工作,设计被置于一个真实的场景中:控制四个屏幕(I2C-LCD)都具有相同的静态I2C的地址。所有的通信都来自一个主设备,在这种情况下,就是一块Arduino板。

一个程序已经编写Arduino板作为一个主操作和打印不同的短语通过I在每个屏幕上2C协议。在公共汽车上,屏幕被I互换了2C多路电路和Arduino数字输出控制A0和A1。在每个打印指令之前,总线在屏幕之间进行多路复用。图7描述实现后的屏幕输出。

图7:我2c - lcd实现后的输出

结论

在本应用程序中,使用SLG46826集成电路和GreenPAK设计器软件构建了一个2位多路复用电路。使用SLG46826也可以轻松实现水平转换实现。