DSPとTRXとのインターフェース  (2009.1.3)



 2009年が始まりました。昨年の11月半ばから更新をしていなかったのですが、これには訳があります。2008年を費やしてアナデバの995X-DDSをいじっていたわけですが、なんとか動作させることができ、さらにはTRXの外部ローカルにまで仕上げることもできました。995X-DDSはだいぶ前に仕入れてみたものの、配線できずに悶々としていたので、まぁ自分的には、こいつを動かすことができ、さらに特性も良好だったことは、かなりの成果だと思っていました(自画自賛)。 だた、仕上がってしまうと、「その次」の製作に関しては、まるで「あて」があるわけではなかったので、またもや「悶々」とする羽目に陥ったのです(笑)。

 かといって、まだまだ7360を4本も使ったTRXを作る気にもならず、しっくりこない日々が続きました。この間、いろいろ考えたのですが、最終的にはTRXの周辺を整備する一環で、DSPを用いた変調/復調部を作ろうと決めました。作りかけのリニアアンプ(2SK410PP)もあるのですが、これはやれば必ずなんらかの形にはなるので、少し後回しにすることにしました。自作でDSP(ソフトも自作だぞ!)を用いたリグから空に出ている人はかなりの少数派でしょうから、そのあたりもPWZのやる気を起こさせる要因でもありました。要するに、みんなと同じことはしたくないというのが考え方の根本にあるようです(笑)。

 いままで、DSPのお遊びとしては、一応、各種のSSB変調は実現することができています。受信系はこれからですが、プログラム的にはほとんど似たようなものですから、TXができたあとゆっくりやればいいでしょう。ところで、普通はHAMのDSP(デジタルシグナルプロセッシング)というとSDR(ソフトウェアラジオ)のほうが一般的のようですね。超高速になってきた昨今のPCの能力ならば、ちっぽけなクロックが2〜300MHzのDSPなんかよりはるかに高度な処理ができそうです。いきなり直交検波器の出力をPCのオーディオインターフェースにつっこんで、復調できる奴です。世の中のスキルフルなかたがたが寄ってたかってプログラムするのでしょうから、どんどんいいソフトが開発されているようですね。

 私もちょっと前に無線雑誌に付録の(基板を使わず)回路をコピーしてSDRを遊んだり、DREAMでDRMを受信したりしましたが、「あっという間」に飽きてしまいました。というのも、肝心な処理の「コア部分」はブラックボックスで、まったくアンタッチャブルだったからです。私の場合、運用が主ではありませんので、あの手のSDRをいじっていてもメーカー製品のTRXをいじっているのとなんら変わらないという感触でした。ということで、つたない話ではありますが、実際にいろいろプログラムして動作を変えることができるTMS32C6713-DSKを使って、TRXにつなぎこんでみようと考えたのです。

 さて、PICや組み込みマイコンどものプログラムは、I/Oを「がしがし」いじって非人間的な作業をさせるだけなので、あまり興味を持っていじる気は起きないですが、DSPの場合、数式どおりの通りの動作をするのが大変面白いですね。専門家ならいざ知らず、私のようなシロートにとって、こいつは一種の驚きでもあります。

 前置きが長くなりましたが、とりあえず、C6713DSKをTRXにインターフェースするときに考えないといけないのは、
@TRXのSTBY-SWによって送信/受信のモードを変えるという極めて「当たり前」の動作をさせる
Aスタンドアローン動作、すなわちPCのUSBひも付きを断ち切る
という関門があります。



DIP SW と LED (←説明になっていない)

 最初は@をどうしようか悩んでいたのですが、C6713DSKは4ビットの入力を持っていて、こいつを読み取ることができることに気がつきました。上の写真は4ビットのうち0と3ビットを読み取って、LEDに書き出しているところです。こいつは以前にあげた書籍にも使い方が載っていたので、好都合です。このSWを引き出してSTBY-SWにつなげれば、送受信ができそうです。Aは今後の課題ですね、と軽くギブアップします(笑)。

 次に考えたのは、インターフェースの方法です。C6713DSKはサンプリング周波数が48kHzで弄り回してきました。96kHzもできるのですが、そうすると、処理能力が足りなくなってくることが十分に予想できます。48kHzj時400次のFIRが2本が限界なので、96kHzじゃ、高度な処理はできそうにありません。ということで処理帯域は24kHz、中心周波数は12kHzという当たり前の周波数に落ち着くことになりました。




DSPインターフェースのブロック図

 そうするとTRXからDSPにインターフェースするためには一回周波数変換が必要です。上図のブロックのように、DBMで467kHzのローカルを使ってアップダウンコンバータを作ることにします。歪の増加は明らかなのですが、これ以外に方法は思いつきませんでした。




DSPインターフェース回路 (2009.1.4現在)

 回路図の一部を示します。467kHzなんてXtalは持っていないので、手元にあった10.65MHzのジャンク水晶を1/24して約443.7kHzを作っています。これは、そのうち11.208MHzを特注しようと思っています。ここでは、バスSWを用いたDBMを採用しました。455⇔12kHzなんてミクサーはまともなものが作れなくて困るのです。というのも、IFがDCまで扱えるような結線ができるタイプのDBMが必須になります。たとえば、途中頓挫した「夢の無線機シリーズ」で有名なHモードミクサーの場合、低い周波数で動かそうとすると、結線上なかなか難しいのでは?と思います。結局いいアイディアがなかったので、無手勝流に上のような回路をでっち上げてみました。なお、DBMをドライブするには、HC86のデューティ可変180度反転回路はCQ誌2006年8月号(p129)の進藤OMの回路を使わせていただきました。



DSPインターフェース (2009.1.4現在)

 上の写真は作りかけのバラックセットです。バスSW-DBM、ローカル、変調入力からバスSWをドライブするバッファ(右上)までマウントしています。最初はバッファはLM386にしようかと思ったのですが、12kHzで低歪になるか自信がなかったのと、DSP出力がかなり大きいレベルなので、かえって使いずらくて、これまた、稲葉保さんの本から「ぱくって」きた回路を使っています。

 この状態で、AFの2トーン(1kHz&1.8kHz)で変調したのが下図の様子です。本来の動作であるDSPからの信号は、中心周波数が12kHzですのでもっとずっと離れた「変調」周波数なのですが、まずは、特性を押さえるためにAF2トーンでやってみました。



2トーン時IMD

 入力は-5dBm×2、出力は-10dBm×2 IMD3が-77.1dBだったのでIIP3は-5+77/2=33.5dBm程度でした。これでも今までいじったどのダイオードDBMより良好です。コアを#43材を用いると若干劣化します。ここではFT-50#77でやった結果です。実は、まだ、バッファとDBMドライブ方法が完全に確立しているわけでもなく、試行錯誤の結果です。ただ、周波数が低い領域のハイIPのミクサーというのは前例がほとんど無く、どのあたりが限界なのかよくわかりません。たぶん、素子の実力を考えるとまだまだ改善できると思いますが、それに固執してると先に進まないので、とりあえず、このレベルで矛を収めることにします。

 キャリアサプレッションは40dB程度しか取れていません。実はデューティー可変回路のVRをいじってもほとんど変化しませんでした。もしかすると、なにか基本的な間違いをしているかもしれません。ただ、このキャリアはTX時はIFに実装されている広いフィルタ(BWが20kHz近いFM用か8kHz以上のAM用)を通過させようと思っているので、そこで減衰する(FM用でも-50dBはOK)ためまったく問題ありません。

<少し部品を追加> 【2009.5.3】

 昨日はDSPに久々に火を入れ(うーーん、こんな言い方は無いかなぁ)たら、いきなり出力が観測できなくてえらく往生しました。「壊れたか?」と焦って、違うプロジェクトをオープンしようとしたら、CCS3.1も狂ったのか、プロジェクトがグレーアウトしていて開けません。焦りに焦って、いろいろやっても動かなかったので、こんなときは再インストールが一番と、CCSを再インストールして、なんとか復帰できました。出力が出ない件はステレオの接続ケーブルのルーコンとわかり、これも一安心。しかし、あまりかまってやらないと機械もつむじを曲げるのでしょうかね。

 だいぶご無沙汰だったのですが、少し時間ができたので、このインターフェースを進めることにしました。今回の変更はクロック回路とLPFの追加です。 



 変更したインターフェース部の回路

 以前は水晶発振器を分周していましたが、今回はセラロックにしてみました。450近辺の発振周波数を443(=455-12)kHzまで下げるのですから、かなりの容量を付加しています。写真にあるように化け物のようなシルバードマイカ(これはここで入手)を抱かせています。一応、こんなもので安定度は良好に保てています。また、LPFも追加です。これの効能はあとで書きます。




変更したインターフェース部の基板

 念のためセラロックの発振スペクトラムを見ておきました。こんなかんじで良好です。水晶よりは劣るでしょうが、あまり気にするほどのことはないと思います。




セラロックの発振スペクトラム
(SPAN:5kHz RBW:30Hz)

 さて、このインターフェースの変調スペクトラムは以前に2トーンで示したので省略しますが、実は、大変なのは、こいつの高次のスプリアスなのです。方形波のキャリアで変調するので、高調波がてんこ盛りです。以下のようですので、あきれ返ってしまいます。




変調スペクトラム

(CENTER:5MHz SPAN:10MHz RBW:10kHz)

 事実上は変調の場合、このあとのフィルターできれいに無くなるはずなので、気にしなくてもいいのかもしれませんが、まぁ、気休めに安直に作った定K形LCフィルタを入れています。下は作ったLPF単独の特性です。カットオフは500kHz近辺にありそうです。443kHz近辺ではなんだかディップに見舞われ、2.5dBくらい落ちてしまっています。まぁ、損失の多そうなチョークコイルとマイラーコンデンサですので、仕方がないのかもしれません。このくらいの損失は気にしないでいきます。




LPFの特性
(CENTER:1MHz SPAN:2MHz RBW:10kHz)


このLPFをかけると、ほれ、このとおり。きれいさっぱりスプリアスが無くなります。ここまでしなくてもいいのかもしれませんが、いつも情報をやりとりしているLAOさんの影響を色濃く受けてしまったようです(笑)。




LPFを挿入後の変調スペクトラム
(CENTER:5MHz SPAN:10MHz RBW:10kHz)


 DSPのほうは、いまのところ、ヒルベルト変換タイプと複素フィルタを用いたRXを検討中です。RXの場合は演算が少なくてすむ、ヒルベルト変換タイプがいいかもしれません。