遠隔君の材料Get!

2011-05-31      
 今日は、秋葉原の書泉ブックタワーに技術書(仕事用の本)の物色に行きまして、30分ほどフライングして電気街側にGo 秋月やラジオデパートを回って、遠隔君の部品一式を購入しました。



 ただのガラクタの山・・・に見えますが、まぁこれで必要なものは殆ど揃い、あとはケースをどうするか・・・といったところですが、これこそ「現物合わせ」にしようかと。

 PICは、16F689を一つ余計に入手したんで、これでA/D変換とコンパレータ、LCD表示のテストを、またLEDお遊び実験で使った16F648Aと対向させてシリアル通信のテストを行おうと思います。

遠隔君の状態と処理内容

2011-05-29      
 季節外れの台風接近で、この週末はずっと雨模様 そのせいで秋葉には行けず、そのお陰でPICプログラムの開発環境が一通り整い、あとはどんどんプログラムを作ればいい・・・というところまで来ました。ちょっと一息入れて、何気に遠隔君のブロック図を眺めていたら、やはりロータリーエンコーダとSWが1つではどうも操作が窮屈に思えてきて、思案の挙げ句、SWを2つにしようと考え直しました。これで、各ファンクション処理へのIN/OUTが楽になります

 そもそも、設計関連のドキュメンテーションをこのブログに委ねている感じですので、遠隔君の処理概要についてもUPしておきましょう。勿論、深い検討が必要なのは「RIG側」です。



 RIG側は、電源投入後にANT側との通信を確保し、IC-703の運用BANDに従ってANT側のリレー切換処理を行った後に「運用状態」に入ります。この時のリレー切換情報は、前回遠隔君を使用した際に設定したリレー情報に基づく設定ですから、必ずしもSWRが低いかどうかは判りませんが、とりあえずの設定として採用します・・・と言うことは、EPROMに記憶させるのか・・・と、今、気づきましたよ
 運用状態では、IC-703のBAND切替を常に監視しており、BANDが切り替わったら直ぐに当該BANDに必要なリレー切換を行います。また、この状態で送信すると、SWRが測定されてLCDに随時表示されます。もしここでSWRが高ければ、SW1を押下して「ファンクション処理状態」に移行します。



 ファンクション処理状態では、ロータリーエンコーダによって6つのファンクション選択ができます。個々の機能については「読んで字の如し」でしょう 唯一紛らわしそうなのは「RESET」かな これは、全ての設定を「ファンクション処理状態に遷移する前の状態」に戻します。
 個々の処理の共通的な動きは、以下のようになります。この動きは、全てのファンクションで同じです。

 ① ロータリーエンコーダの操作により、必要な切換を行う。
 ② その設定で良ければ、SW1を押すと設定値が反映する。
 ③ 設定を止める場合には、SW2を押すと切換前の状態に戻る。

 なお、ファンクション処理状態から運用状態への復帰は、ファンクション選択中にSW2を押すことで行います。

 イリーガルな動きとして、ファンクション処理状態の時に運用BANDが切り替わった場合は、それまでの各種設定処理を破棄して運用状態に戻る・・・と言うことにします。

 以上で、RIG側プログラムの概要設計は終わり・・・さぁて、またのんびりプログラム作りを再開しようかな

除算もどきでSWR算出を攻略!?

2011-05-28      
 そもそも、SWRとして求めるべき数の桁数は、小数点以下2桁程度です。また、実数部分もあまり巨大な数までは扱いませんから、加減算だけでもある程度の速度で求められるかも知れないなぁ・・・ちょっと考えてみたいと思います。

 まずは肝となるA/D変換ですが、10ビットの分解能に加え、「進行電圧+反射電圧」で桁上がりが生じると、結果的に11ビットになることから16ビット長の処理は必須ですが、ここでは「8ビットマイコンに16ビットを計算させること」の説明は端折ります。そして、しつこく下記の式には登場願いましょう。

 SWR = (進行電圧+反射電圧) / (進行電圧-反射電圧)
               ①                 ②

 まずは、単純に①から②を減算します。最低1回は減算できますよね ここで、減算された残りをどうするか・・・ここからが本題。さらにもう一度減算しようとすると、以下の2つの事象の何れかが生じます。

 ・ 減算できない(マイナスになってしまう)・・・A
 ・ 減算できる・・・B

 Bは残念ながら「SWRが2以上」ということになります。さらに減算できれば3、4・・・と、大きくなります。つまり「何回引けたか」を記憶しておけば、それこそSWR100でも1000でも・・・なんですが、まぁ10回ぐらいで諦めた方が良いでしょうね

 一方、Aの方は引けないわけですから、10倍した値から減算できるか・・・ここで減算できれば、小数点第一位の計算ができるということです。割り算の筆算を思い出してください。

 さて、この「10倍」ですが、乗算ができないPICでは「10回足す」という必殺技でも良いのですが、もう少し簡単にする方法があります。10倍したい数を仮に「X」とします。

<シフトを使った10倍法>
 1) Xを3ビット左シフト ・・・イ ← 8倍
 2) Xを1ビット左シフト ・・・ロ ← 2倍
 3) イとロを加算

 簡単ですね こうして得られた数から②を減算し、その回数を小数第一位の数にします。引けなくなったら、さらに10倍して小数第二位を求めます。もし小数第三位を四捨五入するなら、5回まで減算できたところで第二位に1加算して終了です(桁上がりがあれば、下の桁から順に1加算します)。
 もし、9.99まで求めたいとすると、そのループ回数の最大は「9+9+9+5(四捨五入分)」で33回です。勿論、切り捨てで良ければ四捨五入分は要りません。さらにSWR計算故、3.00以上は丸めても(少数計算しなくても)良いでしょう・・・これで、25回以下に抑えられます。桁上がりは最後の四捨五入で全桁の繰り上がりがあったとすると、小数第二位から逆方向に最大3回です。

 一方、シフトを使った10倍法にも、8ビット→16ビットへの橋渡しとなる桁上がりが発生し得ます。この辺りの処理を考えていくと案外ステップ数を食ってしまい、あまり速い計算は難しくなってきます。

 ただ、まぁSWRの測定は「測定できるまでは待たされる」という当たり前の部分があって、そんなに高速な処理は不要でしょうから、実は今回のカップラのSWR算出論理は変に凝らずにこの技法でも良いかなぁ・・・と思っていたりして

A/D変換によるPICのSWR算出ヒント

2011-05-27      
 どうも数学(っていうか算数の領域も含めて)は苦手なんですが、SWRの計算は、多分以下の式で求められると思います。

 SWR = (進行電圧+反射電圧) / (進行電圧-反射電圧)
               ①                 ②

 進行電圧の方が反射電圧より必ず大きいとすると、①の算出結果の方が必ず大きくなることは明白です。

 上の式は超簡単なのですが、PICは加減算はできても乗除算は普通にはできませんし、除算でループをブン回して減算を繰り返すのもどうかと思いますので、「ビット演算」に着目して考えていきたいと思います(A/D変換で使うビット数は10ビットとします)。

 まず、MSB(ビット列の一番左側で'1'を示すビット位置)毎に、取り得る数値をまとめると以下のようになります。PICなどのマイコンは2進数の世界ですから、あるMSBビット位置の最小値と最大値の差は、「最小値×2-1」という関係が成り立ちます。

MSB
10

最大20471023511255127
633115731
最小1024
512256
1286432168420
比率
1.99
1.99
1.99
1.99
1.98
1.96
1.93
1.86
1.75
1.501.00

 上記①の計算値と②の計算値のMSBが同じだった場合、最大と最小の比率は最大で「2未満」・・・つまり、「SWRは2より小さい」ということになります。さらに、①の計算値のMSBが8ビット、②の計算値のMSBが7ビット・・・のように、②のMSBが①より1ビットだけ小さいと、その差は約4倍・・・「SWRは4より小さい」ということになります。同様に考えてまとめると、MSBのビット差によって以下のように考えられます。

MSBビット差・・・
SWR比最大値1632・・・

 作るものがカップラですから、「SWRが29だな・・・」と解っても意味がありませんね そう考えていくと、SWRが8より大きい場合マッチングは明らかに取れていないわけですから、「8よりでかいぞ」程度に丸めてしまえば、MSBの差が3ビット以上のことは考える必要が無くなります・・・というか、かなりアバウトで良さそうです。
 MSBが同一の場合はSWRとして1.0~(約)2.0という値になりますが、MSBの差が1ビットの場合でも、512と511、256と255・・・のように、数値的に非常に近いこと---即ちSWRがかなり低い場合もあるわけですから、この辺りを論理的に考えてやればよいことになります。同様に、MSBの差が2ビットの場合はSWRとして2.0~(約)4.0の間の値をとりますから、チューニング中にSWRの変化の挙動を押さえるためには、この辺りもある程度確かな値を計算する必要がありそうです。

 さらに、最初の表で解るように、検出された電圧の低い方(MSBが小さい方)では大小比もどんどんと2倍差から離れていき、「同一MSB=約2倍論理」が破綻してしまいますから、せめて②の計算値のMSBが5か6ビットより大きくなるところを近似値計算域として使おう・・・といったところ。SWR測定時のワット数やオペアンプの利得を考える際には、できるだけA/D変換の数値上限で測れるように考慮した方が良いということですね。

 ちなみに、MSB=10ビットはA/D変換値ではなく、あくまで①、②の計算値として取り得る値です。念のため・・・。

カップラのSWR検出

2011-05-25      
 SWR検出部について少し検討しました。CM結合のSWR計は作ったことがあるんで真っ先に思いついたのですが、できるだけ結合の度合いを小さくして損失が少ないようにしないと、QRP運用主体故、何のための測定か解らなくなってしまいますので注意するとして、20dBカップラのような「単なるピックアップ」を使って上手くできないかなぁ・・・といった辺りが着目点です。



 トロイダルコアに検出用コイルを数回巻いて作るイメージは、20dBカップラと同様です。この結合度を低く・・・即ち巻数を少なくすれば挿入損失的には有利になる反面、検波後の電圧は無論小さくなります。ここはオペアンプに任せるとして(検出される電圧が小さい場合、オフセット電圧が低い方が良さそうですね)、Diはショットキー、Cは比較的容量の小さなコンデンサ(数十pF)、Rはかなり大きめ(1MΩくらいかな・・・)といった組み合わせでいいでしょう。

 オペアンプの実際の利得については、SWR計測を何Wで行うのか・・・にかかってくるのですが、腐っても10W機ですから、やはりこの出力でも壊れずに測れる方が良いでしょう(でも、殆ど5W運用なんだろうね・・・)。その上で、PICのVDDである5Vは超えられませんから、この辺りは実験的に決めるのでしょう。

 さて、結合コイルの中点にはタップを取ってグランドに落としたく、ここに抵抗(Rx)を入れた方が良いように思うのですが、どんな値にするのがいいのかが解りません まぁ、この辺りも実験的に求めるのでしょうが、0Ωじゃダメかしらん

遠隔君の概要

2011-05-23      
 PICの実験を始め、乗り越えるべき壁やら瓦礫やら仕事やら・・・もある中で、とりあえず遠隔君のブロック図もどきを書いてみました(興味のある方はクリックして下さい。でかいのが見られます)。



 まぁ、自分用ですから漫画チックでいいかなぁ・・・てな感じです。L1~L3については既に写真紹介しましたが、別にトロイダルコアをケチったのではありません。沢山あれば良いって物じゃないし、所詮5W・・・故に小さめのコアをチョイスしました。また、このコアの選定がいかにも怪しいのですが、要は「インダクタンスが小さい≒高い周波数で使うはず」といった考えから、当該周波数でQが高くなるものを選んだつもり・・・曰く、自己満足だね

 さぁ、後に引けなくなりました。オールアジアン辺りまでに完成するといいんだけど、ちょっと難しそうですね

 ※ 2011/05/29 ブロック図更新しました。

PICコンパレータの訂正

2011-05-23      
 昨日、PICのコンパレータについて「内部リファレンス電圧が2CHのコンパレータ双方に供給される」という結論でしたが、やはり・・・というか、もっと様々な設定ができることが解りました。要は、たまたま手にした「PIC16F648A」は、よく参考資料に載っているタイプの「CMCON」しかない、8種類のバリエーション(一つはコンパレータを使わない・・・です)のものですが、たまたまチョイスした「PIC16F689」は2個のコンパレータが独立に、しかも内部リファレンスを電圧も「片方」に供給できるような仕様になっていました。

 コンパレータは簡単な検出にも使えそうですから、今回経験しておくことは無駄ではないでしょう。どこかのHPに「マニュアルを舐めるように読め」と書いてありましたが、まさにその通りでした・・・ということで、昨日の記事の当該部分に訂正線を引いておきましょうかね

PICの選定にも一苦労・・・

2011-05-22      
 PICにも様々な種類があり、それぞれ使い勝手も違うわけです。必要な機能がないものは論外としても、「大きいことは良いことだ」()・・・じゃなくって、「大は小を兼ねる」だけでは知恵がありませんし、幾種類かのPICを触っておくことも、ゆくゆくの一助になると思いつつ、必要な機能からPICを選定しました。

 まず、ANT側とRIG側双方に必要となるのは「シリアル通信」。俗に「USART」なんて略しますが、いわゆる「RS-232C」の規格が一番有名です。生まれて初めて「仕事」で作ったデバイスドライバがUSART制御でしたから、機能さえ具備されていれば何とかなるでしょう。

 次に「A/D変換」。RIG側のバンド切替確認にコンパレータを使おうと思ったのですが、内部リファレンス電圧が2CHのコンパレータ双方に供給されるようで、1CH分=2ポートがまるで無駄に ということで、何れ実測することも含めて、ICOMさんに教わったバンド切替時の電圧を頼りに、A/D変換による電圧測定で何とか誤魔化そうかと これで、RIG側は1CHのA/D変換ポートのみになり、都合3ポート分は稼げる格好です。が、プログラムはちょいと工夫しないと・・・。なお、このA/D変換は、ANT側のSWR測定(電圧測定)でも必要なんで、USARTと合わせて共通機能の部分ですね。

 さて、個別に必要な機能として、リレー制御はANT側に集約します。18ビット分のON/OFFを独立して行いますから、ANT側の使用ポート数は「USART:2、A/D:2、リレー切替18」で合計22ビット・・・ということで、USARTとA/D変換を持つ28ピンのPICを選ぶことになりました。秋月最安の「PIC16F886」が190円也・・・

 一方のRIG側は、もう一捻りするかも知れませんが、今のところ以下のような感じ。

 ・ カップラの調整操作は、ロータリーエンコーダ×1とプッシュSW×1で何とか
   なるでしょう→3ビット

 ・ 上記USART用ポートが2ビット、バンド切替の監視用A/D変換ポート1ビット
  →合計3ビット

 ・ 送信動作中を知るためのポーリング(或いは割り込み)ポート→1ビット

 ・ LCD表示に4ビットパラレルを用いても、制御線が3ポート→合計7ビット

 ∴ 14ビット

 クロック発振内蔵タイプの18ピンでも良いのですが、余裕がなさ過ぎるね・・・。デバッグ用にLEDを付けたり・・・と考えると、20ピンのシリーズから・・・と言うことで、これも秋月最安値で上記機能を具備したものから「PIC16F689」を採用しました。これが180円なり・・・

 これで、PIC周辺はほぼ固まりました。ひとまず「SWR測定できるのか」(=A/D変換の確認)という実験からスタート・・・コンパレータの実験はお預けにしますかね

ANT側カップラの大きさ

2011-05-22      
 少し息抜きして、先週のある晩に巻いたコイルや今回使用するリレー、スイッチング用の抵抗入りTRを、秋月の紙エポ万能基板の上に置いてみました。



 どれも小さな部品ですから、ある程度小さく作ればこの基板に乗るはず・・・と目論んでいます。欲を言うと、もう一回り小さい基板がいいかなぁ・・・。

 RF側・・・というか、コイル・コンデンサの類が乗る方は銅箔テープを貼ってベタアースとし、必要な部分をカッティングして使う一方、シールド版を一枚立てて制御側(PIC+シリアル通信用バッファIC)と分離するようなイメージです。RF側はリレーが20個ほど並ぶわけですから、かなりレイアウトを考えて作らないと乗らないねぇ 真ん中にシールドを施して「2階建て」にするのも良いかもしれませんね

遠隔君の実現機能とPIC実験計画

2011-05-22      
 遠隔君・・・アンテナカップラの遠隔操作ということで、ANT側とRIG側各々の実現機能についてまとめます。

 ◆ ANT側

  シリアル通信によるRig側(制御側)からのコマンド指示に従って以下を行う。

  (1) 電源ON/OFFに連動したANTスルー(リレー×2)
    通電時にリレーONでカップラ回路側へ切り替える(電源OFF時はスルー)。

  (2) 受信したリレー切替コマンドに基づく以下のリレー切替制御

   ① VCの切替(8ビット:256通り)
   ② Lの切替(6ビット:64通り)
   ③ πマッチ用Cの切替(2ビット:4通り)
   ④ 入出力方向の切替(1ビットでリレー×2)
   ⑤ 小電力調整用ATTのON/OFF(1ビットでリレー×2)

  (3) SWR測定に必要なA/D変換
     SWR測定コマンドを受信した場合、進行波をAN1、反射波をAN2より
     入力して電圧を測定し、その値を返す。
     >とりあえず、SWRの計算は制御側でやることにする。

 ◆ RIG側
   IC-703のAT180端子(7P-DIN)アクセサリー端子に接続し、ANT側の
   必要な切替処理を行う。

  (1) 運用モード

   ① バンド切替時(IC-703がバンド切替を行った旨検知した場合)
     識別したバンドに基づき、プリセットされている切替情報を基に、リレー
     切替コマンドを送出する。

   ② 送信状態
     必要に応じて、SWR測定コマンドを送出できる。

  (2) チューニングモード

   ① 送受信状態共通
     ロータリーエンコーダの指示に従って、ANT側(2)の①~④の調整を
     行う。
     >このとき、初期値はプリセット値を起点として行う。
     >チューニングモード時にバンドが切り替わった場合、運用モードに
      強制的に移行する。

   ② 送信状態
     以下のコマンドを送出できる。
     ・ SWR測定コマンド
     ・ 小電力調整コマンド(リレー切替コマンド)

 その上で、PICで実現する機能的な面で必要な「事前実験」を羅列してみます。

 ◆ A/D変換
   ANT側のPICに具備し、SWR計測に必要は進行波・反射波の電圧を
   測るために必要。

 ◆ コンパレータ
   IC-703のバンド切替電圧によるバンド検知に必要。

 ◆ USART制御(PIC-PIC対向通信)
   Rig側(制御)とANT側(リレー切り替え・SWR測定)の間の通信処理は、
   シリアル通信で行う。
   >デバッグ用に、PC接続も意識した方がよいかも・・・。

 ◆ LCD表示とロータリーエンコーダ制御
   理屈は解っているんで、結線ミスがないようにすれば、あとは本チャン機
   (Rig側)の「プログラムデバッグ」で十分かと思うが、頻繁な抜き差しは
   どうもねぇ・・・。

 さぁ、給料日過ぎたら暇を見つけて、或いは外出の帰りに(こっちが本命かな)秋葉にGo
Calendar
04 | 2011/05 | 06
Sun Mon Tue Wed Thu Fri Sat
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 - - - -
New !
Category
Comments
Monthly Archives
Track Backs
Counter
Sunspot Now !

 


Survey Results

 

Profile

どよよん無線技士

Author :どよよん無線技士
こおるさいん:JM1DPL

アパマンというハンデにさらにQRPまで課し、失敗連続のヘッポコリグや周辺機器の製作・・・趣味というより「荒行」か!?

メールは「JARL経由」でお願いします。

Links
Follow me !
RSS Links
QR Code
QR