2016年9月26日月曜日

TLC5940の触り



とりあえず簡単なところだけ。

*必要なピン
データを与えるSCLK,SIN,XLATが必要。SCLKとSINはSPIのTxで可能。SOUTも接続すればTLC5940のステータスを読むことができる。
クロックを与えるGSCLK,BLANKが必要。GSCLKに4096個のパルスを与えると設定したデータに応じて最初のパルス数の間電流が流れる。
GSCLKのカウンタは自動的には初期化されないらしいので、BLANKでクリアする必要がある。

*ピンの処理
基本的にピンはプルダウン等で固定しておいたほうが良い。例えばマイコンがリセット状態の時はハイインピーダンスとなるので、ちょっとしたノイズで誤動作する場合がある。
誤動作するとLEDが常に点灯になる場合がある。PWMしか使わない前提で電流を多めに流している場合(PWM10%時の電流値等の設定の場合)はLEDが損傷する可能性がある。
SCLKを固定してデータを受け取らないようにすること、GSCLKを固定してパルスが入力されなようにすること、BLANKを固定してハイインピーダンス時は電流を流さないようにすること、等。

*電流の違うLED
フルカラーLEDを駆動したい場合など、電流値が違うLEDを接続する場合は、電流が一番低いLEDに合わせる必要がある。ICは定電流駆動なので、LEDと直列に抵抗を挟んでも損失が増えるだけで電流値が変わることはない。LEDと並列に抵抗を接続して電流を分岐することも不可能ではないが、あまり良いやり方とはいえない。
Dot Correctionを使えば0-63の64段階で電流値を制限することができるので、電流値の設定を最大電流に合わせ、電流値が低いLEDはDCで制限する、ということも可能。ただ何らかの原因でDCが設定される前に電流が流れることもあるかもしれない。なのであんまりそういう方法は使わないほうが良いはず。

*IOレベル
TLC5940のIOレベルはCMOSとなっている。High-level input voltageは0.8Vccが必要。電源が5Vだと4Vが必要となる。つまり3.3Vレベルのマイコンと直結することはできない。
3.3Vのマイコンを直結したい場合はTLC5940も3.3Vで駆動する必要がある。
ただしTLC5940で120mAを流せるのはVcc>3.6Vの時で、Vcc=3.3Vの時は最大60mAまでとなる。それ以上の設定でも動くには動くが、損失が大きくなるため発熱が増える。

* Dot Correction
TLC5940にはDot Correctionという機能があり、1ch毎に6bitの補正値を設定できる(使ったことがないので詳細は不明)。一番最初にEEPROMから読み込むので、DCの初期化は不要。EEPROMの初期値は0x3F(0b111111)となっている。

*その他
LEDを接続したい場合、BLANKは100Hz以上にすること。50Hzでは明らかにちらつきがわかる。
サーボモータの場合は20-50Hzくらいで良いはず。

0 件のコメント:

コメントを投稿