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

2022年5月23日月曜日

DDS & PLL Tester

 無線関連の自作を行っているが、最近DDSやPLLを使用することが増えてきている。そんなときトラブルが発生したとき、原因調査でDDSやPLLが壊れていないか調べることがある。
 今までは、ブレッドボードで試験回路を作って調べていた。マイコン制御であるため、試験プログラムもいくつか作っていた。ということで、各種DDS,PLLを簡便に試験できるテスターを作ってみた。

【 HardWare 】
 ハードウェアといっても、ユニバーサル基板にArduinoとTFT-LCD、DDS等を乗せるためのpinソケットだけの簡単なものである。
唯一の特徴はタッチパネル付きのLCD(2.8inch)を使用したことでしょうか。

【 SoftWare 】
 今回のスケッチは、過去作成したものに継ぎ足しで作ったのでわかりにくいと思うがご容赦。 
 単純にDDS,PLLを選択し、リファレンスクロックと出力周波数をテンキーで入力することにより動作するという単純なものである。





【 Device 】
 試験できるDDS、PLLは以下のもの。
 DDS       AD9833,AD9834,AD9850,AD9851
                AD9833はサイン波、三角波、方形波を選択できる
   PLL        Si5351
                Si5351はCLOCK0,CLOCK1,CLOCK2を選択できる

【 操作 】
    (1) タッチパネルDeviceを選択
  (2) Ckockを入力しEキーをタッチ
            0を入力しEキーを押すと規定値が設定される
            AD9833-25MHz,AD9834-75MHz,AD9850-125MHz,AD9851-30MHz
            Si5351-25MHz
  (3) 出力周波数を入力しEキーを押す
            0を入力しEキーを押すと規定値が設定される
            出力周波数は 1MHz
  (4) 信号が出力される
    (5) RestartでTOPに戻る。


 以上簡単な構成である。スケッチで最も面倒なのは、タッチパネルのキャリブレーションと思う。ALL BAND TRANSCEIVERで説明しているので参考にされたい。

 スケッチ、回路図(PDF)     Sketch & Schematics

以下に回路図と各種DEVICEの画像を乗せておく。















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年7月4日日曜日

ALL BAND TRANSCEIVER (3)

 ALL BAND TRANSCEIVER (3)

送信部


❶ マイクアンプ  
  マイクアンプは、コンプレッサーTA2011SとOPAMP(LM741)を切り替えるようになっている。またSSB送信試験用に1kHz発振回路を組み込んでいる。これで口笛による調整から解放される。この3回路をOPAMP(NJM7043)でミキシングしSSBはPSN回路に、FMはFMキャリア回路に送っている。
 
❷ AF-PSN回路 
以前blogに掲載した50MHzPSN送信機と同様の回路で dsPIC33FJ64GP802を使用し位相のずれたAFを作っている。このdsPICのソフトはTJ-Labの上保さんの作成されたものであるが、非常に優秀である。
 
❸ 直交変調器
 これも50MHzPSN送信機と同様MAX2452を使用している。特に調整回路がないのでキャリアバランス等の調整は行っていない。AFレベルを調整しても効果がなかった。何とか40dB程度である。他にも直交変調器のICはあるようだが、ほとんどがGHz用であり、HFに使えそうなものは見つからない。またDBMやスイッチを使ってディスクリートで組むこともできるが、回路規模が大きくなってしまう。その点MAX2452は外付け部品もなく簡単である。また運用してモニターしいただいているが、おおむね音質はよく、キャリア、逆サイド等は認められないとの評価をいただいている。この直交変調器にSi5351によるVFOを直接入力している。このVFOの周波数は運用周波数の2倍を入力している。50MHzであれば100MHzとなる。これで全バンド ダイレクトにSSBができる。
 
❹ 前置増幅器 
MAX2452の出力は非常に小さいのでMMIC(MSA-0886)で25dB程度増幅している。

❺BPF
直交変調器で出来たSSB信号をBPFを通すことによりスプリアスを除去させている。BPFは「トロイダル・コア活用百科」の2ポールBPFを使用した。

 ❻前置増幅器
 目的出力を得るにはまだ低いので再度MMIC(MSA-0886)で再度25B程度増幅する。オールバンドにはMMICが得意だ。
 
❼プリアンプ 
ファイナルをドライブするため100mW程度に増幅する必要がある。三菱の高周波パワーFETRD00HHS1を使用している。アイドリングは50mA

❽パワーアンプ
RD16HHF1プッシュプル。出力は10W以下なので十分すぎるが、全バンド安定して増幅するために採用した。ドライブレベルを調整し概ねMAX 8W 程度の出力としている。バンド差が大きく出てくるかと思ったが、意外にそろっている。

❾LPF
λ/4 5次LPFで「トロイダル・コア活用百科」を基本として設計している。

❿FMキャリア水晶発振器
ジャンク水晶67.18235MHzを基本波発振させ3逓倍し67MHz台としている。これにバリアブルキャパシタダイオードにマイクアンプからのAF信号でFM変調を行っている。オーバートーン発振ではほとんど変調がかからないので注意。

⓫FM用ミクサー
⓫の水晶発振信号とVFOを混合し目的のFM信号としている。以降はSSBと教養である。

⓬オシレータ回路
今回周波数の安定度、正確性を確保するためにオシレーター回路に拘った。必要とする周波数は、70.455MHzの第一中間周波数を455kHzに落とす70MHz、455kHz前後のSSBキャリア信号及びVFOである。
 70MHzhDDSAD9851を使用している。このDDSクロックは10MHzのTCXOを基準としてVCXO30MHzを PLLを組み安定化し供給している。またVFO(Si5351)用のクロック25MHzも30MHzクロックのAD9851で作っている。455kHzキャリアは10MHz基準のAD9850から作り出している。これらはすべて固定周波数なのでArduino-nanoを使用しコントロールしている。10MHzは外部からGPS基準信号等が入力できるようにしている。詳細は下部回路図を参照願いたい。こだわりのOSCである。

⓬VFOコントローラー
 今回はマルチバンドトランシーバーなので以前blogに掲載したタッチパネル付きVFOコントローラーを基本として採用している。ただこのトランシーバー用にカスタマイズしている。
 コントローラーにはAruino-Dueで、メモリー容量、スピード、I/O数等十分な性能がある。難点はどうしても大きいことであろう。特徴としてtっちパネルを採用し、多機能でありながら機械的スイッチの数を大幅に減らすことが可能となった。

⓭CATコントロール
Arduino-DueはUSBを2回路積んでいる。1個はプログラミング用、もう一つは外部機器との通信に使用できる。これを利用しパソコンと接続し「Turbo HAMログ」でデータ入力時に周波数を自動的に表示できるようにした。基本的な通信g理解できたので、トランシーバーを外部からコントロールできるようにすることも可能である。今後発展させていきたい。

 以上オールバンドトランシーバーの概要です。詳細については 省略させていただきます。

DE JA2NKD









 

 

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




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

 
 

2017年6月24日土曜日

7MHz Receiver with Si5351 PLL VFO

 2016年5月にSi5351 PLL VFO カラーLCDの7MHz受信機をUPした。これがArduinoをスタートするきっかけとなった。お世話になっているKさん、JH8SSTさんの協力を得て製作したものである。この受信機ではSi5351というPLLクロックジェネレータをVFO及びキャリアオシレーターとして使用されている。またRFアンプ、ミキサー、検波にJーFETカスコードアンプを活用している。これらはN6QWが発表されているものを参考としている。VFOは彼の製作したものそのものである。非常に魅力的な技術が豊富に含まれている。
 暫く使用していたが、少しノイズが多いのが気になり知らべていたが、どうもロータリーエンコーダーを回していくとノイズが乗ってくる。
 Si5351は3周波が出力でき、今回VFOとキャリアOSCの2周波に活用している。VFOを可変したときSi5351からのキャリアOSCも同時に書き換えられているようだ。(同一周波数)キャリアなので変更する必要はないのであるが、プログラミングの都合であろうとあきらめていた。Si5351は1周波出力で使うしかないと思っていた。
 今回JA2GQPさんがSi5351のコントロールを検討し2周波でキャリアOSCにまったく影響しないプログラムを発表された。またLCDも小生のArduino VFO(Ver2)1.8inch仕様を手直ししていただけた。今回、これを基に受信機を改造することとした。
Before

 改造の要点は、

  • Si5351VFOコントロールを変更
  • LCDを1.44inchから1.8inchに変更
  • SSB検波回路をカスコードアンプからDBMに変更
ArduinoによるSi5351コントロール及びLCDの改良はJA2GQPさんにご尽力いただいた。詳しくはGQPさんのBLOGを参照願います。今回Si5351のコントロール変更がメインであるが、周波数のメモリー機能も追加されている。OFF時の周波数、モードでON時に立ち上がる。これはプログラミングのみで実現されている秀逸なものである。感謝 感謝
 主に2.2inchを多用してきたが、最近中華から入手が難しくなっている。まだいくらか入手しやすい1.8inchTFTを使用。画面も小生が発表しているVFO画面を基にしている。
 検波回路は、N6QWが発表されているFETカスコードを使用したものであるが、少々歪が気になっていた。今回Si5351のキャリアOSCの出力を最大値に設定して+11dBm程度確保できていることから、無難なパッシブDBMに変更した。これにより音質も安定した。
 尚、今回もVFO,キャリアOSC両方を送信機とのトランシーブ用に出力している。これら信号はトロイダルコイルを使用した2分配で出力している。これらもSi5351で強力な出力が得られたお陰である。このようにSi5351がAD9850DDS等と比べて少ない消費電力で強力な出力が得られ、さらに150Mhz位まで出力できることは大きなメリットとなる。
 アウトドア用トランシーバーやVHF関連機器にも活用が広がる。尚且つローコストで入手できることは非常にありがたい。
 参考に今回機会があったので、手持ちのキット受信機(BitX40,EFE-40)と聞き比べをしてみた。
 You Tube  Homebrew RX VS BitX40 VS EFE-40

 勿論回路構成が違うので比較にはならないであろうが、オリジナル受信機は色々変更し改良できるところが面白い。今後も更なる機能UPをしていきたい。
 尚、今回Arduinoにはアイテンドーの「あちゃんでいいの」を使用している。殆どATmega328単体で省スペース、ローコストになる。機能はArduino-UNOである。
 Arduino-VFOに関しては小生のBlogやJA2GQP氏のBLOGを参照願いたい。

73’s JA2NKD

After

Inside

Arduino & Si5351

back veiw
Schematic

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

2016年8月22日月曜日

Arduino DDS VFO Controller Bug FIX(2)

 今回はスケッチのBugではなくTFT-LCDに関してである。
新たに2.2inchTFT-LCDを入手したので動作試験をしたところ写真のような表示となった。
上段周波数表示の白枠右端が表示されないのだ。同じスケッチを使っているので、ソフトウェアの問題ではない。ハードウェアの問題である。詳細のTESTはしていないが、個体差があるということだ。困ったものである。


周波数表示白枠の右端が切れている。













周波数表示白枠の右端は表示されている。














 取り敢えずスケッチを修正し、Download SiteにUPした。
 

2016年8月11日木曜日

Arduino DDS Controller Bug Fix

 Arduino DDS controllerにバグが見つかった。これは、1.4,1.8,2.2総てのTFTタイプのものに共通である。
内容は、送信時の周波数シフトがうまく制御されないと言うものである。
 今回試作試験をしてくださったSさんからの情報である。感謝。
一応総ての動作確認を行い、問題ないと思われるので、FIX版としてDownloadサイトに掲載した。
 掲載にあたり、過去バージョン等混乱しそうなことと、ファイル名が今一分かりにくいこと、更にこれを基に改良をされている方もあることから、今回のBugFix版をマスターとしてファイル名を変更しUPした。基本型として以下の3種である。


 The bug was found in Arduino DDS controller. This is common to something of 1.4,1.8,2.2 all TFT type.
The contents say that the frequency shift when trancemit_mode, isn't controlled well.
 Information from Mr. H who did an experimental production test this time. Thanks Mr.S.
I checked the operation of everything just in case, and it seemed no problem, so it was carried in a Download site as FIX edition.
File name is changed as a [master]. It's the following 3 kinds type.

 
1.44inch TFT Type (NKDVFO14.master.ino)

1.8inch TFT Type (NKDVFO18master.ino)

2.2inch TFT Type (NKDVFO22master.ino)


 

2016年8月6日土曜日

Arduino LCD Interface

 Arduinoに使用されているLCDは、かなりの種類がある。これらのLCDは、携帯電話等に使用されたもののようであるが、その仕様についてはあまり詳しい情報がない。
 いままでのVFO製作に使用したLCDは、ILIと言う記号のついたドライバーICを採用したものだ。これを使った製作例が多くあることと、ライブラリーが容易に入手できたから使っている。そこで、これらLCDについての備忘録として端子記号とインターフェースについて記録しておく。

 使用してきたLCDの外観を示す。同様なイメージでもバージョンが違う等幾つか存在する。総てを使用したわけではないので、どれも同じとは言えない。販売者が掲示している情報を注視して選択するしかない。


 これらLCDとarduinoを接続し、スケッチにライブラリーを設定し使用することになるわけであるが、これがまた、LCD,ライブラリー、arduinoとそれぞれ記号が違う。誤配線やスケッチで毎回混乱する。そこで早見表を作ってみた。この接続は、ハードウェアSPIという通信方式で、arduinoに標準的に組み込まれているライブラリーで使用する方式だ。これ以外にもソフトSPIといって汎用DI/Oを使用しても可能であるが、SPIの方がスピードが圧倒的に早い。その代わりDI/Oが固定されている。ILI系以外にも使用例の多いST系LCDも参考に入れてある。
 見方としては一例として、
ILI系のLCDでSCK端子は、UCGライブラリーを使用してarduinoに接続する場合は、SCK端子をインターフェース(後で説明)を経由してD13に接続する。スケッチではSCLKとして設定する(されている)。
 

インターフェースについて
 LCDは3.3V動作である。Arduino UNO,NANOは5V動作である。従って直接接続することは出来ない。Arduinoから0-5Vのデジタル信号が出てくるので、これを0-3.3Vのデジタル信号に変換してLCDに接続するわけである。
 そのインターフェースには幾つか方法がある。その一つがCD4050やCD4010といったコンバーター用のICである。これらは、TTLとCMOSICを接続するためのバッファ用ICである。その使い方は以下の回路図を参照にしてほしい。注意点は片方向通信となるので、ArduinoからLCDへの一方通行である。表示するだけであればこれで問題ない。将来SDカードやタッチパネルが付いた物を使用する場合は、逆方向も必要となるので注意。
 次にVFOでも仕様しているが、FXMA108という8bit双方向ロジックレベル変換ICである。これは、8bitの双方向が可能で入出力も左右対称になっているので、結線や、P板パタンが簡単となる優れものである。幸いDIP基板化したものが秋月で販売されている。
          http://akizukidenshi.com/catalog/g/gM-04522/
 これを使用しておけばひょっとして逆方向に使うときも気にすることが無くなる。
 最後に抵抗分割で接続する方法で、arduinoの端子から3.3KΩを直列に接続し、LCDに接続する。その端子から6.8Kオームでアース(GND)に接続する。これで5Vから3.3Vくらいに分圧されて接続できるはずである。実際の使用例も幾つか見られる。試しに実際にやってみたが動作した。まあ、緊急避難方法と考えたほうが良いと思う。
 お勧めはFZMA108である。

LCD電源について
 LCDの内部は3.3V動作である。上記LCDは5V供給、3.3V供給どちらにも対応できるようになっている。標準は5V供給であるが、基板上のJ1をジャンパすれば、3.3V供給が可能である。
LCDのバックライトとLCD本体の電源をどうするかであるが、本体の消費電流は20mA以下のようなので、私は、arduinoから3.3Vを供給し、バックライトLEDは別電源としている。

LEDバックライトについて
 LCDバックライトにはLEDが使用されている。電圧は3.3Vである。実際に測定してみると
 1.44inch-30mA 1.8inch-40mA 2.2inch-70mAであった。
使用例を幾つか見ると3.3Vをarduinoから供給している場合が多い。そこでaruduinoの仕様を調べてみたが、どうも50mAくらいらしい。本家では明確な記述が見つからなかった。
LCD本体の電源等を考えた場合LEDの電源は別に用意したほうが良さそうである。少なくとも2.2inchはオーバーする。そこで別に用意した5Vから抵抗を介して接続するようにしている。抵抗値は回路図に記しておいた。(但し私の持っているものの測定)


以上 自分自身の備忘録としてのUPです。お気づきの点があればコメントをお願いします。

2016年7月30日土曜日

Arduino DDS Controller with TFT LCD

 今後メインのBlogをこちらに変更いたします。「JA2NKD無線工房(その1)」も当分は存続します。情報は少しずつブラシアップして移行させたいと思います。今後ともよろしくお願いします。

さて、(その1)で掲載したArduino TFT-LCD VFOコントローラーにさらに仲間が増えました。いつもお世話になっているKさんがVFO2の派生でなんと1.44inch対応としてくれた。ありがとう。

1.44inch VFO2 Type
1.8inch VFO2 Type
左が、1.44inchTFTを使用したもの。フォントの関係でMHz台が一桁であるが、フォントを小さくすれば2桁にすることは可能である。
 右が1.8inchTFTを使用したもの。何れもKさんがリサイズしてくれた。感謝

2.2inch VFO2 Type


左がオリジナル2.2inchTFTのもの。








1.44inch VFO1 Type


 左が最初に作った1.44inchTFTを使用したもの。
Kさんがリサイズしてくれたので今後はVFO2 Typeしか使わないと思う。








 これらの制作については「JA2NKD無線工房(その1)」に掲載されているので、そちらを参照してください。尚、Arduino スケッチと回路図については、新たにDownload Siteを作ったのでそちらを見てください。
 Arduinoを使い始めて2か月ほどであるが、何とかできるものである。