- ベストアンサー
ディスプレイドライバーMAX7219の使いかた
max7219を使って7セグLEDをカスケード接続する場合、具体的に16ビットシリアルデータを どういう順番で送ればいいのでしょうか? マニュアルには「4番目のチップに書き込むには希望する16ビットの後に3つのno-opを送信する」 とあるのですが、良く分かりません。 たとえば、2桁7セグを2つ接続し、1つ目に「11」、2つ目に「22」と書き込むには どういう16ビットワードをどういう順番で送ればよいのでしょうか? 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 ただ、やってみると二つ目のICのデータが壊れるのか表示がめちゃくちゃになってしまいます。 後で送った分は正確に表示するのですが、何か送り方に問題があるのでしょうか?> これだけでは実際に見てないので何とも言えません。全てを公開出来ないしょうから、基本的には自分で色々試してみて消去法等で原因を突き止めるしかないかもしれません。 全てのICを初期化してますか?シャットダウンレジスタ、デコードモードレジスタ、輝度レジスタ、スキャン制限レジスタはIC毎に設定しないといけません。例えばデコードモードが正しく設定されてないと、思ったような表示にはなりませんので。初期設定についても、ICの数分(16ビット×カスケードIC数)だけデータを送ったあとLOADをHに立ち上げてください。 これくらいしか、今のところ思い付きません。
その他の回答 (1)
- 86tarou
- ベストアンサー率40% (5093/12700)
max7219を使って7セグLEDをカスケード接続する場合、具体的に16ビットシリアルデータを どういう順番で送ればいいのでしょうか? マニュアルには「4番目のチップに書き込むには希望する16ビットの後に3つのno-opを送信する」 とあるのですが、良く分かりません。> シリアルデータ自体は一つ目のIC(MAX7219)にしか入力されません。16ビットを超えるデータを送ると、一つ目のICの出力から二つ目のICへも心太(ところてん)方式にデータが送られることになります。これによって、一つのシリアル出力で複数のICに書き込みが行えるわけです。この時に、何も動作させたくないICがあれば、そのICにはNo-Opコードを送ることになります。 たとえば、2桁7セグを2つ接続し、1つ目に「11」、2つ目に「22」と書き込むにはどういう16ビットワードをどういう順番で送ればよいのでしょうか?> 先ず二つ目のICに送りたいデータを送り、続けて一つ目のICに送りたいデータを送ります。その後にLOAD端子をHに立ち上げれば、それぞれのICにデータが書き込まれます。
お礼
早速お答えありがとうございます。 心太式で理解できました。 ただ、やってみると二つ目のICのデータが壊れるのか 表示がめちゃくちゃになってしまいます。 後で送った分は正確に表示するのですが? 何か送り方に問題があるのでしょうか?
お礼
ありがとうございました。 解決しました。 何かと初心者なものでお手数をおかけしました。