2006-04 << 2006-05 >> 2006-06

2006-05-04 (木)

*ロボ研::AVRのピン1本で2ビットD/A

リセット時は問題無いのに,電源をONにしたときに,妙な動作をすることがあったので,適当なディレイを入れたら安定した.内部プルアップを有効にした直後はピンの状態が安定してないのが原因っぽい.

データシートを見てて,妙なことを思いつく.内部プルアップ抵抗を使って2ビットD/Aできないか.ちょうどいい抵抗を外付けすれば,上手く行くかもしれない.素直にピンを2本使った方が良いでしょうが….

とりあえず,チャレンジ.最初,ATMEGA88でやろうかと思って,プルアップ抵抗の抵抗値を測って真面目に計算したのですが,その辺に余ってた2313があったので,そっちでやりました.抵抗値の調整に少してこずったけど,一つのピンで2ビットD/Aは出来ました.AT90S2313の一つのピンに抵抗が繋がっているだけなのに,オシロスコープ上には,階段状の波形がでてます.マイコンでのD/Aの精度を2乗できるというのは画期的だと思います.何に使えるかは知りませんが.

階段

AVR担当の後輩のG氏に見せたら,驚いてました.ピンの入力モードを波形生成に使うという発想はなかなかできないようです.

次は2本使って4ビットにするか….

ちなみに,手元にあるMEGA88の内部プルアップの抵抗の実測値は,41.66Kくらいだったので,出力を125Kで電源に繋いで,62.5Kで電源に落とせば良いかと思います.2313だと少し抵抗値が違うようですが,面倒なので100Kと47Kを使いました.これだとあまり均等にならないので,ちゃんと測って計算した方がよさそうです.