NeoPixel の先にPICを繋いで、1wireシリアルでデータを送るテストをしています。写真はNeoPixel RingのLED 0番目に緑点灯、15番目に赤点灯、16番目をPICにした様子です。PICは受信したデータの8ビット分をモニタするための青色LEDを8 個繋いでいます。
WS2812Bの1ビット分の0/1は以下のようになっていて、TH+TL=1.25μsecと短いサイクルです。これをPICのプログラムで受信するのはギリギリです。PICを仮に8MHzで動かしたときに1命令の実行に0.5μsecかかります。分岐があるとこの倍の1μsec。とても間に合いません。
そこで最大の32MHzで動かしてみました。それでも1命令は0.125μsecか0.25μsecで、WS2812Bの1サイクル中に5命令~10命令しか入りません。
なお、PICからデータを送出することは今のところ考えていません。タイミングがギリギリ間に合うかどうか微妙です。気が向いたら試してみるかも。
0 件のコメント:
コメントを投稿