2009年1月25日日曜日

エアバンド受信機(3)

【AVRソフトウェア】
 前作と同じくAVRを使用した。今回はメモリー等を搭載するため、ATiny2313でBASCOM-AVRを使用して開発するには容量不足である。アセンブラーで開発すればいいのだが、BASCOM-AVRを一度使ってしまうともう戻れない。ATmega48を使うこととした。最近は秋月でATmega88が安く入手できるのでそれでもいい。BASCOM-AVRはデモ版ならば48までは十分使える。最近円高のおかげでBASCOM-AVRの正規版が安く買えるのでこの際購入されてはいかが。私は買いました。

 受信機(無線機)で使用するソフト技術としては、
・ シリアル制御(PLLやDDSの設定)
・ スイッチの取り込み(MODE切り替え等各種設定)
・ ロータリーエンコーダの読み取り(周波数等UP?DOWN)
・ 接点出力(バンド情報出力など)
・ アナログの取り込み(Sメータ)


・ アナログの出力(VCO、リットの制御)
・ カウンタ(周波数カウンタ等)
・ 表示(液晶、LED等)
・ メモリー(VFOメモリ、等の記憶)

 これくらいが作れればほぼ問題ないと思う。1度作ってしまえば、それをアレンジして拡張できる。
またBASCOM-AVRではこれらの制御用コマンドがほとんど用意されている。だから止められない。
今回は、エキスのみをご披露する。なぜなら全体は恥ずかしくて見せられない。どうしてもといわれるお方がお見えならホームページの掲示板等でご連絡ください。

【TC9256PLL制御】
 これは前作と基本的に変わらない。再度解説する
 TC9256の制御は24bit2組のシリアルで行われる。PLLの設定は24bit1組で行われる。これにTC9256の書込み設定アドレス(d0H)を加え32bitを連続で送出することにより設定される。
 まずは、これに使用するポート、変数を用意

   (以下:以降はコメントです)

 Config Portc.0=Output :mega48ポートC0出力に設定TC9256の(3)pin period
 Config Portc.1=Output :mega48ポートC1出力に設定TC9256の(4)pin clock
 Config Portc.2=Output :mega48ポートC2出力に設定TC9256の(5)pin data
 Dim Com01 as Byte
   :TC9256のPLL書込みコマンド上位4bit(1Byteは8bitであるが4bitのみ使用)
 Dim Com02 as Byte
   :TC9256のPLL書込みコマンド下位4bit(1Byteは8bitであるが4bitのみ使用)
 Dim PLL1 as Long:TC9256の分周数データ
 Dim PLL2 as Byte:TC9256のモード、分周ステップ、水晶数端数

それぞれの変数に設定数をセット

Com01=&B00001101
   :TC9256のPLL書込みアドレスd0H(2進数で00001101)の「d」
Com02=&B00000000
   :TC9256のPLL書込みアドレスd0H(2進数で00001101)の「0」 この部分は後で解説
PLL1=12600
   :例えば周波数126MHzで10KHzステップの場合、分周数は12600となる
PLL2=&B1011010
   :使用水晶4.5MHz モードFML ステップ10KHz 詳しくはデータシート参照

ここまで用意ができたらいよいよPLLへ書込み。書込みにはshiftloutコマンドを使用する

Set Portc.0  :period ON
Set Portc.2  :data ON
Set Portc.1  :clock ON
Reset Portc.0 :period OFF
Shiftout Portc.2 , Portc.1 , Cm02 , 2 , 4 , 1 
   :portcの2にデータをLSBから4ビット送出。Shiftoutのモードは立ち下がりエッジでLSBから送出。この部分はデータシートとBASCOMのリファレンスヘルプで勉強してください。
 ここでなぜ4ビットのみの送出かというと。TC9256へ32bit送出する際、最初の8bit以内にperiodをHigh(ON)としなければならない仕様となっているためである。そのため管理しやすいように4bitで1度区切っている。そのためcom01,com02と分けている。このあたりはデータシートとにらめっこである。もっとも苦労したところである。そこで次の行でperiod ONとしている。

Set Portc.0  :perood ON
Shiftout Portc.2 , Portc.1 , Cm01 , 2 , 4 , 1 :アドレスの上位4bitを送出
Shiftout Portc.2 , Portc.1 , Pll1 , 2 , 16 , 1 :分周数データを送出
Shiftout Portc.2 , Portc.1 , Pll2 , 2 , 8 , 1 :TC9256の設定値を送出
Set Portc.1  :clockをHighにしてperiodをOFFにして書き込み終了
Reset Portc.0

以上である。理解できただろうか?
 機会があれば、各種シリアル制御(DDS,PLL、シリパラ変換等)について整理して掲載します。
次回はメモリー関連を予定
写真は今使っているAVR開発用ボードです。

2009年1月17日土曜日

エアバンド受信機(2)

回路説明
 回路説明といっても、特に目新しいことは無いと思うが、一応各回路説明を書いてみる
【仕様】
受信範囲:119MHz~134MHz
受信形式:A3E(旧A3)
 航空無線の使用範囲は108Mhz~138MHzの30MHzも範囲がある。  製作を開始ししたときはどうにかなるかとはじめたが、やはりこの範囲をカバーするのは難しかったため、関東地区の主要電波が聞こえる範囲として119MHzから134MHzの15MHzとした。

【RF増幅】
 RF増幅はTA7358
 ベース接地増幅であり、入力インピーダンスが低いためコイルタップから入力。コイルはFCZ7S144を使用した。受信範囲が広いため、同調をバリキャップ等で調整しようかとも考えたが、大袈裟かとも思い固定のままとした。バンド内での感度測定はしていないが、どうにか使える範囲のようである。

【第1ミクサー】
 TA7358のミクサーを使用。PLLからの信号を受けIF10.7MHzに変換。PLLVCOからの注入レベルは結構多めになっていると思う。適切な注入レベルは周波数によっても変わると思われる。このあたりTA7358の実験を行いデータ化しておくと何かと便利かもしれない。暇があったらやってみたい。このICの使用例は多く発表されているので参考にされたい。

【第1OSC】
 当初TA7358のOSCで行ったが、発振範囲が十分取れなかったこと、発振レベルがPLLに不十分であったことから、専用発振回路とした。PLL制御のVCOである。発振には定番の2SK19で実験したが、発振出力不足の感じであったため、2SK241とした。やはり発振範囲、出力レベルは2SK19よりも協力で良くなった。バッファには2SC2026を使用。VCOの出力は、TA7358の8pinに入力。PLLへは7pinから5pで返している。

【PLL】
 前作のFMトランシーバで使用したTC9256を使用。もともとFMラジオ用であることから、150MHzまで対応できる。ほとんど前作と同じ回路構成である。前回はHFモード(40MHz)で使用。今回はFMモード(内臓プリスケラーを使用するモード)で使用した。VCOで多少手こずったが、問題なくロックしてくれた。実に使いやすいPLL用ICだと思う。MPUからの制御も前作のものを焼きなおした。

【第2ミクサー&第2OSC】
 定番のLA1600を使用。OSCは当初LA1600の内部発振回路で行ったが、調整がクリチカルだったため、トランジスタ1石(2SC945)で10.245MHz水晶発信とした。

【IF&検波】
LA1600を使用。特にコメントなし。簡単。AGCもまあまあである。AGCが単独で使用できればSSB機などへの応用ももっとできるのだが。まあQRP機などで限定的に使用するならば便利なICといえる。事実使用例も非常に多い。にたようなICが東芝、ローム等から出ているのでこのあたりも調べてみるのもいいかもしれない。しかしPIN数や外付け部品を考えているとLA1600は非常に優秀といえる。
まだまだ入手可能。

【AFアンプ】

 定番のLM386。今回電源ON時のポップ音対策として7pinとVCC間に電解コンデンサー、グランド間にダイオードを挿入。どなたかのホームページに書かれていたものを利用させていただいた。何も無いときに比べ精神上よくない「ボツ」音はかなり減った。まだ多少残っているが、かなりの改善であった。
 ただしCWでのフルブレークインでも気にならないかは実験してみなければわからない。

【制御回路】

 全体制御と液晶表示にATMELのATmega48を使用した。これは、バンド幅が広いため、メモリ回路(10チャンネル)や、エンコーダの周波数ステップ(10KHz,100KHz,1MHz)をを変更できるようにするため、Tiny2313ではメモリが不足すると思われたためである。これについては次回解説を載せる予定。


【筐体、部品】
 筐体は前回の29MHzFMトランシーバー と同じタカチ(UC14-6-10)を使用した。自作において筐体は結構重要なテーマである。しかし結構高い。部品で一番高いかもしれない。たまたまオークションで大量に安く入手できたので使っている。
 基板にはICB-93SEGを使用。部品面がメッシュアースになっているため高周波用には最適。少々高いが、回路側でアースを引き回さなくても良いため作業性がいい。ただスルーホール仕上げのためランドは強いが、部品交換は少し面倒。前回のFM機では機能別にICB-88SEGを主として使ったが、これはスルーホールになっていない。したがって部品交換時などランドがはがれ安いので注意。
 一品ものにはこれら基板がお勧めだ。
 今回基板から出る配線には主としてコネクタを使用した。ブログ(その1)に紹介しているが、自作パソコン用のアッセンブリーでピンヘッダ用であり、至極便利。皆さんも使ってみませんか。シールド線等もあり、ボリューム配線等がきれいに収まる。(内部写真参照)
 ツマミはジャンクのトランシーバーに使用されたものを再利用している。ツマミはいいものがあまり販売されていない。ジャンク品は貴重な資源である。ちなみにダイヤルは日本電業Liner2DXのものです。
 液晶は秋月で売っている16×2バックライト付きを使用。
























次回はソフト解説の予定である。

2009年1月15日木曜日

エアーバンド受信機(1)

エアーバンド受信機製作概要


 いまさらエアーバンド(航空無線)という感じもあるが、今聞いているYAESU(FRG-965)の感度がよくないこともあり製作してみた。

 今回は、定番のAM用IC(LA1600)の使い勝手とAVR(ATmega48)を使用しBASCOM-AVRの習熟を目標とした。



 
回路構成は、ブロック図を見てください。シンプル(IC×3 FET×1 TR×1 AVR×1)な構成である。


【RF】
 RFは定番のTA7358を使用。前回29MHzFM機で使用し、混変調等でこのICの限界を垣間見たが、エアバンドであれば強力な電波も無いこと、またもともとがFMレシーバー用のICで回路構成が簡単であることから懲りずに採用した。


【PLL】
 PLLも29MHzFM機で使用したTC9256。とにかく簡単にPLLが作れる(マイコンのおかげも大きい)

【IF&DET】
 AMIF,DETはあまりにも定番のLA1600.でも私は始めての使用である。このICの使い勝手を見るのも大きな目的であった。

【AF AMP】
 LM386 特に言う事無し。ただON/OFF時のポップ音解消回路の実験を行った。

【MPU】
 マイコンはAVR(ATmega48)を使用。29FM機ではATTINY2313をBASCOM-AVRでプログラムしたが、 容量不足で中途半端となったことと今回周波数メモリーを多く持ちたかったのでmega48とした。


以上が今回の製作概要である。