安価なファンクションジェネレータ「PSG9080」


安価なファンクションジェネレータを購入したので紹介します。PSG9080という機種で、送料込みで1.9万円でした。

1.購入のポイント

安価なファンジェネを検索すると、FYシリーズあたりが売れ筋のようです。こっちは1万円ぐらいとお手頃です。
少し高価なPSG9080を購入したポイントは以下の通りです。この値段では破格のスペックだと思います。

  • 最大80MHz(正弦波)
  • 任意波形(8192ポイント)
  • 2Ch出力/300Msps/14bit(※後述しますが、14bitは出せません)
  • ボタンが多くて操作性が良い(重要)

なお、PSG9080には、ロゴが「JUNTEK」のものと「Goupchn」のものがあります。私が購入したのは、安く販売されていた「Goupchn」ですが、基板やマニュアルにJUNTEKと書いてありましたので中身は同じ(OEM)だと思います。

2.外観・内部

前面には操作パネルやBNCコネクタが並んでいます。信号出力端子(Ch1, Ch2)の他に、変調用の信号入力ができるMOD端子や、周波数・パルスカウントモードで使うEXT端子があります。

背面には電源コネクタや各種I/Fが集積しています。面白いのは、5V入力でも動作可能な点です。モバイルバッテリーを使う事もできそうですね。SYNCと書かれたBNCコネクタは、他のPSG9080を接続して、位相を同期させるために使うようです。TTL Ext.はUARTやGPIOがあるようですが使い方は不明です。

内部を開けてみると、電源基板・制御基板・メイン基板の3基板に分かれていました。電源はDC5V出力のスイッチング電源。制御基板のMCUはSTM32F103。メイン基板にはFPGA(SPARTAN-6)と50MHzの水晶発振器があり、これが信号生成部でしょう。FPGA周りにR-2Rラダー抵抗らしきものがありますね。ICは刻印が消されているものが多いです。


アースの取り扱いは注意が必要です。ACインレットの接地極は電源基板のFGにのみ接続され、メイン基板のGNDはフローティングしています。そのため、メイン基板上の端子類(BNC, USBなど)を接地したい場合は、電源ケーブルの接地に加え背面アース端子の接地が必要です。未接地の場合、端子類のGND電位が対地10VAC程度になるため、接地して使うのが良いと思います。なお、Ch1,2間やUSB I/Fなどは特に絶縁されていません。安価なので割り切りも必要ですね。

3.操作方法

公式のマニュアル動画を見て下さい(丸投げ)。特に深い階層のメニューは無く、直観的に使えると思います。

注意点は、設定の保存方法です。設定項目(各パラメータや出力ON/OFF状態など全て)は、電源を切るだけでは保存されません。以下の写真の通り、家マークのボタンを長押しして離すと、画面中央に「SAVE M00」という内容が表示されます。なお、M00というのはメモリ領域のことで、M00-M99まで用意されています(使い方はマニュアルのLoad and Save Parameters参照)。M00は電源投入時の状態を保存する領域です。

ちなみに、出力がONの状態でM00に設定を保存すると、電源投入後すぐに波形が出力されるので注意です。出力をOFFにした状態で設定を保存することを推奨します。

4.機能

4.1.基本波形

プリセット波形として、0番~21番の計22種類が登録されています。以下は10kHz, 5Vppのプリセット波形です。※印はDutyが可変なものを表しており、画像はDuty=10%の波形です。


気付いたことは、

  • 05:CMOS, 08:Half-Wave, 09:Full-Waveの波形では、プラス側のみ出力され、peak-to-peakの電圧が設定値の半分になる。
  • 設定可能なパラメータが少ない。DutyとVppしか調整できない。
  • 電圧の設定限界は、下表の通り周波数(f)に依存する(マニュアルと異なる)。
周波数範囲 電圧の設定限界
f<1MHz 25Vpp
1MHz≤f<11MHz 20Vpp
11MHz≤f<30MHz 10Vpp
30MHz≤f<61MHz 5Vpp
61MHz≤f≤80MHz 3.6Vpp
  • 出力周波数は、波形にかかわらず0~80MHzまで設定できるが、下図のように立ち上がりが遅いため高い周波数は苦手。なお、帯域300MHzのオシロ(立ち上がり時間1.15ns)で測定しているので、オシロの性能不足によるものではなく、PSG9080の出力が鈍っているのだと思われる。

4.2.任意波形

任意波形の登録は、本体とPCを接続し、専用のソフトウェアで行います。Windowsのみ対応。公式サイトから適当にダウンロードしてインストールします。なんとなく、VM環境を使うべきかもしれないと感じました。環境によってはVB6ランタイムパッケージが必要かもしれません(DLLが不足する旨のエラーが出る)。

なお、USB接続すると、CH340経由でCOMポートとして認識されます。Windows10の2004であれば、ドライバは自動インストールされます。

以下のように、専用ソフトを使う事で任意波形の登録ができます。波形の描画には、プリセット波形やフリーハンド機能が使えます。本体画面に波形が表示される点がgood。

4.3.変調

MODキーを押すと変調を掛けることができます。変調の種類はAM・FM・PM・ASK・FSK・PSKだけでなく、PWMやBurstもあります。任意波形をキャリアor変調波形とすることも可能です。以下に代表的な画像を載せておきます。


変調機能はCh1,2で独立しているため、別々のキャリア周波数・変調周波数を設定できます。これは便利ですね。

気になったのはPSKの波形です。以下の二つの波形は、別々の時間に取得した物です。時間経過で切替位置の位相がずれ、形状が変わってしまいます。

4.4.その他

他にも、スイープ機能(電圧・振幅・Duty)、周波数測定機能、パルスカウント機能、プログラム機能がありますが、割愛します。

5.スペックの評価

5.1.垂直ビット数

残念ながら、垂直ビット数14bitというスペックは満たしていないことが分かりました。

以下の図は、振幅16.384Vpp(1mV×2^14)・周波数500Hzに設定し、波形を拡大して重ね書き表示したものです。さらにカーソル機能を使い一段あたりの電圧を求め、何bit相当の波形かを調べました。すると波形によってbit数が異なる上、どれも14bitを満たしていないことが分かりました。代表して00:Sineと02:Triangleを図示しています。

波形の傾きが急峻なせいで解像度が粗いのかと疑い、ゆるやかな傾斜の任意波形を作成し、出力しました。しかし結果は13bitでした。

残念ですね。F/Wのアップデートで何らかの補間を入れてもらえると有り難いのですけどね。

5.2.サンプルレート

サンプルレートについては、スペック通り300Mspsでした。

PSG9080のようなDDS方式のファンクションジェネレータでは、サンプルレートの整数分周で表せない周波数を出力する際、周期に揺れ(ジッタ)が生じます。サンプルレートが固定の場合、この揺れの最小幅が1サンプル分に等しくなります。

そこで999983Hz(素数)の矩形波を出力し、ジッタを測定しました。以下の図のように約3.3nsの幅があり、この3.3nsは300Mspsの1サンプル分に相当します。よってスペック通りと言えそうです。

5.3.ノイズ

オシロのアクイジションモードを「エンベロープ+ピークディテクト」にすることで、簡易的にノイズ量を調べました。振幅を5Vpp、12Vpp、25Vppに設定し、矩形波の平坦な箇所を拡大した図を以下に示します。

図を見ると、拡大波形なのでbitが粗く正確さは欠けますが、5Vp-pで最大100mV程度・25Vp-pで最大400mV程度のノイズが乗っていることが分かります。振幅の増加に伴いノイズ量が増えているため、アンプの電源・またはアンプ前段由来のノイズが支配的なのでしょう。

次に、低ノイズなシリーズレギュレータ方式の電源菊水PMC35-2を使い、PSG9080裏側のDCジャック経由で5Vを供給し、同様にノイズを調べました。その結果、AC電源を使用した際のノイズ量と大差ありませんでした。外部電源でノイズの改善を行うのは難しいようです。

5.4.出力電圧の正確さ

出力電圧は、設定値±5%に入っている感じでしょうか。そこまで正確ではありません。

検証1:矩形波の電圧

周期の長い矩形波を出力し、デジタルマルチメータ(ADCMT 7352E)で、矩形波のプラス側/マイナス側を測定しました。以下のグラフは、横軸が[設定電圧Vconf]、縦軸が[プラス側またはマイナス側の出力の誤差ΔV]を表します。誤差ΔVとは、(測定値)-(理想的な出力値)のことで、プラス側であればΔV=(測定値)-(Vconf/2), マイナス側であればΔV=(測定値)-(-Vconf/2)となります。

例えばVconf=5Vppの矩形波を出力すると、プラス側:2.5V、マイナス側:-2.5Vの矩形波となるのが理想ですが、実際には誤差があります。このとき、グラフのVconf=5Vppの位置を見ると、プラス側でΔV=0.05V、マイナス側でΔV=-0.02Vとなっていることから、実際の電圧は-2.52V~2.55Vであることが分かります。


出力電圧が増加するほど誤差が大きくなる傾向があるようです。またVconf=8Vpp以上では、プラス側の誤差とマイナス側の誤差が0.06Vを中心に振動しているため、波形にオフセットが乗っていることが分かります。

検証2:DC波形の電圧

プリセット波形「06:DC」を使い、-9.99~+12VのDC波形を生成し、デジタルマルチメータで測定しました。以下のグラフは、横軸が[設定電圧Vconf]、縦軸が[出力の誤差ΔV]を表します。ΔV=(測定値) – Vconfです。


出力電圧が増加するほど誤差が大きいですし、オフセットが約-0.26Vあります。

5.5.出力インピーダンス

50Ω出力というスペックは、概ね正しいです。

50Ω(実測で約50.3Ω)の終端抵抗を使い、終端有無による振幅の変化をオシロで測定しました。下図にはCh1のみ示します。得られた振幅から出力インピーダンスを計算すると、Ch1:49.2Ω、Ch2:49.5Ωとなりました。

5.6.周波数

周波数は、マニュアルに記載の±3ppmを満たします。ただしSYSボタンのメニュー項目で微調整する必要はあります。

以下の動画はオシロスコープの画面キャプチャで、上がPSG9080で生成した10MHzの矩形波、下がOCXOの10MHz波形です。5秒で1周期ずれるので、OCXOを正とすれば約0.2ppmでしょうか。

なお、基準周波数として用いたOCXO(ジャンク品)は、GPSの信号と比較して補正(目分量)したものを使いました。環境温度の変化や長期安定度は評価してないので分かりません。機器類は30分間暖機し、環境温度は約20℃ぐらいです。

6.総評

2ch/80MHzまで出力でき、任意波形も出せるので便利です。アンプ回路の特性把握などに活躍してくれるでしょう。テンキーとノブを併用できるので、操作性もgood。

不満点としては、14bit出力というスペックは間違っている点、出力がそこそこノイジーな点、外部基準クロック入力が無い点です。FPGA周辺に50MHzのクロックがあるので、ここを上手いこと改造できれば夢が広がりますね。

コメント

タイトルとURLをコピーしました