AitendoのOLED in FRISK その6 「オシロスコープ化」
前回用意した拡張コネクタを使って超小型のオシロスコープを作成中です。
回路図は以下のとおり。左上の方が拡張部です。特に何も考えずにオペアンプでバッファだけ付けてます。
これでいきますと、電源電圧とPICのADCの仕様から入力電圧はDC0〜3V限定となります。実用性はあまりないかもしれないですね。(^^;
追加した部品と基板は以下のような感じです。(オペアンプの電源は本体から取ることにして写真にある電池フォルダは使いませんでした。)
あとはソフトの方ですね。とりあえず表示系と操作部だけ作ったところです。
後はAD変換部だけできれば完成(そこが一番大事ではありますが。)となるはずです。
実はPIC24FのADCの操作方法でちょっと手間取っているのと、測定対象となる信号源も何か用意しないと確認もできないと気づきまして、今日はここまでとしてしまいました。
それではまたです。
ezekiel様。こんにちは。
何か私の方でわかりそうなことがありましたらご遠慮なくお書き込みください。
新しい物が動いたらまた教えて頂けますと幸いです。
投稿 見習職人 | 2013/10/06 14:54
すみません、書き込みが遅くなりました。
わざわざご丁寧に、返事を頂きありがとうございます。
書き込んで頂いた内容を色々理解しながら
自分で可能な限り試してみたいと思います。
又分からない事が有りましたら、お尋ねして宜しいでしょうか
ご迷惑をおかけしますが宜しくお願い致します。
投稿 ezekiel1 | 2013/10/05 13:38
ezekiel様
こんにちは。I2C、シリアルは大体こんな感じです。
(1) I2C、SPI : 汎用I/Oで信号(CLK、DATA)を1ビットずつ
動かすソフトウェアルーチンを作ってます。
(2) シリアル(RS-232C):内蔵シリアルインタフェースハードを使って
その制御ソフトを組みます。
理由:
(1)クロックを自分で出してタイミングを勝手に作れるので
ソフトだけでも簡単だし、アセンブラなら動作も速いです。
(2)クロックがなく、タイミングが決まっているのでソフトだけ
では大変です。特に受信はとても大変です。
でも、どちらも普通はライブラリ関数がありますので、効率を考えるとそれを利用した方が簡単です。
私はブラックボックスが嫌なのとオブジェトサイズが大きくなる気がしてなんとなく避けてしまいますが、いまどきのマイコンならあまり問題にならないかもしれません。
命令コードについてはシリアル(RS-232C)の場合はASCIIコードで与える場合が結構あり、I2C、SPIではそうではないことが多いと思います。
例えば、ちょっと前にお知らせ頂いたM6955の例ですと、
http://aitendo3.sakura.ne.jp/aitendo_data/product_img/radio/dsp/m_pcb/m6955/M6955_dshver20130625.pdf
このデータシートの8ページのシーケンスで命令コードではなくデバイスアドレス、レジスタアドレス、書込みデータを与えます。
周波数設定はレジスタアドレス03に周波数に合った値を書くことで可能なようです。
繰り返しになりますが、ソフト制御をお考えでしたら、ライブラリ関数をお使いになった方が、悩みが少ないと思います。
以下はPICのライブラリの例です。ご参考にどうぞ。
http://www.picfun.com/pic18/i2c08.html
投稿 見習職人 | 2013/10/01 21:41
こんにちは
確かにそうですね、其のままではシステムを動かしている
VCC以内で無いと無理ですが
敢えてアッテネーター迄つけて測定できる様にするには
このユニットを作っている趣旨からすると少し外れますからね。
別件ですが、少しお尋ねしても宜しいでしょうか
シリアル通信とか、I2Cの通信の制御の波形はどうして
作られているのでしょうか
(信号を出した、受け取ったとかの信号は別にして)
ただ単純なHi,Lowの繰り返しで、規定の繰り返しで終わりとか
と言うものでしたら、作り易いし分かるのですが
例えばI2Cの通信によるラジオの周波数の場合インクリメントの
命令コードと言うのはASCIIコードの組み合わせの場合も
有るのでしょうか。
ランダムな波形だと、作るのが大変なような気もしますけど。
無茶苦茶なお尋ねですみませんが、何も分かりませんので
宜しくお願い致します。
投稿 ezekiel | 2013/10/01 15:46