DDS Carrier osirator [DDS]
最近フィルタの試作を試みているが、受信機、送信機に組み込んだときにキャリア発振器も用意する必要がある。フィルタ用水晶で作ればよいのだが、AM用、LSB用、USB用、CW用と回路が大きくなることと発振範囲調整のためVXOにしたりしなければならない。尚且つ実際の受信において音質の良くなるところに調整をする必要がある。これらの手間を省くためにDDSを使ったキャリア発振器を作ってみた。
DDSは勿論在庫多々の中華DDS(AD9850版)を使用した。DDSのコントロールのためAVR(ATTINY2313)を用いている。最近はほとんどATmegaタイプを使うことがほとんどで、ATTINY2313も不良在庫になりかけている。今回のような小型システムにはちょうど良い。
プログラムは、いつものBASCOM-AVRで作っている。メモリー使用量は78%位となった。
仕様としては、外部からの信号(ハードスイッチ又は他のAVR等)で制御できることとDDSの基準発振器の誤差調整が出来ること。
具体的には、他のAVR等からのコントロールも考慮してBCDスイッチでキャリア周波数を選択する。(例 1:AM 2:USB 3:LSB 4:CW) 他のMPU(AVR等)からコントロールする場合はBCDコードを送る。
基準周波数調整及びキャリア周波数ピッチ変更は、SW1(ON:基準周波数変更 OFF:ピッチ変更)で選択しUP/DOWNスイッチ(SW2,SW3)で調整する。手順としては、AM用キャリア周波数を選択しておき、出力を周波数カウンタに繋ぎ、DDSが安定した状態(ONして10分位後)でSW1をON側にし、UP/DOWNで希望周波数になるようにする。1周波数で調整すれば、他の周波数も必然的に正確になる。 実際にはどの周波数でも良いが、AM用キャリアを選択したのは、SSBやCWなどと違い変更しない周波数だからである。他のモードは初期プログラムに設定された周波数を変更する可能性がある。
尚、周波数変更ピッチは10Hz単位としている。
これでまず、DDSの基準誤差修正が済んだ。以後は実際の使用に合せてSW1をOFF側にして、ピッチ調整を行う。
基準及びピッチの情報は、AVRの内部EEPROMに書き込まれるので、電源を切っても維持される。
これら設定が終わったら、モード設定用BCDスイッチ以外は必要ないので取り外しておいてもかまわない。設定時具としてコネクタ接続にするのも良いかも。
今回の唯一の難点は、出力周波数の初期値は変更できない。 UP/DOWNスイッチで出来ないことはないが、10Hz単位なので大幅な変更では、疲れてしまう。また、メモリの書込み回数保証が10万回であるので、10Hzごとに書き換える今回のプログラムではダメである。どうしても変更する場合は、基本プログラム内に書き込んである初期値を変更しプログラムを書き込むこととしている。
これで、とりあえずフィルタの試験等がスムーズに出来る。また特注水晶を発注しなくても済む。DDSで十分な実用実験をした上で、最終周波数を決めてから、恒久用に水晶を発注すればよい。
DDSの出力は-5dBm弱。スプリアスも-50dBは取れている。問題の有るDDSのフィルタは特に変更していない。そのままでも十分使用できそうである。一応基板上にはバンドパスフィルタを載せられるようにしてるが、不要かもしれない。
以上 備忘録的UPです。
JA2NKD
中華DDS汎用VFO(その2) [DDS]
DDS万能VFOのプロトタイプで暫く動作試験を行った。
概ね問題は無いが、もう少し改良したい部分が出てきた。
更に、AD9851のボードにも対応したい。
然しながらポートは 既に満杯。AVFもメモリ98%使用でバッターアウト
これらをどうしようかと考えてみた結果、今回の改造となった。
【課題1】
メモリの使用率が98%なので、何とかダイエットできないかとやってみたが、さして効果なし。
自分自身のダイエットと同じである。止む終えずAVRを ATmega168Pに変更
【課題2】
AVRを変更したがポートが足りないことは同じである。
AVRを40pinタイプにすれば簡単であるが、基板が大きくなってしまう。
方法としては、ポートを幾つか使用して、ダイオードマトリックスを使いスイッチを取り込む方法
が考えられる。
また、デジタルICを使用してデシマル-BCD変換して取り込むのが本来かもしれない。
BASCOM-BASICには、キーボード用の命令もあるが、少々多すぎる。
今回はあと少し増やしたいという時の非常用といえるかもしれない。つまり邪道と言われるかもしれない。
その方法とは、ADコンバータを使用した方法である。1ポートをAD変換として使用し、抵抗分割で電圧を作りスイッチで選択しADで電圧を測ることによりスイッチを選別する方法である。理論的には1023個のスイッチが作れることになる。実際には、誤差、変動による誤動作が無いよ
うな電圧差を考慮する必要はあるが。
最初は抵抗とスイッチのみで試作してみたが、チャッタにより毎回数値が変動し、誤動作の恐れがあった。また、経年変化も考慮しなければならない。そこで抵抗分割とデジタルトランジスタ を使用して確実性をUPさせている。これは結構使えそうだ。
【課題3】
ポートに余裕が出来たので追加プログラムを入れることが出来る。
その一つは、エンコーダーである分解能で回していると、どうしても早送りが欲しくなる。そのたびにSTEPを操作するのも面倒だ。早回しをしたときに自動的にアップさせるようなプログラムは複雑。メーカー製のような1回転1000パルスのエンコーダーも手に入らない。そこで苦肉の策として「Turbo」スイッチなるものを作ってみた。これを押しながら回すと10倍速になる物で、100HzSTEPの時1KHzとなる。これでかなり使いやすくなった。
もう一つの追加機能として、DDSをAD9850とAD9851の両タイプに対応出来るようにした。このために1ポートを使っている。プログラムの中で指定する方法もあるが、せっかくポートに余裕が出来たので、ジャンパで選択できるようにした。
【DDSプログラム】
DDSのプログラミングに関しては、ブログで幾つか公開されている。私も概ね同じ方法であるが、時々電源ON時に発振しないことがあった。その為現在はDDSのイニシャルセットにおいてDDSのリセットコントロールを行っている。これもポートを1個消費している。その後はトラブル無く発振している。マニアルにもRESET後直ちにシリアルモードコントロールするよう推奨している。
【電源コントロール】
EEPROMに最終使用周波数等を記憶したいが書き込み回数保証が100,000回であるために、電源OFF時にEEPROMへの書き込みを行いたい。このため、電源スイッチでOnした後、自己保持回路で電源用リレーを保持させている。スイッチをOFFさせたことをポートで検出し、ROM書き込み後、リレー保持を解除するようにしている。この部分のパーツが結構必要となっている。
【基板】
概ね完成形となってきたので基板を起こした。きこの基板は、2種類の基板(大、小)に対応できるようしてる。所有しているAD9850(大小)とAD9851(大)の3種類に対応できるわけだ。
この基板での特徴として、LCDコネクタのピン配置が上下逆さまとなっていることである。これは、一般的なLCDのピン配置はLCD正面側を基準としてコネクタピン配置されているのだが、こちら側にコネクタを取り付けるとパネルに取り付けるときに邪魔となる。そこで裏側にコネクタをつけるのだが、こうすると1と2、3と4・・・・13と14が上下反対となる。 これで秋月などで売っている14ピンコネクタ付ケーブルがそのまま使えるようになる。
DDS出力は、A,Bの2回路取り出せるようにしてある。AはDDS基板上にLPFがあるが、Bは直である。その為基板上にLPFが仕組めるようにパタンを用意した。
尚、DDSの問題点、クロック発振器やLPFについては幾つか報告例があるので、それを参考にして対処する必要があることを付け加えておく。
電源は5V200mA強必要で、3端子レギュレータを搭載できるようにしているが、結構発熱するので、しっかり放熱する必要がある。
その他については、写真。回路図を参考にされたい。
2014.11.12
訂正:回路図修正(RN2203極性修正、AVR型名修正)
2014.11.19
訂正:回路図訂正(2SC2665→2SC2655)
中華DDS汎用VFO [DDS]
eBayでよく出品されている中華製DDSユニット。既に多くの方が色々活用されているようだ。ご他聞に漏れず、私も幾つか仕入れて使っている。
使用する度に専用プログラムを製作しているが、もっと活用できるようにと汎用プログラムを作ろうと思っていたところ、たまたま知り合いの局から依頼があったので製作を開始した。
汎用といっても色々な使用が考えられるので、限定的汎用かも知れない。また使い勝手も課題が出てくると思うが、取り敢えず作ってみないと先に進まない。そういった意味では、汎用VFOのプロトタイプといったほうがいいかも知れない。
今後皆様からのご意見が頂ければ幸いである。
【仕様】
・表示周波数とDDS出力を任意に設定できる(中間周波数等シフトのプラスマイナス)
・RIT(±10KHz可変)
・周波数範囲設定(上限下限)
・DDS基準発振器周波数設定)
・送信、受信周波数のシフト
・周波数ロック機能
・周波数メモリー(9チャンネル)
・電源OFF時の状態でON(周波数、メモリーチャンネル等)
・周波数可変ステップの設定
このような仕様で作ってみた。
個々について如何に簡単に説明していく。
【ハード】
開発時には取り敢えずAD9850DDS基板を使用している。マイコンはいつものATMEL ATmega88で、以前作成したATmega汎用基板を使用。
プログラムもいつものBASCOM-AVR BASICである。
開発なのでユニバーサル基板を使用しヘッダーピンとジャンパー線で仮設配線としている。最終的に出来上がれば、基板化を検討したい。
【機能】
1.メイン画面
メイン画面では、周波数変更が設定されているステップで変更できる。ステップはステップスイッチで1,10,100,1k,10k,100kにトグルで変更できる。設定された桁の下にカーソルが表示されているので容易に設定値が分かる。
ロックスイッチを押すと画面に[Lock]と表示されエンコーダーを回しても周波数は変化しない。
RITスイッチを押すとRITされる周波数が表示され有効となる。最大値±10KHz。この機能は受信時のみで、且つRITをOFFとすると設定値は0にリセットされる。余裕があれば送信用RIT
も盛り込みたいと思う。
2.メモリー回路
周波数メモリーは9チャンネル。メイン画面でメモリースイッチを押すとメモリー周波数が表示される。初期値は1CHでアルが、最終使用CHを記憶しているので次回からは希望CHでメモリーが設定される。メモリーへの書き込みは、FUNKキーとメモリーきーを同時に押すと上段のVFO周波数がそのCHにコピーされる。
3.ファンクション画面
ファンクション画面では、以下の5機能がある。
「1」DDS基準クロック設定
DDS周波数の調整は、このクロック周波数を変更して行う。
「2」中間周波数シフト設定
DDS周波数と表示周波数の差を設定する。これにより周波数直読としている。(±設定可能)
「3」最低周波数設定
バンドの下端周波数を設定する。OFFBANDに注意
「4」最高周波数設定
バンドの上端周波数を設定する。
「5」送信周波数シフト設定
受信時と送信時に周波数を変更したいときには、ここで送信時にシフトしたい周波数を設定する
以上プロトタイプの機能を間単に説明してみた。
まだ検討余地があると思うのと、バグフィックスで完成度を上げていく予定。その後基板か出来ればいいな。
Kさん、こんな感じですが、如何?
最後にあくまでも参考に回路図をUPしておく。
180MHz 水晶発振 [DDS]
明けましておめでとうございます。本年も拙いブログを宜しくお願い申し上げます。
正月は、食っちゃ寝でほとんど鏝遊びはしないで過ぎてしまった。最近は7MHzA3送信機を製作した。(ブログ2に掲載)興味のある方はご覧いただければ幸いです。
さて、最近DDSを使うことが増えてきた。その為DDSの基準信号が課題となっている。1月のトランジスタ技術にもJA9TTT-OMが執筆されているので、ご覧になられた方も多いと思う。当局もご他聞に漏れず、幾つか仕入れている。またIC自体もある。これらを十分に活用していくためにはOSCが不可欠である。今回AD9851用のOSCを実験してみた。
このDDSは30MHzOSCを入力し内部で6倍し180MHz基準で動作させることが可能である。しかし直接180MHzを入力したほうが内部スプリアスが少ないとも言われている。
そこで180MHzのOSCを作ってみた。水晶基本波は高くても30MHz以下 なので180MHzを作るためには
180÷7=25.71MHz又は180÷9=20MHz
となる。ジャンク箱から適当なものを探してみた。20Mhzはパソコンのマザーボード等についていたものがあったが9次オーバートーンに適しているか分からない。以前このブログで紹介したジャンク水晶に61.25MHzというものが大量にあった。これならば3倍オーバートンだから9次もいけるのではとの期待から、今回この水晶で実験してみた。
【回路】
回路はJA9TTT OMのブログに発表されているものを参考にさせていただいている。但し今回は9次なので簡単には発振してくれない。
トランジスタは極力Ftの高いものとの事で在庫品の中から2SC3778(Ft5GHz)を使用。
コイルはヤフオクで入手したジャンク7mm角コイル。1次側4t 2次側2tのものである。6pFをつけると180Mhzに同調する。(無負荷時)
実際に製作してみると浮遊容量のせいかなかなか発振しない。エミッタのコンデンサー調整、コイルの同調用コンデンサ等をカットアンドトライしたところ、同調用コンデンサ2pF、コレクターエミッタ間に2pFを追加することでやっと9倍オーバートーンで安定して発振してくれた。183.75MHzのはずであるが無調整のため183.72MHzであった。
さすがに高い周波数(私にとっては)は難しい。またこの調整にスペアナは欠かせない。正常に発振しているのかどうかの判断はスペアナ無しでは分からない。昔50MHzのクリコンでうまくいかなかったことを思い出した。信号レベルは-1dBm程度であった。このレベルでは周波数カウンタもプリアンプをつけてやらないと正確にカウントしない場合がある。
エミッタのトリマコンデンサの調整は結構クリチカルである。また負荷変動による発振への影響も大きく、実使用にはバッファアンプは不可欠である。
これでDDSの活用がさらに進められる。
今回使用したクリスタルは沢山あるのでご希望の方はコメントなりメールなりいただければ無償で差し上げる。
おまけ:
今回部品箱でクリスタルを物色していたときに面白いものを発掘した。(写真参照)HC-6U 10Mhzのクリスタルである。なんとケースがアクリル製で内部が見える。薄い半透明のものが水晶片、銀色のところが電極である。PHILIPSの測定器ジャンクに入っていた基準発振器のもので高温槽に入っていたものだ。