YAESU FT-101E で周波数カウンタを使ってみる (受信編)

ケースに入れた、直読型周波数カウンタをYAESU FT-101E で使ってみたのである
FT-101E のリアバネルのVFO 出力端子に、VFOの発振出力が出力されている

FT-101 の送受信周波数計算は少し面倒ではある

ざっくり各バンド毎に表すと以下の通りである

  • 160m   10.7MHz  –  VFO発振周波数  (1.5MHz-2MHz)
  • 80m     12.7MHz  –  VFO発振周波数  (3.5MHz-4MHz)
  • 40m     16.2MHz  –  VFO発振周波数  (7MHz-7.5MHz)
  • 20m     23.2MHz  –  VFO発振周波数  (14MHz-14.5MHz)
  • 15m     30.2MHz  –  VFO発振周波数  (21MHz-21.5MHz)
  • 10m     37.2MHz  –  VFO発振周波数  (28MHz-28.5MHz)

 

ちなみに、VFOの発振周波数は 9.2MHz~8.7MHzであり、VFO発振周波数が9.2MHzの時がダイアル上では一番低いダイアル位置となる

例えば、7.195MHzを送受信する場合は、VFO発振周波数は9.005MHzである

上の表にから、 16.2MHz –  9.005MHz =  7.195MHz  となる

周波数カウンタで7MHzの受信周波数を直読する場合は、オフセット周波数の16.2MHzから測定周波数を減算する事で直読が出来る

この辺りのFT-101の仕組みは別の機会に書きたいと思っているのである

実際に使って見た写真である

IMGP5692

 

FT-101Eの場合もR-4Aと同様SSBを受信してゼロイン後に

表示周波数が受信周波数と同じになる様にオフセット調整を行う

FT-101E の場合、3.5MHz,7MHz,14MHz,21MHz,28MHzなどをバンドメモリにそれぞれオフセット周波数を登録し、バンド毎にメモリの切替が必要になる

純正品のYC-601でもこの仕様は変わらないのである、従ってYC-601の代わりに使う事は可能ではないかと思うのである

送信については別の問題が有るので次回に..

 

送信出力と測定器の直接接続は厳禁 要 CMカップラ

送信機は固定機で10W-200W程度(一部の高級機で400W)の出力がある

10Wでもハンダ付けが十分に出来る電力である、400Wあれば寒冷地でもコタツで暖が取れる電力である

反面、測定器の入力信号は極めて敏感であり、たとえ10Wでも送信出力を加えたら殆ど壊れると思われる

送信出力をそのまま測定器に接続するのは厳禁である (出力計等は除く)

送信時の周波数などを計測する場合は計測器の許容入力範囲まで、出力を減衰させるか、出力の一部を取り出す等の手段で、計測器側に合わせる必要がある

IMGP5687

写真のCMカップラーは比較的電力の高い出力から、-20dBの電力取り出すものである
例えば100Wの送信出力から、このCMカップラで1Wの出力を取り出す事が出来る

<数年前に大先輩の矢花氏からケースを頂いたので作ってみた 2MHz-350MHzまでフラットな特性で十分に使えるものが出来た>

内部写真を見ると、巻線を巻いたフェライトコアに同軸ケーブルを通した単純な構造ではある

IMGP5688

送信機の出力を何らかの測定をする際には、とても便利なアダプタである

高周波を測定するのであれば是非揃えるべきアイテムである

ほかの自作例はこちら

 

高周波測定器の入力耐圧は大体MAXで1W程度で、実際の入力は1mW以下である

私の場合は、5W耐圧の-20dbアッテネータをこの後に接続する事で、取り出す電力量は-40dBとしている

IMGP5689

<5W耐圧の-20dbアッテネータ >

 

-40dBは1万分の1なので、100Wから10mWの電力となる
スペクトルアナライザ等を使う場合は、更に可変アッテネータで0.1mW程度の電力に減衰させて使用する
高周波信号の計測は奥深いのであるが、アマチュアと言えど入力許容電力を超えてはならない

 

DRAKE R-4A で周波数カウンタを使ってみる

ケースに入れた、直読型周波数カウンタをDRAKE R-4A で使ってみたのである
R-4AのリアバネルのINJ端子に、PTO(VFO)の発振出力と各バンド毎の水晶との発振出力の混合周波数が出力されている (プリミックス出力)
<プリミックス主力は、PRE-SELECTを同調周波数に合わせないと出力されないので注意>

INJ端子から出力されるプリミックス周波数は受信周波数に5.645MHzを加算した周波数である

周波数カウンタで受信周波数を直読する場合は、測定周波数から5.645MHzを減算する事で直読が出来る
しかし、実際の問題としては、各バンド毎の水晶発振子の発振周波数に幾らかのズレが生じているため、各バンド毎に補正が必要である

(バンドを切替えた時に、マーカを使ってVFOの校正を行うのは主にこの理由)

R4-A_BLOCK

<R-4Aのブロック図の1stIF付近を参照>

 

今回の直読型周波数カウンタは、バンドメモリに7つのオフセット周波数を登録する事が出来る
バンドメモリを活用して、R-4Aで使用するために5.645MHzをバンドメモリに登録する
R-4Aは受信モードによって、プリミックス出力の周波数が変動しないため、オフセットを合わせるだけで周波数直読が可能である

IMGP5686
写真はR-4Aで3.559MHzを受信時の様子

  •   表示周波数 =  計測周波数  –  オフセット周波数
  •  オフセット周波数  =  5.645060MHz

 

SSBを受信してゼロイン後に、表示周波数が受信周波数と同じになる様に
オフセット調整を行う事で、誤差の少ない受信周波数の直読が可能となる実際に使って見ると、周波数変動(QRH)が可視化され、その修正も非常に簡単である

更に高度な使いこなしとして、バンド毎に校正した周波数を直読する場合は、3.5MHz,7MHz,14MHz,21MHz,28.5MHzで5つのバンドメモリに5,645MHzを登録し、それぞれのバンド毎にオフセット調整を行う事で、直読精度は更に向上する

実際に使ってみると、とても便利である

これで、メイン受信機であるR-4Aを更に快適に使う事が出来るのである

FT-101E で使ってみるに続く…

直読型周波数カウンタの制作 活用編1

部品の調達と組立

今回の直読周波数カウンタで、特別な部品は無いのである
只、この部品は最初からバンドメモリの切替に利用を前提としていた
12接点のロータリSWである、なおこのロータリSWは使用接点数でストッパーを掛ける事によって8接点で使用している
このロータリSWの代わりに普通のボリームでも使用出来るが、バンド切替であるのでやっぱりロータリSWの方が使い勝手は良い
このロータリSWの端子に抵抗を取付て、クリック付き8接点VRとして今回は用いている
その他のスイッチ類も一般的なものである

IMGP5679

 

水晶発振器は安かったので、10個パック300円の表面実装タイプを使用した
常温で使用するので、ゲートタイムの補正機能があれば十分と考える

アンプ回路も、一般的な2SK141と2SC1815である

 

ケースは色々と考えたのであるが、私の加工技術が未熟であるため、金属パネルを綺麗に直線に切り抜きが出来ない
従って、今回は安易に100均のミニカー等のディスプレイケースを用いた
自分用であるため、周波数測定入力は2系統とし、スイッチで切り替えられる様にした
電源は、9VのACアダプタのコネクタを付けて対応している

IMGP5684

<FRONT >

IMGP5681

<REAR>

フリーハンド加工であるため超適当ではあるが、何となくそれっぽい雰囲気にはなった

IMGP5683

R-4Aの上に載せた、周波数カウンタである

思ったほど、違和感は無い(自分的に)

 

次に続く…

直読型周波数カウンタの制作 要素開発編4

とりあえずの、ファームウェア概要である

最近の機器の場合は、商品なり制作物の仕様の大半が、搭載されるファームウェアによって実現される
そして開発費用のかなりの部分がファームウェア開発費となっていると思う
ファームウェアの開発規模も昔に比較すると巨大なものとなっており、その生産性と品質の向上にトップエンジニアが日夜努力をしている

この直読型周波数カウンタについては、自分が自分のために開発しているファームウェアである
従って、自由に仕様が決められるのであり、ファームウェア検査も自分自信が行う甘々の検査である

で、前置きはともかく本題に入ろう

最初に動作モードは以下の3点である
1.通常計測モード
a.電源を投入するとこのモードとなる
b.入力信号の周波数を計測し、選択されたバンドメモリのオフセット周波数と計測周波数を演算して表示をする
c.バンドメモリの0-7で8メモリである

<バンドメモリ0はオフセット周波数は0Hzで、計測周波数がそのまま表示される>

IMGP5675

写真は、10MHzを入力

・バンドメモリ7番の オフセット周波数は-455KHz

・表示周波数は 10MHz – 0.455MHz = 9.555MHz

 

2.較正モード
a.Funcボタンを押しながら電源を投入するとこのモードとなる
b.バンドメモリのオフセット周波数は演算されない
c.計測した周波数を選択したバンドメモリにオフセット周波数として登録できる
d.電源OFFで解除

IMGP5677

写真は、10MHzを入力

・バンドメモリ7番の オフセット周波数は-455KHz だがオフセット演算はしない

・表示周波数は 10MHz

・ここでFuncボタンを押すと、バンドメモリ7番に表示している周波数がメモリされる

 

3.オフセット修正モード
a.Modeボタンを押しながら電源を投入するとこのモードとなる
b.通常計測モードと同等であるが、FuncボタンとModeボタンでオフセット周波数を5Hz単位で加減出来る
c.電源OFFで解除
*古い無線機や受信機では第一局発の水晶発振周波数がズレている事が多いのでこのモードで調整を行う想定である

IMGP5678

写真は、10MHzを入力

・バンドメモリ7番の オフセット周波数は-455KHz

・表示周波数は 10MHz – 0.455MHz = 9.555MHz

・ここでFunc/Modeボタンで、バンドメモリに記録されているオフセット周波数を5Hzステップで修正出来る

 

 

実際にファームウェアを実装してみると、4Kwordでのプログラミングは厳しいのである
コードの共通化や、コードの見直しを行い4Kwrodに押し込める(なんか大昔を思い出してしまうのである)
今風のエレガントなコードからかけ離れてしまったコードが残念である 自分の非力さを改めて思い知ったのであった

直読型周波数カウンタの制作 活用編1へ続く

直読型周波数カウンタの制作 要素開発編3

3つ目の要素開発は、クロックに水晶発振子または水晶発振器を使用した場合の、周波数ズレの対策である

水晶発振子を使用した場合は、数10PPM程度の周波数誤差が想定され、水晶振動子にコイルとトリマコンデンサを接続して調整しても調整しきれない場合もある
クロックに校正済のOCXOが使えれば、測定精度は著しく向上するがコストの問題で非現実的である、安価なTCXOでも良いが、簡単に入手可能な20MHzのモノが見当たらないし、組立時に発振周波数の確認と較正は必要である

IMGP5672

<写真は今回使用する、水晶発振子 SG-636-20MHz>

機材の中に組込むのであれば、特に送信時などはあっと言う間に、周囲温度は上昇するため、温度補償は必須である

 

要素開発編4へ続く

直読型周波数カウンタの制作 要素開発編2

2つ目の要素開発項目は、16F88自体での周波数カウント方法である

ポイントは内蔵タイマをどの様に使って周波数数カウントし、限界値(最大測定周波数)が要求仕様に入っているかを確認する事である
LCDが動作しているので、周波数をカウント出来れば単体で、テストが出来る様になる
今回は、timer0とtimer1を試して比較してみた

PICではtimerと呼び名が付いているが、オーバフロー時または設定したカウンタ値に到達したら、割り込みが発生するフリーランカウンタである

入力に一定周期のバルスを入力すると当然タイマーとなるのである
入力周波数をカウントするのに、どのTimerが良いか検討した

1.timer0

16F88のtimer0は入力信号と内部クロックの信号が同期となっている

・入力はシュミットトリガでは無い

・カウントのON/OFFが制御出来無い

従って原理的にCPUクロック(20MHz)以上のカウントは出来ない

2.time1

16F88のtimer1は入力信号と内部クロックの信号が同期を非同期に設定することが可能

・カウントのON/OFFが制御出来る

・入力はシュミットトリガ

CPUクロックに非同期入力なので、カウンタロジックの限界値までカウントが可能

3.time2

・カウントのON/OFFが制御出来る

・内部クロックのみ入力可能なので、外部信号のカウントには使用出来ない

当然ながら信号の周期数カウントにはTimer1を使用する事にした

次にゲートタイムの測定用timerであるが、timerのon/offが制御出来るので、timer2を使用することなった

この辺りの構成は、結局稲垣氏の周波数カウンタVer7と全く同じであり、稲垣氏の着眼点に敬意を表するのである

ちなみに私の実験ではtimer1のプリスケーラなしで、60MHzのカウントが出来た

timer1のカウント入力は簡単に確認出来、次にtime2を使用して、1秒と0.1秒のゲートタイムタイムにする
この辺りは、基本フローを紙に書き出して、タイミングと処理内容を整理して、ファームウェア実装を行い、周波数の計測が出来ることを確認した
ゲートタイムの評価は、Timer1の入力設定でクロック信号の1/4を利用する
この場合測定周波数が20MHzの1/4である5MHzになる筈である

一旦はこれで、基本機能評価が出来る用になったのである

 

IMGP5671

要素開発編3へ続く

 

直読型周波数カウンタの制作 要素開発編1

要素開発とは、なかなか聞き慣れない方も多いと思う

一般的には製品を作る中で、必要な技術を確立させることである

今回の周波数カウンタ程度では、要素開発なんて大げさではある、けれど個人の趣味プロジェクトなので、偉そうに使った言葉ではある
さて、今回の制作には3つの要素開発が必要と考えた
1つ目は、16桁2行のLCDの制御である、LCDは一般に発売されているSC1602Bを利用する、SC1602Bについては一般的に動作さいてる実績が沢山あるので、今更感はあるのである

けれど、情けないことに自分の手の内(自分で理解して修正や応用が出来る)にはないのである

従って、自分でSC1602Bの初期化を含め、データのハンドシェクの一連を手の内に入れることを目的として、LCD制御部分を作成してみることにした
今回はLCDのBUSYを読出しする事で少しでも周波数測定のサイクルタイムを早くする必要があるので、とりあえず色々とやって見ることにした
取敢えずは諸先輩方のソースを色々と拝見させて頂き、大体の制御の流れを理解する
初期化処理、4bitモードでのハンドシェイク、画面クリアやカーソル処理などスクリーン制御と、1文字入力からカーソル位置によってのスクロール処理を実装した
その後に、C言語でのputc()と同等の関数を作成して、LCD表示についての処理を表示モジュールに集約してみた

とりあえずは、SC1602Bの制御は手の内に入ったと思う

IMGP5670

(写真は、キャラクターコードを順に表示しながら、スクロールしている画面、スクロールも高速である)

ちなみにLCDの制御については、PICのポートをどの様に使うかが諸先輩の嗜好が別れており面白い所である

要素開発編2に続く

 

直読型周波数カウンタの制作 仕様検討編

いままで、色々と調べて来た内容から、制作する周波数カウンタの仕様概要を決めるのである

HMY0121_4

<とりあえずの回路図である>

以下 直読型周波数カウンタの仕様概要案

1.動作範囲等

a.周波数の測定範囲は100KHzから40MHzまでとする (内蔵PreScale OFF時)

b.入力感度は3dBm以上入力インピーダンスは50KΩ以上 (40MHz時)

c.動作温度は常温とする

2.周波数計測桁数は10MHz測定時に7桁(ゲートタイム0.1秒時)とし、ゲートタイムが1秒時には8桁とする

3.測定周波数とオフセット周波数の表示は同時に行う

4.表示は16桁2行のLCDとする

5.操作系のスイッチは以下の通り

a.ゲートタイム切替  b.オフセット登録(FUNCTIONキー) c.変調モード切替(MODEキー) d.内蔵PreScreler切替 e.バントメモリ切替(ロータリーSW)

FunctionとModeキーは登録したオフセット周波数の+-の調整機能を持たせる

6.マイクロコントローラはEEPROMが256Bytesでプログラムステップ4Kwordの16F88を使用する (将来は16F1827切替を予定)

7.周波数計測の増幅器は、入力インピーダンスを高くし感度を確保するため、初段にFETを使用しPICへのT1入力へトランジスタを使用する二段アンプとする

8.ファームウェアの実装でC言語だとプログラム容量の不足が想定されるため、開発言語にはアセンブラを用いる

9.クロック信号には20MHzの水晶発振ユニットとする、精度が必要な場合は発振器を選別で対応をする
ざっくりとした仕様は上記であるが、全体のかなりの部分がファームウェアの開発に費やされることになるである

要素技術確認編へ続く

*筆者はこの回路及び記事を使用した場合の責任は負いませんのでご留意下さい

直読型周波数カウンタの制作 調査編2

仕様を決めるときは、要求仕様の検討が大切である

完成時の搭載機能を検討しないままで設計に入ると挫折するケースが多くなる、特にファームウェアについてはその可能性が高いのである (自分の経験的に..)

今回の仕様への要求は、平たく言うと自分が使用している、Drake R-4AYAESU FT-101Eの運用周波数がそれなりの精度と速度で直読出来れば良いのである

早い話が、YC-601BFR4を足して2で割った仕様である…

 

けれど、その要求分解を分解すると、様々なポイントが抽出される

一旦、出来上がったイメージを色々とフリーハンドで書いてみた

IMGP5669

(とても汚い字で申し訳無いのである..)
今回自作する、直読周波数カウンタの要求仕様の概要は以下の通りであった

a.部品点数が出来るだけ少なくする (実現性とコスト)
b.周波数カウンタとしてそれなりの精度があること
c.オフセット周波数をバンドメモリーとして複数登録出来て簡単に呼び出し出来ること (YC-601Bでのバンド切替のイメージ)
d.R-4Aのプリミックス端子(INJ端子)やFT-101のVFO出力の周波数をプラグインで計測出来ること
e.測定周波数の範囲は、100KHz~40MHzであること (Drake R-4Aで使用するため)
f.VFO操作の追従性を確保するため、ゲートタイムは0.1秒で測定結果の表示を含めたサイクルタイムは0.11秒以下であること (VFOを回した時に追従感が狂うと使う気になれない)
g. 周波数測定方法は、直接計測法としレシプトリカル方等の複雑な計測はしない、計測粒度はゲートタイム0.1秒時に10Hz単位とする
h.単体の周波数カウンタとしても使用するため、ゲートタイムは1秒と0.1秒の切替とする

まぁ ざっとこんな所であろうか

これが実現出来れば、何とYC-601BER4を同時に入手したことと同等の価値である、この後の制作にも力が入っているのであった

仕様検討編に続く