無線ブログ集
メイン | 簡易ヘッドライン |
TS820 DDS-VFOその15 (2022/3/23 4:14:37)
TS820
DDS-VFOの組込での確認の内の送受信の切り替え回路を確認しました。結果はうまくありませんでした。抵抗の分圧では全く動作してくれません。
なので次に切り替え用としてNPNトランジスタのスィッチング回路のインバーター動作での送受信切り替えを確認してみました。結果は動作したりしなかったりと本体の切り替え回路に繋ぐ事で影響が出るようです。トランジスタ回路を繋ぐと本体回路が不安定動作しています。なので、繫いた状態で通常時回路に影響が出ない様にダイオードを使うPNPトランジスタの回路に変更することにしました。TS820のVOX回路の中に送受信のRL(リレーコントロール)切り替え回路があります。その回路自体もPNPトランジスタのSW回路での送受信切り替えです。FIX・VOX回路のQ9がRLコントロールしているTRです。ちなみに2SA562(Y)を使っています。
マイク端子の送受信切り替えに繋がっているのはコネクタのFIX3の④SSになります。SSをGNDに落とすと送信です。なお送信受信の切り替えリレー(コイル)は⑤RLです。
ダイオードがあるために本体側の切り替え回路自体から+12V位(回路図上は+16V)の電圧が受信時出ていますが全く繫いでも影響はないと考えました。マイク端子の切り替え端子に出ている電圧は電源ではありません。回路から読み取ると入力端子としてみれば通常時約10.4kΩ(4.7KΩ+4.7KΩ+1KΩ)pullup時の端子電圧です。
TS820では送受切り替えのSWトランジスタとして2SA562Yを使用しています。リレーのコイルを駆動するため少し余裕のあるトランジスタを使用しています。(コレクタ電流:−500mA パワーディスピエ−ション:500mW)
私が使ったTRは2SA1015
です。切り替えの入力ポート用なので特に電流は流れません。トランジスタ自体に流れるon時のコレクタ電流も
10mA程度なのでトランジスタの絶対最大定格のIC:-150mAに対しても全く問題ありません。オフ時のコレクタ電圧は0.56V位ですがGNDレベルとして十分です。
TS820の本体の送信切り替え回路と似たような回路になりました。
先ずはTS820の回路図を追っかけて、ダイオードのアノード入力を接続する場所(SS)を確認した上で送受信の切り替え回路を実際に繫いで試してみたいと思います。
切り替え回路(ハード側)の論理が逆になったので、実験ボードにて、スケッチの論理を変更に合わせて書き換えてコンパイルの上、書き込みします。論理変更はLOWをHIGHに、HIGHをLOWに書き変える事で至極簡単に対処出来ます。
【スケッチ変更箇所】
■TFTへ表示する箇所のスケッチTX_SWの論理書き換え箇所です。
黄色文字は書き換え後です。
if(digitalRead(TX_SW) == LOW ){
//sprintf(str,"RX: RIT:");
sprintf(str,"RX:");
disp_str12(str,0,92,0xffd080);
}
else {
if(digitalRead(TX_SW) == HIGH ){
sprintf(str,"TX:");
disp_str12(str,0,112,0xffd080);
}
■受信時RIT周波数の設定スケッチ部TX_SWの論理の変更
受信状態ではTX_SW入力が”L”レベル(MICの2端子がオープン時→TR回路出力が”L”)
送信時はTX_SW入力が”H”レベル(MICの2端子がGND接続時→TR回路出力が”H”)
if(digitalRead(TX_SW)== HIGH ){ //GPIO00
// Serial.print("TX_SW:TX-MODE");
// Serial.println();
awase = 150;
}
else{
if(digitalRead(TX_SW)== LOW ){
// Serial.print("TX_SW:RX-MODE");
// Serial.println();
if(digitalRead(RX_RIT)==LOW){ //GPIO01(TXD0)
s = s+1;
delay(200);
if(s == 0){
tawase = 0;
}
if(s == 1){
tawase =100;
}
if(s == 2){
tawase = 200;
}
if(s == 3){
tawase = 300;
}
// Serial.print("TX_SW:TX-MODE");
// Serial.println();
awase = 150;
}
else{
if(digitalRead(TX_SW)== LOW ){
// Serial.print("TX_SW:RX-MODE");
// Serial.println();
if(digitalRead(RX_RIT)==LOW){ //GPIO01(TXD0)
s = s+1;
delay(200);
if(s == 0){
tawase = 0;
}
if(s == 1){
tawase =100;
}
if(s == 2){
tawase = 200;
}
if(s == 3){
tawase = 300;
}
〜
RIT設定スケッチが続きます。
以下省略
今回GPIO01のTXシリアルポート端子をバンドSW切り替え時のシリアルデータ送出の為のパルス信号入力検出端子に使用したため、回路に繫いであると書き込みが出来ない状態となります。なので書き込み時はこのポートを回路から切り離して行います。
他、ESP32DevKitCに付いているリセットSWも今回の送受信切り替えでGPIO00を使用したため今回のPNPトランジスタ入力のダイオードのアノードをGNDに落としておかないとリセットがかかりません。(ポートは通常時はLOWレベルなのでHIGHレベルとなるようトランジスタ入力をGNDに落とす)なのでESP32DevKitCのリセットはTS820本体に組み込んだ場合は送信時にリセット出来る状態です。具体的にいうと12BY7AのドライブをOFFの状態でリセットボタンを押すようにしないといけません。またはファイナルのヒーター電源OFFの状態。これは少し厄介かもしれません。ただし、変な動作はまず今の所起きてませんので、リセットボタンは押す事は全くと言っていいほどないと思います。
上記は使用ポートによる問題ですので、限りのあるポートでは条件がでても仕方がない事です。わかった事として適切に対処すれば良い事と割り切ればいいと思います。
つづく?
execution time : 0.021 sec