PCA9956Bを光らせたい-その1の続きです
んで結線は出来たのでデータシートを見てみます
さて・・・
序盤を読んでいくと
I2C-busを使用し、24チャンネルの電流コントロールが出来て
57mAの出力が出来、解像度は8bit(256ステップ)である・・・と言うような事が書いてあります
Each LED output can be off, on (no PWM control), set at its individual PWM controller
value or at both individual and group PWM controller values. The PCA9956B operates
with a supply voltage range of 3 V to 5.5 V and the constant current sink LED outputs
allow up to 20 V for the LED supply. The output peak current is adjustable with an 8-bit
linear DAC from 225 μA to 57 mA.
・・・まあ、225μA毎に制御していってPWM出力を使用して57mAまで出力できますよと
後気になるのは1Mhzより高い周波数で動作するとか
(OE)ピンで動作中の変化を制御できますとか・・・そんな感じかな
なんか、読んでるとショートやオーバーヒートの検知も出来ますみたいな事を書いてあるけどそこまでは検知しなくていいかな
電源電圧は3V-5.5Vまでとかソフトリセットとか、まあ後回しで
それと、I2C-busのslave adressの設定方法が色々書いてあるけど、このボードは0x7E(arduinoは右に1ビットずらして0x3f)で設定されているので今はいいや
そして、電文設定見ると、最初はMODE1から始まる
図があちこち飛んで行ってしまうけど、MODE1とMODE2は7.2 Control Registerの初っぱなに出てくる
そして、MODE1の先頭ビットはTable6まで戻る・・・・
面倒だなぁ・・・
AIF-AI0までこの辺色々悩んで検索してたら、スイッチサイエンスに似たような事例があった
ちなみに、Arduinoのwireライブラリは内部で自動的にプルアップするので、プルアップ抵抗不要だそうで・・・
助かるわぁ
同じくNXPから発売されているPCA9622DRのサンプルだし、内容がちょっと違うのだけどね
これと比較しながら読んでいて、
Table 13. PWM0 to PWM23 - PWM registers 0 to 23 (address 0Ah to 21h) bit description
Table 14. IREF0 to IREF23 - LED output gain control registers (address 22h to 39h)
と言う当たりを読んでいたら大体わかった(つもりになった)
そうすると、Table13はLEDの明るさをPWMで制御する電文
Table14はLEDへ供給する電流の事である事がわかった
んで、
Table 10. LEDOUT0 to LEDOUT5 - LED driver output state registers (address 02h to 07h)bit description
がLEDを点灯・点滅・PWM、さらにグループでの制御をすると・・・(読む順番が違うだろという突っ込みは無しで・・・)
そして、このLEDOUT0-LEDOUT5のデフォルト値が[10]となってる
最初からPWM前提じゃーーーん
そして、IREF0-IREF23のデフォルト値が0・・・これだと電流は流れないこっちはいじらないとダメなのか
PWM0-PWM23はまあデフォルト0だから消灯状態だよねと・・
その結果
MODE1はIREF全部いじれる 11000000
MODE2はエラーなんか全部無視の 00000000
で決定(インクリメントモードなんて無視しても良さそうだから本当はMODE1も00000000で良さそうだけど)
コメント
コメントを投稿