ZHCAAC4 November 2020 MSP430FR2422 , MSP430FR2433
一种常见的 MSP430 应用是使用来自计时器模块的脉宽调制 (PWM) 输出在 RGB LED 中混合颜色。RGB LED 是一种将红色、绿色和蓝色 LED 整合在一个封装内的 LED,它们共享一个共阳极或共阴极。RGB LED 通常用于多种不同的应用,包括舞台照明、室内照明、户外照明和家居装饰。每一个 LED 的电流通过使用限流电阻器和具有可变占空比的 PWM 波形来控制。通过单独控制 RGB LED 内红色、绿色和蓝色 LED 的 PWM 占空比,可观察到各种可见光谱范围的色调。通常,RGB 颜色的数值范围为 0-255(十进制)。通用异步接收器/发送器 (UART) 等协议可通过以下方法向 MCU 传达将哪种颜色输出到 RGB LED:发送包含所有颜色值的 24 位十六进制值或分别向每种颜色发送字节值。此外,中断功能可用于通过 UART 更新 PWM 占空比,同时使 MCU 保持在低功耗状态。
此实现方案使用 UART 向红色、绿色和蓝色 LED 发送 8 位值(0-255 十进制)。固件采用这些值,将其转换为成比例的 PWM 占空比波形,并将信号输出到 LED 各自的 RGB 引脚。开发出了一种图形用户界面 (GUI) 以使用滑块、数字输入或色轮调色板单独或同时选择 RGB 色调。
Timer_A0 和 Timer_A1 配置为在 P1.2(红色)、P1.4(绿色)和 P1.5(蓝色)上输出变化的占空比 PWM 波形。通过为该引脚选择辅助 I/O 功能,将 P1.2 与 TA0.2 相连,而 TA0.2 对应于 Timer_A0 及其比较/捕捉寄存器 0 和 2。因此,对 Timer_A0 的比较/捕捉寄存器进行配置,以便通过调整 TA0CCR2 来调整占空比,占空比等于 TA0CCR2/TA0CCR0。使用 Timer_A1 及其比较/捕捉寄存器 0、1 和 2 配置 P1.4 (TA1.2) 和 P1.5 (TA1.1) 的过程类似。
图 1-1 所示为此实现方案的方框图。
MSP430FR2433 LaunchPad™ 开发套件与此示例工程搭配使用,但它可用于具有适当代码迁移的任意 MSP430 微控制器。LaunchPad 套件 eZ-FET 上的反向通道 UART 接口用于与 GUI 进行 UART 通信,但是,UART 引脚必须连接到 P2.5 和 P2.6 而不是其预期配置(P1.5 和 P1.4),因为这些引脚分别用于 TA1.1 和 TA1.2。为此,请移除 RXD 和 TXD 跳线,并使用母对母跳线将 RXD 和 TXD(在 eZ-FET 调试探针侧)的顶部引脚分别连接到 P2.5 和 P2.6。这些引脚对应于 UCA1(eUSCI_A 模块的实例 1)而非 UCA0(用于其它内部管理示例),因此已更新固件以正确配置 UART。
COM 通道编号信息可在控制面板下的 PC 器件管理中找到。图 1-2 所示为 MSP430FR2433 LaunchPad 套件,包括 eZ-FET、连接 P2.5 (RXD) 和 P2.6 (TXD) 的 UART,以及 P1.2 (TA0.2)、P1.4 (TA1.2) 和 P1.5 (TA1.1) 上的 RGB PWM 输出。在此示例中,使用了带限流串联电阻的共阴极 RGB LED,如右侧所示。使用母对母跳线连接串联电阻和 RGB,如原理图中所示,并将共阴极连接到 Launchpad 的 GND 引脚。如有必要,使用试验电路板会有所帮助。确保根据单个 LED 的电流额定值和正向压降选择电阻值。
如图 1-3 所示,GUI 用于设置 RGB 颜色值以使用各个颜色滑块或输入框输出到 LED,或同时使用可点击的色轮调色板输出到 LED。若要使用滑块,只需将滑块拖动到颜色值 0-255(十进制)之间的所需数字处即可。若要使用输入框,请键入颜色值 0-255(十进制)之间的所需数字即可。若要使用色轮,请点击标记或将标记拖动到所需的颜色处。这会将该颜色实时输出到 RGB LED。
eUSCI_A1 外设在 UART 模式下使用,以允许在 P2.5/UCA1RXD 上接收命令并在 P2.6/UCA1TXD 上传输命令。LaunchPad 内部的 eZ-FET 用于评估。波特率必须为 9600,并且只能有一个停止位且无奇偶校验。如果在软件中启用了 GUI,PC 会通过 UART 向 MCU 发送一个字节的数据,其中包含十六进制的单个颜色值。如果使用色轮,PC 将发送 3 个字节的数据,其中包含十六进制的 RGB 值。
如果不使用 GUI,那么 MCU 将在从 PC 传输每 3 个字节的数据后输出 RGB 混合颜色。例如,如果 PC 发送数据 0xFF、0x00 和 0x00,那么 RGB LED 将输出红色,因为第一个字节是红色值,第二个字节是绿色值,第三个字节是蓝色值。
可按照“实现”一节中所述运行演示的操作,该部分介绍了如何使用 UART 配置 RGB LED 内红色、绿色和蓝色 LED 的 PWM 占空比。P1.2 (TA0.2)、P1.4 (TA1.2) 和 P1.5 (TA1.1) 用于向 RGB LED 输出可控 PWM 波形,从而创建用户所需的任何色调。图 1-3 展示了带可选颜色滑块、输入框和色轮的 GUI 界面,作为供用户确定要混合和输出的红色、绿色和蓝色强度的选项。当颜色滑块、输入框或色轮值发生更改时,将自动更新另一个混合颜色的相应值,并且 RGB LED 将立即输出该混合颜色。
器件型号 | 主要特性 |
---|---|
MSP430FR2433 | 16KB FRAM,4KB SRAM,10 位 ADC,UART/SPI/I2C,计时器 |
MSP430FR2422 | 8KB FRAM,2KB SRAM,10 位 ADC,UART/SPI/I2C,计时器 |