« 帰省 | トップページ | AVR_DDS(2) »

2009年9月26日 (土)

AVR-DDS

TXの製作に入ってAFTTGにパソコンソフトのWAVEGENを使わせてもらっていましたが

もう少しIMの良いものが欲しくなり自作しようかと考えていろいろ思案していました。

候補は、

①OPAMP2個で信号を作り合成する。

②信号を分周して希望信号を作り合成する。

③DDS(AD9851)を2個使って信号を作り合成する。

等ですがWEBをさまよっていたらAVRのポートから8bitのデータを出して R-2Rの

ラダー抵抗でD/A変換してSin波を作るというのが目にとまりました。

作られているのは、アセンブラかCを使っておられのですがBasicでどこまで出来るか

実験してみました。

Imgp0477

実験中の様子です。

Imgp0476

作ったSin波です。

ATmega88を12.8MHzの水晶で駆動しています。

最高周波数は約1.8KHzでした。

AFTTGの2信号は、1000Hzと1575Hzにしようと思っているのでなんとかなりそうです。

R-2Rのラダー抵抗は2Kと1Kの無選別の抵抗を使っているので少し歪があるようです。

Adv080

高調波がかなり出ています。

次は抵抗を選別してやるとどうなるか試してみたいと思います。

« 帰省 | トップページ | AVR_DDS(2) »

AVR」カテゴリの記事

コメント

おお?TTGを作るということは、TXも極低歪路線でしょうか(笑)?高調波が問題なら、精密抵抗を使って、さらにOPAで受けて、AFのフィルタリングしたあとで、OPAで合成すれば、なんとかなりそうですね。その場合、LPFのカットオフは悩みそうですが、いっそ、SCFを用いて、クロック可変にしてFcを発生周波数にあわせるよう、AVRでコントロールしてしまっては?

清水さん、こんばんは。

>TTGを作るということは、TXも極低歪路線でしょうか(笑)?
Hi これしか能がありませんから(笑)

>いっそ、SCFを用いて、クロック可変にしてFcを発生周波数にあわせるよう、AVRでコントロールしてしまっては?
いえいえまだそこまでの技量はありませんから
ステート・バリアブル・フィルタでも入れてみようかと
思っています。

問題は、Basicでは細かな周波数の設定がまだ出来ないことです。
CとかASMを使っておられるものは、最大100KHz
くらいまで作られていて周波数も1Hz単位で設定出来るようですが
現状の技量では無理なのでキッチリとした周波数では無く近似の周波数で
お茶を濁すことになるかも・・です。

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: AVR-DDS:

« 帰省 | トップページ | AVR_DDS(2) »