2018年1月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

2017年12月28日 (木)

TS−690V CWフィルター装着

 前回TS−440の下に置いてあったTS−690V用に、CWフィルター YK-88C-1 を購入した。

オークションでトヨムラから¥7800+消費税で購入。
クッション材に包まれていて、引っかき傷はありましたが、写真のとおり綺麗でした。

ネコポスで送ってもらいました。
Dscn4905

さあ、取り付け。TS-690Vの裏蓋を開けます。
Dscn4906

取り付ける場所はここです。
シールド線が邪魔になるので一旦プラグから引き抜いて右側に寄せておきます。
Dscn4907

取り付けて2箇所ネジ留め、シールドを元に戻して取り付け完了。
Dscn4908

取扱説明書によると
帯域切替方法 P35 4.11.9混信除去機能[Ⅱ]FILTERキー 参照
初期設定方法 P70 7.1フィルター「運用のまえに」の項目に従って8.83MHzCWフィルター帯域幅に500Hz表示を追加する。
セットアップ完了。

 いよいよ受信してみる。残念ながら夜間は7MHzもあまり聞こえないので、10.000MHzを聞いてみる。
フィルターなしでは広く聞こえてくるが500Hzフィルターを入れるとグッとサイドが切れて静かになる。
 音色はFT-840ではコホーって感じで聞こえるのが、TS-690Vでは音色にほとんど変化が感じられない。聞きやすくていい感じだ。

 TS-690Vは受信時の電源電流が1A以下。10W送信時でも4A程度でバッテリーでの長時間運用が望める。
 公園や山頂など駐車場より少し高いところにある見晴らしの良い場所でのんびりQSOを楽しみたい。
 これについては、来年実際に運用してからまたレポートしたい。

2017年11月29日 (水)

TS−440S Mコネクタ断線修理

友人のTS−440SのMコネクタ断線とのことで、修理しました。

まずは裏蓋のネジを外します。
Dscn4895

裏蓋をとります。
Dscn4896

Mコネクタ拡大。なんか半田山盛り。以前にも修理したのかもしれませんね。
Dscn4897_2

さらに拡大。ストロボ撮影。よくわかりません。
Dscn4898_2

断線している基板を外して断線部分を取り外し(手前)、代用の銅線を半田付け。
Dscn4899

Mコネクタの周りも綺麗にします。
Dscn4900

半田をつけて接続完了。
Dscn4902

7MHzで50W出力確認。
Dscn4903

21MHzで50W出力確認。
Dscn4904

修理完了。

2017年11月 7日 (火)

広帯域アンテナアナライザ その6 周波数誤差

回路変更後、以前作成したアンテナアナライザの筐体に組み込み、バンド切り替えスイッチやロータリーエンコーダを使用して発信周波数の誤差を測定する。

145MHzで発信させてTS-790のCWで受信してみると、設定周波数よりも2KHz低いところで受信した。耳で聞く範囲なので正確とはいえないが、各周波数で誤差を計算してみると

1.9M ~ 7Mまでは誤差が分かりにくかった。
100 / 10M = 10ppm
140 / 14M = 10ppm
220 / 18M = 12ppm
280 / 21M = 13.3ppm
320 / 24M = 13.3ppm
370 / 28M = 13.2ppm
700 / 52M = 13.4ppm
2K / 145M = 13.8ppm

以上の結果から周波数に関係なく13.3ppmのずれがあるようだ。
どちらが本当の周波数に近いかは分からないところだが、水晶発信の誤差の範囲内であるようだ。
 アマチュア無線局には誤差0.025%(250ppm)以内の周波数測定装置が必要とされるが、その範囲内には入っていることだろう。

 ちなみにSi5351には「Register 183. Crystal Internal Load Capacitance」というレジスタがあってD7,D6のビットで水晶発信の内部容量をコントロールして発信周波数を若干可変できる。

 上のデータはCL=8pFだが145MHzで2KHz低かった。
CL=6pFでは2KHz高く、CL=10pFで4K低かった。
これからすると7pFが適当なようだが、できないのであきらめる。

2017年10月30日 (月)

広帯域アンテナアナライザ その5 I2C回路編改

 発信周波数の制御が一通りできるようになったので回路をもう一度検討する。

 I2Cの制御線は元来双方向性だが、少なくともCGMの制御には片方向でよさそうだ。Ack信号を受信できなかったとしても受信したとみなせばよいのだ。
 片方向ならば電圧レベルシフトはたやすく実現できる。プルアップ抵抗とダイオードで5V系から3.3V系へ変換する。
 レベル変換が可能になれば5V系のLCDディスプレイを使用できる。

これらをもとにポートの割り振りを再設定する。
PD:スイッチ、ロータリーエンコーダ、USART
PC:I2C,ADC
PB:LCD

変更後の回路図は以下のとおり。全体の動作確認は未完。
Atmega168p_cgm01_3
Atmega168p_cgm02

2017年10月23日 (月)

広帯域アンテナアナライザ その4 パラメータ算出編2

次に各A,B,Cのパラメータからレジスタに設定する算出プログラムは次のとおり。
これは解説書にあるとおりだが、B/Cの計算結果をdouble型で求めるところがミソである。
また解説書にあるFloor関数は (unsigned long)を使って、整数を求めている。

 実際にMCUで計算して表示してみると、ここでも計算誤差が発生しており、なかなかきっちりとはいかない。
 受信機で受信すると概ね計算値どおりだが、周波数が高くなるほど誤差が大きくなるようだ。

    struct Si5351_Para F_Para;
    unsigned long    MSNP1,MSNP2,MSNP3;

void PLL_Config(unsigned char *CGM_PLL_Config){

    MSNP1 = 128 * F_Para.PA + (unsigned long)(128 * ((double)F_Para.PB / F_Para.PC)) - 512;
    MSNP2 = 128 * F_Para.PB - F_Para.PC * (unsigned long)(128 * ((double)F_Para.PB / F_Para.PC));
    MSNP3 = F_Para.PC;

    CGM_PLL_Config[1] = (MSNP3 >> 8) & 0xFF;
    CGM_PLL_Config[2] =  MSNP3 & 0xFF;
    CGM_PLL_Config[3] = (MSNP1 >> 16) & 0x03;
    CGM_PLL_Config[4] = (MSNP1 >> 8) & 0xFF;
    CGM_PLL_Config[5] =  MSNP1 & 0xFF;
    CGM_PLL_Config[6] = ((MSNP3 >> 12) & 0xF0) | ((MSNP2 >> 16) & 0x0F);
    CGM_PLL_Config[7] = (MSNP2 >> 8) & 0xFF;
    CGM_PLL_Config[8] =  MSNP2 & 0xFF;

}

    unsigned long    MSND1,MSND2,MSND3;

void DIV_Config(unsigned char *CGM_DIV_Config){

    MSND1 = 128 * F_Para.DA + (unsigned long)(128 * ((double)F_Para.DB / F_Para.DC)) - 512;
    MSND2 = 128 * F_Para.DB - F_Para.DC * (unsigned long)(128 * ((double)F_Para.DB / F_Para.DC));
    MSND3 = F_Para.DC;

    CGM_DIV_Config[1] = (MSND3 >> 8) & 0xFF;
    CGM_DIV_Config[2] =  MSND3 & 0xFF;
    CGM_DIV_Config[3] = ((F_Para.div & 0x07) << 4) | ((MSND1 >> 16) & 0x03);
    CGM_DIV_Config[4] = (MSND1 >> 8) & 0xFF;
    CGM_DIV_Config[5] =  MSND1 & 0xFF;
    CGM_DIV_Config[6] = ((MSND3 >> 12) & 0xF0) | ((MSND2 >> 16) & 0x0F);
    CGM_DIV_Config[7] = (MSND2 >> 8) & 0xFF;
    CGM_DIV_Config[8] =  MSND2 & 0xFF;

}

2017年10月16日 (月)

広帯域アンテナアナライザ その3 パラメータ算出編

 その後クロック出力が出るようになったが、次の問題で悩まされ、やっと一つの方法が見えてきた。

 それは周波数と設定パラメータの関係である。
PLL生成に3つのパラメータ、分周に4つのパラメータを準備し、これをもって周波数を生成するのだが、いろいろと制約もあり、一つの計算式で表現するのが困難であった。

 行き着いたところは、周波数をいくつかの帯域に分割して、いくつかのパラメータを与え、その範囲内では同じ計算式を用いてほかのパラメータを生成する方式である。

 以下は求めたい周波数Fから、それを出力するためのパラメータを算出し、算出したパラメータから出力周波数を再計算するプログラムである。
 double型を使って計算しても数Hzの誤差を生じるが、全体からすれば数PPMの誤差であり、水晶発信子の±20PPMに比べると許容範囲ではないかと思われる。

unsigned long Si5351_F_Para(unsigned long F){
    unsigned char i;
    unsigned long Fvco,Fout;

    if((F < 330000UL) || (F > 225000000UL)){
        F = 1000000;
    }

    i = 0;
    while(F_Table[i].Freq >= (F / 1000UL)){        // find freq.
        i++;
    }

    F_Para.Freq    = F;
    F_Para.PC    = F_Table[i].PC;
    F_Para.DA    = F_Table[i].DA;
    F_Para.DB    = F_Table[i].DB;
    F_Para.DC    = F_Table[i].DC;
    F_Para.div    = F_Table[i].div;

    F_Para.MS    = (double)F_Para.DA + ((double)F_Para.DB / (double)F_Para.DC);
    F_Para.PA    = (unsigned char)((double)F / (double)F_CGM * F_Para.MS * (double)F_Para.div);
    F_Para.PB    = (unsigned long)((((double)F / (double)F_CGM * F_Para.MS * (double)F_Para.div)
                - ((double)F_Para.PA)) * (double)F_Para.PC);
    Fvco        = (unsigned long)((double)F_CGM * ((double)F_Para.PA + ((double)F_Para.PB / (double)F_Para.PC)));
    Fout        = (unsigned long)((double)Fvco / ((double)F_Para.DA + ((double)F_Para.DB / (double)F_Para.DC))
                / (double)F_Para.div);

    return Fout;
}

2017年10月 2日 (月)

広帯域アンテナアナライザ その2 I2C回路編

 2線直列インターフェース (TWI:Two-wire Serial Interface, I2C)の説明を読んでみると、簡単なインターフェースなのに複数の機器を接続できるよう工夫されていて良いなと思った。

1.信号線のハンドリングでパケットの開始、終了を区別する。
2.パケットが開始したら、接続された機器を区別するために7bitアドレスを送出する。この際機器に対してReadかWriteかをLSBで同時に指示する。
3.次に機器に対してレジスタ等書き込むアドレスを送出し、その後データ転送モードに以降する。
4.Readの場合は機器から主制御へ、Writeの場合は主制御から機器へデータが流れる。
5.バースト転送モードがあって、データを続けて転送できる。
6.それぞれのバイト転送後、受信側からAck,Nackを返して転送状況を知らせることができる。

といったところだろうか。

  このあたりは説明書「Si5351A/B/C-B」の「4. I2C Interface」や「ATmega48P/88P/168P [データシート]」の「26. TWI - 2線直列インターフェース (2-wire Serial Interface)」に書かれている。

 使用するにはその他に主制御に転送速度を設定する必要がある。初めてなので分周比を大きくしてゆっくり転送してみるとよい。
Atmega168p_cgm01 Atmega168p_cgm02
 回路はいたって簡単2本のワイヤーを接続してプルアップ抵抗をつけるだけだ。
他の部分はまだ動作テストが終わっていないので、そのつもりで。

ある程度の動作も分かったし、ATmega説明書にはサンプルプログラムも掲載されているので、実際に組んでみる。

 しかし、簡単にいかないのが世の常。10日ほどいろいろ悩んでしまった。
I2Cインターフェースのプログラムが悪いのか、Si5351の設定が悪いのか「うんともすんとも」言わないのである。これにはマイッタ。こんな時は一から検証するのが一番。

1.信号は出ているか?
 サンプルプログラムを動かすと何かしらTWの信号が上下している。
拡大するとなんとなくデータとクロックになっている。ふむ。

2.信号はプログラム通り出ているか?
 同じデータを繰り返し送出するようにプログラムを組み直し、メモリーの付いていないシンクロスコープで信号を確認してみる。
 なるほど、これがスタートシーケンスか。で、はじめの機器アドレス送出。ちゃんとWriteモードになっている。Ackも出ているように見えるなぁ。
 送出データを書き換えてみる。信号もちゃんと書き換わって送出されている。
TWIの主制御はうまく働いているようだ。

3.Si5351のレジスタに書き込まれているか?
 「Register 24. CLK3–0 Disable State」のファンクションを見ているとクロックが動いていない時の出力レベルをコントロールできることが分かった。
00: CLKx is set to a LOW state when disabled.
01: CLKx is set to a HIGH state when disabled.

 これをセットしてやると見事にクロック出力がHになったり、Lになったり変化するではないか!

4.バーストモードの書き込みはうまくいくのか?
 Register 24.に書き込むデータを、Register 23.から2バイトのバーストモードで書き込んでみる。これもうまくいった!

 結論1:TWIインターフェースはちゃんと動いている。
 推論1:クロックが出力されないのはレジスタに設定するパラメータが悪い。

〜実験は続く

2017年9月13日 (水)

広帯域アンテナアナライザ その1 構想編

 広帯域アンテナアナライザ(~60MHz)の製作を目指す。

 前回は12MHzまで発信できたが、私が移動運用で愛用するギボシアンテナは50MHzまでカバーするため、60MHzまでは測定したいのである。

 必要になる新しい技術は、2線直列インターフェース (TWI:Two-wire Serial Interface, I2C)

 それにしてもワンチップマイコンの機能の豊富なこと。これまでSPI、USARTと使ってきたが、3番目のインターフェース「I2C」に取り組むことになった。購入したクロックジェネレータのインターフェースがI2Cなのである。

 そういえば液晶ディスプレイにもI2Cインターフェースのものがあった。
このインターフェースはワイヤードORで接続した複数のI/Oを制御できるので、MCUのポートを有効に使用することができる。

 このインターフェースを使うにはワイヤードORで接続する素子の電源をそろえる必要がある。今回の場合クロックジェネレータが3.3VなのでMCUも3.3Vで動作させる。
 LCDディスプレイも3.3Vで動くものが必要だ。これまで使用してきたSC1602BS*Bは5V±5%なので、使用できない。これを機に「I2C接続LCDモジュール」を使用してみようかとも思う。

 回路全体としては、
1.クロックジェネレータを用いた広帯域アンテナアナライザ
2.コントロールはATmega168でI2Cを用いる。
3.PCとのインターフェースはUSB-USART
4.単体でも使用できるようにLCDディスプレイやロータリーエンコーダをつけたい。

 まずはI2Cの動作から使用法までマニュアルをよく読んでみよう。

2017年9月 6日 (水)

焦電型赤外線センサー実験 その1

 センサーの動作実験を目的として、Tiny13との組み合わせで次のような機能を持たせる。

1.センサーが感知するとLEDを点灯する。
2.センサー感度、点灯時間はセンサーの調整に依存する。
3.夜のみ動作し、昼は動作しない。

回路図は暫定で次のようにした。
Attiny13_irsence01

電源部はアダプターで代用し、とりあえずセンサーの動作を見てみたい。

9/13 追記
 センサー出力をダイレクトにLEDドライブTRのゲート抵抗10Kにつないだところ、それなりに人体感知し、感度や点灯時間もユニットのVRで変更できた。ここまで動くのであればMCUは必要ないだろう。折を見て進入経路に設置してみたいと思う。

2017年7月10日 (月)

新しい部品購入(予告編)

1.測定器
 今年のCQ誌1月号に掲載されていた記事の中で周波数ジェネレーターなるものの記載があった。調べてみると秋月に手頃な値段であるではないか。

 以前作成したDDSでは12.5MHzまでだったが、こちらは矩形波オンリーではあるものの200MHzまでの発生ができるとのこと。
 アンテナアナライザの測定範囲を広げたいのでチャレンジしてみることに。

2.センサー
 最近どうも我が家のバラや紫陽花の枝が知らぬ間に切られている様で、家内と不愉快な思いをしている。
 そこで対人センサーを作ってみようかと思い、焦電型赤外線センサーを購入した。
Tiny13で制御して検知〜ブザー鳴動、警告ランプ点灯をやってみたいと思う。

Dscn4857

«CTESTWIN用CWインターフェースの製作 8ストレートキー用