こんにちは、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. WS2812やNeoPixel LEDをこのLPC5514JBD64Eで制御するための公式のNXP SDK例、ドライバー、またはサンプルコードはありますか?
6.もしWS2812特有の例がなければ、WS2812のLEDやLEDリングが点滅したり色を変えたりする基本的な動作例コードを教えてもらえますか?
7. このMCUに推奨される開発環境およびプログラミング・デバッグ手順は何ですか?
私の当面の目標は、LPC5514JBD64Eを使用してWS2812 LEDリングを点滅させ、異なる色を表示させることです。
正しいGPIO、ハードウェア接続、ペリフェラル、そして例コードについてのアドバイスをいただけるとありがたいです。
ご回答をお待ちしています。
こんにちは、 @Kishore02さん
1.
WS2812プロトコルでは、正確なタイミングで出力される単線デジタル信号が必要です。したがって、DIN信号はソフトウェアのビットバンギングではなく、タイマーやPWMペリフェラルによって生成されるべきです。
LPC551xデバイスの場合、実用的な解決策の一つはSCTimer出力を使用することです。
正確なピンはハードウェア設計やピンマルチマックス構成によって異なります。SCTimer出力として設定可能なピンなら、どんなものでも使用可能です。
例えば、LPC55S16 SDKはsctimer_pwm_with_dutycycle_change例を提供しており、以下を使用します:
SCT0_OUT2 (J12-12 on LPCXpresso55S16 board)
2. LPC5514は3.3Vロジックで動作し、WS2812は通常5Vで駆動されるため、信号の完全性を向上させ、信頼性の高い動作を確保するためにレベルシフトが推奨されます。
3. はい。
74AHCT125は、3.3V MCUと5V WS2812デバイスを接続する際に一般的に推奨されるソリューションです。
4. LPC551xデバイスの場合、推奨されるアプローチは次のとおりです。
SCTimer(推奨)
800kHzの波形を生成する。
送信ビットごとにPWMデューティサイクルを動的に更新します。
SDKの例に似ています:
sctimer_pwm_with_dutycycle_change
現時点では、LPC5514向けにWS2812やNeoPixel LEDを特化した公式のMCUXpresso SDK例は知りません。5.At
しかし、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
ハリー