ピッカピッカさせます

クワドラチャDDSはどうなったんだ、と言われそうですね。ライントレーサー(ちょこまカー)の工作教室があさってあるので、それが終わったらまたやらねば。しかし今日のネタは趣味のネタです。

こんなものを作り始めました。8ピンのPICが64個、CMOSオペアンプが32個、LEDが64個、複合トランジスタが64個載った基板を組み立てています。

画像


画像


これがさらに16枚セットになり、LED1024個をアレイ状に並べて何かやろうというわけです。

画像


最近流行のLEDをマイコン制御で様々なパターンで光らせようという趣向とは、実は全然違います。ここで回路の説明になりますが、ちょっと脱線気味になります。

LEDはフォトダイオードとしても使えます。ただし効率は悪いです。だいたいの傾向として、発光効率の良いLEDの方がフォトダイオードとしても量子効率が良いようです。面白いのは、というか当然なのですが、波長が長い色のLEDはより波長が短い色の光に対してフォトダイオードとして動作しますが、逆はダメです。

それから、GaN系のLEDはフォトダイオードとしては発電効率が悪いです。これはGaNそのもののバンドギャップは紫外線領域に相当し、発光層(ここでキャリアの結合が起こる)として可視光のバンドギャップを有する材料をサンドイッチしたような構造になっているためだと思います。つまり、発光層に光が入射すると光キャリアができるのですが、そのエネルギーがGaNのバンドギャップよりも小さいので電流として端子から取り出せないということだと思います。

じつはガラス封じのシリコンダイオードにも弱いながらフォトダイオードとしての性質があります。たとえば、長い時間ホールドしなければならないアナログ式のサンプル&ホールド回路では、入力バイアス電流がフェムトアンペアというようなMOSFET入力のオペアンプを使い、コンデンサとオペアンプをテフロンポストで接続したり、ガードリングを使ったりと、いろいろ気を使いますが、オペアンプの保護のためにガラス封じのシリコンダイオードを使ったりすると、ダイオードに光が当たって光起電力が外乱になるかも知れません。もっとも、そういう目的でガラス封じのシリコンダイオードを使う人も居ないかもしれません。接合型FETのゲートのPN接合が漏れ電流が少ないと言われていたと思います。FETは黒い樹脂か金属缶で封じられていますから。

さて、このLEDをフォトダイオードとしても使えるということは知ってる人は知っている話なので、鳩歩堂は一工夫して、ひとつのLEDがある時はフォトダイオードとして、またある時は本来のLEDとして動作する回路を考えました。それがすでに10年以上前。ところが、ネットで調べてみると同じ事を考える人はいるものです。フォトダイオードとして周囲の明るさをモニターしていて、暗くなったら自分が点灯するという回路が紹介されているのを、どこかで見つけてどっきりしました。ブロック図だけ示すと、鳩歩堂の作っている物の1ユニットと全く同じになってしまいます。

画像


実は鳩歩堂のは周りが明るくなったら自分も光るという逆のアルゴリズムになります。

上の図を見てください。Tr1とTr2が両方offになっているとき、LEDが光を受けると電荷が発生し、コンデンサC1を充電します。この充電電圧がある基準値を超えたらTr2をONにします。そうすると、LEDの飽和電圧は基準値よりずっと高い値になりますから、コンデンサC1もしっかり充電されてしまいます。Tr2をoffにしても、この充電電圧が残っているため、周囲が暗くなってもわかりません。次に光をセンシングするためにはTr1をonにしてコンデンサの電荷を捨てる必要があります。

(※回路図のトランジスタにベース抵抗を入れ忘れました。実物はパナソニック製のNPNトランジスタとPNPトランジスタにそれぞれベース抵抗が入っている複合部品を使っているので、ついつい描き忘れました)

それがなんでおもしろいかというと、一種の神経細胞のモデルになっているからです。周辺の光の強さを興奮性シナプスからの入力の強さだと見なします。興奮がある閾値に達すると、このユニットは自分が光ることによってまた周囲に興奮を伝えます。しかし、ある一定時間パルスを出した後は、一定期間入力に反応できない期間が訪れます。

閾値、光パルスの長さ、休止(静止)期間の長さなどをうまく調節し、あるいは部屋の照明(興奮のバイアス値)を調節することによって、1024個のLEDが同期したり、あるいは波が伝わるように光ったりするのではないかというわけです。

名付けてPhotically Inter-Coupled Cells Array、略してPICCAです。

これを思いついたのは東京電機大学に勤めていたときですが、当時はマイクロマシン研究室というのを主催しており、PICCAの研究にお金も時間も使えませんでした。転職してからはAFM屋さんなので、こんどもお金と時間が使えませんでした。したがって、趣味でぼちぼちやろうと思っていましたが、ここまで来てやらなかったらいつまでもやれないので、今年は意識的に進めようと思います。

じつは電大当時はコンパレータとCMOSのワンショットマルチバイブレータ(2個入り)で20ユニットくらい作ったでしょうか。ところが、LEDのフォトダイオードとしての特性にはばらつきが大きく、全ユニットに同じ基準電圧を供給するのでは光らないユニットがあったりします。

そうこうしているうちに、8ピンでADコンバータ入りのPIC12F675というマイコンが出てきました。じつは当時、鳩歩堂まだZ80ベースのワンチップマイコンを2回くらい使ったことがあっただけだったので、ディジタル化したい気持ちがすぐに生かせませんでした。今は満を持して取り組めるというものです。

今回作った基板は、全部のユニットにPIC12F675が1個ずつ付いています。もちろん別の設計もあり得るのです。64ユニットあたり32ビットマイコンが1個というような設計もあり得ます。しかし、64チャンネルのアナログスイッチが必要だったり、それをコントロールする配線が必要だったり、と考えたら、愚直に全部同じ回路にしてしまおうと思ったのです。

全部64セットと言いましたが、ボルテージフォロワに使っているCMOSオペアンプは2個入りなので32個で足ります。このオペアンプがなぜ必要かというと、マイコンのADCは漏れ電流が大きいため、それがコンデンサを充電してしまうためです。

PIC12F675の3本のピンは、常時はアナログの基準電圧を受けるのとシリアル通信によってパラメータの変更を受け付けるために使います。また、この3本はICSP(シリアルプログラミング)のためにも使えます。ただ、全部のPICが並列になっているため、ICSPによるプログラムの書き込みはできますが、読み出しをするとバスの衝突が起きてしまいます。普通のPIC書き込み器は書き込んだらすぐにベリファイするため、この衝突が必ずおこりますし、第一ファンアウトが64倍必要になるので、おそらく書き込みできないと思います。

そこで、いま考えているのは、CPLDでPIC12F675のICSP機能を模擬し、PIC書き込み器から見たら正常なPIC12F675がつながっているように見せかけることです。そうやってプログラムをスタティックRAMか何かにダウンロードしておいて、次に64個並列に書き込む専用書き込み器を駆動するわけです。ベリファイはしません。これによって64個同時にプログラムを書き換えることができるようになるでしょう。

最近まで書き込み器はPIC START plusを使ってきましたが、ICSP用にできていないので、PICKit 3を買ってきました。最近のMPLAB IDEにはHi-Tech Cがただで付いてくるんですね。ユーザのホームディレクトリがひらがなの名称なので、ソースをちゃんと認識しないとかちょっとしたトラブルがありましたが、姑息な対応策としてC:ディレクトリの直下にフォルダを作ってソースを入れることでなんとか動きました。本日はLEDが点滅するプログラムを書き込めたところでヨシとします。

画像


ところで、PIC12F675はもう7年位前に1024個買ってあります。当時から1個120円だったと思います。さっき秋月電子のサイトを見たら、同じ8ピンでPIC12F1822というのが80円ではありませんか。しかも8倍高速です。買わなきゃ良かったですね。\122,880が\81,920で済んだはず。トホホです。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック