• Menu
  • Product
  • Email
  • PDF
  • Order now
  • 通过 UART 桥接器实现 I2C 扩展器

    • ZHCAEE9 September   2024

       

  • CONTENTS
  • SEARCH
  • 通过 UART 桥接器实现 I2C 扩展器
  1.   1
  2. 1 说明
  3. 2 所需外设
  4. 3 兼容器件
  5. 4 设计步骤
  6. 5 设计注意事项
  7. 6 软件流程图
  8. 7 所需的 UART 数据包
  9. 8 器件配置
  10. 9 应用代码
  11. 10其他资源
  12. 11E2E
  13. 12商标
  14. 重要声明
search No matches found.
  • Full reading width
    • Full reading width
    • Comfortable reading width
    • Expanded reading width
  • Card for each section
  • Card with all content

 

Subsystem Design

通过 UART 桥接器实现 I2C 扩展器

下载最新的英语版本

1 说明

图 1-1 展示了如何使用 MSPM0 作为 I2C 扩展器,从通用异步接收器/发送器 (UART) 接口向多个目标 I2C 控制器传输数据或命令。传入的 UART 数据包经过专门格式化,便于过渡到 I2C 通信。图 1-1 还展示了如何将错误传达回主机器件。本示例的代码可以在 MSPM0 SDK 中找到。

MSPM0L, MSPM0G 子系统功能方框图图 1-1 子系统功能方框图

2 所需外设

此应用需要 UART 和 I2C 外设。

表 2-1 所需外设
子块功能 外设使用 注释
UART TX/RX 接口 (1 个)UART 在代码中调用 UART_BRIDGE_INST
I2C 控制器 (2 个)I2C 在代码中调用 I2C_BRIDGE_INST 和 I2C_BRIDGE2_INST

3 兼容器件

根据表 2-1 中的要求,表 3-1 列出了相应 EVM 的兼容器件。如果符合表 2-1 中的要求,也可以使用其他 MSPM0 器件和相应的 EVM。

表 3-1 兼容器件
兼容器件 EVM
MSPM0Lxxxx LP-MSPM0L1306
MSPM0Gxxxx LP-MSPM0G3507

4 设计步骤

  1. 在 SysConfig 中设置 UART 外设实例、I2C 外设实例和所需器件引脚的引脚输出。
  2. 在 SysConfig 中设置 UART 波特率。默认为 9600baud。
  3. 在 SysConfig 中设置 I2C 时钟速度。默认值为 100kHz。
  4. 定义桥接器处理的最大 I2C 数据包大小。
  5. 定义关键的 UART 标头值(可选)。
  6. 自定义错误处理(可选)。

5 设计注意事项

  • 通信速度:提高速度可增加数据吞吐量,减少冲突的可能性。如果 I2C 速度提高,则需要根据 I2C 规范调整外部上拉电阻以实现通信。优化包括更高的器件运行速度、多个传输缓冲器、减小标头大小或简化状态机。
  • UART 标头:UART 数据包标头和起始字节可针对应用进行自定义。德州仪器 (TI) 建议在典型数据传输开始时分配不太可能发生的值。
  • 错误处理:如果使用计算机终端监测 UART 总线,则将错误值对应于 ASCII 数值。确保主机 UART 器件可以读取错误值并知道相关含义,以便主机可以执行相应的操作。通过修改 ErrorFlags 结构类型添加其他错误类型,并在 Uart_Bridge() 中添加其他错误检测代码。当前实现检测有限的错误,并在 UART 接口上反馈相应的代码。然后,应用程序代码跳出当前通信状态机。用户可以添加额外的错误处理代码来更改发生错误时桥接器的行为。例如,发生 NACK 后重新发送 I2C 数据包。

6 软件流程图

图 6-1、图 6-2 和图 6-3 分别针对图 1-1 展示了 UART 桥接器主要功能、Main() 和 UART ISR 以及 I2C ISR 的代码流程图。

MSPM0L, MSPM0G UART_Bridge() 的软件流程图图 6-1 UART_Bridge() 的软件流程图
MSPM0L, MSPM0G MAIN 循环和 UART ISR 的软件流程图图 6-2 MAIN 循环和 UART ISR 的软件流程图
MSPM0L, MSPM0G I2C ISR 的软件流程图图 6-3 I2C ISR 的软件流程图

7 所需的 UART 数据包

图 6-1 展示了正确桥接至 I2C 接口所需的 UART 数据包。显示的值是图 1-1 中定义的默认标头值。

  • 起始字节:桥接器用来指示新事务开始的值。在桥接器确认该值之前,UART 传输将被忽略。
  • I2C 地址:主机与之通信的 I2C 目标的地址。
  • I2C 读取或写入指示器:桥接器从目标 I2C 器件读取或写入的值。
  • 消息长度 N:传输的数据长度(单位:字节)。该值不能大于定义的 I2C 最大数据包长度。
  • 桥接器指数:与主机通信的 I2C 控制器。
  • D0,D1....,Dn:桥接器内传输的数据。
MSPM0L, MSPM0G UART 桥接器数据包说明图 7-1 UART 桥接器数据包说明

8 器件配置

该应用利用 TI 系统配置工具 (SysConfig) 图形界面为 COMP 和两个 TIMER 模块生成配置代码。使用图形界面配置器件外设可简化应用原型设计过程。

 

Texas Instruments

© Copyright 1995-2025 Texas Instruments Incorporated. All rights reserved.
Submit documentation feedback | IMPORTANT NOTICE | Trademarks | Privacy policy | Cookie policy | Terms of use | Terms of sale