無線ブログ集
メイン | 簡易ヘッドライン |
DDS関係の工作 (2013/7/20 15:40:58)
ご無沙汰しております。
大阪に引っ越して片付けなどのバタバタも落ち着き、ようやくこの地域にも慣れて来ました。
コンビニでお茶を2本買うお金で日本橋を往復でき、週末はパーツ屋巡りができて幸せです(>_<)
さてさて、週末は一日中電子工作にふけているわけですが、最近作ってるものがあります。
ジャンクを部品取りして出に入れたDDSがあったので、いろいろマイコンを買ってきて制御してみました。
高専時代はPIC小僧だったのですが、今季になってArduinoやSTM32を使ってみた感じ、Arduinoがかなりお手軽でした。
デバッグも簡単だし、マイコンボードとして回路も汎用的に使えるものだし、変なライブラリ(STM32)を読み込む必要がないし・・・
ただ、ちょっと動作が遅いのが気になりますね。4クロック1サイクルとして動作するPICと違い、1:1で動作するArduinoは速いと思い込んでいましたが、IOに関しては、
Cで書いたArduinoはアセンブラで書いたPICにはかないません。Arduinoでは直接IOレジスタに書き込んでなんとか速度を確保しています。内部処理については、Cのほうが書きやすく、速度もそこそこでるので問題なく使えます。
このDDS(AD9834)とArduino UNO
R3を使って、なにができるか先行きははっきりしませんが、ログアンプのAD8307を使いちょっとした測定器モドキを作ってみました。本当はLCDに表示させたかったのですが、安価に惑わされてドライバの入っていないダイナミック方式のLCDを買ってきたため、マイコンじゃ手に負えません・・・(メモリが圧倒的にたりない)
しかたなく、先年サウンドカードを使ったFFTのアプリケーションを流用して表示させることにしました。
とりあえず、オーディオ帯域の測定ができるようにしたのですが、
最初はノイズフロアが-5dBmとかなり高く、何が原因かといろいろいじっていると、どうもAD8307のカップリングコンデンサが大きすぎるせいだとわかりました。カップリングを100uF→0.1uFにすると、かなり改善。ノイズは約-55dBmに下がりました。
ですが、それでもAD8307のスペックに対してはかなり高いです。
それに、カップリングが小さいせいで低周波のカットオフ周波数が約1.5kHzと、オーディオとして使えるものではありません。
周波数帯域の話はおいておいて、机の上でAD8307のチェックをした時のノイズと、こうやって動かしている時のノイズに差があることに気づきました。
いろいろ抜き差ししてみると・・・どうもDDSが悪さをしているようでした。AD8307の入力を短絡した状態でDDSの電源を抜いてみると、20dB近くノイズが下がりました。これでかなりスペックに近いレベルに近づきました。
DDSとログアンプの信号ラインは繋がっていないので、どうやら電源ラインに対策が必要そうです。
ただ、部品規模に対してユニバーサル基板で作った基板サイズがかなり大きいので、シールドするにはかなり大掛かりになります。とりあえず電源関係をいじってみましょう。そしてUSBバスパワーはいい加減やめます(笑)
execution time : 0.016 sec