ZHCAAC8 December 2020 MSP430FR2433
引言
许多应用都需要简单的 I/O 功能,例如使多个 LED 闪烁;然而,主机微控制器 (MCU) 或处理器可能没有足够的通用 I/O 引脚来执行这些任务。同步外设接口 (SPI) 支持在 MSP430™ 微控制器与主机之间进行串行通信,主机可用作支持 SPI 通信的 I/O 扩展器。MSP430FR2433 MCU 可以是一个 SPI 外设器件,它使用增强型串行通信接口 (eUSCI) 模块接收来自主机的命令并控制 8 个通用 I/O 引脚。
以下功能可扩展:
实现
应连接用作控制器的主机处理器,使其通过 4 线 SPI 总线 [SPI 时钟 (SCLK)、MOSI、MISO 和 CS/STE] 从 MSP430FR2433 MCU 的 eUSCI_A0 写入或读取数据。SPI 命令扩展了 8 个引脚。图 1-1 所示为 SPI I/O 扩展器接口方框图。
主机处理器 SPI 配置如下:
STE 引脚决定了是否启用 SPI 并且默认为低电平有效。通过发送 24 位报文来实现通信,其中第一个字节是命令,第二个字节选择组或位号,第三个字节是数据。然后 MSP430FR2433 器件将数据输出到软件中定义的映射 I/O 引脚或从中读取数据。MSP430FR2433 LaunchPad 开发板上的引脚排列和连接如图 1-2 中所示。
主机发出的 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 位主机命令值。
主机命令 | 值(十六进制) |
---|---|
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 位数据索引值。
数据索引/选择 | 值(十六进制) |
---|---|
位 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 位数据值。
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 模式唤醒。
如图 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。
开始使用
器件推荐
器件型号 | 主要特性 |
---|---|
MSP430FR2433 | 16KB FRAM,4KB SRAM,10 位 ADC,UART/SPI/I2C,计时器 |
MSP430FR2422 | 8KB FRAM,2KB SRAM,10 位 ADC,UART/SPI/I2C,计时器 |