前回はHC595を利用して8×8のドットマトリクス表示器をドライブしましたが今回は専用デバイスです。
マトリクスディスプレイ テスト基板
MAX7221を利用、大幅に回路もソフトウェアも少なくなった
前回のマトリクスディスプレイはHC595とトランジスタアレイを用いてソフトウェアでスキャンを掛けて表示させていましたが、専用ハードウェアのデバイスを用いる事で、コマンドを投げてあとはハード任せにする事ができるようになりました。
マキシムからリリースされているLEDディスプレイドライバのデバイスでインターフェースや、桁数等で異なるデバイスファミリが用意されています。けっこう豊富なラインアップなので、そういった用途は多いと思われるのですが、なかなか日本橋の店頭では見ることができません。
MAX7221CWG
実装はテスト基板の裏にポリイミドテープを貼って接着である
今回使用したのはCQ出版のトランジスタ技術8月号で紹介されたMAX7219の姉妹品です。インターフェースが異なるMAX7221というのがあり、ハードウェアでダイナミック点灯を制御することが可能になります。
MAX7219およびMAX7221共に8bit×8本のデュアルポートメモリを持ち、MCU側からは表示用のレジスタに書き込みを行うだけで、8×8セグメントのダイナミックスキャンを行ってくれます。
数字表示用にBCD→7seg+小数点のデコードモードもあり、数字フォントを意識せず、桁の数値を書き込めば勝手に数字フォントで表示させることも可能です。
その他、表示の桁を1桁から8桁まで選択でき、LEDのドライブ電流も外付け抵抗1本で最大40mA流せます。外付け抵抗で設定された電流を最大輝度としてコマンドを投げて点灯デューティを変更することにより、ディマー調節を行う事もできるなど、なかなか多機能です。
ソフトウェア側でLEDのイメージメモリを用意し、一気に転送するサブルーチンを作って表示を切り替えることが出来ます。
もともとが7セグメントのLEDドライバを意識しているので1桁(1行)単位で個別のセグメントの制御コマンドを転送・設定できます。使い方としてはこのようなマトリクスディスプレイに使うだけでなく、各セグメントに相当するLEDを個別に制御できますので、5桁+24ドットなどの利用法も可能です。
常にディスプレイのためのダイナミックスキャンルーチンが走ることが無く、必要に応じてMAX7221側にコマンドを投げるだけですので、ソフトウェア負荷は激減しています。逆に、多彩な表示を行うために労力が割けるわけですが、いかんせん8×8ですので表現は限られます。
描画ルーチンのアルゴリズムを考えるほうが大変になりました。
コメントする