SSブログ

[電子工作] シフトレジスタをAVRのSPIマスタで制御して7セグメントLEDを駆動する [電子工作]

7seg_sr_photo.jpg

元ネタ -> chan氏の LEDディスプレイを接続する

元ネタではソフトウェアで制御していますが、SPIマスタで制御出来ないかと思い
試してみました。

・コモン側(桁選択)のIC(164)を、74ACシリーズにしてトランジスタレスに簡略化。
 ※74AC164は1ピンで20mAくらい出せる。
  今回は電流制限抵抗を1.8kΩとし、( (3.3V-2V)/1.8kΩ ) x 8 = 最大約6mAとしています。
  超高輝度LEDを使っているので、1セグメントあたり0.7mAでも充分な明るさを得られています。

・MOSIピンを[74HC595のデータ入力ピン(14)]と[74AC164のデータ入力ピン(1,2)]に接続して
 SPIマスタで制御

・MISOピンを[74HC595のラッチ(12)とイネーブル(13)]と[74AC164のクロック(8)]に接続
 SPIマスタ中はAVR側が入力になってしまうので、プルダウンしておく。

・74AC164側にクロックを送る際はSPIをdisableにする。この時SCKピンとMISOピンの出力が
 変化しないようにPORTB[4:5]の出力をSPIマスタの終了時の状態に合わせておく

SPIマスタを使うことで、データシフト -> ピン出力 -> クロック出力を最短2クロックで
できるので、ダイナミック駆動時のCPU負荷を軽減できるかな?

回路図とソースコードです。

7seg_sr.png


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。