フルカラーLED-PL9823のデータ転送タイミング

秋月で購入したフルカラーLEDの制御をESP32のRMTで行うため、データ転送のタイミングなどをちょっと調査してみた。調査することを決めたのは秋月のページにあるデバイスのデータシートがちぐはぐだったので。

マイコン内蔵RGBLED 5mm PL9823-F5: オプトエレクトロニクス 秋月電子通商-電子部品・ネット通販
電子部品,通販,販売,半導体,IC,LED,マイコン,電子工作マイコン内蔵RGBLED 5mm PL9823-F5秋月電子通商 電子部品通信販売

データシート

秋月のページからデバイスのデータシートを見たところ、本体と搭載されているチップについてのPDFは見つかった。なのだがチップとLED側の記載に違いが結構あるではないか。
単位はμ秒。

T0H T0L T1H T1L RESET(L)
Pl9823 0.35 1.36 1.36 0.35 ≧50
WS2811(Low) 0.5 2.0 1.2 1.3 ≧50
WS2811(High) 0.25 1.0 0.6 0.75 ≧50

WS2811のHighモードは「It is one half of the time when high speed mode(reset time unchanged)」とNoteに記載があったので半分にしている。

確認

10MHzに分周して設定可能なデータの時間単位を100nsにし、RMTを使って送信するプログラムを組みLEDが指定した設定内容で光るかどうかを試してみた。

LEDは2個カスケードでつなぎ3個分のデータを送信してみて、1,2個目のDIと2個めのDOの信号の内容をロジックアナライザでも確認をして見る。
ロジックアナライザの結果は1段目が1個めLEDのDI、2段目が2個めLEDのDI、3段目が2個めLEDのDOになっている。

Pl9823のタイミング

100ns単位なので、以下の様なタイミングでデータを送信してみた。
仕様書には±150nsまでが許容範囲なので問題ないだろうと思う。

T0H T0L T1H T1L RESET(L)
Pl9823 0.3 1.4 1.4 0.4 ≧50

結果としては問題なく動作した。

ロジックアナライザの結果は以下の通り。

LEDから出るDOのタイミングが仕様とは異なるタイミングで出力されていた。

T0H T0L T1H T1L RESET(L)
Pl9823 DO 0.42 1.28 0.82 0.88

LEDから出力されるタイミングなので、想像するにこれが正しいタイミングなのだろう。

WS2811(Low)

T0H T0L T1H T1L RESET(L)
WS2811(Low) 0.5 2.0 1.2 1.3 ≧50

次は上のタイミング。
こちらも問題なくLEDは発光した。
ロジックアナライザの結果は以下の通り。

T0H T0L T1H T1L RESET(L)
WS2811(Low) DO 0.42 2.08 0.84 1.66

HighのタイミングのみPl9823 DOと同じ時間になっている。

WS2811(High)

T0H T0L T1H T1L RESET(L)
WS2811(High) 0.25 1.0 0.6 0.75 ≧50

上のタイミングでやってみたところLEDは正常に表示されなかった。
ロジックアナライザの結果は以下の通り。

1の出力タイミングもDOの結果を見る限り0として認識されているようだ。

DOの結果を使った場合

先の結果、DOのタイミングが正しいのではないかと認識し、以下のタイミングでまず挑戦。

T0H T0L T1H T1L RESET(L)
DO 0.4 1.3 0.8 0.9 ≧50

結果としては問題なくLEDの表示は行うことができた。
ロジックアナライザの結果は以下の通り。

3段ともほぼ同じタイミングになっているので、この結果が正しいのだろうと思う。

次にPL9823は800kHzで動くということなので、Low側のタイミングを調整して800kHzで動作するかどうか確認してみた。

T0H T0L T1H T1L RESET(L)
DO 0.4 0.8 0.8 0.4 ≧50

こちらも問題なく動作した。動作周波数としては800kHzをちょっと越したことになってしまったが。
ロジックアナライザの結果は以下の通り。

こちらも3段ともほぼ同じタイミングになっている。

追記 2021/07/21

タイミングに関してちょっと調べてみたところ、秋月の「マイコン内蔵RGBLED WS2812B」からリンクされている「WS2812B PDFデータシート(以前のロット、ご参考)」のデータシート内のタイミングが、今回調べたものと一致していた。

下の表の旧WS2812Bというやつ。

T0H T0L T1H T1L RESET(L)
旧WS2812B 0.4 0.85 0.8 0.45 ≧50
新WS2812B 0.22~0.38 0.58~1.0 0.58~1.0 0.58~1.0 ≧280

こうも情報が錯綜していると、デバイスにあったプログラムを作成するのは結構面倒だなと思った。

コメント

タイトルとURLをコピーしました