如何创建双向I2C到SPI桥接器

接口/总线/驱动

1143人已加入

描述

许多设备通过I2C和 SPI 数据协议进行交互。在本文中,我们将展示如何使用GreenPAK™ SLG46811 集成电路 (IC) 在这两种协议之间进行转换。由于 其 小 尺寸 和 高 功能 , 以及 低成本 和 电流 , 这 是 该 应用 程序的 绝佳 选择 。  _ 

转换如何工作?

SLG46811V 可以双向转换,从 I2C 到 SPI,反之亦然。

SPI

图 1:应用电路

图 1 显示了一个典型的转换器原理图。I2C总线接PIN5、PIN6,SPI总线接PIN9、PIN10、PIN11、PIN12。PIN8 用于控制传输方向。I2C 总线必须上拉至 VDD。

转换方向由 nSPI/I2C 信号选择。该电路提供四个字节的传输,其中一个是 I2C 控制字节。

SPI

图 2:设计实现

该设计是使用基于 GUI 的免费G​​reenPAK Designer 软件 (Go Configure™软件中心的一部分)创建的。完整的设计文件可在此处获得。

SPI 数据接收和 I2C 数据传输

当 nSPI/I2C 信号为低电平时,IC 接收 SPI 命令并发送 I2C 命令。

SPI

图 3:SPI 数据接收

SPI_EN 信号决定了 SPI 数据接收的开始和停止。当 SPI_EN 信号由高变低时,IC 从输入 SPI_DATA_IN 读取。与时钟信号 SPI_CLK 同步,IC 读取移位寄存器 SHR 0 – SHR 3 中的数据。

SPI

图 4:I2C 数据传输

当数据完全接收时,信号 SPI_EN 变高,IC 开始形成 I2C 数据包。EDGE DET 检测何时接收到数据,将 SRFF 触发器的输出转换为 1。这允许扩展码型发生器 (EPG) 和时钟发生器的操作。EPG 单元处理 I2C 数据包的形成并控制数据发布过程。

SPI

图 5:EPG 波形

EPG单元记录一组用于产生I2C操作信号的模式。输出 OUT0 用于形成 Start、Stop和 ASK 位。输出 OUT1 为 I2C_CLK 生成时钟信号。OUT2 信号在 SHR 寄存器中提供数据偏移。I2C 传输完成后,OUT3 信号将 SRFF 触发转换为 0,之后系统进入初始状态。

例如,我们将尝试使用 SPI/I2C 桥接器更改 SLG46826 中的计数器数据 CNT0。

SPI

图 6:测试示意图

图 6 显示了构建在 SLG46811 上的 SPI/I2C 桥接器和构建在 SLG46826 上的发生器的测试连接图。SLG46826有用于 I2C 总线连接的 PIN8 和 PIN9 以及用于脉冲输出的 PIN17。

SPI

图 7:SLG46826 内部原理图

以下是图 8 的关键:

SLG46811

通道 1(黄线/顶线)– PIN5 (I2C_CLK) ,带有外部 5k Ω上拉电阻

通道 2(浅蓝色/第 2 行)– PIN6 (I2C_DATA) ,带有外部 5k Ω上拉电阻

B1 – I2C 数据解码

B2 – SPI 数据解码

D0 – PIN12 (SPI_EN)

D1 – PIN11 (SPI_CLK)

D2 – PIN10 (SPI_DATA_IN)

SLG46826

D5 – PIN17 (PULSE_OUT)

SPI

图 8:SPI 数据接收

SPI

图 9:I2C 数据传输

I2C 数据接收/ SPI 数据传输

当 nSPI/I2C 信号为高电平时,IC 工作在 I2C 从机/ SPI 主机模式。

SPI

图 10:I2C 数据接收/SPI 数据传输

在这种模式下,I2C 数据接收和 SPI 数据传输同时发生。以下组件用于检测 I2C 启动/停止组合:检测器 EDGE 模式下的 P DLY、3 位LUT8、3 -L11 和 DFF4。当开始组合到达时,触发器 DFF4 的输出变为 0,这允许 EPG 操作并激活 SPI_EN 信号。EPG 的第二部分生成用于处理来自 I2C 的数据的信号,并且还生成 ASK 响应信号。来自 I2C 的数据立即传输到输出 SPI_DATA_OUT。当SPI_CLK时钟暂停时,SPI_CLK 仅在启动、停止和 ASK 等服务组合的时间使用 I2C_CLK 计时. 当Stop组合到达时,触发器 DFF4 的输出变为 1,使 EPG 处于初始状态,并向 SPI 总线信号 SPI_EN 发出信号,完成数据传输。一些 IC 输出具有输出使能 (OE) 信号以改变操作方向。

SPI

图 11:EPG 波形

对于接收 I2C 命令和发送 SPI 命令,我们使用 EPG 信号:

OUT5 –阻止检测器启动/停止的操作,并在形成 ASK 信号时反转 EPG 单元的 CLK 信号。

OUT6 –产生一个 ASK 信号。

OUT7 –控制 SPI 时钟。

以下是图 12 的图例:

通道 1(黄线/顶线)– PIN5 (I2C_CLK) ,带有外部 5k Ω上拉电阻

通道 2(浅蓝色/第 2 行)– PIN6 (I2C_DATA) ,带有外部 5k Ω上拉电阻

B1 – I2C 数据解码

B2 – SPI 数据解码

D0 – PIN12 (SPI_EN)

D1 – PIN11 (SPI_CLK)

D2 – PIN10 (SPI_DATA_OUT)

SPI

图 12:测试结果

结论­­­

在本文中,我们使用 GreenPAK SLG46811 IC 实现了一个 I2C/SPI 转换器。GreenPAK IC 提供了许多功能元件来实现各种电路设计。GreenPAK 产品系列中有 50 多个 IC,每一个都有自己的特殊特性和功能。它们可以显着减少外部电路元件的数量,并能够开发具有高度特殊要求的系统。此外,GreenPAK 产品可实现非常快速的设计时间,并提供低功耗、小电路板面积和低成本。

  审核编辑:汤梓红

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分