私の工作を紹介するHandcraftのコーナーは、ただいま制作中です。まだ不自然なところが多いのですが、順次手を加えていきます。

136kHz簡易送信機の製作

 この原稿は、某誌の依頼によりまとめた原稿です。残念ながら、掲載されるはずだった号には、別の方がお書きになった、ほとんど同じ内容の記事が掲載され、私の原稿はボツになってしまいました。
 使っているマイコンがPICかAVRの違いだけで、アイデアはほとんど同じですから、ボツはいたしかたないところでしょう。

 次号で掲載という話もあったのですが、それでは私がアイデアをパクったと疑われるだけのような気がしてお断りしました。

 というわけで、せっかくまとめた原稿なので、Webにて公開する次第です。

 

 その後、本格的な送信機にするための実験も開始しています。そちらも、何らかの形で掲載していく予定です。


 ちなみに、原稿執筆後、海外のハムのページで同様のアイデアを見つけました。その記事は、CWでコールサインを送出する機能がありますから、私の作ったものより数段上を行ってます。

■はじめに
 新バンド136kHz帯誕生が間近に迫っています。波長2200mと聞くと、アンテナをどうしようと考えてしまいますが、そこはアマチュアらしい工夫のしどころでもあります。
 送受信機はどうでしょう。リグが販売されるまでは自作に頼ることになります。136kHzという低い周波数なので、オーディオアンプやスイッチング電源、それにデジタル回路の技術が活かせるかも知れません。いままでとは違うアプローチで、リグの自作が楽しめそうです。
 受信には、ゼネラルカバレッジのHFリグが使えそうです。でも実際には、このあたりの周波数での感度はどうなのでしょうか。確認用に何か信号源があるといいですね。

 今回は、136kHzを運用するための第一歩として、あるアイデアを元に、手持ちの部品で簡単な発振機を作ってみました。受信設備の確認や調整のための信号源として使うことを想定していますが、本格的な送信機に発展させることも可能です。

■ワンチップマイコンで作る136kHz
今回は、136kHzという低い周波数であることから、変わったアプローチを取ってみたいと考えました。そこで、AVRワンチップマイコンを使って、プログラムで136kHzの高周波信号を直接作ってみることにしました。
 原理はとても簡単です。出力ポートを一定時間ごとに1と0に交互に切り替えるプログラムを作ってあげるだけです。たとえば、136kHzであれば、1周期は約0.0073msとなります。したがって、その半分である0.00365msごとに出力ポートを切り替えれば、136kHz近辺の方形波が得られることになります。
 ワンチップマイコンの入門工作の定番に、LEDの点滅回路があります。LEDチカチカなどと呼ばれています。原理は、あれと同じです。LEDが0.5秒ずつ点滅すれば1秒で1周期ですから、周波数1Hzの発振器です。その約137000倍で点滅させるプログラムにすればよいわけです。

 プログラムで、方形波の波形を直接作り出してしまうのですから、ダイレクトに波形を作り出してしまうDDS(ダイレクト・デジタル・シンセサイザー)とよく似た発想といえます。ただ、正弦波(サイン波)ではなく、方形波でよいので、プログラムがたいへん簡単になっています。これが1個数百円で購入できるワンチップマイコンで、目的とする高周波を直接作り出せる秘密です。
 もちろん、水晶発振子を購入してきて発振、分周しても136kHzの信号を作り出すことができます。でもこの場合は、うまく136kHz近辺に分周することができる水晶発振子を入手する必要があります。
 今回の方式なら、ワンチップマイコンを動かすためのクロック周波数は、10MHz以上、できれば20MHz近辺で安定していれば適当で構いません。なぜなら、そのクロックをもとに、プログラムで周波数を作り出してしまうからです。
 と、うまく行けばよいのですが、本当にこんなに簡単に作ることができるのか、実際に確かめてみることにしました。

■なぜ方形波でよいのか
 方形波は、正弦波と違い高調波をたくさん含んでいますから、そのままでは送信機として使うことは適切ではありません。
 一方で、136kHz程度の周波数の方形波なら、たとえば電力用FETを用いたスイッチング回路で簡単に効率よく電力増幅を行うことができます。数百円で購入できるFETで、100W程度の電力を得ることも難しくないようです。
 したがって、発振回路の部分で正弦波であるよりも、方形波のほうが都合がよいともいえるのです。高調波は、電力増幅後にローパスフィルターを通して除去することになります。
 また、今回は、室内実験用の信号源と使うことが目的です。高調波があったとしても、問題なしと判断しました。

■回路
 回路図を示します。




 ワンチップマイコンAVRシリーズのなかで、もっとも安価に入手できるATTINY2313-20PUを使っています。水晶発振モジュールでクロックを供給して動かしています。出力はTTLレベルの信号として、ATTINY2313-20PUのPB0端子に出力されます。 このままリグに接続してしまうには強すぎるので、抵抗で分圧し半固定抵抗を介して取り出しています。インピーダンスマッチングは取れていませんが、簡単な回路であることを優先しました。
 水晶発振モジュールは、手持ちの周波数のなかから、ATTINY2313-20PUのクロック周波数の上限である20MHz近辺までということで、10MHzのものと22MHzのものを試してみました。クロックは、できるだけ速いほうが、プログラムを動作させる際に有利となります。22MHzは、あまり一般的ではありませんから、今回は10MHzを使うこととしました。
 これから新たに部品を購入されるなら、20MHzか24MHzを選ぶのがよいと思います。24MHzは、クロックの上限周波数を超えていますが、実際には動作させることができると思います。

全部品

 コネクターを入れても1,000円程度で購入できる

部品表
  ワンチップマイコン ATTINY2313-20PU
  水晶発振モジュール10MHz → 20MHzまたは24MHzを推奨
  電源レギュレータ 7805
  小型基板
  ICソケット 20P
  ICソケット 14P
  半固定抵抗 1kΩ
  抵抗 10kΩ ×2
  積層セラミックコンデンサー 0.01μF ×5
  SMAコネクターメス
  DCジャック


■プログラム
 プログラムは、BASICで作成しました。アセンブラやCを使えば、高速で動作するプログラムが書けると思いますが、私はBASICしかわかりません。逆にいえば、BASICしかわからなくても、簡単にワンチップマイコンを活用できるのがAVRのよいところです。
 BASICコンパイラは、BASCOM-AVRのデモ版を使っています。インターネットを使ってダウンロードして、無償で使用することができます。


$regfile = "attiny2313.dat"
$crystal = 10000000

Config Portb = Output

Do
Portb.0 = 1
Waitus 3.0
Waitus 0.1
Waitus 0.1
Portb.0 = 0
Waitus 3.0
Waitus 0.1
Loop

End

 Waitusは、待ち時間をμ秒単位で指定するコマンドです。ただし、m秒単位で指定するwaitmsコマンドとは違い、かなりの誤差が生じます。クロック周波数を考えれば当然のことでしょう。そのあたりを調整するため、Waitusコマンドを複数使って、待ち時間を調整しています。

 ちなみに、クロック周波数の記述 $crystal = 10000000 を少し変えてあげることで、周波数を微調整できるだろうと考えていたのですが、それはできませんでした。記述と実際の周波数の変化がリニアではなかったのです。残念。

   その後、20MHzの水晶発振モジュールを入手しました。次のプログラムで、136kHz台を発振させることができました。

$regfile = "attiny2313.dat"
$crystal = 20000000

Config Portb = Output

Do
  Toggle Portb.0
  Waitus 3.2
  Waitus 0.1
Loop

End

 本当は、プログラムである程度周波数を切り替えられるようにしたかったのですが、困難でした。クロックを水晶発振回路として、VXOにするのが簡単なように思います。
 ネックとなるのは、AVRへのプログラム書き換えでしょうか。書込器は安価に購入できるので、この際、1台用意してはいかがでしょう。



 AVRマイコンへのプログラム書き込み器の例
  左側は、PCとUSBで接続できるタイプ。詳細は下記URL参照
   http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2FHIDaspx
  右側は、PCとシリアルポートで接続するタイプ。USB−シリアル変換器は使えないので、PCにシリアルポートがあることが条件となるが、安価に組み立てキットが入手できる。
   http://strawberry-linux.com/catalog/items?code=72001


■製作
 部品数が少ないこともあり、製作は簡単だと思います。製作の手順を写真でまとめました。



 ワンチップマイコンと水晶発振モジュールはICソケットを使用することにした。
 


 電源ラインをハンダ付け



 電源レギュレーターICを取り付ける。



 出力部分を組み立て


 ハンダ付け終了。ATTINY2313-20 PUと水晶発振モジュールを取り付ければ完成。

■調整と確認
 最初は、計算通り、待ち時間を3.65μ秒としてみました。周波数カウンターを用意して周波数を測ったところ、計算とはかなりのズレがあります。
 理由は明確で、waitusコマンド以外のプログラムの実行時間を考慮していないためです。周波数カウンターで実際の周波数を測定しながら、周期を決定しているwaitusコマンドの待ち時間を少しずつ変えていったところ、136kHz帯の帯域内に収めることができました。Waitus 3.2としないで、Waitus 3.0、Waitus 0.1、Waitus 0.1のように書いているのは、コマンド実行にかかる微妙な時間差を使って周波数を調整したためです。デューティー比(1と0の時間の比)が50%:50%になっていないと思いますが、オシロスコープで見たかぎり、極端には変わっていませんでした(ただし、私が持っているオシロスコープは、オーディオ帯域用のものです。136kHzは測定範囲外なので、あくまでも気休めではあります)。
 ちなみに、再現性を確かめるため、複数のATTINY2313-20PU、複数の水晶発振モジュールで差し替えて試してみました。まったく同じ出力周波数を得ることができました。このあたりは、デジタルならではの再現性です。測定に使用した自作周波数カウンターの分解能は4Hzなので、誤差は4Hz以内ということになります。水晶発振モジュールに10MHzを使う限り、調整の必要はありません。



周波数を測定中。
136.984kHzとなり、136kHz帯に収まった。



FTDX-9000Dに信号を入力したところ。
VRをいっぱいに絞ってから少しずつ信号を強くしていった。このリグは、10Hzステップにしているので、136.990MHzで同調した。
 今後、手持ちの内のどのリグが、一番136kHz帯の受信性能がよいかを調べていく予定。


■今後の発展
 136kHz帯は、1kWまで許可されることになっています。移動する局は50Wまでです。ところが、等価等方輻射電力(EIRP)1Wという制限もあります。これは、送信アンテナの利得と送信機の出力の積で求められます。
 つまり、1kW(30dBW)の送信機を使う場合は、絶対利得が-30dB以上のアンテナは使えないということです。逆に言うと、絶対利得-30dBといった、とても効率が低いアンテナが使われるであろうことが前提となっているのですね。
 というわけで、とりあえずは50Wくらいの出力を目標にしたいところです。この出力なら、100円で買える電力用FETで実現できそうです。海外のアマチュア無線家の製作例をインターネットで調べたところ、100Wくらいまでの製作例がいくつか見つかりました。
 それらを参考にして考えた送信機のブロック図を示します。国内で入手しやすい部品に置き換えてみましたが、50Wクラスの送信機が2000円くらいで作れるのではと考えています。
 136kHzはどのような使い方がされるのでしょうか。CWであれば、このような簡単な送信機で十分でしょう。CWを「見る」QRSSという方式も使われているようです。高い周波数安定度が必要といわれています。発振モジュールにTCXOを使うのがよいかも知れません。
 機会があれば、今回の発振部と組み合わせて、本格的な送信機を構成した例をご紹介したいと思います




2009.1.17