電波受信ユニット

回路図はこんな感じで

まずアンテナはフェライトバーにUEWを巻きつけて4000μHにしたものを用いる。

Cを並列に接続して共振させる。C=1800pFで約60kHz、C=4000pFで約40kHzになる。この差は2200pFなので、1800pFに対して2200pFをつけたり外したりすることでバンドの切り替えを行う。これがアンテナ直後のアナログスイッチ。

共振アンテナの入力はR92とR93の入力抵抗を介して回路に結合される。最初「アンテナって超敏感だから入力抵抗も高めにしないとまずそうだなあ」ということでこれをそれぞれ1MΩぐらいにしていたけどハムノイズばっかり拾ってしまってだめ。ふとSM9501AVの入力抵抗を測ったら400kΩぐらいで「低っ」とおどろき、自分の回路もそれぐらいにしてみたらうまくいった。

入力はまず計装用アンプ構成のオペアンプで増幅される。ゲインは約10e5倍。でかっ。C49とC50はその直後の1kとともにカットオフ周波数=約16kHzのHPFを構成している。

で、いったんそこまで増幅したらDBM(Double Balanced Mixer)に入る。

なぜDBMか。アナログ的にはフィルタ回路を通じて40kHzや60kHzだけをとりだして検波し、あるいはAGCをかけたりして二値化してデジタル信号を取り出す、という回路になるのだけれども、デジタル脳なのでとにかく早くデジタル回路に突っ込みたくてしょうがない。けどデジタル回路といってもなにつかうよ、DSPとかそんなにやすくないし、とかいろいろ考えてると、価格や開発環境などでATtiny13Aが候補にあがった。しかしこれ、ADCはたかだか15k SPS 程度までしかできない。となると、このADCに突っ込めるぐらいにまで周波数変換する必要がある。そこでDBMというわけ。

DBMつかわずに直接ADCにつっこんで、サンプリングの際のエイリアスを無理やり使うという手があるけれども、ATtiny13AのADCの入力のサンプル・ホールド・キャパシタのせいか、思うように性能がでなかった。

DBMはAとBという入力に対して、A±Bの周波数を出力とする。この場合はA=40kHzあるいは60kHz、B=39.841kHzあるいは59.880kHz。したがって40kHzに対しては159Hzと79.8kHz、60kHzに対しては120Hzと120kHzの出力が得られる。用があるのはそれぞれ低い方の周波数だけ。いらない方は後段のローパスフィルタで除去する。

DBMはアナログスイッチをつかったもの。入力Aと位相を反転したA'を交互に周波数Bで切り替える。そのあとLPFを兼ねたオペアンプによる増幅(ゲイン=10e3)をへてATtiny13AのADCに入る。

DBM後の周波数分布はこんな感じ。タイムコードがみえている。

ATtiny13Aではこれを約12.19kHzでサンプリングし、二次のIIRフィルタで目的の159Hzや120Hzを選択的に抽出したあと、検波と二値化を行う。

アナログ段のどこにもAGCがないが、ADCに何らかの形で入ってしまえばあとはソフトウェア的になんとかなる気がするので、たぶん何とかなるんじゃないかと思っている。いいのかよ。

あとたとえば159Hzだけを選択的に取り出すといっても、ここに引っかかるのは40kHz-39.841kHz=159Hzだけでなく39.841kHz-39.681kHz=159kHzも引っかかるけど無視。

ものっすごくスマートじゃないね。スマートじゃないけど できたからいいか、みたいな感じ。

とにかくノイズとの戦いな気がしてしょうがなかったのでノイズ対策はすごく厳重にした。そもそも電波受信ユニットにあるATtiny13Aがノイズだしまくりなので電源の分離からパターンの引き回しまでいろいろと。

ノイズはとにかく目に見えないので疑心暗鬼になる。

なんか服脱ぐと若干ノイズが減るんだよねーとか

   / ̄ ̄ ̄ ̄ ̄ ミ
  /   ,――――-ミ
 /  /  /   \ |
 |  /   ,(・) (・) |
  (6       つ  |
  |      ___  |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |      /__/ /  < なわけねえだろ!
/|         /\   \__________