ラベル VFO の投稿を表示しています。 すべての投稿を表示
ラベル VFO の投稿を表示しています。 すべての投稿を表示

2021年8月9日月曜日

ALL BAND TRANSCEIVER (5)

今回はこのTRANSCEIVERの中枢であるコントローラーについて簡単に解説します。

Microprocessor 

 今回のコントローラーは、以前BlogにUPしたVFO Ver8.0を基にカスタマイズしています。
 MPUは、Arduino Due を使用しました。今回のプロジェクトでは、ALL BANDで多機能であるため、I/Oが多く、十分なメモリ容量でスピードが速いものを必要としました。
 主な仕様は以下の通り


Specification
Microcontroller AT91SAM3X8E
Operating Voltage : 3.3V
Input Voltage (recommended) : 7-12V
Input Voltage (limits) : 6-20V
Digital I/O Pins : 54 (of which 12 provide PWM output)
Analog Input Pins : 12
Analog Outputs Pins : 2 (DAC)
Total DC Output Current on all I/O lines : 130 mA
DC Current for 3.3V Pin : 800 mA
DC Current for 5V Pin : 800 mA
Flash Memory : 512 KB all available for the user applications
SRAM : 96 KB (two banks: 64KB and 32KB)
Clock Speed : 84 MHz

TFT Color LCD with Touch panel


 今回のコントローラーで一番苦労したところが、タッチパネルのコントロールであった。
LCDは、ドライバーがILI9341でSPIインターフェース。これにタッチパネルが付いたものである。

Specification
Display Color    RGB 65k color
Screen size       3.2inch
Driver              ILI9341
Resolution        320x240 pixel
Interface          4 wire 
SPI 
Touch panel     Resistive touchscreen
Touch Driver    TSC2046

Arduino Due周りの結線図を再度掲載する。DueとLCDの接続を赤くしてある。

 特に苦労した部分について簡単に記載します。

USB Port
Dueは2つのUSBポートがある。一つはPrograming Portで主にプログラムの書き込み、消去等にしよう。もう一つはNative Portで主にユーザープログラムで使う。
 今回は筐体背面に両方のポートを付けた。Programing用とCAT通信用としている。
 CATはメーカーによってコマンドが違うためどれかに決める必要がある。今回はHamLogの周波数設定程度なので、Yaesu FT-991,Kenwood TS-2000に対応できるようにした。(コンパイル時に選択)
 スケッチは、mainルーチンで外部からUSB経由でシリアル信号を受信したかチェックし、文字列を判読し、情報を返信する単純なスケッチである。以下は参考スケッチです。

---------------------------------------------------------
byte CATbyte = 0;

void setup(){

    SerialUSB(38400);}

void main(){


CATbyte = SerialUSB.available();
if (CATbyte >0){CATset();}

}

//----- CAT Controll(FT-991) -------------------------
void CATset(){
  String CATinput = SerialUSB.readStringUntil(';');
  SerialUSB.flush();
  if (CATinput == "FA"){
    SerialUSB.print("FA");
    String freqtcat = freqt;
    int mojicat=(freqtcat.length());
    if (mojicat <9){
      for (int i=9; i > mojicat; --i){
        SerialUSB.print("0");
      }
     }
    SerialUSB.print(freqtcat);
    SerialUSB.print(";");
  }
  if(CATinput == "MD0"){
    String modecat = String(mode);
    SerialUSB.print("MD0");         
    SerialUSB.print(modecat);
    SerialUSB.print(";");   
  }
  else{
   SerialUSB.print("?;");
  }
}
----------------------------------------------------------

Touch panel
 タッチパネルの処理には非常に苦労をした。製作までにかなりの時間を要したが、逐一記載すると非常に大変なので、結果だけを書くことにする。

タッチパネルには今回抵抗膜方式のもので、タッチしたときの抵抗変化で位置を特定する方式である。タッチパネルのドライバーはTSC2046、LCDはILI9341、MPUはArduino Due。
 初めにタッチパネルのキャリブレーションが必要である。押した位置の抵抗値をLCDのPixelに変換する。これにより位置判断が可能となる。
 キャリブレーションのスケッチは以下のライブラリーのサンプルスケッチにある。
https://github.com/marekburiak/ILI9341_due
[ uTouchCalibration.ino]が目的のスケッチである。
 55行を今回のハードウェアに変更する。
   URTouch  myTouch(30, 28, 26, 24, 22);
            ↓
   URTouch  myTouch(6,5,4,3,2);

 73行を使用するLCDの方向に合わせる。(90 or 270)
tft.setRotation(iliRotation270); // landscape
 

これをDueに書き込むと右の画面が表示される。画面のどこかをタッチすると次の画面が表示される。




この画面で左上ハイライトされた+をタッチする。中央の[PRESS]が[HOLD]に代わり[RELEASE]に変わる。すると今度は左中央がハイライトする。同じようにタッチして8か所すべてが終了すると最終の情報画面に変わる。


CAL_X
CAL_Y
CAL_Z
これがキャリブレーションで得られた情報である。




 この情報はIDEのシリアルモニタにも出力される。
 
ここで、今回使うタッチパネル用ライブラリー
http://www.rinkydinkelectronics.com/library.php?id=93にあるURTouchを使用する。


このライブラリー内にある[URTouchCD.h]をエディターで開きオリジナルのXYZをコメントアウトし、シリアルモニタのXYZをコピー&ペーストし保存する。
 これで使用するLCDのキャリブレーションが終了する。LCDを変更した場合はそのたびにキャリブレーションが必要となる。


参考スケッチ
実際のスケッチの抜きだしなのでよくわからないかもしれない。mainルーチンでパネルが押されたかどうか検出しx,y情報をサブルーチンに渡し処理を行う。URTouchライブラリーのexampleスケッチなど参考にしてください。

-------------------------------------------------------------
void main(){
  if (myTouch.dataAvailable())
    {
    myTouch.read();
    int x = myTouch.getX();
    int y = myTouch.getY();
    ProcessKeyTouch(x, y);  
}

//----- Touch -----------------------------------------------
void ProcessKeyTouch(int x, int y)
{
//  SerialUSB.end();
  ucg.setFont(ucg_font_fub11_tr);
  if (x >= 5 && x <= 5+key_width){               // Menu
    if (y >= 210 && y <= 210+key_height){
      key_rows = 2;
      menu_sub();
    }
  }
  if (x >= 5+1*80 && x <= 5+1*80+key_width){       // Band Set
    if (y >= 210 && y <= 210+key_height){
      key_rows = 3;
      band_set();
    }
  }
  if (x >= 5+2*80 && x <= 5+2*80+key_width){    // Step UP
    if (y >= 210 && y <= 210+key_height){
      fstepmem=fstepmem+1;
      fstepset();
    } 
  }
  if (x >= 5+3*80 && x <= 5+3*80+key_width){    // Step Down
    if (y >= 210 && y <= 210+key_height){
      fstepmem = fstepmem-1;
      fstepset();
    } 
  }
  if (x >= 5 && x <= 67){        // VFO
    if (y >= 10 && y <= 30){
     key_rows = 1;
     vfo_menu();  
    } 
  }
  if (x >= 77 && x <= 122){      // Mode
    if (y >= 10 && y <= 30){
      key_rows =2;
      mode_menu(); 
    } 
  }
  while(x != -1 ){
      myTouch.read();
      x = myTouch.getX();
      //y = myTouch.getY();  
  }
}

一部省略して書いたので少々わかりにくいかもしれませんが、ご容赦

以上 これでALL MODE TRANSCEIVERの解説は終了の予定。質問や、聞きたいことなどご要望があれば追記するかもしれません。メールまたはコメントにてお知らせください。

DE JA2NKD Ryuu


2021年7月24日土曜日

ALL BAND TRANSCEIVER (4)

 今回の ALL BAND TRANSCEIVER で色々な課題があった。今回解説するBAND,MODEの制御もその一つである。
 タッチパネルで選択したBANDやMODEは数値化され制御を行う。具体的には変数 [BAND] 変数[MODE]に選択した数値情報が収納される。

 上図でPHOT1でBANDをタッチ、PHOTO2で希望BANDをタッチすると変数[BAND]にBAND番号が収納される。この変数を2進数にして各BITのHigh,Lowを調べI/Oに出力をしている。
全部で14BANDなので4BITバイナリーでD14,15,16,17に出力している。
sketchでは、
void DIO_BAND_set(){
  int bitdata = 0;
  int port_num = 0;
  for (int j=0; j<=3; j++){      // ポートをLowにリセット
    digitalWrite(14+j,LOW); 
  }
  for (int j=0; j<=3; j++){  
   bitdata = bitRead(band,j); // 変数[band]の各Bitを調べる。
    if (bitdata == 1){
     digitalWrite(14+j,HIGH);   // 1なら当該ポートをHighにする
    }
    else{
      digitalWrite(14+j,LOW); // 1以外なら Lowとする。
    } 
  }
}

Modeも同様にしてD18,19,20,21に出力している。

 Aruduino DueのD14-21ポートに出力されたBAND,MODE情報は、以降の処理に使いやすいように(FXMA108)で3.3Vから5Vにレベル変換をしている。
 BAND情報はD14-17から出力されレベル変換後TC4515デコーダーを使用し、各BAND個別信号を出力している。このTC4515はActiv Low 選択された信号がLow、それ以外がHighとなる。このためPNPデジタルトランジスタ(RN2201)を利用し選択された受信用BPFに電源を供給するようにしている。
 送信も同様にBPF選択を行っている。送信ではさらに TD62084というSink Driverで出力のLPFリレーを制御するようにいている。

MODEも同様であるが、選択数が少ないのでデコーダーに74HC238(3INー8OUT)を使用いた。これはActiv HighなのでNPNデジタルトランジスタ(DTC144)を使用しColinsフィルター切替を行っている。

尚、BAND情報は、Linear と Transverterのためにバッファ(74HC125)経由でDINコネクタに出力している。

 さすがにALL BAND TRANSCEIVERともなると、フィルタ、BPF、LPFの切り替え処理が非常に煩雑となることを実感した。今回極力手持ち部品を使用したため、どうも一貫性のない回路となった感じである。ご容赦願いたい。

今回は、あまり日の当たらない部分の解説なので、少々つまらなかったもしれませんが、備忘録としてUPしておくこととした。

DE JA2NKD Ryuu







 




2021年6月28日月曜日

ALL BAND TRANSCEIVER(2)

 Appearance(front)

Do you notice anything when you look at the appearance?
Most frequency knobs such as transceivers made by manufacturers are attached to the right side. My transceiver is on the left. Because I'm left-handed.

Frequency nob    Rotary encoder 100als/r
Switches
    Lock      Frequency lock
    Turbo    Multiplies the frequency step by 10.
    ATT       Preamplifier Off
    AGC      Slow/Fast
    Tune     Test transmission (1kHz modulation)
    COMP    Compressor ON/OFF

Volume
    AFGAIN    Audio Gain
    SQL         FM Squelch
    MIC         Mic gain
    CLAR       Clarifier(rit)  Rotary encoder 25pls/r

LCD             3.2inch TFT-LCD with touch-panel
                   driver ILI9340 320x240

 Appearance(back)
ANT-1    
2 Antenna connector
ANT-2   Can be selected for each band
TRV      To transverter
IF         IF OUT(Not use)
10MHz IN    External reference frequency input(10MHz)
USB-U        Arduino Due USB (nativ port)  for CAT control
USB-P        Arduino Due USB (proglaming port)
AUX           External modulation Input
REC            Audio Output
KEY            CW KEY
SPEAKER    AF 8 ohm 2W

Circuit overview
The receiver is a double super heterodyne with a first IF 70.455MHz and a second IF 455kHz. The filter is a Collins mechanical filter 
     (SSB 2.4kHz, CW 500Hz, AM 6kHz).
The transmitter is a PSN direct transmitter using dsPIC and MAX2452.
The VFO controller used Aruino-Due & 3.2inch TFT-LCD with touch panel.

The following explanations will be written in Japanese. 
My English is poor. Sorry.

受信部

① BPF&LPF
ALL-BANDとなると各種フィルターがバンド毎に必要になり、製作が大変である。幸いオークションでICOM IC730のRF基板ジャンクを入手し流用した。この基板は1.9-28MHzの9バンドなので、50MHzBPFとゼネラルカバー受信(0-60MHz)用のLPFを自作し追加した。 
 
② RF amp
2SC1426を使用したNFBアンプで凡そ10dB程度増幅する。2SC1426は50mAバイアス電流を流しIP3を改善するようにしている。パネルにあるスイッチでON/OFFができるようにしている 。
 
③ 1st Mixer
このMixerでVFOと混合し第一中間周波数70.455MHzに変換している。 
MixerにはSL6440CというICを使用した。このICはIP3が高く、尚且つ変換ゲインがあるという優れものである。難点としてはSNが少し悪いことと、電流が50mA程度流れる。HF固定機で使う分には問題ない。VFO入力は結構クリティカルで大きすぎると極端に歪み始める。-10dBm - 0dBm当たりで調整が必要。スペクトラムアナライザーがあると簡単に調整できる。

④ MCF(70.455kHz)
第一中間周波数70.455kHzのフィルターで、帯域幅は15kHzである。オークションで入手。この谷も45MHzあたりのフィルターも時々見かける。2素子1組のものである。

⑤ Post Amp
Mixer後1段軽く増幅している。使用した素子は3SK291デュアルゲートFETである。回路はごく普通の回路。(回路図省略)

⑥ 2nd Mixer
uPC1037Hを使用したダブルバランスドMixer。外付け部品が少なく扱いやすい。最近秋月で互換性のある日本無線のNJM2594が入手できる。70.455MHzに70MHzを注入し一気に455kHzに変換する。FT-900でも同じ周波数構成を行っている。 
 
⑦ Collins Filter
今回の目的である「いつかはコリンズ」フィルター
SSB用    2.4kHz    562-8694-010 
CW用     500Hz      562-8693-010 
AM用    6kHz        562-8695-010 
クリスタルフィルターに比べてスカート特性等は非常に綺麗である。切れ音質ともにさすがコリンズと思えた。気のせいであろうか?(AM用フィルターの特性を以下に示す)
 
Colins Filter 6kHz

⑧IF Amp 
IFAmpはAD603 2段増幅で80dB増幅とした。回路はJA9TTTさんの記事等を参考にしている。非常に安定してうまく動作している。AGC等は周波数の違いもあることからカットアンドトライで決めた。
 
⑨ SSB,CW Detector 
 検波回路には2ndMixerと同じuPC1037Hを使用。キャリア周波数はDDSで作成しモードで変更するようにしている。
 
⑩ FM IF
DET FMIF増幅と検波は定番のMC3361を使用。周波数変換部を使用せず、中間周波455kHzをFM用フィルタ(CFWLB455F +-6kHz)を通してMC3361に入力している 
 

⑪AF Amp
AFアンプはOPアンプで増幅したのちuPC575C2という一昔前のメーカーリグに多用されていたICを使用。LM386と比べると2Wで余裕があり、音質もいい。


TO be continued

 

 

 

 


    

       

2021年6月21日月曜日

ALL BAND TRANSCEIVER(1)

 Nowadays, SDR is the mainstream.

But I like analog systems. Since I first started amateur radio 50 years ago, I've always wanted "Collins". Recently, the "Collins Filter" has finally been discontinued.

Covid-19 occurred two years ago, and from last year, "Stay home" began to be shouted. This allows you to spend a lot of time on homebrew. On this occasion, I decided to make a transceiver using the "Collins filter" that I had longed for for many years.

For VFO, I used the touch panel type VFO controller that I posted on my blog before.

It was finally completed two years after it started. But the pandemic has not yet converged.


Specifications

Receiver
Circuit Type                    SSB/CW/FM/AM: Double conversion  Super heterodyne
Sensitivity                      SSB:2.4kHz CW:500Hz FM:12kHz AM:6kHz
Intermediate frequency  1st:70.455MHz,2nd:455kHz
Frequency range            Ham band (1.9,3.5,7,10.14,18,21,24,28,50)
                                    General (0-60MHz Receive only)
Audio Output                 2W into 8 Ohms

Transmitter
Modulation types            SSB(J3E),FM(F3E),CW
Power Output                5-8W
FM Deviation                 ±5kHz
Microphone Impedance  600 Ohms

Others
Power Consumption       Rx 1.0A    Tx 3.7A  (Maximum)
Supply Voltage              13.8V
Dimensions                   W:430mm  H:100mm  D:450mm
VFO                             Si5351 PLL
Controller                    Arduino Due
LCD                            3.2inch TFT with Touch Panel

Internal View


Block diagram

Video(YouTube)    https://youtu.be/toFvZ_4qtKs

I will upload the commentary to the blog little by little in the future.

DE JA2NKD


2020年8月8日土曜日

TRIO TR-5000 External VFO

 ※ 2020.08.30 Corrected the schematic

TRIO(KENWOOD)TR-5000  1968年販売開始されたAM,FMトランシーバー。OMならご存じではなかろうか。
受信はVFO,送信はクリスタルというスタイル。当時はこれでも結構QSOができた時代である。最近ではクリスタルの特注も難しい(特にHC-6Uタイプは)。
SDRが主流となってきた昨今いまさらAM,FMとも思うが、ノスタルジアだろうかAM通信もまだまだ愛好家が頑張っています。SDRではだれが作っても同じ性能のものになってしまいます。アナログ機器は作り手によって性能が大きく変わる。そこが楽しい。
 そんなことで、今回物置からTR-5000を引っ張り出し、外部VFOを製作しました。
ただの外部VFOでは面白くないので、周波数表示と送受信トランシーブVFOとした。


【構想】
・できるだけ本体は改造しない。
・トランシーブ操作
・周波数表示
・Arduino nano
・Si5351




【回路】
 受信用VFOの出力コイル2次側からFET(2SK241)ソースフォロワーで取り出す。出力は-25dBmくらいなので、MMIC(SGA-6386)で0dBm程度まで増幅する。これをさらに増幅、波形成型し74HC90で1/10に分周しArduinoによる周波数カウンターに入力する。
 カウンターの入力回路はJE1UCI冨川OMがICOM BEACONエレクトロニクス工作室No.134で発表されている回路を使用させていただいた。この回路は感度もいい。調整は2SC1815のコレクタ電圧を2.5Vにする。
 Arduinoに入力された信号はゲートタイム1秒でカウントし、LCDに表示する。また送信時(PTT ON)にカウントした周波数から送信周波数を計算し、Si5351PLLで送信出力を生成し外部VFO入力(外部クリスタル)に出力する。例えば
受信周波数 50.600.000の場合 VFO=50.6-41.58+1.65=10.67MHz
カウンタ入力=10.67/10=1.067MHz
なので表示数は(1.067*10)+39.93000=50.600MHzとなる。
送信周波数は24逓倍なので 50.6/24=2.108333MHzとなる。(Si5351出力)
 これで受信周波数によるトランシーブ操作VFOとなる。
 一つ問題がある。Arduinoの基準クロックは16MHzであるが、正確ではない。またSi5351の基準クリスタル25MHzも正確ではない。そこで、この補正を行うため、ロータリーエンコーダーを使いキャリブレーションできるようにしてる。
 操作は、運用周波数を受信し、CALスイッチをONにし、エンコーダーでメーターの振れが最大になるようエンコーダーを回す。これで送受信が一致して運用できる。電源を入れて1回操作をすれば大きくずれることはない。AM,FMなので問題ない。
 また、プログラムの中でカウンタの補正も行っている。既知の周波数を入力し表示周波数を見る。この比率で補正計算を行っている。
 例えば正確な10MHzを入力し10.00500MHzとなったら、計数0.9995を補正値とする。
 古い機器を再生させようと思っているOM諸氏の参考になれば幸い。

Arduino Sketch & Schematics(tr5000_counter.zip) Download
73's







2020年6月30日火曜日

VFO Controller 8.0 (Aruduino Due with touch panel)


多機能のVFOを製作しようと考えると、どうしてもスイッチが多くなる。例えばVFO7.1では12個のスイッチを使用した。こうなるとパネル製作も一苦労である。今回タッチパネル付きのTFTを使用し外部スイッチの削減を試みた。最近のメーカー製トランシーバーやSDRもほとんどがタッチパネルを採用している。どうせ作るなら盛り沢山の機能を搭載することにした。最近の私にとっては、ちょっとしたチャレンジである。尚、このVFOはアナログトランシーバー向けのVFOです。
【Hardware specification】
  • VFO  Si5351a PLL
  • TFT  2.8inch TFT with Touch Panel
  • MPU   Arduino Due
  • EEPROM 24LC64
【Software specification】
  • MODE  LSB,USB,CW,FM,AM
  • BAND  1.9-50MHz (Japanese Ham band),0-60MHz(General caverage
               Transverter mode(144MHz,430MHz,1.2GHz)
  • VFO     A-channel B-channel every band
  • VFO Type  Up-conversion Down-conversion chooseable
  • Memory  50channel 
  • CAT  CAT Controll (Frequency,Mode) for Ham Log Software
【manual】
[VFO-A]をタッチ
 サブメニューが開きます。
A/B VFO-AとVFO-Bが入れ替わります。
A->B Aの周波数をBにコピー
B->A Bno周波数をAにコピー
SPLIT メインが受信 サブが送信となりスプリット送信が可能となります。




[USB]をタッチ
 サブメニューが開きLSB,USB,CW,FM,AMの変更ができます。
[BAND]をタッチ
 サブメニューが開きます。希望のBANDをタッチすれば移動します。
[GEN]はGeneralで0-60MHzまで連続可変できます。送信はできません。
[TRV]はトランスバーターでサブメニューが開きます。144MHz,430MHz,1.2GHzが選択できます。この場合書くBAND毎にオフセット周波数を設定できます。イニシャルでは28MHz帯が出力されるように設定してあります。
[MENU]をタッチ
 サブメニューが開きます。
[M/R] メモリチャンネル呼び出し。1-50CH UP/DOWNで選択
[M/W] メモリーチャンネル書き込み。1-50CH UP/DOWNで選択。書き込みは上書きされます。
[PLLSet] Si5351aのクロック周波数を設定します。UP/DOWNスイッチでVFO出力を10MHzにセットし記憶します。
[CLAR]をタッチ
Cralifire(RIT)メニューが開きます。
[CLAR-R] 受信用Clarifire
[CLAR-T] 送信用Clarifire
[OFF] Clarifire 停止

[V-Type]をタッチ
VFOをUPConversionにするか、DownConversioにするかを設定します。BAND毎に設定可能です。

【Make】
 今回MPUにArduino Dueを使用。nano,UNOではメモリー容量が足らないことからの選択である。DueはEEPROMがないため24LC64というI2CのEEPROMを付加した。構成はI2C制御のSi5351、24LC64 SPI制御のタッチパネル付きTFT(driver ili9341)及びロータリーエンコーダーといたって簡単な構成である。またDueには2個のUSBが搭載されており、1つはプログラミング用 もう一つは外部との通信用に使える。今回これを使用し簡単なCATコントロールを搭載した。現状HamLogに対応している。
 注意点としてDueは3.3V動作なのでI/Oも3.3Vである。このおかげでTFTとダイレクトでの接続が可能である。半面 外部とのインターフェースも3.3Vが上限であることに注意が必要である。バンド情報、モード情報等の出力は3.3Vとなる。まだたくさんのI/Oが余っているので、追加機能も可能。


【Software】
 スケッチその他ライブラリー等はDownload Siteに掲載してある。
 タッチパネルを使用するには、最初にCalibrationが必要である。このやり方についてはライブリーの説明を読んで対応してください。Calibration スケッチもSiteに一括して掲載してある。

【CAT】
 CAT Controlle を搭載しました。ただし現状最低限でHam Logに周波数とモード情報を送ることができるだけです。今後機能を増やそうかとも思いますが、今のところ必要性を感じていません。多くの希望でもあれば対応するかもしれませんが。まあ、そんなことはないと思いますが。(笑)

 出来立てなので、まだBUGがあると思います。何かあればコメントでもお寄せください。

73's de JA2NKD

2021.05.13 回路図 修正




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):回路図 修正


2017年10月4日水曜日

6BAND 6.1 SSB Transceiver

 かなり以前から、ebayやaliに気になるキットが出ている。youtubeにも色々投稿されている。それは6BAND6.1 SSBと言われているキットである。チップ部品を使用しており非常にコンパクトで且つ6バンド(3.5,7,10,14,21,28MHz)で値段も数千円であり、思わずポチってしまった。といってももう半年も前のことである。
今回重い腰をあげ、老眼鏡をはめて作り始めた。

 詳しい仕様等も判らず資料もついていない。販売商品ページにリンクが有り、そこにある資料を参照しろということのようだ。
 回路図を眺めてみると定番のSA602を3個使用したもので特段特殊ではないようだ。
 受信はFETアンプ1段(回路図では省略されているようだ)ミクサーにSA602(実際はSA612が入っている)そのあと1段IFアンプ(FET)、クリスタル5個のフィルター、さらにFETのIFアンプ1段し、SA602(SA612)で検波。送信はSA602(SA612)で変調しフィルタに入りFETアンプ1段増幅しSA602(SA612)でVFOとミックスし目的周波数を得る。入出力にはバンドパスフィルタがあるが、どうも今一。

 取敢えず部品配置表とにらめっこでチップ部品を取り付ける。しかしここで問題発生。示された配置表と基板が少し違う。どうもバージョンの違いのようだ。回路図とマニュアル(G0CWA著 )を見ながら順を追ってつけていく。
 次の問題 送られてきた部品のFET(BF998)は基板のパタンに合わない。ここにはBF998Rを使う必要がある。これは非常に大きな問題である。幸いお世話になっているJA2GQPさんからインフォメーションがあったので新たにAliに手配しておいた。さらにリレーが4個使われているが、これが中古取り外し品である。
 このようなキット販売が許されるのも中華ならではかも知れない。
 一通り部品がついたら試験である。

 受信は取敢えず7MHzで信号が入感、しかしモガモガ。BFOの周波数が合っていない。VFOが15MHzでIF8MHzなのでLSB受信の為には8MHzの下側7.9985MHzとする必要があるが、VXOコイルがマニュアル通りだと下がりきらない。仕方なく巻き直す。7Kコイルの溝に5回x5溝とした。これでも7.5uHしかなかったが、何とか7.9987KHzとなたのでOKとしている。経験的には10uH以上必要と思う。これで快調に復調できるようになった。
 フィルターはバリキャップを使用し可変となっている。フィルタ単体で試験してみると波形はリップルが大きい。聞いてみて特に問題は無く聞こえているので、今のところオリジナルのままとしている。AGCはAFボリュームの出力側から取られているので、ボリュームを回すとレベルも変化してしまう。またSメータ出力が無いので外部にAGC回路を別途儲けAGCとSメータ出力としている。
 送信は各バンド多少の差異はあるが-30dBm~-25dBm程度であった。またキャリア漏れもあるが、調整が出来ない。
 入出力のBPFもピークはでるものの、どうも旨くマッチングしていない感じである。
キットとしての再現性はお世辞にも良いとはいえない。

 取敢えずこの状態でVFO,リニアを付けてトランシーバーとして組んでみた。

VFOには以前紹介したマルチバンドVFO(NKD_VFOVer3)を使用。殆どオリジナルのままであるが、6バンドに変更している。詳しくはリンクのページを参照してください。

 リニアは私定番の三菱パワーFET(RD00HHS1,RD06HHF1)を使用し5Wを目指す。
しかしキットからの出力が-30dBm程度なのでこの2段ではまだ20dBくらい不足している。しかしストレート3段アンプも発振等怖い感じである。現状キットからの直接入力で1W以下しか得られない。MMICアンプを追加しようか悩むところである。
 出力用LPFは、3.5MHz,7MHz、10-14MHz、21-28MHzの4回路としコンパクト化した。

 Arduino nanoを使ったコントロール回路は、NKDVFOVer3のものをそのまま使用しているが、BAND情報、MODE情報をキットに引き渡すことと、LPF切替のために使うことから 3 to 8 Demultiplexer(BAND情報用)と 2 to 8 Demultiplexer(MODE情報用)のあとにデジタルトランジスタを使用して出力させている。ちょっと大げさかもしれないがキットの切替信号入力にはフォトカップラーが使用されており結構な電流を流すようになっているためである。

 少々雑に記したが、課題をまとめると
1.FETにはBF998Rが必要で別途手配を要す。
2.VXOコイルの定数見直し
3.BPFの定数見直し
4.中古リレーは新品としたい。(現時点では鈴商で入手可能 @250)
5.キャリア漏れがある
6.フィルターのリップルが多い
7.送信出力レベルが低い(-25~35dBm)
8.Sメータ出力がないこととAGCが今一なので改良
9.まともな回路図、部品配置図がない(見つからない)






 最終目標の5W出力が得られていないが、受信部は完成し快調に受信できている。非常にコンパクトに出来ており再現性がよければいいキットになると思うが、現状では製作のハードルが高いと言わざる負えない。まだまだ手を入れる必要があるが、時間が掛かるので、現状でブログアップすることとした。

Because it is hard to write in English, only the assignment is shown below.
Please send me a comment or e-mail if there is something you do not understand.

1. BF998R is required for FET and it is necessary to arrange separately.
2. Constant review of VXO coil
3. Constant review of BPF
4. I would like to use used relays as brand new.
5. There is a career leak
6. There are many filter ripples
7. Transmission output level is low (-25 to 35 dBm)
8. Since there is no S meter output and AGC is now one, improvement
9. There is no decent circuit diagram, parts layout diagram (not found)

At the present time, the final target of 5 W output has not been obtained. I am going to improve it in the future, but since it takes time, I blogged up the present situation

73's
DE JA2NKD

 
 

2016年10月27日木曜日

Si5351PLL VFO controller ( Multi-band )

DDS VFOcontroller(Multi-band)が出来て間もないところであるが、早速JA2GQP-OMがSi5351PLLバージョンを作ってくれました。

 これでDDS、Si5351PLLと選択肢が増えた。
 Si5351のライブラリーはArduino フォーラムにあるが、これを使うと多くのメモリーを消費しコンパイルエラーになってしまう。JA2GQP-OMが、色々調査され、コンパクトなライブラリーを作られた、そのおかげでこのSi5351バージョンが実現している。実にすばらしい。


 スケッチ、ライブラリー、回路図はJA2GQP-OMのBlogにUPされている。
 最近中華DDSもじわじわ値上がりしているようだ。Si5351は秋月で安価に入手できる。これを活用しない手はない。海外でもSi5351は非常に人気が有り、多くの活用事例がNETにアップされている。最近はこれら海外との情報交換もインターネットのおかげで楽に出来る。
 もっとHomebrewしましょう。


早々マルチバンドトランシーバーを計画しなくてはいけない。

 DDS VFOcontroller (Multi - band) was the place which can have just been done, but JA2GQP-OM made me the Si5351PLL version.
 Sketch, library and schematics are In Blog of JA2GQP.

73’s