DDS モジュールの活用編である。 先月の予告編で紹介したDDSを使ったスイッチ式の発振器が概ね完成した。
あとで回路図をご覧頂くとわかるが、部品は少ないので伴って配線もわずかだ。 従ってハードウエア的にはごく簡単な製作と言える。
特にクログラム書込み済みチップを使い、外部の5V電源で動作させれば写真よりずっと簡略化できる。 選択可能な周波数(チャネル数)は873あるが、全部を必要とするケースは稀だろう。 特定の数波だけで良ければ、DIPスイッチも省略し数個のスイッチで十分で、一層簡略化される。 そうしたケースではLCD表示器も不要なはずだ。
【チャネル式DDS発振器:配線面】
開発用の基板なので、全チャネルの選択が可能でLCD表示器とプログラム書込み用のISPコネクタも設けてある。 そうした配線の分量があるので、多少複雑そうに見えるが、部品が揃えば半日も掛からずに完成できるだろう。
配線にはφ0.32mm/UEW線とAWG32のテフロンワイヤを用いている。 UEW線を使った配線は頼りなさそうに見えるが、被覆も丈夫で鋭利な刃物のような物で傷を付けなければショートするようなことはない。
細いので引き回しは楽である。予備半田の際に半田コテ先で被覆が簡単に除去できるので作業性はたいへん良い。最近はよく使っているが、後からのチェックが厄介なので配線は間違えないように。
【マイコンはLCDの下】
この基板1枚で完結させたかったので、部品の配置が多少窮屈であった。 実際に使う際においてLCD表示器は必須ではない。しかしプログラムの開発中は無いと捗らないから不可欠である。 マイコンをまたぐように搭載した。
スイッチを読取るためのポート数から、28pinのATmegaX8シリーズを使うことでプログラム開発を始めた。 なるべくたくさんのピンがあった方が有利なので、クロック発振は内蔵8MHzを使い外付けクロックに割り当てられるピンもポートB6、7として活用した。 既に余剰のピンは無いので機能拡張は難しいが、その前にプログラムメモリの問題も発生している。(次項参照)
【ATmega328P-PUを使う】
DDS式VFOと同じく、最初はATmega168-20PI(次の写真)を使って開発を進めたが、メモリをたくさん積んでいるマイコンチップの方が有利なので、途中から写真のATmega328P-PUに交代した。 同じ回路のまま差し換えできるしプログラムの互換性も高いから同じATmegaX8シリーズでの乗換は極めて容易である。
ATmega328P-PUは32kバイトの(フラッシュ)メモリを内蔵している。 現状に於けるメモリ使用率は99%となっており、何か機能追加するには周波数データの数を削減する以外に方法は無いのである。記憶する1つの周波数あたり4バイト(32bit)分ずつメモリを消費するので周波数データだけでもかなりの量になっている。 おまけに高級言語コンパイラを使った開発なのでメモリ喰いなのはある程度やむを得ないと思う。見かけプログラムは巨大であるが、実行速度が落ちない方法を考えた。従って各動作はスムースである。
【ATmega168-20PIでも動く】
前のようにBASCOM-AVRコンパイラのバグ問題が発生している訳ではないので、プログラムメモリが16kバイトの ATmega168-20PIでももちろん快適に働いてくれる。
但し、収容可能なチャネル数はおおよそ40%程度の379になってしまう。 多くの場合、それでも十分なので自家用としては支障無く使える。用途次第とは思うが、自身はこれを積極的に使うつもりだ。
なお末尾で案内する『頒布用』には汎用性を考えて、上のATmega328Pの方を使うことにした。
【動作ささせてみる】
外付けが必要なのは、10kΩBカーブの可変抵抗器だけである。 これは、各チャネルの上下、約1.2kHzの範囲を10Hz刻みの周波数可変ができるからだ。 VRはその可変の為に使う。しっかりしたVRにきちんとしたツマミを付けると扱い易い。
もし、周波数可変は初期調整のみ、即ち半固定でも良ければ半固定VRを使っても良い。 或はマイコンに行く端子に電源電圧Vccの半分、即ち1/2Vccを与えてやればチャネルの中心周波数に固定されるのでそのように使っても良いだろう。
【チャネル切換えスイッチ】
左の2つが2ビット分のスライド・スイッチである。 この2つのスイッチで0〜3の4つのバンクの切換えを行なう。(SW-3)
2つあるロータリースイッチの左側が16あるセグメントを切り替えるスイッチである。(SW-2) その右のスイッチで各セグメント内の16のチャネル(予めセットしてある周波数)を切り替える。(SW-1)
合計では4×16×16=1024チャネルとなる筈であったが、マイコンのメモリ量の制限でATmega328Pで873、ATmega168では379チャネルの内蔵となった。 これだけのチャネル数があると、かなりの汎用性を持った発振器になる。マズマズ満足なものと思う。
【クロック周波数の誤差補正】
各チャネルの周波数精度は、DDS基板に搭載されているクロック発振器(写真右下の銀色の四角いハコ)の周波数精度と安定性で決まってしまう。初期誤差は下記の回路図・1〜3ではF-ADJと書いてあるVRで合わせ込むことができる。なお、常時調整するような物ではないので半固定抵抗器で十分だ。
一般に、こうしたクロック発振器の初期周波数精度はあまり良くないので、何らかの補正を行なわないとジャストな周波数発生はできない。
ここでは、DDS-VFOで採用したのと同じように、内部のプログラム処理により数値的にクロック周波数の誤差を補正する方法を採用している。 残念ながら中華DDSモジュールに搭載のクロックは誤差が大きいため、このVRだけでは補正できない場合があって個々に補正値を焼き込む方法も併用している。互換性が問題になるがやむを得ないだろう。 動作中の周波数安定度は一般的な水晶発振なみと言った感じで、まずまずである。
追記(参考):10MHzが出るチャネル「0DF」でウオームアップ後に10,000,000Hzジャストに合わせ込んで様子を見ている。1Hzの桁が少し動く程度であって、室温があまり変化しなければ1ppmには十分入る程度の周波数安定度のようだ。(ATmaga168版では「1FX」または「2XX」)
【チャネルの上下に周波数可変でできる】
発生可能な周波数は873あるいは379チャネルであるが、どのチャネルもそこを中心に±1.2kHzだけ周波数可変できる。下記の回路図・1〜3に±TUNEと書いてあるVRで周波数可変する。常時周波数操作したいなら写真のような可変抵抗を使いパネル面に出しておく。滅多にいじらないなら半固定抵抗でも良い。
VRの中央位置でチャネルの設定周波数になる。 単純な固定周波数発振器ではなく、多少なりとも周波数を上下できるようになっているので、ゼロインすると言った使い方も可能である。 なおVRの周波数分解能は10Hz刻みである。
後ほど周波数一覧表を見てもらうとわかるが、HF帯のハムバンドのかなりを1kHzもしくは2kHzおきのチャネルでカバーしている。 従って、このVRを併用することで事実上、ハムバンド内が(10Hz刻みに)連続してカバーできることになる。
【周波数表示】
積極的に周波数可変の機能を使うなら、LCD表示器があった方が良いだろう。 表示上段には実際の発生周波数が表示されている。 表示下段には周波数移動量が表示される。
写真の表示例では、チャネルの周波数は7005kHzであり、それを上の写真で示したVRの調整で0.4kHzだけ下に移動している様子を示している。 VFOほど任意ではないが、完全なチャネル式のようにまったく融通が利かないわけではなく、かなり「任意」に動くことも可能だ。
【デジスイッチ】
使用したものは写真左上の物である。 こうしたロータリー型の場合は必ず負論理型のスイッチを使う必要がある。 要するにポジションが「0」の時に、コモン端子と全部の端子が繋がり、ポジション「F」の位置で全部の端子がオープンになる形式の物を使うこと。
これはマイコンのポートを内部でPull-UPしているからだ。もしも正論理のスイッチの場合はPull-Downしなくてはならないが、マイコン内部でそれはできない。 従って外付けの部品(抵抗器)が8個も増えてしまう。 もちろん、プログラム的に論理を反転しても良いのだが、今度は負論理のスイッチは使えなくなるので結局同じことだ。
左下の青い物は秋月で売っている物で、ノブが付属しているので使い易そうだ。こうしたスイッチは正論理と負論理の両方が売られているので型番を良く見て購入する必要がある。(注:写真は正論理の方なのでノブの部分が赤色の負論理の物を購入すること!)
写真右側のスライドスイッチ形式の物はそうした注意は特に要らないだろう。 但し、ON/OFFの関係でツマミの位置が上でONの時にゼロ、下のOFFで1になるから直感的でないがやむを得ないだろう。(まあ、ノブが下でONになるよう、スイッチを上下逆さまに付ければ良い訳なのだが・笑)
【回路図・1】
DDSモジュールの出力にLPFも付加した満載バージョンである。 実際には、写真の基板に全部品を載せるのは無理があって、次のLPF省略型にした。
使用周波数が決まっているなら、周波数にマッチしたLPFを載せるか、同調形式の狭帯域アンプなどを付加すべきだろう。左図回路例では20MHzのLPFになっている。他の周波数にするには、こちらのリンクの参照を。 DDSオシレータの原理上、スプリアスはかなり有るので用途が決まっているなら外付けは広帯域アンプでない方が良いと思う。 なお、負荷は50Ωとしている。 この回路を含め下記のいずれの回路でもDDSモジュール基板上のR5(200Ω)は除去して使用する必要がある。 マイコン(MPU)はATmega8と書いてあるが、ATmega168あるいはATmega328も同じピン接続である。
注:モニタLEDはDDSモジュールへデータ転送が行なわれている瞬間のみ点灯する。なにも変化の無い状態では消灯が正常である。
【回路図・2】
取りあえず、DDS基板上のLPFに依存し、出力には200Ωを50Ωに変換する為のRFトランスを付加してある。
実用に際して、信号レベルは低いから別途増幅するとともに、スプリアスを除去するために適宜フィルタも付加する必要がある。 LCD表示器は無くても良いが、周波数調整のツマミを設けるならあった方が使い易い。 逆に固定した数波を得たいだけなら、最初に周波数を合わせるだけなので、LCD表示器は無くても実用になる。マイコン(MPU)はATmega8と書いてあるが、ATmega168あるいはATmega328も同じピン接続である。
【回路図・3】
最も簡略的に使用する例である。 LCD表示器は設けず、電源も外部からの5Vに依存する。 もちろん、プログラムの書込みも別の基板で行なうので、書込み用のISPコネクタも付いていない。マイコン(MPU)はATmega168と書いてあるが、ATmega328も同じピン接続である。
本来、ごく簡単な用途に使いたいだけならこのくらい簡略に使う方が良いかもしれない。 マイコンのポートに付いているスイッチも、必要なビットの部分だけにしてしまい、あとはGNDするかOpenにしたままで良い。 SSBジェネレータのキャリヤ発生用ならせいぜい2〜3ビット切り替えるだけで良い筈である。 水晶発振器の代替として使うなら簡単な物ほど良い。
【周波数一覧表】
使うためには周波数表がなくてはならない。 左図は、そのごく一部である。周波数はHz単位で書いてある。(例:7MHz=7000000)(下記リンク更新済み:2017.12.13)
*頒布済み品の一覧表(Ver.1.0.2)は:ここ(←リンク)
*次回予定品の一覧表(Ver.1.0.3)は:ここ(←リンク)
上記の一覧表はPDF形式のファイルで、印刷すればA4用紙で8ページになる。自作ラジオのファンや自作HAMが欲しくなりそうな周波数が目いっぱい詰め込んでみた。どうしてもダウンロードできないときはメールでも。メール添付でお送りする。たった1個のマイコンとわずかな部品,そしてDDSモジュールで800個以上の水晶発振子が手に入るわけだ。(笑)
見てもらうとわかるが、左端に縦に並んだ「バンク0」は主に一般のラジオ工作に向いたテストオシレータ用である。 BC帯が9kHzおきにフルカバーされている。 短波帯もかなり細かく発生できるので、多バンドラジオの調整などにも使えると思う。 なお、バンク0の「セグメント0」には低周波も含まれるが、上の回路例のようなRFトランス結合では旨くないので、ここを使いたい場合はOP-Ampなどを使ったバッファアンプに変更する必要がある。その場合、DDSモジュール:9番ピンのSINA端子から信号を取り出すと良い。
中央の2列、バンク1とバンク2はまずは135kHz帯のHAMバンドに始まって、HF帯の各HAMバンドをかなり細かくカバーしている。 特に各バンドのCWバンドは1kHzもしくは2kHzおきになっているので、即ちこれでハムバンド用クリスタルとはBye byeできるのだ。(笑)
一番右の列、バンク3は、28MHzを粗くカバーするほか、セグメント2には著名なQRP用周波数をインプットしておいた。またポピュラーなSSB/CWフィルタに適したキャリヤ発振器にできるよう周波数を入れてある。7.8MHzや9MHzと言った市販のフィルタのほか、往年のFT-101やTS-520、TS-820などのフィルタに合ったキャリヤ発振ができる。
☆ ☆ ☆ ☆ ☆
自身で使うなら「回路図・3」で使うのではないかと思う。 なにしろ、部品が少ないので、ごく単純な発振器としては扱い易いだろう。 大抵の場合、+5V電源も用意されているので、放熱の苦しいオンボードレギュレータよりも有利だろう。
逆に、スイッチやLCDもフルに実装して、簡易な調整用発振器として使うのも悪くないだろう。 AMラジオの調整には変調が掛かっている方が良いが、簡単な方法で可能そうなので後ほど報告したいと思う。 AMバンド全域をカバーするのでワイヤレスマイクのような用途もありそうだ。
DDS-VFOのような可変型の発振器とともに、固定周波数型の発振器のニーズも高いので、こうした形式の発振器も用意しておく必要があると思う。 HAMバンドをカバーするチャネルは、シンプルな送信機の実験や、ダイレクトコンバージョン式の受信機実験にも便利そうだ。 昔懐かしい逓倍形式のCW/AM送信機のVFO代わりにもなるだろう。 ふらつくVFOでオンエアするよりもずっと安心だと思う。 いずれ、TX-88AやTX-88Dで遊んでみたいと思うので、その時にはVFO-1の代わりに、言わばFT-243型ハムバンド水晶の代用品として使ってみたい。 de JA9TTT/1
参考:このDDSコントローラの「活用のヒント」(←リンク)を纏めたページを追加。(2012.08.05)
【頒布案内】
近ごろミニブームなので「中華DDSモジュール」を買ってはみたが、持て余し気味だろうか。 そうしたお方には朗報になるかもしれない。 AD9850を使った中華DDS 基板を制御するための「プログラム済みマイコン」をお分けする。あくまでも自家用の目的だが、だからこそ安易に妥協などせず動作は十分吟味したものだ。 ATmaga328P-PUバージョンで、上記回路図の1〜3のいずれでも動作するもの。制御対象のDDSモジュールは写真の物だけでなくaitendoの青色DDS基板でも可。(DDSクロックは125MHzあるいは64MHzのいずれか。希望を明記のこと。あとから修正は不可)
商売ではないので頒布は相当の物品との物々交換で行なう。思い付かなければ金千円でも可。手間を省くため¥120分の切手を貼って宛名を書いた返信用封筒(SASE)もお送り願う。既に「おまけ」DDSモジュールは完了。マイコン+28pinソケットのみ頒布中。ATmega328Pは当分市販されると思うので頒布は継続できそう。「プログラム済みマイコン」の希望はメールで。メールは「ttt.hiroアットマークgmailドットcom」で届く。カタカナ部分は英数小文字に直すこと。
*SASE到着済みのお申し込みに対しては、すべて発送済み。(2013年4月14日)
(参考:プログラムおよびリストの公開予定はありません)
(おわり)
14 件のコメント:
おはようございます。
チャンネル式の発振器とは思いつきませんでした。
秋月DDSのスイッチ方式的な使い方や、組み込み用途には便利そうですね
加藤様、ja8czx/michiです。
>朗報になるかもしれない。
どころではありませんで、歳ばかりで技術の伴わない私としては、天恵のようです。
頒布に一口載せていただきたいと思います。
しかし、いつまでも頒布のお世話になっているのも恥ずかしい話で、
pic以外のデバイスでも何とか環境構築して、せめて「焼ける」くらいにはしたいものです。
よろしくお願いいたします。
JE6LVE/3 高橋さん、こんにちは。 大阪も暑そうですね。こちら今日は38℃の予報です。(笑)
さっそくのコメント有難うございます。
> チャンネル式の発振器とは思いつきませんでした。
DDSと言うと、VFOのような可変式ばかりが着目されますが,安価なら固定周波数で使っても良いのではないかと言う発想なんですよ。これで一生オシレータには困りません(爆)
> 組み込み用途には便利そうですね・・・
もう少し消費電流が少なければもっと良いのですが、ちょっと大食いなのが玉にきずかも。(笑)
JE8CZX 矢北さん、こんにちは。
コメント有難うございます。
> どころではありませんで・・・天恵のようです。
それは良かったです。 買ったDDSモジュールを取りあえず動作させてみると言った用途にも悪くないと思いますよ。 意外と実用性もあると思います。
> 頒布に一口載せていただきたいと思います。
了解しました。先着10名様には入ったように思います。後ほど別途メールを頂きたいと思います。
> せめて「焼ける」くらいにはしたいものです。
AVRマイコン用プログラムライタは色々出ています。どれもうまく書けるので何でも良いと思います。HIDaspxと言うのが最近の常用ライタです。
加藤さん、こんにちは
以前はエンコーダの話題だったのでチャネルの意味に気づくのにしばし時間がかかってしまいました(笑)
PLL+VXO可変の発振器というイメージですね。
なまじ範囲が広いと可変するのに桁切り替えスイッチが欲しくなり、そんなのを実装するとメモリーが欲しくなりとますますカオスになってどんどん開発が遅くなっていく私です・・・
JH9JBI/1 山本さん、こんにちは。 暑くなりましたねえ!
コメント有難うございます。
> チャネルの意味に気づくのにしばし時間が・・・
スミマセン、説明の仕方が悪かったのかも。要するにメモリー式ですね。(笑)
> PLL+VXO可変の発振器というイメージですね。
まさしくそんな感じですね。 完全な固定では寂しいので、可変もできると言ったイメージです。 周波数はデジタル表示できますから意外に便利だと思いますよ。
> ますますカオスになってどんどん開発が・・・
確かに、欲張って行くと伴って複雑さは指数的に増して行き・・・(笑) 良くあるパターンですね。hi hi
こう言った簡単なコントローラも宜しいかと。(笑)
半澤/JG3EIP
私の頒布申し込みの封筒も、まもなく届けられると思います。
発信器に流用したいので楽しみです。
どうぞ、よろしくお願い致します。
JG3EIP 半澤さん、こんばんは。
コメント有難うございます。
> まもなく届けられると思います。
了解しました。 SASEお待ちしております。
> 発信器に流用したいので楽しみです。
水晶発振器の代用品をお考えなのでしょうね。 ご活用されて下さい。 準備はできていますから、SASEが届き次第お送りできます。
楽しみにお待ち下さい。
TTT 加藤さん、こんにちは。
ついに完成ですね!DDSボードは既に完売(?)のようで人気商品ですね!
ebayでも結構安く売っているようです。
スイッチを回して、VRで微調する方法は面白いですね!
昔、Liner2DXという2mのSSBTRXがありましたが、思い出しました。
実は、当局もノブ付きのSWを秋月から調達していて、同様のコンセプトのものを作ろうとは思っていたのですが(流石にVRまでは考えませんでしたが)お流れになっています(笑)
JN3XBY 岩永さん、こんばんは。
コメント有難うございます。
> ついに完成ですね!
DDSとは言っても、単なる発振器ですから回路要素の一つでしかありませんね。 それを組込んだ機器ができた訳ではないので・・・まだまだこれからです。(笑)
> VRで微調する方法は面白いですね!
スイッチする周波数の刻みは任意で細かくでき、しかも周波数はデジタル表示ですからVRでの微調整も実用的ですよ。
デジスイッチをお持ちのようですので、お試しになっては如何でしょうか? 簡単にできる汎用発振器として便利に使えると思います。
JA1RLC@Shimoda
今、KEMさんのDDSを製作中ですが、このサイトに
飛んで来て「Simple is best !」に惚れてしまいました。
中華製が6$を切っていて、Free shippingとか。
TTTさんの回路図1をPCB化して欲しいなんて考えている方
いないでしょうかね。それなりの出費は覚悟しておりますが。
JA1RLC 下田さん、お暑うございます。
コメント有難うございます。
> 「Simple is best !」に惚れてしまいました。
KEMさんのDDSも良くできているそうですね。 こちらのコントローラは数波の固定周波数の発生が簡単にできるように考えてあります。 このあと、活用編を予定していますのでご覧下さい。開発意図の一端がわかって頂けると思います。
> PCB化して欲しいなんて考えている・・・
これはリクエスト次第ですが、知人にご相談してみたいと思っています。製作枚数にもよると思いますが1枚あたり+1,000円くらいで何とかならないか・・と思っています。 お楽しみに。
加藤様
おまけまで頂いたので、さっそく自作機の調整用発信器として汲み上げ、有効に活用しています。
なお、周波数設定時に一瞬迷うので、スライドSWもDIP SWにしました。
次回作も期待して、楽しみにしています。
有江さん、こんばんは。 到着のご連絡有難うございます。
コメント有難うございます。
> さっそく自作機の調整用発信器として・・・
さっそく製作されたようですね。ご活用になって頂ければVY-FBです。
> 一瞬迷うので、スライドSWもDIP SWに・・・
もちろん、ロータリー式デジスイッチを3つ並べて頂いてもFBだと思います。 秋月で売っている物は2個単位でしたので2つで済ませましたが。(笑)
コメントを投稿