jl7gmnのblog

yahooブログから移行してきました。アマチュア無線を中心としたブログです。

測定器

TRIO STATION MONITOR SM-220 修理つづき1

SM-220のBAND SCOPEの調整を繰り返し行って、分かったのですが、帯域のマーカーを画面の中心に来るように設定するのですが、イメージのような信号があり、最初は間違えて偽の信号にてアジャストしていたようです。偽物で中心に合わせる場合でも、モニタースコープには何らかの信号がみえます。ただし偽の場合には、マーカーをOFFにしてスコープで信号を見たときには中心には信号が表示されませんでした。他の場所で信号らしきピークが見えるてるような感じです。おかしいと思い、調整用のVRを最初から止まる端まで回して信号の振幅を見ました。信号の振幅の一番大きなものが、本物のアジャスト用マーカーです。この振幅最大のマーカーを中心に合わせ、100KHzのバンド幅と20KHzのバンド幅の調整用のVRでちょうどどちらも同じ位置に来るように合わせるのですが、妙に交互にVRを調整すると、どちらを先に合わせてから順次調整するやり方が一番設定し易いかが、分かってきます。とにかく、調整はやってみるのが一番です。案外クリティカルな面があるので、気が短い人は、難しいかもしれません。丁度両方の信号を中心合わすためには、少し根気もいると思います。それと、発信回路の調整なので、十分ヒートランを行ってからでないと、合わせても時間経過で表示位置がずれてしまいますので注意が必要です。
肝心のTS-820Sの側への配線追加については、マニュアルに書いてある通り、そのまま行いました。
私は3D2Vのケーブルがたくさんあるので、配線に使いました。あとは47pFのコンデンサ1個が必要です。単純にREMOTE端子の空き端子2番と1番のGND(アース)を3D2Vのケーブルではんだ付けするだけです。反対側のケーブル端子の芯線に47pFを通してRIF端子に繋ぐだけです。つなぐだけですが、注意が必要です。それは、47pFの半田面RIF端子に半田付するのですが、取り付け位置はコネクタ側から少し離して(上側へ)はんだ付けしなければなりません。私はコネクタ側近くに最初はんだ付けしたところシャーシがちょうどコンデンサの位置となるためコンデンサの芯線側がシャーシと接触して信号がショートしGNDへ落ちるという結末でした。もう一度配線を端子側から離して配線して、解決しました。

■47pFをここの位置で半田付すると、元に組みなおした時、芯線とシャーシがショートしてしまいました。少し端子から離して半田付けし直してあります。
47pF-to-RIF

■リモート端子の配線です。回路図を見ると2番端子が空いています。
TS-820S-REMOTE

この2番端子に芯線側をはんだ付けします。アース線は1番がGNDなのでこのGNDにはんだ付けします。

REMOTE-wiring

半田付け完了したら、再度同軸ケーブルの半田付け位置に間違いがないかを十分確認します。
TS-820Sにケースを取り付け元通り組みなおします。
さて、組みなおしたあとに作成したTS-820SのREMOTE端子とつなぐ、REMOTE端子用オスプラグとSM-220のIF INPUT 端子に繋ぐDINプラグケーブルを作成しました。
早速作成したREMOTE端子用オスプラグをTS-820SのREMOTE端子に繋ぎます。反対側はSM-220のIF INPUT端子へ接続です。
まずは、最初のマーカーでの20KHzと100KHzのバンド幅で中心にマーカー信号が来るように交互に設定して合わせこみします。調整の感覚は十分に弄っているうちに体得したので、意外と早く合わせこみを完了することができました。Hi!

今日は丁度WWCのPHONEコンテストが行われているので7MHzのコンテスト交信を見てみることにしました。
フィルターが広い時の様に、局が重なっている様に見えてる気がします。一応動画を撮ってみました。

動画1


動画その2です


案外と強い局はきれいにスコープに出てくるようです。7MHzの夜のタイミングでは大変な混みようでした。また、強力な放送局も7.2MHzより上側に犇めいている感じです。
BANDを14MHzにして、CW信号を20KHz帯域で見てみました。7.2MHz以上で出ている超強力な放送局がないので、いたって、全帯域フラットできれいに各CW信号のキャリアがRF SCOPEで確認できました。CWも思っていた以上に使えそうです。7MHzの夜のコンディション時とは異なり、 SSB信号も受信した周波数以外の近傍に出ているのも十分確認できるようです。実際の交信でもかなり使えそうです。
100KHzの帯域表示でも、実際のバンドのコンディションも確認できそうです。

つづく?

TRIO STATION MONITOR SM-220 修理

1週間前ぐらいにオークションを見てて、TS-820Sの中間周波数8.83MHz のBAND SCOPEのユニットが入っているSTATION MONITOR SM-220がでていました。SM‐220のBAND SCOPEはTS-520用ではBS-5というユニットで、TS-820用ではBS‐8です。TS-520用は中間周波数が3.395MHzです。TS-820用は中間周波数が8.83MHzです。内部のオプションユニットの写真もありBS-8が確認できました。外観写真等から見て程度は良さそうでしたので、参戦し落札できました。以前からTS-820SやSP-820、TV-506、TV-502、VFO-820といった具合に少しずつ揃えてはいましたが、STATION MONITORのSM-220は入手できずにいました。TS-820用のバンドスコープユニットのBS-8があるものを探していたものです。
SM-220-1


SM-220-2

SM-220-3

SM-220-4

届いてから、まずは外観の清掃です。やはり、ケースはそれなりに汚れがついていました。意外とフロントパネルもきれいではありましたが、汚れはありました。一通り清掃が終わり、次は電源入れての各動作の確認です。
ヤフオクの写真でも通電はして、オシロスコープ波形は出ていましたので、躊躇わず、電源入れました。ヤフオクの写真通り、オシロスコープは問題なく動作確認できました。高周波のモニターは、耐電力が100Wまでなので、通常使用しているFT‐2000Dの200Wでは使用できません。高周波のモニターは現状はYO-101で使用しているので、今回のSM-220はTS-820Sの100W専用で使います。なので、高周波モニターは、あとから別途確認になります。一番動作確認したいのは、BS-8のBAND SCOPEモニターです。結果から言うと、うまく動作してくれませんでした。確認方法は、本体についている、マーカーの信号を使っての帯域20KHzと100KHzでのマーカー信号が確認できるかになります。確認するとマーカー信号が出たり、出なかったりと、内部のどこかが接触不良を起こしているようでした。
ケースオープンです。

オークションの写真流用です。
SM-220-4

ケースを開けて、割りばしで基板を押すと、きれいにマーカー信号がブラウン管上に表示されます。この時点で、一通り各コネクターの端子ピンも磨いています。特にコネクタ類の接触不良はなさそうでした。次にランドの半田補強です。ケースを開けての半田面に、新しい半田を使い各部品のランドを半田補強しました。これで大丈夫かと思いきや、まだ改善せず同じ現象のままです。ケースを開けて、見える範囲での半田補強はほとんど行いましたが、ケースのフレームの下の部品ランドへは半田補強できていません。フレームの下に半田補強するためにはフロントパネルを外さないといけません。結構な手間がかかりますが、思い切ってフロントパネルを外して、全部の部品ランドに、半田補強をすることにしました。ここが泥沼への入り口になりました。
なんと、ノブの1つが外せません。止めているマイナスのイモネジの山が欠けて回すことができなくなりました。かなりしっかりとネジ止めしてて、小マイナスドライバーの先端自体がなめってしまいました。こうなってはノブを壊すしかありません。ドリルと、ニッパーでノブのプラスチップ部を壊して金属部だけにし、イモネジのマイナスのなめっているところに再度マイナスの切り込みを作るべくヤスリがけしました。が、しかしマイナスドライバーでは山が小さくてうまく回せませんでした。今度はラジオペンチでイモネジを力を入れて挟み、ゆっくり回したところ少し回転しはじめて、何とか金具を取り外すことができました。
SM-220-7

ノブを外すだけで、小一時間はかかってしまいました。床は、ノブの削りカスでちらかってしまい、修理中での掃除機での掃除も行いました。代わりのノブは、ひとまず、当面使わない、TV-502から取り外した同型のノブを代用することにしました。いずれ、同タイプのノブをオークションで安くて良さそうなのがあれば落札しようと思います。

■ようやく外せたフロントパネルです。
各VR類の留め金具をはずし、各SWのネジをはずし、基板とBNCコネクタは半田付けされているので、芯線とアース板金の半田を外すことでようやくフロントパネルを外せました。
SM-220-6

■フロントパネルを外した本体
フロントパネルから外したSW 、VR類はテープをまいて他と端子が接触しないように
してあります。(電源を入れての確認を行う為の保護)
SM-220-5

■部品パターン面 VRの端子辺りの半田補強ができるようになりました。
SM-220-8

フロントパネルを外し、全部のランドの半田補強ができました。(各VR、各SWの部品のランド)
期待を込めて、電源を入れて確認です。
結果、出たりでなかったりと不安定なマーカー表示だったのが、安定してマーカーがブラウン管に表示されるようになりました。やはり、部品の端子のランド半田の年数経過による半田割れ,ひびなどでの接触不良が原因だった様です。

フロントパネルを元通りに組みなおしました。ケースへはまだ入れません。BS-8のユニットでマーカーの画面上の位置調整が必要と思っています。

現物のTS-820Sを引っ張り出してきました。実際のIFの信号を入れての確認です。TS-820のIF信号を入れて、波形をオシロスコープで確認しました。問題なしでした。
次に8.83MHzの信号をBAND SCOPEの入力端子に接続します。直接はつながず、バリコンを入れて抜いた状態の疎結合状態でつないでの信号の確認です。マニュアルでもIFからの信号抜き出しはコンデンサを介しての説明がありましたので、簡易的にワニ口がついているエアバリコンを使っての確認です。

■7MHzでのWWCのDX局のSSB信号を受信した写真です。
SSBなので写真はタイミングよくとらないと取れません。数回信号が写るまで撮影しています。
SM-220-9

■SWEEPの調整でも波形は変わります。少し掃引を遅くした時の波形です。
SM-220-10

何とかBAND SCOPEも安定して動作してくれるようになりました。
しかし、ノブの取り外しができなくて、ノブを壊してまでしなければフロントパネルが外せないのは、今回が初めてで、予想外でした。

修理が無事終わりましたので、マニュアルでのバンドスコープの調整を次にトライしてみようと思います。

つづく?

愛知タワー風速値表示追加その6

ArduinoNano での1.8inch TFT液晶表示も問題ないことより、ESP32DevKitCの使用と並行してデコード部の機能だけをArduinoNANOでデコード部回路をブレッドボードで作製しました。そして仮の風速パルス源として実験装置のOSC信号を使ってた風速カウント値を1.8inch TFT液晶に表示出来ました。色々とOSCの周波数を変えカウントのデコード表示を確認していると気になる事がありました。前回も書きましたが、現状の入力値に対しての表示部との時間関係で周波数が上がった時(風速が早くなった時)に0から順番に表示されず、数値が飛んでしまう現象があります。
対策は原因に合わせて対策を取る必要があります。原因としては風速の値の大小にて表示のゲートタイミングがいつも同じことによるものです。さすれば、風速の値の大小にてゲートタイミング(ディレータイム)を変えればよいということです。具体的には、色々と方法が考えられますが、方法の1つとしてはデコード値の値のある区間毎にて適切なディレータイムを設定する事です。ただし0から127の区間の分け方とディレータイムをどれぐらいに設定するかの各区間での確認が必要です。しかもスケッチは区間設定した分の追加となります。区間を2,3適当に設定し実験してみましたが、少しカット&トライがひつような感じで時間がかかりそうでしたので、もう少し別の方法を考えることにしました。
その方法とは、風速で変わるバイナリーのB0ポートを使い低い周波数の周波数を読み取りして、周波数の範囲を適当に設定しディレータイムを設定する方法です。これをやるには周波数カウンターをArduinoNanoに新たに組み込む必要があります。タイミング的に周波数カウンターをいろいろと実験していましたので、その情報の中の低周波用カウンターをArduino系で実現していた情報にて試してみました。バイナリーのデコード処理だけで現状動作していますので残りの空きポートが使用出来るかの確認です。やはりポートのバッティングがありデコード入力の入れ替えが必要でした。入れ替えを行ない動作確認を行ないました。(低周波カウンターは割り込みを使う方式で、ArduinoNano で使用できる割り込みPORTはD2かD3の2つのどちらかです。バイナリーの入力のD2がバッティングしていましたので、B0バイナリー入力を(A1)D15 に変更し、D2をカウンターの割り込みで使っています。D2(カウンター入力)とD15(B0バイナリー入力)はつなぐことになります。)
カウンターを使うので周波数区間を分ける必要がありましたが区間3つで表示も問題なく十分な抜けのないカウント動作をさせる事が出来ています。ディレータイムも1箇所の設定で出来るので簡単です。
デコード処理もカウンターも上手く動作し組み入れることが出来ました。低周波数カウンター組込で参照したGitHub情報は下記になります。


ArduinoNano でデコード部に低周波カウンターを組み込んだ回路図を纏めました。
回路図上でのカウンターの追加は、D2ポートの追加とD2ポートバッティングによるB0バイナリー入力ポートをD15ポートへ変更のみです。
ArduinoNANO−anemoMeter

仮のパルス源のOSC周波数を色々と変え、ゆらぎの風に見立ててカウント値を確認しましたが、カウントが抜ける様な表示はありませんでした。低周波数カウンターは変化のある風速値を十分検出しカウント表示をしてくれています。
カウンター組込スケッチ追加部とバッティングによる変更スケッチ部です。

【定義部】
//------------------------------------------
#include "HzMeter_asukiaaa.hpp"
//------------------------------------------


#define WIND0 15 //D2 binary 1   (0,1)change D15

//---------------------------------------------------------------
#define PIN_INTERRUPT_HZ_METER 2
#if digitalPinToInterrupt(PIN_INTERRUPT_HZ_METER) < 0
#error needed to assign interrupt pin for PIN_INTERRUPT_HZ_METER
#endif

#define HISTORY_LENGTH 15
HzMeter_asukiaaa::Core hzMeter(HISTORY_LENGTH);

//---------------------------------------------------------------

int16_t dljikan;

//for frequency counter
int pinLed = 15;//3
int LED_Stat = 1;
unsigned long frq;

【setup部】
void setup(void) {
    Serial.begin(115200);
    //-----------------------------------------------------
    hzMeter.begin();
    pinMode(PIN_INTERRUPT_HZ_METER, INPUT_PULLUP);
    attachInterrupt(
      digitalPinToInterrupt(PIN_INTERRUPT_HZ_METER),
      []() { hzMeter.countUp(); }, RISING);
    //-----------------------------------------------------

    
    pinMode(pinLed,OUTPUT);

【void loop()部】
void loop() {
//-----------------------------------------------------
    hzMeter.onInterval();
    auto countInfo = hzMeter.getInfoBundled();
    Serial.print(countInfo.calcHzByFirstAndLast());
    Serial.print("Hz from ");
    Serial.print(countInfo.measuredFrom);
    Serial.print(" to ");
    Serial.println(countInfo.measuredTill);
    if(countInfo.calcHzByFirstAndLast()<= 0.80)
    {
      dljikan = 1000;
    }
    else
    {
      if(countInfo.calcHzByFirstAndLast()<= 1.50)
      {
        dljikan = 500;
      }
    }
    if(countInfo.calcHzByFirstAndLast()<= 1.80)
    {
      dljikan = 200;
    }
    else
    {
      dljikan = 100;
    }
//-----------------------------------------------------

省略
 sprintf(ce,"%3d",windvalue);
  
    tft.fillScreen(ST77XX_BLACK);
    tft.setCursor(50, 50);
    tft.setTextColor(ST77XX_WHITE);
    tft.setTextSize(5);//10
    tft.println(ce);
    delay(dljikan);
}

液晶の表示も縦置きから横置きにし風速値のみ表示する様に余分な表示は消しました。

TFT-display


ひとまず表示だけでのArduinoNANOの試作は完成ということにします。後は実際のカウンターにつないでの最終確認がありますが後にします。
次は、元の軌道に戻り、ESP32DevKitCでのデコード表示にとりかかります。

つづく?


愛知タワー風速値表示追加その5

ArduinoNanoでTFT液晶表示のスケルトンまでできたので、実際に7ビットのポート入力のデコード部をスケッチしました。スケッチはオリジナルのwebスケッチに下記のデコードの部分を付け足しています。
オリジナルからの変更追加箇所です。

・TFT液晶display の表記とRSTポートの変更D8→D15(D2〜D8)を連続で並べる為の変更)
#define TFT_SCLK  13
#define TFT_MLSI  11
#define TFT_CS  10
#define TFT_DC  9
 //#define TFT_RST 8
#define TFT_RST 14

int16_t windvalue;

char ce[6];

・シリアルボーレートの変更(9600 →115200)
ポート定義部追加
#define WIND0 2 //D2 binary 1   (0,1)
#define WIND1 3 //D3 binary 2   (0,1)
#define WIND2 4 //D4 binary 4   (0,1)
#define WIND3 5 //D5 binary 8   (0,1)
#define WIND4 6 //D6 binary 16  (0,1)
#define WIND5 7 //D7 binary 32  (0,1)
#define WIND6 8 //D8 binary 64  (0,1)


void setup(void) {
   Serial.begin(115200);
   pinMode(pinLed,OUTPUT);

   //Port D2-D8 input setting (0-127)
   pinMode(WIND0, INPUT);  //D2 Port normally LOW
   pinMode(WIND1, INPUT);  //D3 Port normally LOW
   pinMode(WIND2, INPUT);  //D4 Port normally LOW
   pinMode(WIND3, INPUT);  //D5 Port normally LOW
   pinMode(WIND4, INPUT);  //D6 Port normally LOW
   pinMode(WIND5, INPUT);  //D7 Port normally LOW
   pinMode(WIND6, INPUT);  //D8 Port normally LOW

省略

void loop() {
    // put your main code here, to run repeatedly:
   if(((((((digitalRead(WIND0)==LOW)
        and(digitalRead(WIND1)==LOW)
        and(digitalRead(WIND2)==LOW)
        and(digitalRead(WIND3)==LOW)
        and(digitalRead(WIND4)==LOW)
        and(digitalRead(WIND5)==LOW)
        and(digitalRead(WIND6)==LOW)))))))
    {
      windvalue = 0;   
    }
    else
    {
    if(((((((digitalRead(WIND0)==HIGH)
          and(digitalRead(WIND1)==LOW)
          and(digitalRead(WIND2)==LOW)
          and(digitalRead(WIND3)==LOW)
          and(digitalRead(WIND4)==LOW)
          and(digitalRead(WIND5)==LOW)
          and(digitalRead(WIND6)==LOW)))))))
      {
        windvalue = 1; 
      }
    }
    if(((((((digitalRead(WIND0)==LOW)
         and(digitalRead(WIND1)==HIGH)
         and(digitalRead(WIND2)==LOW)
         and(digitalRead(WIND3)==LOW)
         and(digitalRead(WIND4)==LOW)
         and(digitalRead(WIND5)==LOW)
         and(digitalRead(WIND6)==LOW)))))))
    {
      windvalue = 2;      
    }
省略(延々とwindvalue=127まで同じスケッチでLOW,HIGH設定)

 
  tft.setTextColor(ST7735_YELLOW);
  tft.setCursor (30, 95);

   //tft.print(windvalue);
   //tft.print ("038");
  sprintf(ce,"%3d",windvalue);
  tft.print(ce);
  delay(150);


  tft.setTextSize(4);
  tft.setCursor(30,95);
  tft.setTextColor(ST7735_BLACK);
  tft.print(ce);

   //tft.print("   ");
  delay(10);
}

■デコード部詳細
バイナリー出力を受ける入力ポート(D0〜D8)のデコード部は0〜127までのカウンタ出力の瞬間値7ビット入力値を判断し表示用カウント変数のwindvalueにカウンタ値のデコード値を入れるスケッチです。

■TFT液晶Display表示部詳細
フォント色を黄色、サイズ4に設定しchar変数ce をsprintf書式で3桁の数値の右詰めでtft.setCursorでの設定位置にデコードカウント値を表示します。表示後は時間をおいて、フォント色、黒色、サイズ4で同じ位置に再度ceを上書きして表示を消しています。これをしないと文字が残りどんどん重なり黄色の■になります。

実際のカウントデコード値表示動画
カウント値が上がっていくLED発光ダイオードとTFT液晶Displayのカウント表示です。


入力信号D2ポート波形
単に入力ポートに信号が来てるかの確認の為、撮ったものです。


カウンタでの信号パルス(OSCからの信号)でスケルトンで作製しTFT液晶に仮表示してた”038"固定数値をバイナリーデコード値に変えて表示することができました。

表示までは上手くこぎつけましたが、若干気になっている事があります。
現状の入力値に対しての表示部との時間関係で周波数が上がった時(風速が早くなった時)に0から順番に表示されず、数値が飛んでしまう現象があります。時間のデレー設定が固定なので、全部の風速スピードで表示出来るタイミングでない事によるものです。

次の画像の表示に変更して対策を行なっています。どのように対応を検討してるかは次回に!
表示変更スケッチ

つづく?

愛知タワー風速値表示追加その4

風速値表示ユニットからの信号線をCMOS IC 4024 バイナリーリップルカウンタでカウント値をバイナリーに変換した出力7ビットをデコードし表示する1.8inch TFT液晶を使いたかった為、CPUとしてESP32DevKitCを予定して回路図を作製しました。ただ表示だけなら小型のArduinoNANOでもいいのではと思い、並行して1.8inch TFT液晶ディスプレーを繫いでの表示が上手く出来るか確認してみることにしました。ネット情報を探ると結構Arduino系でのTFT液晶ディスプレーの表示は可能の様です。ArduinoNANOを使った1.8inch TFT液晶ディスプレーのサンプルがありました。

動作確認した所、色の設定が上手くありません。スケッチを最初コピペした所、液晶表時上の文字化けがありましたが、スケッチを一端消キーボードから打ち直しでOKとなりました。また、位置ずれもあり、直接ライブラリの書き換えで対応出来る情報より変更対応して位置ずれも治りました。

■位置ずれ修正
ライブラリはAdafruit_ST7735_and_ST7789_Library で、その中のAdafruit_ST7735.cpp ファイルの下記2箇所です。

void Adafruit_ST7735::initR(uint8_t options) {
  commonInit(Rcmd1);
  if (options == INITR_GREENTAB) {
    displayInit(Rcmd2green);
    _colstart = 0;//2->0
    _rowstart = 0;//1->0

  } else if ((options == INITR_144GREENTAB) || (options == INITR_HALLOWING)) {

■色修正
他、RGBカラーでなくBGRカラーの為、数カ所色の入れ替わりとオレンジ色が出ない事象もありました。入れ替わりは単に適当なカラー設定値で何回か直接色を設定し目的の色になった事を確認した上で、直接Adafruit_ST77xx.h ファイルを書き換え手直しし、設定カラー通りに色表示できるようにしました。

// Some ready-made 16-bit ('565') color settings:
#define ST77XX_BLACK 0x0000 //OK
#define ST77XX_WHITE 0xFFFF //OK
#define ST77XX_RED 0x001F //ORIGIN BLUE:0xF800
#define ST77XX_GREEN 0x07E0 //LIME
#define ST77XX_BLUE 0xF800 //ORIGIN RED:0x001F
#define ST77XX_CYAN 0xFFE0 //ORIGIN YELLOW:0x07FF

#define ST77XX_MAGENTA 0xF81F //OK
#define ST77XX_YELLOW 0x07FF //ORIGIN CYAN:0xFFE0
#define ST77XX_ORANGE 0x0BFF //SET MAKE 0x0BFF ORANGE ORIGIN 0xFC00

オレンジ色は手探りで色確認です。他の順当な方法もあるようでしたが、設定通りに色が出ればそれでOKとしました。力ずくです。このスケッチだけで、他では通用しません。Hi!
書き換えたライブラリファイルは元の状態に後で戻す必要もあります。他のスケッチで使う場合不具合となります。

設定通りの色がちゃんと表示出来る様になったので、早速、設定した数値に風速がなった状態を想定して数値38を表示させてみました。

ArduinoNANO-TFT-1

ArduinoNANO-TFT-2

ArduinoNANO-TFT-3

風速バイナリーデータ7ビット分のポートを割り当てて、デコードスケッチをコーディングですが、まずはArduinoNanoの端子情報を準備しました。1.8inch TFT液晶Displayで使ったポート以外から使用できる7ポート分を選びます。

ArduinoNano−PORT


つづく?


アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード
アーカイブ
  • ライブドアブログ