Darkside(https対応しました)

2008年2月8日(金) 17:11

PICでいい

 レーザーON/OFF回路の方を先に進める。

 緑と赤の同軸レーザーが実現してミラーまで設置するとなると、ミラーの保護が不安になる。ガルボのミラーは極めて繊細であり、使用しないまま何日も放置するのは気持ち悪い。だから、ミラーまで組み立てたらすぐに動作実験出来るよう、ON/OFF基板をやっつけておきたい。

 4050Bは千石電商に普通に置いてあった。鈴商にもB型番ではないが置いてあった。いずれもショップでも4010Bは欠番であり、やはりHCTの普及が単純なTTL→CMOS変換バッファの需要を失わせたのではないかと想像される。
 いざ4050Bを遅延用にDATAに挿入するが、まるで挙動が変わらない。LSBがどうしても取れないのだ。

 オシロでチェックすると、WSもDATAも想定通りに振れている。だが、安物の簡易オシロでは複数チャンネルの同時モニターが出来ないため、目下の焦点であるWSとDATAのタイミング関係が分からない。どの程度ズラせばLSBが取れるのか?
 ここで、ハタと気付いた。むしろ、我に返ったという言い方が近いかもしれない。

PICでいいじゃん!

 何だかんだやってるうちに、ICが3個になってしまっている。DATAを2チャンネル取ろうとすれば、HC175が追加されるので4個になってしまう。更に本番では恐らく、左チャンネルのLSBを実際のレーザーON/OFFに反映させるタイミングを右チャンネルと同時にするための遅延回路が必要になる。
 そこまで大規模化するならディスクリートで組む意味は既に無く、PICに全部任せりゃいいだろ?

 そもそもこの手の用途に自分はすぐPICを持ち出す。ハードよりソフトの方が専門だからだ。今回PICを避けたのは、速度面の問題である。I2Sフォーマットの48KHzステレオ信号は、PICでポーリングするには速過ぎるのだ。
 しかし、D/A変換を TDA1543 に任せ、単にレーザーON/OFF情報のみ取得するのであれば、PICでも処理が追い付くはずだ。

 PICでポーリングするには最小でも3クロックを要する。20MHz動作させれば内部クロックは5MHzであり、0.6μ秒ごとが限界だ。一方、I2Sの1ビットは0.3μ秒ほどなので、D/A変換には処理が追い付かない。だが、下位4ビットをまとめて0か1にするレーザーON/OFF情報なら、1.3μ秒のパルス幅が確保されるためPICで読める。
 しかも、PICのI/OポートはTTLレベルなので、HCTを入れなくても直接接続可能だ。更に、遅延バッファなど入れなくてもソフトで自在に遅延を作り出し調整可能。時間的にズレて到来する左右チャンネルの取得結果を、同時に出力するのも造作無い。

 PICを使えば、1個で済んでしまうのだ!

RA2 OUT 未使用 RED ON/OFF OUT RA1
RA3 OUT 未使用 GREEN ON/OFF OUT RA0
RA4 OUT 未使用 セラロック
20MHz
CLK
リセット 10KΩpullup CLK
GND −直結 +直結 VDD
RB0 IN WordSelect 未使用 IN RB7
RB1 IN DATA 未使用 IN RB6
RB2 IN 未使用 未使用 IN RB5
RB3 IN 未使用 未使用 IN RB4

written by higashino [ガルバノメーター] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

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

Comments

TrackBacks

Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4