入出力共有制御

.08 2011 回路図ノート comment(0) trackback(0)
昔思いついて実践した技術のひとつに入出力共有制御というものがあります。
これはマイコンのあるピンにLEDとスイッチを両方ともくっつけて、スイッチの値も読みつつLEDも制御するというちょっと怪しい方法です。
で、これを使ってなんか面白い物が作れそうな気がしたのでメモします。

Tiny2313で74673相当のものを作る方法。
普通に考えたらPORTB 8本 + PORTD 7本 + PORTA 2本のうちPORTB, D全てとAの片方を出力として16bit確保。
残り1本でどーすんの?ってことになります。

そこで入出力共有制御の出番。
どうせ74673の出力ってLEDにつなぐわけで出力が多少ブレたっていいですよね。
だったら完全に入力として使うピンをクロックにしてこのピンの立ち上がりで割り込みをかけ、共有してるポートを入力にしてデータとかラッチクロック受け取ればよさげ。
割り込みがかかった後入力になる期間は数clkで1ns程度。この間一瞬LEDが光ったりするかもしれませんが1nsなのでまず人間は認識できないでしょう。
というか1nsだけLEDに電圧がかかったとしてそもそも光るのかという話はあります。LEDの応答時間は数10nsだった気がするのでこの期間ではLEDに影響はでないではずです。

# ただし8MHz以下限定、入力clkとしては20命令clkつまり400kHz程度が限界な気がします。仕様上多少の制限はありますがマイコンで使うならこの程度で十分ですね。
# というかマイコンで使うならこの74673もどきに送信する関数をアセンブリで設計して適切にnop挟むなりすれば全く問題ない。


この図でdata, latch clkは通常は入力モードにしておき、clkを入れるときだけデータを出力するようにすれば無駄な電力消費は抑えられます。

はい、100円で74673相当の物作れたw

USBのmegaへの移植はまだまだ変な罠にはまっている感じです。トホホ…


関連記事

  • comment
  • secret
  • 管理者にだけ表示を許可する

trackbackURL:http://yuranos.blog11.fc2.com/tb.php/162-c94cc6dc