電子工作の項目は、オシロスコープ、周波数カウンタと「見る」装置が続いたので、信号を出す器材を作ります。
前回、製作した信号発生器は、秋月電子のキットをセリアの容器と 3D プリンタで作ったフタで出来たケースに入れたものです。
今回は、市販の信号発生器 IC(ADF4351)の評価基板と Arduino Nano を組み合わせた、広帯域信号発生器を同じ種類の自作ケースに入れてみます。(この信号発生器の設計者は、DD7LP さんです。)
完成した信号発生器の写真です。横にあるのは大きさ比較の単3電池です。

なお、同じケースを使った、Pa-Lab 1号機(電源装置、「XYH-3606」)の製作記事は以下を、
前回の信号発生器、Pa-Lab 2号機(秋月電子の信号発生器、「広帯域精密波形オシレータキット」)の製作記事は以下をご覧ください。
ADF4351 評価基板
ADF4351 は、アナログ・デバイセズ社の VCO 内蔵 広帯域シンセサイザ IC です。
その主な機能は、以下のとおりです。
・出力周波数範囲:35 MHz ~ 4 400 MHz
・低位相ノイズ
・電源電圧:3.0 V ~ 3.6 V
・プログラマブルな出力パワー・レベル(4段階)
・3線式シリアル・インターフェース(SPI)
・高速ロック・モード(周波数ロックが早い)
スゴイ広帯域ですね。(理想を言えば、0 からスイープして欲しいですが。)
本当にこんな高機能なシンセサイザが、32 ピンの VFQFN サイズの IC に入っているのかな?
IC が非常に小型なので、手っ取り早く機能確認できるようにアナログ・デバイセズ社は、この ADF4351 を使った評価基板を発売しています。
「EVAL-ADF4351EB1Z」ですが、3万5千円程度はするようです。
(写真はアナログ・デバイセズ社の HP より引用)

そこで、いつもの AliExpress で見てみました。
大まかに2種類の「評価基板的な物」が入手できます。
(下2つの写真は、AliExpress の販売店より引用)
緑色の基板

黒い基板

どちらも、3千円程度で入手できます。
早速、注文してみましょう。
注文した ADF4351 「評価基板」
1つ目の基板
AliExpress に、緑色の基板を注文してみました。
いつもどおり注文から1か月弱で、自宅に届きました。
しかし、電子部品の発送では信じられないことに、梱包材が使用されず導電袋にそのまま入っていました。
そのため、接続用のピンが発送用の袋を破って外に出ています。

「こりゃ、ダメかな?」と思いながらも、Arduino UNO に ADF4351 テスト用のスケッチを書き込みます。
何も信号が出ませんね。
基板を強く押すと時々信号が出ましたが、常に使うときに指で基板を押していることは出来ませんから、AliExpress へクレームですね。

AliExpress で返品
今回、はじめて AliExpress で返品を行いましたが、戸惑うことが多かったので、同じように返品する時に不安に思う人の参考になるように書き残しておきます。
注文した商品が壊れていた時は「注文」ページで、壊れていた商品の「注文の詳細」を押します。
「ご注文は届きましたか?」に「はい」を押します。
開いたページで商品の状態(今回は故障)を選択し、下の入力欄に詳細と商品の写真や動画を送ります。(私は Google 翻訳を使って英語でメッセージを送りました。)

商品の状態によって違いますが、次の日ぐらいには、そのまま返金(商品は手元で処分)か、商品を返品するかの返事がきます。(連絡は日本語で来ます。)
今回は返品だったので、(発送業者は梱包材を使ってなかったけれど)一応梱包材で丸めて、入ってきた袋に入れました。
元の袋を使う場合には、指示どおりにバーコードは残して住所や氏名はマジックなどで塗り消しておきます。
そして、袋の目立つところに連絡事項に書いてある返品用の番号を書いておきます。
ここからが不安だったのですが、連絡事項には「佐川急便が着払いで置け取りに来る」と書いてあります。
本当に自宅まで来るの?と不安になりましたが、2日後にいつもの佐川の制服の人が受け取りに来ました。
発送票などの記載は、一切必要ありませんでした。
2つ目の基板
今度は黒い評価基板を注文しました。(もちろん、別の販売業者です。)
これも1か月弱で自宅に届きました。
今度は前回より500円以上安かったのに、しっかりと箱に入って来ました。
「電子部品はこうじゃなくっちゃね。」と安心しました。
(でも、内部は梱包材なしです。ちょっと不安に・・・)

前回と同じように Arduino UNO に ADF4351 テスト用のスケッチを書き込んで動作試験です。
ダメですね。信号が出ません。
Arduino のスケッチの不良かも?と思って、他のスケッチを2つ試しましたが同じです。
今回も同じように、基板を押すと信号が出るので基板の不具合で決定ですね。

疲れてきましたが、AliExpress にクレームです。(先月に続いて、連続してクレームを入れているのでクレーマーみたいですね。)
今回も返品に決まったので、また佐川の人が受け取りに来ました。
3つ目の基板
不具合が続いたので、別の販売店を探します。
「国内ならば安心かな?」と思い、Amazon を見てみます。
同じような評価基板が売っていました。
値段も Amazon の方が安いぐらいです。

注文したら数日で届きました。

外観を確認すると、基板上の TCXO が10 MHz ではなくて 40 MHz でした。
これは、商品の評価にも書いてあったので、別の店で 7 mm × 5 mm で 10 MHz の TCXO を注文してあります。
単体で使うならオシレータの周波数設定を変えればよいので、このままの 40 MHz でも良いのですが、外部から安定な信号を入力して使う事を考えると、オシレータの周波数は 10 MHz 一択ですね。

基板の配線をよく見るとジャンパ式で切り替えるらしく、オシレータの出力も、外部発信器用の SMA コネクタの出力も、どちらも ADF4351 のオシレータ入力端子につながっていませんが、この IC は内部にオシレータを持っているので、とりあえず動作確認のために Arduino UNO をつないでみました。
もちろん、指で押さえなくても、ちゃんと信号が出ました。
しかし、出力周波数が Arduino UNO から設定した周波数とは大きく違います。
オシレータを接続しないとダメですね。
今回の注文で、AliExpress では2回続けて不具合がありました。
返品や返金の対応は問題なくスピーディーに行われましたが、中国から送られて来るのに1回で1か月弱はかかっているので、波形が正常に出るまで2か月を要しています。
趣味の週末電子工作なら問題ないですが、少しでも急ぐような用途なら国内の通販を利用したほうが良いなと実感しました。
TCXO の乗せ換え
評価基板上のオシレータを乗せ換えます。
まず、ヒートガンで温めて 40 MHz の TCXO を取り外します。
そして、半田吸い取り線で基板の半田をきれいにします。
(オシレータ横の矢印は、TCXO の上下が分かるように書きました。)

次に、少量のクリームはんだを端子に塗布した上に、新しい 10 MHz TCXO を乗せます。
最後に、ヒートガンで温めれば交換完了です。
以前は、半田ごてで温めすぎて基板のパターンを剥がしたりしていたのですが、最近は表面実装部品に慣れたので簡単に終了しました。
そして、 TCXO の出力を ADF4351 の入力につながるように、ジャンパを半田で短絡しました。

この状態で波形を見てみたら、しっかりと指定した周波数が出力されました。
完成形を考える
今までの動作確認では Arduino UNO に接続したキャラクタ式の液晶で周波数を表示して、上下左右用のスイッチ4個で周波数だけを設定する簡単なスケッチで検証していました。

しかし、色々な実験で使う信号発生器のインターフェースとしては貧弱です。
出来れば市販の計測器のようにとは言いませんが、ノブを回して周波数を増減する機能は欲しいです。
さらに、この IC には、出力信号の振幅を切り替える機能が内蔵されているので、使わないのはもったいないですね。
これらの一連の機能を実現するには、私の能力では長期間の開発時間が必要だなぁ。と思っていました。
ところが、ある日、「ADF4351 Arduino」で検索してみると、気になる記事と写真を見かけました。
KLAUS H. HIRSCHELMANN 氏によるドイツ語の HP です。気になる方は Google 翻訳などで日本語にして見てみてください。
この記事の中で、ADF4351 の制御について色々と実験していますが、ページの下の方にこんな写真が紹介されていました。
どうやら、TFT 液晶を使ってノブで周波数とその間隔を制御できるようです。
製作者は「DD7LP」さんで、製作はすでに8年前の2017年ですね。
これ、作ってみよう!

DD7LP 周波数シンセサイザの製作
DD7LP さんの周波数シンセサイザの製作データは、全て GitHub で公開されていました。
この写真では対応周波数が「135 MHz – 4.4 GHz」と書かれていますが、公開されているデータには元々の IC の ADF4351 の性能どおりの記載になっています。
公開名は「AD4351-PLL-Syntesizer-35-4400Mhz-DD7LP-2」です。(Readme にも「135 Mhz to 4.4 Ghz」って書かれているけど誤記かな?)
このページの解説に書かれている、製作の詳細リンク先の「http://www.darc-husum.de/Frequenzsynthesizer.html」はリンク切れです。
インターネット・アーカイブの「Wayback Machine」でこのアドレスを検索してみました。
すると、2019年の履歴を見ることが出来ました。
リンク先で DD7LP さんは「私たちは、このプロジェクトの完成したソフトウェアを、作成者に帰属した上で、関係者が無料で非商業的に使用できるように喜んで提供します。このプロジェクトは DIY アマチュア無線を促進することを目的としています。」(Google 翻訳)と書かれていました。
製作に必要な全てのデータの公開に感謝します。
必要な部品
これ以降の項目では、オリジナルの DD7LP 周波数シンセサイザの製作に必要な部品からは、基準周波数切替回路等の省いている部分があります。
詳細はオリジナルのファイルを確認してください。
Arduino Nano
AliExpress で購入した Arduino Nano 互換機です。USB 接続端子が Type-C なので使いやすいです。
今回は沢山ある部品の在庫処分を行うので、ユニバーサル基板にはソケットを使用しないで直接半田付けします。

ADF4351 評価基板
AliExpress で購入した2回とも不具合で、上で紹介したように Amazon で買い直した緑色の基板です。
基板上の TCXO は 40 MHz から 10 MHz に乗せ換え済みです。
TFT LCD
TFT LCD は、aitendo の福袋に入っていたものを使用しました。
型番は「M018C7735S」で、サイズは 1.8 インチです。
基板上のジャンパで電源を 5 V と 3 V に切り替え出来ます。今回は J2 ショートで 5 V で使用しました。
「D_LED」端子をグランドにつなぐとバックライトが点灯しますが、ちょっと明るすぎるので 100Ω程度の抵抗を入れました。
他の LCD を使う場合は、コントローラ IC に ST7735 を使用していて、解像度が 128 X 160 ドットで、インターフェースが SPI の LCD なら使用可能だと思われます。
秋月電子でも同様の LCD を扱っていますが、私の在庫の秋月電子の「ATM0130B3」は画面サイズが小さい上に 240 X 240 ドットと解像度が高いので、表示は OK ですが文字が小さくて読めませんでした。

ロータリーエンコーダ
今回使用したロータリーエンコーダは、AliExpress で購入したスイッチと一体形の物です。
秋月電子などのロータリーエンコーダも使用可能ですが、その場合は操作用にタクトスイッチ2個を追加してください。

このロータリーエンコーダは、向かって上側の2本の端子がスイッチ用、下側の3本の端子がエンコーダでセンターがグランドです。(秋月の物は3番がグランド)
なお、AliExpress で購入したロータリーエンコーダは安価だったのですが、固定用のナットが付いてきませんでした。
別途 12M の薄型ナットを購入するか、私のように 3D プリンタで製作することもできます。
3D プリンタで製作したナットです。
このサイズなら薄型でも十分実用的な強度です。

電源入力端子
電源には USB の 5 V を使いました。
USB Type-C の入力端子をケースの裏側に取り付けます。

回路の確認
この「DD7LP 周波数シンセサイザ」は、簡単に製作できるように Arduino Nano と SPI インターフェースで「ADF4351 評価基板」とTFT LCD をつなぐだけの回路構成で、面倒な処理はソフトウエアで行うようになっています。
唯一の注意点は、「ADF4351 評価基板」のインターフェースは 3.3 V 規格なので忘れずに分圧回路用の抵抗を付けます。
また、ロータリーエンコーダのチャタリング対策でコンデンサが入っています。
これは、ブレッドボードで試験しましたが、抵抗を入れなくてもコンデンサだけで問題なく動作しました。
オリジナルの回路で使用している部品と、今回使用した「ADF4351 評価基板」、TFT LCD はピン配置などが違うので、簡単に回路図を描いておきました。(オリジナルにあるアンプ、オシレータ切替、降圧電源回路は今回は使用しませんでした。)
もし、同じように「DD7LP 周波数シンセサイザ」を製作される場合はオリジナルの回路図を確認してください。(この配線図に間違いがある場合は教えてください。)

製作
ユニバーサル基板に「1階」の回路を作ります。
この上に2階建てで評価基板を乗せます。
こんな感じで出来ましたが、右上のネジ穴を開けている時に、基板が欠けてしまいました。(動作には問題ありません。)
右上の評価基板の SPI 端子裏には SMD の抵抗で分圧回路が組まれています。

基板にサポート・ポストを付けます。

2階の評価基板を乗せます。
評価基板の出力用の SMA 端子を外して、SMA 端子が付いたケーブルを半田付けしました。

液晶表示部です。
aitendo LCD に端子を付けました。
バックライト LED 用の抵抗は写真撮影のために出ていますが、この後、絶縁しました。

ロータリーエンコーダ基板です。
基板上に SMD のコンデンサを使ったのでコンパクトに出来ました。

ケース・パネル
ケースのふたを 3D プリンタで作ります。
すでに数回、同じようなフタを作っているので、簡単に出来ました。
それでも、何回か失敗しました。
試作品です。

細部を調整して、本番の出力用にノズル設定を 0.2 mm にして出来上がりです。
これに部品を取り付けていきます。

組み立て
まず。USB 電源端子をセリアの容器に付けます。
その左横には外部基準信号入力用の SMA 端子穴と、下部には基板固定用の穴もあけてあります。

フタ部分に、ロータリーエンコーダ基板と LCD、電源スイッチを取り付けます。

このフタ部分と2階建て基板を合体です。
評価基板の出力端子の内1本は予備なので、この後、絶縁して納めました。

出来上がった部品をケースに収めて完成です。

完成したので、信号発生器の消費電流を確認してみました。
周波数・信号レベルを変えても、ほぼ変化なく 180 mA 以下でした。

Arduino 用スケッチのコンパイル
順番が前後しますが、信号発生器の動作に必要な Arduino のスケッチについてです。
ハードウエアが完成した後でも、基板横から USB Type-C で簡単に Arduino Nano にスケッチが書き込めるように配置しているので改造も簡単に出来ます。
この項目が後からになったのには、理由があります。
GitHub には製作に必要な2017年の情報が公開されていますが、Arduino IDE で同梱のスケッチを「検証」するとエラーとなります。
このエラーは、当時とは異なる最新のライブラリを使用している為だと思われます。
以下の「Wayback Machine」で保存されている2017年7月版の圧縮ファイル内に、当時のライブラリが同梱されたファイルがあるので、このライブラリを登録すると最新の Arduino IDE v.2.3 でも、エラーなくコンパイルできました。(Linux 版で検証)
「https://web.archive.org/web/20190909215536/http://www.darc-husum.de/Projekt%20ad4351%203-17%20fertig.zip」
具体的に圧縮され同梱されているライブラリは、
ライブラリ名 | 年月日 | 備考 |
ACROBOTIC_SSD1306-1.0.1 | 2017.3.31 | |
Adafruit_QDTech-master | 2014.3.22 | |
Adafruit-GFX-Library-master | 2016.8.23 | |
Adafruit-ST7735-Library-master | 2016.5.27 | |
Rotary-master | 2013.10.13 | |
SD-master | 2016.5.27 | 使用しない? |
これで、準備したハードウエアにファームウエアを書き込めば、準備完了です!
(LCD の表示は(多分)ドイツ語です。現在、微妙に英語と違う単語が表示されていますが、周波数などの表示には問題ないので、必要なら書き換えます。)
DD7LP 周波数シンセサイザの操作方法
この信号発生器は電源を入れるとプリセットされた「144.9 MHz」で動作が開始されます。
初期画面の信号レベルは「-4 dBm」で、周波数ステップは「10 kHz」になっています。
1 ADF4351 が指定した周波数にロックすると「LOCK」と表示されます。
2 オシレータが内部発振だと「REF.int」と表示されます。今回は基準周波数切替回路を組んでいないので、表示は固定です。
3 出力レベルです。ステップ切替エンコーダのスイッチを押すと「-4」「-1」「+2」「+5」の順に切り替わります。
4 周波数増減のステップ数です。ステップ切替エンコーダを回すと10 kHz、100 kHz、1 MHz、10 MHz、100 MHz、1 kHz の順に切り替わります。最小ステップは IC の制限で 1 kHz です。
5 出力周波数です。周波数エンコーダを回すとステップ数で設定された値毎に増減します。
また、周波数エンコーダのスイッチを押すとプリセットされた周波数に切り替わります。
プリセット周波数は、144.9 MHz に始まって 432.9 MHz、1296.9 MHz、2320.9 MHz、3400.9 MHz、2880.4 MHz、3456.3 MHz、3435.5 MHz、4277.1 MHz、35.0 MHz、50.1 MHz と切り替わります。

出力波形
広帯域信号発生器が完成しました。(一部省略した回路がありますが。)
そこで、出力波形を見てみます。
なお、以下の波形の画像は 1 MΩ入力のみを備えたオシロスコープに、校正されていないフィードスルー・アッテネータを付けて 50Ω変換したものなので振幅の電圧値などは参考程度にしてください。
また、帯域幅は 70 MHz までのオシロスコープなので、それ以上の周波数は見えたな程度の気持ちでお願いします。
出力レベル
以下は全て出力周波数を 50 MHz にして測定しています。
出力レベルを切り替えます。
・-4 dBm:420 mV

・-1 dBm:583 mV

+2 dBm:823 mV

・+5 dBm:1.2 V

周波数を変更
この項目は、帯域幅が 70 MHz までのオシロスコープで見られる範囲の波形を見てみました。
もちろん、帯域幅以上の波形の出力レベルはあてになりません。
この信号発生器の下限の 35 MHz です。あまりきれいな波形ではないですね。

オシロスコープの上限の 70 MHz です。方形波?

これ以降は参考です。100 MHz
ここには図はありませんが、110 MHz を超えると、きれいなサイン波になりました。

200 MHz です。サイン波ですね。

300 MHz でもキレイな波形が見えました。

オシロスコープの波形が減衰し始める 400 MHz で観察を終わります。
前回のブログ記事で、このオシロスコープの機能の FFT 機能を使って波形の周波数成分を見た時もキレイな波形でしたが、オシロスコープで波形を見ても 110 MHz 以上ではキレイなサイン波形でした。
残念ながら、4.4 GHz まで出力できる信号発生器ですが、これ以上(400 MHz)の周波数は確認する方法がありません。

改造予定
この状態でも十分実用的でコンパクトな信号発生器が出来ましたが、以下の改造をしたいと考えています。
1 操作に必要な表示文字の英語化
TFT LCD に表示されるのは、ほとんどが見慣れた数字なので問題ないのですが、一部がドイツ語で記載されています。「器材名」と「出力レベル」は英語に変えても著作権上は大丈夫なのかな?
2 電源 ON 時の標準値の変更
現在、電源を入れた時の周波数は 144.9 MHz ですが、個人的には最低周波数の 35 MHz から始まった方が使いやすいかな?
初期画面の信号レベルは -4 dBm で周波数ステップは 10 kHz ですが、レベルが -1 dBm、周波数ステップは 1 MHz 位の設定に変更してみようかな。
3 基準周波数の切替
オリジナルは、別途、高安定な 10 MHz TCXO を搭載し、さらに外部の基準周波数を入れると自動切換えできるようになっています。
この回路を追加したいです。
4 電源の安定
現在は、USB の 5 V で動作しています。
消費電流は 200 mA 以下なので、電流的にはこれでも問題ないのですが、信号発生器としては電源が安定していません。
可能なら、オリジナルの様な外部電源で安定した物にしたいです。
5 アンプ回路
オリジナルでは、出力に Mini-Circuits 社の「PGA-103+」を使った増幅回路が付いています。
この RF Amp IC の性能は、 動作周波数:50 MHz to 4 GHz、ゲイン:6.2 dB、動作電圧:5 V です。
今のところ、アンプの必要性は感じないのですが、あった方がよいのかなぁ?
そうなると、ステップアッテネータも欲しいところですが、小型のケースに入らなくなりそうです。
まとめ
こんな簡単な製作で、広帯域な信号発生器が簡単に出来ました。
製作に必要な全ての情報を公開して下さった「DD7LP」さん、ありがとうございます。
スイッチ付きのノブで簡単に操作できるので使い勝手は最高ですが、オリジナルから省いた機能があるので満足度は95点です。
コメント