Sine Wave GE and DAC


DAC

 最近のPIC12F1822など、1000番シリーズは基準電圧(FIXED VOLTAGE REFERENCE)を内蔵しとてもべんりになりました。以前は簡単な測定器には外部に基準の電圧を用意する必要があり、それだけで専用のICが必要でした、そして150円程度が必要でした。
 これがPICに内蔵され簡単に使えるのは便利です。内部は既に1.024Vが用意され、A/DコンバーターやD/Aコンバーター(DIGITAL-TO-ANALOG CONVERTER)と組み合わせて使える様になっています。おまけに2.048Vや4.096Vと倍の物も使えます。

 残念ながらICから直接出力が出ていませんので使うには工夫が必要です。幸い基準電圧はD/Aコンバーターにも使え、こちらは出力として端子(RA0)から取り出せます。

 もう一つ問題があります、それは分圧器を通すので5bit分のどれかを通さなければなりません。
 例えば31/32を使うと1.024Vの場合、0.992Vの出力となります。まあ、25/32を使って0.80Vときりの良い数字にも出来ますが完全ではありません。
 それに「カタログ上にある電圧誤差は4%ほどの記載が有る」ので精度を要求する場合最終調整が何らかの方法で必要になります。

[ 具体的な動作 ]

 とりあえず実験として、電源電圧5VでD/Aコンバーターは16/32の分圧と設定し 2.5Vを取り出して見ました。

 結果は予想通り[2.5V]が出て来ました、まずまずです。さらにこれから外部抵抗で分圧し[2V]にして使う等の方法が利用出来そうです。本当はバッフアーなど入れたいところですが…。

[図はICメーカーのマニアル:PIC12F1822から引用しました。PIC12F1822は図のVREF-/Vssの選択は出来ません、Vss固定です。]



波形サンプル

[ Sin 波を乗せる ]

 次に、電圧を可変させると低周波なら波を出せます。特に発振回路を使っているわけではありませんが、予めSin波を分解しDATA化してそれを連続的に取り出してその出力が「結果的にSin波形となる」という仕組みです。

 右の写真は別プログラムで描かせたものです(周波数を変更しただけ)。デジタルでDATAを転送しているのでかなり歪んでいますが、方形波よりはましです。
 下の写真は、左手のピークが基本派の1KHzで2,3,4KHzと並んでいますが何れも35dB程度下がっています。簡単なローパスフィルターを入れればきれいな1KHzの信号が取れそうです。

[ 問題点 ]

波形サンプル

 基本的な動作は前記の物と同じです。

 Vdd(5V)→D/Aコンバーター(5bit)→出力端子(RA0)

 このD/Aコンバーターの5bit分を連続で変化させている(DACCON1の下位5bit)だけです。前記の様に予めSin波を分解しDATA化しています。

 4MHz発振でプログラムを走らせると、2KHzぐらいの波形になりました。そこで発振周波数を2MHzに落し、SOFTを少し調整し取り出し周波数を[1KHz]ちょうどにして見ました。
 かなり歪みはありますが、何かの調整や音だしの時に使えるかなー程度です。デジタルのON-OFFよりまし程度でしょうか。

 プログラムは1Step=25サイクル、Sinが20分割、2MHzなので2uS、合計25*20*2(uS)=1000uS(1KHz)となります。



[ 応 用 ]

 実験した1Khzプログラムはこれです。

 実験したわけではありませんが次の様な事が考えられます。
 発振周波数を4MHzにすれば2KHzが出力から出ます、更に8/16/32MHzと増加させれば4/8/16KHzが取り出せます。もっと周波数を上げたい場合はSinDATAを荒っぽくすればどんどんあげられます。

 パソコンのJAVAで計算する場合、入力はラジアンなので角度にするには[N*3.14/180]で求め、更に5bitなので31倍する。ここでは20分割の9°StepsにしたDATAを使いました。

作成 [2012/12/3] 


     [MAIN MENU へ戻る]

inserted by FC2 system