• Menu
  • Product
  • Email
  • PDF
  • Order now
  • 具有 SPI、I2C 和 UART 的 IO 扩展器

    • ZHCAES6 October   2024 MSPM0C1104 , MSPM0L1306

       

  • CONTENTS
  • SEARCH
  • 具有 SPI、I2C 和 UART 的 IO 扩展器
  1.   1
  2. 1说明
  3. 2所需外设
  4. 3兼容器件
  5. 4硬件设置
  6. 5软件简介
    1. 5.1 代码简介
    2. 5.2 协议简介
  7. 6设计步骤
  8. 7结果
  9. 8商标
  10. 重要声明
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

具有 SPI、I2C 和 UART 的 IO 扩展器

下载最新的英语版本

1 说明

注: TI 正在过渡到使用更具包容性的术语。本文档中包含的一些语言可能与之前用于某些技术领域的术语不同。

此子系统演示了如何使用 MSPM0 通过主机从串行外设接口 (SPI)、I2C 或通用异步接收器-发送器 (UART) 发出的通信命令来实现 IO 扩展器功能。当主机上的 GPIO 数量不足时,此扩展很有帮助。除了支持控制 GPIO 输出之外,子系统还可以通过 SPI、I2C 或 UART 回读 GPIO 状态。图 1-1 展示了此例中使用的子系统和模块的基本架构。

MSPM0 子系统功能方框图图 1-1 子系统功能方框图

表 1-2 具有指向示例代码的链接。在此演示中,IO 控制数限制为 8。但是,用户可以通过参考此演示来进一步扩展 IO。

2 所需外设

表 2-1 展示了此应用中所需的外设和功能模块。

表 2-1 所需外设
子块功能外设使用注释
串行外设接口(1 个)SPI在代码中称为 SPI_0_INST
I2C 接口(1 个)I2C在代码中称为 I2C0_INST
UART 接口(1 个)UART在代码中称为 UART_0_INST
GPIO(8 个)GPIO在代码中称为 GPIO_GRP_0

3 兼容器件

此示例与表 1-2 中的器件兼容。相应的 EVM 可用于原型设计。

表 3-1 所需器件
兼容器件 EVM 示例代码链接
MSPM0C11xx LP-MSPM0C1104 链接
MSPM0L13xx LP-MSPM0L1306 链接

4 硬件设置

若要基于 MSPM0 来评估 IO 扩展器,需要以下硬件元件:

  • 表 3-1 中所示的 MSPM0 LaunchPad™ 开发套件
  • 安装有 Microsoft® Windows® 7 或更高版本和 .NET Framework 4.5 的计算机。(或作为主器件的实际器件)
  • USB2ANY 和兼容 GUI

在此子系统中,客户可灵活选择不同的通信接口,包括 I2C、SPI 或 UART。这可充分提高客户系统设计的灵活性。图 4-1 以 LP-MSPM0C1104 为例展示了此设计中的硬件连接。

MSPM0 硬件连接图 4-1 硬件连接

表 4-1 展示了引脚配置,您还可以根据需要更改配置。SPI 通信配置为三线模式以节省 GPIO 资源。MSPM0L1306 和 MSPM0C1104 的引脚配置相同。

表 4-1 引脚配置
模块功能引脚配置备注
I2C 接口SDAPA0地址:0x48,I2C 时钟频率:400kHz
SDLPA1
串行外设接口POSIPA25SPI 时钟频率:500kHz
PISOPA26
时钟PA17
UART 接口RXPA18波特率:9600bps
TXPA23
GPIOGPIOBIT0:PA2、BIT1:PA27、
BIT2:PA17、BIT3:PA24、
BIT4:PA4、BIT5:PA6、
BIT6:PA16、BIT7:PA22

5 软件简介

图 5-1 展示了在 CCS 中开发的软件工程。该工程主要由三个部分组成。其他文件是 MSPM0 工程的默认文件。

MSPM0 软件工程视图图 5-1 软件工程视图

ti_msp_dl_config 部分由 SysConfig(图形代码生成工具)生成,而 MSPM0 初始化则用于 MCU 电源、系统控制器、系统时钟、启用的外设和 GPIO 的系统初始化。

expander 部分声明基本变量、GPIO 配置函数和中断函数,expander 还包含一些适用于 SPI、I2C 和 UART 协议的基本函数。

main 部分包含最高系统功能代码,在系统初始化之后,MCU 等待来自主器件的命令并执行相应的 GPIO 操作。

5.1 代码简介

图 5-2 展示了此设计中的主函数代码。主函数初始化系统配置,然后进入循环以处理 IO 控制。代码支持用于 IO 控制的三个函数:gpioDirectionSet、gpioOutputCtl 和 gpioStateRead。另请参阅协议简介。

MSPM0 主函数图 5-2 主函数

默认情况下启用 UART、I2C 和 SPI。对于实际实现,取消注释 expander.h 文件中的定义,如 图 5-3 所示。

MSPM0 通信启用和禁用图 5-3 通信启用和禁用

所有通信命令接收都在相对中断中完成。使用 UART,命令传输在 gpioStateRead() 函数中完成。对于 SPI 和 I2C,命令传输在相对中断中完成。

 

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