秋月 16×8LEDマトリクスドライバーモジュール

秋月電子の16×8LEDマトリクスドライバーモジュールを用いた工作で少しハマったのでメモ。

モジュールはHOLTEKのHT16K33というI2C接続のチップが使われている。デフォルトでは I2C アドレスは 0x70 (LSBはR/W制御用なので、実際は1bit左シフトされて0xe0)。複数使用したい場合は、モジュール上のA0~A2ジャンパをブリッジさせてアドレスを 0x71~0x76 にする。

下図のように、モジュールの基板上にはA0~A2がシルク印刷されている。



基板上でA0~A2のアドレス指定が指定できる
(秋月電子の商品ページより転載)

で、問題は、シルク印刷されているA0~A2はアドレスラインのA0~A2ではない、というところ。シルク印刷されているA0はアドレスラインのA2であって、アドレスラインのA0ではない。同様に、シルク印刷のA2はアドレスラインのA0であって、アドレスラインのA2ではない。

なぜ、こんなややこしいことになっているかというと、HT16K33のI2Cアドレス指定のラインがLEDのアノードのラインと共用になっていて、アノードの0番目 (A0)が、アドレス指定のA2と共用だから。個人的には、スルーホール側のシルク印刷はROW0~でもよかったんじゃないかぁ、と思う。

ちなみに互換を謳っているAdafruit製HT16K33 Breakoutは、ジャンパのシルク印刷はアドレスラインになっている。こちらはこちらでスルーホールのA0~A2とは違う意味なんだけれども。あと、複数使いたい場合、I2Cのプルアップ抵抗を簡単に切り離せないのが不便。


Adafruit製HT16K33 Breakoutはジャンパのシルク印刷はアドレスライン
(秋月電子の商品ページより転載)

結論としては、秋月電子もわざわざ「I2Cスレーブアドレス指定方法」というページを用意しているのだから、それをちゃんと読め、ということ。

ちなみに、今作っている工作物。↓


何を作っているかは改めて

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です