2019年8月24日土曜日

RF 2-Tone Generator

 Si5351は違う2種類の周波数を発振させることができる。ひょっとしてこれでRF2tone発振器ができるのではと思いついた。(誰でも想像すると思いますが)しかし小さなICで比較的高出力であること、また出力が矩形波であることから、高調波、PLLノイズ等が多く、発振器自体のIMにはあまり期待はできないと思った。しかし一度実験してみようとこのプロジェクトを開始することとした。


 高調波、低調波を減らすにはローパス、ハイパスではなく、バンドパスが必要である。それもかなり狭帯域としたい。そこで思いついたのがクリスタルフィルターだ。手持ちのクリスタルフィルターを見てみると10M15Aという15kHz/3dBのFM用のものがあった。10kHz離れならば問題なく、20kHzでもなんとかなると思いこれを使ってみた。
Inside

 クリスタルフィルターで歪まないようにSi5351の出力に10dBのアッテネーターを付け合成した後、このフィルターを通して出力している。結果は出力-20dBm IMは70dBc近辺となった。どうにか最低の合格ラインとすることができた。これならばある程度のIM3測定で使えるのではないだろうか
 できれば0dBm出力、IM80dBcはクリアしたいところである。この場合は各出力を合成前にフィルターを挿入し、増幅した後合成すれば達成できると思う。今回は前記の簡易型とした。

 10.7MHzのフィルターに対してきりの良い周波数(20kHzならば、10.690,10.710)となるはずであるが、SI5351のずれとフィルターのずれがあるので、周波数をずらして対応している。スペクトラムアナライザー等で2周波の出力が同じになる位置を探し出すところが、やや面倒かもしれない。10kHz以上の帯域を持ったフィルターがあれば別周波数でも可能である。


 Arduinoは、ATmega328にブートローダーを書き込んだもの(UNO互換)を使用して省スペース化を図った。もちろんNANOでもOK。Si5351はAdaflute互換の中華製を使用した。

 回路とスケッチはダウンロードサイトにあります。

 SI5351は150MHzまで出力できるが、フィルターという固定周波数の素子をいれているため、周波数可変はできません。しかし簡単に発振させることができることと、中華製で安価に入手できることから活用しない手はない。

Generator OUT

0-100MHz Spectrum

20dB Wide band Amplifier Measurement

 

2019年7月24日水曜日

Remake VFO Controller Ver 7.10 (Arduino + Si5351)


   注)改定情報を末尾に記載(Ver 7.20)
 Arduinoを使用したVFO-controllerを製作してから3年経過した。世界各国から色々なコメントを頂き感謝感謝です。この間、受信機等の製作に合わせてそのたびに色々な種類のcontrolerを作ってきた。これには結構なパワーが必要であり、無駄も多くなっている。
 今回このことを反省し、各種機能を取り込んだcontrollerを製作した。今後色々なシステムに合わせて改良しやすいように考慮したつもりである。ただプロセッサーにArduino-nanoを使用しているため、多少動きが良くないところもある。これは今後の課題としたい。
【特徴】
 今回の特徴としてバンドというイメージがないことである。VFOは1-54MHzまで連続して可変する。最近のメーカー製リグでは当たり前であるが。スケッチを変更すれば、この範囲は変更できる。バンド切り替えがない代わりにBPF,LPF等の選択を行うようにしている。適切なBPFが選択されていないと送信できない措置も行っている。このことから60MHz位のLPFを使用すればGENERALレシーバーとして使用できるメリットがある。できれば周波数に合わせて自動的にフィルターが選択できればいいのであるが、フラッシュメモリーが不足であることと、処理スピードが遅くなりうまく表示できない。もう1ランク上のプロセッサーが必要である。
 2つ目の特徴として、メーカー製リグでは当たり前であるが、2VFO(A,B)を持ち、A=B,A/B、SPLIT機能を設けた。メモリーは最大30チャンネルとした。メモリーからVFOへの移行も可能。
 3つ目の特徴としてtransverter対応としている。このモードは28MHzをベースとして144,435MHzに対応できる。VFOとしては28MHzと動作し、表示を144,430とする機能であり、同時にtransverter制御用の出力を用意した。
 ハードウェアの特徴としてI/O増設のためI2C用の PCF8574 を2個使用しスイッチ用に8ビット、BPF,MODE情報の出力用に8ビット増設している。
 VFO発振にはSi5351を使用し、54MHzまで対応できる。また昨年ブログに掲載したdsPICを使用したPSN送信機にも対応できるように考慮している。この場合受信周波数の2倍の周波数が必要となるので最大54MHzの場合108MHzの出力となる。

【Specification】

  • Rx Frequency Range     1MHz-54MHz
  • Tx Frequency Range     1MHz-54MHz (Ham band only)
  • Emission Modes           CW,AM,LSB,USB,FM (Max 5 modes)
  • Frequency Steps          10H,100H,1kH,10kHz,100kHz,1MzH
  • Memory Chanel           1-30 Chanel
  • BPF           1-15 (MAX 15)
  • meter          S-meter , PO-meter
  これら仕様は最大値で、カスタマイズして小規模用に容易に変更できるようにしている。
【Function】
  • VFO-Mode
          VFO A=B      Copy VFO-A to VFO-B
          VFO A/B       Main VFO Change A to B  B to A toggle
          VFO SPLIT    Main-VFO Rx   Sub-VFO TX 
  • Memory-Mode
          Memory Wite     1-30CH(Friquency,Mode,Step,BPF,SPLIT)
          Memory Read    1-30CH
          Memory to VFO  Memory Cnanel copy to VFO
  • Transverter-Mode
          144MHz,430Mhz   Base friquency is 28MHz
                                     144Mhz - 146MHz (28MHz-30MHz)
                                     430Mhz - 440MHz (28MHz 38MHz)
  • Tune
    Tune   送信機調整用に例えば1kHzを音声回路に送れるように送信時に
         1kH発振ができるようにI/O出力を用意
  • Si5351 Adjust-Mode
    Turbo-switch+Power ON でAdust-modeになり,25MHzが出力される。
    周波数カウンターに接続しUP/DOWNスイッチで調整できる。
  • Turbo
    エンコーダーでの変化を10倍にする機能。
    STEP 10Hzの時に、Turboを押しながら回すと100Hz STEP
    STEP 100Hzの時に、Turboを押しながら回すと1kHz STEP

【MEMO】
  ロータリーエンコーダーを回したときに周波数表示が多少ぎこちない。これはArduino-nanoのSPI速度の問題と表示アルゴリズムのもお題だと思われる。これにはより高速なプロセッサーが必要と思う。近い将来STM32やArduino-mega,Due等に乗せ換えたいと思う。またキャラクタLCDを使用したライトなものも用意したいと思う。
動作の詳細はマニュアルと回路図を参照してください。スケッチ&manualをダウンロードサイトにUPしてあります。

73's JA2NKD






改定(2019.10.22):回路図 修正 スケッチ 修正
改定(2019.12.02):回路図 修正 スケッチ 修正 Ver.7.20
改定(2020.03.22):回路図 修正


2019年5月21日火曜日

UHF Transceiver using DRA818 module


久々の投稿になってしまいました。何もしていないわけではありませんが、投稿に至る完成品がありませんでした。
 今回はお世話になっているJA2GQP OMから紹介いただいたトランシーバーモジュールを使ったハンディートランシーバーである。
 モジュールはDORJI(中国メーカー)のDRA818Uという400-470MHz用のFMトランシーバーである。この他に140Mhz帯用もある。いろいろなトランシーバーを作っているようだ。
DRA818Uの仕様は概略以下の通り
周波数範囲:400-470MHz
チャンネルステップ: 12.5kHz,25kHz
出力:0.5W,1W
CTCSS/CDCSS: Tone
電源:3.3V-4.5V サイズ:W35.6 H:19mm


この大きさで1Wトランシーバーが入っている。中国製のトランシーバーには、これらのモジュールを使用しているようだ。内部にはDSP等デジタル化されている。
このモジュールに、AF用アンプ、マイクを付けてマイコン等で制御すればトランシーバーの完成である。

【製作】
 ハンディータイプとする。ケースはタカチのバッテリーケース付きプラスチックケースLC135H-M3を使用。コントローラーはDRAの電源範囲が3.3-4.5Vなので3.3V仕様のArduino Pro mini(3.3V 8MHz)を採用。表示にはOLED128x32(I2C)、AFアンプには秋月で仕入れたD級AMP(HT82V739)キットを使用し小型化、簡略化を図った。
 基盤には、400MHz帯であることを考慮し、メッシュアースユニバーサル基板(ICB-98DSE)をケースに合わせてカットして使用。モジュールは、基盤をくり抜き収めている。
PCB
回路は、至極簡単なので回路図を見ていただければご理解いただけると思う。
Schematics
回路図はダウンロードサイトにPDFがあります。
Inside View

内部の配置は上の図を参考に。

【Arduino】
 今回はモジュールが3.3Vなので直結できるメリットからArduino Pro mini(3.3V 8MHz)を使用した。Pro miniはUSB[返還を搭載していないので、外部に用意する必要があるが、小型でありnanoと同様に使える。
  • DRAコントロール
     DRAコントロールは「ATコマンド」で行われる。
     ”AT+DMOSETGROUP=”に続いて受信周波数、送信周波数、スケルチレベ
     CTCSSコードをテキストベースで送信する。
  • PTT
     DRAのPTT端子をLOWにすると送信。今回はPTTスイッチを一度Arduinoに取り込んで、I/Oに出力しDRAのPTTをLOWにする。
  • Squelch
     スケルチスイッチをAruduinoに取り込み、一度押すとOFF、再度押すとレベル1にセットするようにしている。最大8レベルまであるが、今のところ1で十分のようだ。
  • OLED
     OLEDはI2C仕様の128x32のものを採用。周波数表示のみである。
  • Rotaly Encoder
     Rotaly.hライブラリーを使用した標準的なもので、25kHz STEPで加減算している。
これ以外にもDRAにはいくつかのコマンドがあるが、今回はシンプルな制御としている。
スケッチはダウンロードサイトにあります。

【使用感】
  出力はLPF経由後で0.5W程度。MAX1Wであるが、電源電圧が3.6V程度なのでこれくらいだと思う。また、スプリアスを規定値に収めるためにはLPFは必須である。製作は回路図に示しているようT型の簡単なものであるが、十分効果がある。
 受信感度は、思いのほか良い。FT991と比較してもさほど差がないように感じる。
やはりこの周波数ではアンテナの効果が大きいようだ。
 STEPが25kHzなので100kHz単位でないとチャンネルプランに逸脱してしまう。
その面ではいまいち使いにくい。別会社で5kHz STEPのモジュールもあるので、機会を見て2台目を製作してみたいと思う。
 このモジュールが千数百円で入手できるとは。思えば2BANDトランシーバーが数千円で売っている。







基本はより下のノイズが気になる。後日調査予定。上側はきれいにLPFが利いている。










追記(2019.05.28):
 送信試験をおこなっていたら、変調音にノイズが入ることを確認。調査してみるとOLEDのノイズであることが判明。OLEDは結構ノイズが出るとは認識していたが、今回実際問題となった。受信音には問題なかった。
 そこでスケッチを改良し、送信時にOLEDをスリープさせ表示を消すようにした。これによりノイズは消えた。ハンディータイプなので送信時に表示がなくても問題がない。
修正スケッチはダウンロードページに追加しました。(NK430_101.ino)

2019年1月1日火曜日