NXP社区的各位好,
我正在使用基于 LPC5514JBD64E 的控制器,需要将 WS2812/WS2812B LED 环与 MCU 连接。
我正在研究 LPC5514JBD64E 数据手册和我的控制器原理图,但我对 LPC55xx 系列还不熟悉,需要一些指导。
我想知道:
1. LPC5514JBD64E 的哪个 GPIO 引脚应该用于 WS2812 数据(DIN)信号?
2. 由于 LPC5514JBD64E 使用 3.3V 逻辑,而 WS2812 由 5V 供电,那么 MCU 和 WS2812 之间推荐的硬件连接是什么?
3. 是否建议在 MCU GPIO 和 WS2812 DIN 之间使用 74AHCT125?
4. 应使用哪种外设或方法来生成 WS2812 协议所需的精确时序?
5. 是否有使用 LPC5514JBD64E 控制 WS2812 或 NeoPixel LED 的官方 NXP SDK 示例、驱动程序或示例代码?
6.如果没有 WS2812 的具体示例,您能否提供或指出一个基本的、可运行的示例代码,使 WS2812 LED 或 LED 环闪烁或改变颜色?
7. 对于这款MCU,推荐的开发环境和编程/调试流程是什么?
我眼下的目标是使用 LPC5514JBD64E 使 WS2812 LED 环闪烁并显示不同的颜色。
我希望能够得到关于正确的GPIO、硬件连接、外设和示例代码方面的指导。
谢谢!
1.
WS2812 协议需要一个精确定时的单线数字输出信号。因此,DIN 信号最好由定时器/PWM 外设生成,而不是通过软件位操作生成。
对于 LPC551x 设备,一个实用的解决方案是使用 SCTimer 输出。
具体引脚取决于您的硬件设计和引脚复用配置。任何可以配置为 SCTimer 输出的引脚都可以使用。
例如,LPC55S16 SDK 提供了 sctimer_pwm_with_dutycycle_change 示例,该示例使用了:
SCT0_OUT2 (J12-12 on LPCXpresso55S16 board)
2. 由于 LPC5514 工作在 3.3 V 逻辑电平,而 WS2812 通常由 5 V 供电,因此建议进行电平转换以提高信号完整性并确保可靠运行。
3. 是的。
74AHCT125 是连接 3.3 V MCU 和 5 V WS2812 设备的常用推荐解决方案。
4. 对于 LPC551x 设备,首选方法是:
SCTimer(推荐)
生成一个 800 kHz 的波形。
动态更新每个传输比特的PWM占空比。
与 SDK 示例类似:
sctimer_pwm_with_dutycycle_change
5.目前,我还没有发现专门针对 LPC5514 的 WS2812 或 NeoPixel LED 的官方 MCUXpresso SDK 示例。
不过,SDK 提供了几个 SCTimer PWM 示例,可以作为起点。
尤其:
sctimer_pwm
sctimer_pwm_with_dutycycle_change
虽然我没有找到适用于 LPC5514 SDK 的 WS2812 专用示例,但我之前使用 SCTimer + eDMA 方案在 FRDM-MCXN947 板上实现了可靠的 WS2812 控制。
6.我建议从以下方面开始:
lpcxpresso55s16_sctimer_pwm_with_dutycycle_change
7.
推荐的开发环境是:
MCUXpresso IDE
MCUXpresso SDK
LPC-Link2 或 MCU-Link 调试器
板载 CMSIS-DAP 调试器(如果评估板上有)
希望这对您有所帮助。
BR
哈里