組込用マイコンPICは、なかなかの優れもの。
この写真はPIC12F1822というミッドレンジクラスでアキバの秋月で¥80という超安価で手に入るものにもかかわらず、10ビットAD変換を始め、PWM、I2Cなど、機能盛りだくさん。しかも、内部クロックで32MHzという高速で動作する。至れり尽せり。
いかんせん、足の数が8本しかない。そのうち2本は電源なので、外部とのインタフェースは残り6本で行わなければならない。しかし、そのうちの1本は入力専用にしか利用できない。これは、PICの設計上やむを得ない制限。
回路を設計すると、出力のための足が足りない。。。。と言う状況に遭遇する。すると、1ランク上のチップPIC16F1823に変えなければならないのだが、こちらは足が14本有り、今度は余ってしまう。別に、あまらせても良いのだけど、足りない足が1本なのに、5本も足をあまらせてしまうのは、もったいない。(私はケチ)それに、設置場所も食う。
で、何とかうまく切抜ける方法はないかと思っていると、こんな記事に行着いた。
http://ednjapan.com/edn/articles/0805/01/news134.html
海外にも、私と同じようなけちがいることに安心・・・・ではなくて、まさに、仕様の盲点を突いた目からウロコのような利用方法。
簡単に説明すると、PICの足を入力に設定する場合、外部の回路を簡略化するために、内部にプルアップ抵抗機能を持っている。これは、ソフト的にON/OFFが可能。この足に外部にプルダウン抵抗を取りつけると、内部のプルアップ抵抗をOFFにすればLowレベルになる。で、内部のプルアップ抵抗をONにすると、電源ラインからGNDラインにかけて、内部のプルアップ抵抗と外部のプルダウン抵抗の間を電流が流れるルートができる。すると、それぞれの抵抗の比率によりピンの電圧が決ってくる。
内部の抵抗値はデータシートから17k~200k程度。そこで、外部の抵抗をずっと大きい1MΩ程度にすると、ピンの電圧を電源5Vとして、0~4Vで振らせることができる。入力端子なので、大きな電流は取出せないが、電流を消費しないmosFETのゲートくらいならドライブ可能でLEDの点滅程度は制御出来る。
さっそく、試してみようと1822に書込もうとしたら、書込み機W509mini2kitの不具合に遭遇して、少々萎えてしまったというのが先週の状況。
で、PICKit3を購入して、さっそくお試し。。。。としたところ、すんなり成功。
しかも、ソフト開発環境に使っているMPLAB X IDEから、プログラムをmakeして、そのまま自動でPICに焼込みまでしてくれる。これは便利。
今までは、PICライタのソフトを別に立ち上げて、hexファイルを選択して、PICを焼込み機のソケットに差替えて、焼いて、また評価用のボードにPICを差替えてお試し、、、という手順が、PICKit3を評価用ボードに挿してパソコン上で「make+writeボタン」をクリックするだけで、済んでしまうという簡単さ。
何で、早く導入しなかったのだろう。。。とか、ちょっと思ってしまうのだが、苦労して自分で作ったライターに愛着もあるわけで、趣味の範囲ですから、効率一辺倒というわけにも行かず、気持ち的には一筋縄ではないのであ~る。