閑人

アクセスカウンタ

zoom RSS 秋月のファンクションジェネレータ FG085 その後

<<   作成日時 : 2017/06/10 22:57   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

最初に、無線関係の懐かしい会社のロゴを2題 (KDK様のコメントから、探してみました)
画像

画像


展示会が続いたので、何もしていなかった。今日は、朝から、FG085のDDS部分の問題点を考えていた。
最初に、動作させていると、消費電流がかなり多いことに気付いた。回路図を見て、R-2Rラダーの抵抗値が、150Ω/300Ωであることが分かって納得した。この10倍以上の抵抗値でなければ、マイコンの駆動能力が追い付かない。大元の、miniDDSは、10k/20kΩだったと思います。どうして、こんなとと思って、回路図をもう少し見ると、出力のバッファに、LPFのコンデンサ切り替えが付いている(結局効果は無いのだが)。このコンデンサの容量を180pFにする為に、抵抗値を変更したようだ。どうしてそんなことを・・・・・
オシロスコープで、AVRの出力を見ると、H/Lレベルがかなり変動している。残念〜〜〜!

次に、DDS用のAtmega48PAのコードを逆アセンブルして、覗いてみた(ちょっとスケベな感じがする)。
割り込み以外のコードは、AVRの沢山のレジスタを使っていないので、C言語で書かれているのだろうか?その割にはちょっとした小細工もあり、何かのアセンブラソースを修正して使っているようだ。
何故かというと、サブルーチンの呼び出しで、レジスタの退避が殆ど無いからだ。

SIN波のテーブルが、プログラムの先頭、256バイトにあり、波形テーブルのRAM領域(先頭256バイト)にコピーして出力されている。つまり、基本的なアルゴリズムは、miniDDSを参照しているのだが、SIN以外の波形は、演算で、波形テーブルを作成している。これで、メモリを節約しているらしい。プログラムROMの領域は、殆ど埋まっている。苦労したのだろうか??
しかし、良く見ると、使われていないコードが沢山ある。元々は、コントロール側のCPUから、I2C経由で、波形データを受ける仕様だったと思われる。
波形がテーブル通りに出ない問題は、タイマー割り込みの処理自体の処理時間が長い、割り込み禁止期間が長い、テーブルポインタの更新タイミング、DDS用のDAデータの出力方法の全てに問題があることが解った。簡単には修正できないので、そのままにしておく事にしました。

大元の、miniDDSの出来が良かったのに、残念でした。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
秋月のファンクションジェネレータ FG085 その後 閑人/BIGLOBEウェブリブログ
文字サイズ:       閉じる