ZHCAAC8 December   2020 MSP430FR2433

 

  1. 1TI 技术手册
  2. 2商标

TI 技术手册

引言

许多应用都需要简单的 I/O 功能,例如使多个 LED 闪烁;然而,主机微控制器 (MCU) 或处理器可能没有足够的通用 I/O 引脚来执行这些任务。同步外设接口 (SPI) 支持在 MSP430™ 微控制器与主机之间进行串行通信,主机可用作支持 SPI 通信的 I/O 扩展器。MSP430FR2433 MCU 可以是一个 SPI 外设器件,它使用增强型串行通信接口 (eUSCI) 模块接收来自主机的命令并控制 8 个通用 I/O 引脚。

以下功能可扩展:

  • SPI 接口,可通过 8 个简单的 I/O 引脚进行扩展
  • 设置 I/O 输出值(端口、组或位)
  • 读取 I/O 输入值(端口、组或位)
注: 用户可借助所需的 MCU 外设将此示例与任何 MSP430 LaunchPad™ 开发套件搭配使用。如需了解如何迁移引脚排列和外设,请参阅器件特定数据表。

实现

应连接用作控制器的主机处理器,使其通过 4 线 SPI 总线 [SPI 时钟 (SCLK)、MOSI、MISO 和 CS/STE] 从 MSP430FR2433 MCU 的 eUSCI_A0 写入或读取数据。SPI 命令扩展了 8 个引脚。图 1-1 所示为 SPI I/O 扩展器接口方框图。

GUID-20201123-CA0I-6NZQ-8RDG-TRQSCPFNDTKM-low.gif图 1-1 SPI I/O 扩展器方框图

主机处理器 SPI 配置如下:

  • STE/CS 低电平有效的 4 引脚 SPI
  • 时钟极性无效状态高电平
  • 数据在第一个 UCLK 边沿发生变化并在下一个边沿捕获
  • 最高有效位 (MSB) 在前,8 位字符长度

STE 引脚决定了是否启用 SPI 并且默认为低电平有效。通过发送 24 位报文来实现通信,其中第一个字节是命令,第二个字节选择组或位号,第三个字节是数据。然后 MSP430FR2433 器件将数据输出到软件中定义的映射 I/O 引脚或从中读取数据。MSP430FR2433 LaunchPad 开发板上的引脚排列和连接如图 1-2 中所示。

GUID-20201130-CA0I-7SPQ-81JK-2PQ8WZW8CMPQ-low.png图 1-2 MSP430FR2433 LaunchPad 连接

主机发出的 24 位报文在 SPI 接口上与三个字节的数据一起传输。第一个字节是主机命令,它告知外围器件应对引脚进行何种操作。命令选项包括“Reset All (0h)”、“Set All (1h)”、“Set Group (2h)”、“Set Bit (3h)”、“Read All (4h)”、“Read Group (5h)”和“Read Bit (6h)”。表 1-1 列出了 8 位主机命令值。

表 1-1 主机命令:8 位
主机命令 值(十六进制)
Reset All 0x00
Set All 0x01
Set Group 0x02
Set Bit 0x03
Read All 0x04
Read Group 0x05
Read Bit 0x06

8 位数据索引值决定了在使用“Set Group”、“Set Bit”、“Read Group”或“Read Bit”命令时将数据写入哪一个组或位编号。为 MSP430FR2433 示例代码定义的 8 位 I/O 端口将端口分为 3 组:组 1(位 3-0)、组 2(位 5-4)和组 3(位 7-6)。如果选择“Reset All”、“Set All”或“Read All”命令,则该字节“不用考虑”。表 1-2 列出了 8 位数据索引值。

表 1-2 数据索引:8 位
数据索引/选择 值(十六进制)
位 0 0x00
位 1/组 1 0x01
位 2/组 2 0x02
位 3/组 3 0x03
位 4 0x04
位 5 0x05
位 6 0x06
位 7 0x07
全部 不用考虑

数据值(请参阅表 1-3)告知要输出到 I/O 端口、指定组或指定位的值。对于设置命令(1h、2h 或 3h),数据 D7-D0 表示要发送到所选输出的 8 位值。对于“Reset All”命令或任何“Read”命令,该 8 位数据“不用考虑”。表 1-3 列出了 8 位数据值。

表 1-3 数据值:8 位
D7 D6 D5 D4 D3 D2 D1 D0
Reset All X X X X X X X X
Set All D7 D6 D5 D4 D3 D2 D1 D0
Set Group X X X X D3 D2 D1 D0
Set Bit X X X X X X X D0
Read All X X X X X X X X
Read Group X X X X X X X X
Read Bit X X X X X X X X

性能

主机处理器使用指定的位速率将主机命令和数据发送到 MSP430FR2433 MCU。SPI I/O 扩展器代码示例中的位速率约为 1MHz。STE 启动主机命令和 STE 停止数据之间的时间取决于主机处理器的 SPI 配置。

MSP430FR2433 MCU 的动作时间取决于 CPU 时钟频率和器件的低功耗模式 (LPM) 设置。以下测试结果使用默认的 1MHz CPU 时钟频率和 LPM0 进行待机。可通过使用更高的 CPU 时钟频率来优化动作时间,这可能会增加代码大小来配置 CPU 时钟,也可使用更低的低功耗模式来让 CPU 更快速地从 LPM 模式唤醒。

GUID-20201123-CA0I-2ZJF-TQZ3-GKMXGK5WNHRW-low.png图 1-3 SPI I/O 扩展器 GUI

图 1-3 中所示,GUI 用于 1) 监控启动的 SPI 事务并使用虚拟 LED 阵列来更新 MSP430FR2433 I/O 引脚的状态,或 2) 充当主机应用,通过 USB 转 UART 反向通道扩展 I/O 引脚。

当使用 GUI 作为监视器时,它会将数据值更新为通过 3 字节 SPI 事务启动的相关命令和组/位值。此外,如果发出设置命令,它将使用由事务的数据字节指定的值来更新虚拟 LED 阵列。例如,如果一个 3 字节的 SPI 事务是 0x03、0x02、0x01,则发出“Set Bit”命令,位 2 是指定位,它将写入值“1”。P1.2 将变高,GUI 将“Group/Bit”值更新为“2”,“Set Bit”行的“Data”值将更新为“1”。此外,位 2 的 LED 和开关将进入“ON”状态。

或者,GUI 可用作使用 USB 转 UART 反向通道的主机应用。用户可点击“Command”按钮为所有、组或位执行“Reset All”、“Set”或“Read”命令。确保在启动命令之前设置“Group/Bit”和/或“Data”值。此外,LED 下方的开关可用于单独设置或清除位。若要启动之前的相同命令,请将“Group/Bit”值更新为“2”,将“Data”值更新为“1”,然后点击“Set Bit”命令以启动命令。P1.2 将变高,位 2 LED 和开关将进入“ON”状态。

图 1-4 中提供了代码流程图,以简化对软件的理解。SPI 事务或 GUI 命令触发中断以设置或读取 I/O 值并更新 GUI。

GUID-20201123-CA0I-Z64Z-545D-PC6WMKRGT5SK-low.gif图 1-4 软件流程图

开始使用

  1. 观看培训视频“SPI I/O 扩展器”,该视频演示了如何使用串行外设接口将 SPI 数据从主机 MCU 扩展到辅助器件的 I/O 端口。
  2. 订购 MSP430FR2433 LaunchPad 套件以评估 SPI I/O 扩展器示例代码。
  3. 下载并使用 SPI I/O 扩展器示例 GUI 测试此示例。
  4. 评估 MSP430FR2433 LaunchPad 套件的 SPI I/O 扩展器示例代码

器件推荐

器件型号 主要特性
MSP430FR2433 16KB FRAM,4KB SRAM,10 位 ADC,UART/SPI/I2C,计时器
MSP430FR2422 8KB FRAM,2KB SRAM,10 位 ADC,UART/SPI/I2C,计时器