PIC18FでPLL-IC(TC9256P)の制御

 秋月電子でPIC18FシリーズのPIC18F14K50を入手しました。1個200円とお買い得です。また、ピン数も20ピンなので使いやすそうです。個人的にはプログラミングの「しやすさ」ということでは、AVRに魅力を感じますが、ラインナップはPICに魅力を感じます。特にピン数の少ないものはPICに使いやすいものが数多くラインナップされています。
 開発環境は、AVRがCコンパイラを含め完全な無料と言うことでメリットが大きかったのですが、PICもPIC18Fでは、マイクロチップ社の純正CコンパイラMPLAB C18が利用できるので開発にかかるコストもAVRに比較して劣ることはありません。

 これまで、PLL-ICのMB87001やTC9256Pを制御するのにAVRを使用しましたが、今回は新たに調達したPIC18F14K50を使用してみました。・・・といっても、同じC言語なのでAVRやらPICに固有の部分が異なるだけで以前の「FMラジオ用PLL-VFOの実験」と大きな変更はありません。

 ブレッドボードで実験します。エアバンドラジオに使用するつもりですが、VCOの発振周波数帯は、前回の実験と同じく、ブレッドボードでも安定して発振するFMラジオの65~80MHzをとしました。

 PICへの書き込みのためPICライターのPickit2を接続し、デバイスとしてPIC18F14K50が認識されると、電源電圧の警告メッセージがMPLABで出力されます。どうやらPIC18F14K50の電源は1.88~3.60Vの間でなければならないようです。実験ではLCDを使うので5Vの電源電圧を加えています。デバイスのポートは5Vの入出力に対応しているので問題ないと思いますが、5Vの電源電圧は問題ありかもしれません。ちょっと気持ちが悪いですが、Pickit2のVDDのケーブルをオープンにして開発することにしました。「ターゲットの電源を検出できない」旨のメッセージが出ますが書き込みには問題ありません。

 ブレッドボードでのVCOは、発振自体は安定しています。・・・が、スペアナでスペクトラムを確認すると近接にスプリアスがあります。PLLの実験で使用するレベルでは問題ありませんが、受信機のVFOとして利用するには問題ありそうです。

 AVRで実験した時と同じようにTC9256Pを制御するシリアル信号をオシロでキャプチャしたものです。CH1は、ピリオド信号、CH2はデータ、CH3がクロックとなっています。(下側は、上側のズームアップです。)

 データ列は、以下の32ビットのデータをLSBファーストで出力します。
   レジスタアドレス(8ビット)=0xD0
   プログラマブルカウントデータ(16ビット)=80MHz÷10KHz(基準周波数)=8000
   リファレンスコード(4ビット)=10(1010)・・基準周波数10KHz
   プログラマブルカウンタモード(2ビット)=1(01)・・FMパルススワロー方式
   水晶発振子選択ビット(2ビット)=2(10)・・・7.2MHz
 これらをLSBからのビット列であらわすと
   0000 1011 0000 0010 1111 1000 0101 1001
となります。

 実験で使用した回路図です。ループフィルタは最適化していません。とりあえず問題なくロックしますが、実際に使用するときはVCOに合わせて最適化する必要があります。
 AVRは28ピンのmegaシリーズを使用していたのですが、ピン数は、20ピンのPIC18F14K50がちょうどよさそうです。これでもまだ空きピンがあります。以前作成したエアバンド受信機のように受信信号レベルをAD変換ポートで取り込んで表示するなどの機能追加ができます。

 PIC18F14K50のプログラムです。AVRのプログラムをコンバートしました。ロータリーエンコーダの入力は、ポートBの状態変化割り込みを使用しました。PIC18F2550では、状態変化割り込みが使えるポートが限定されていたのですが、PIC18F14K50ではポートAとポートBに対応し、使いやすくなりました。
 周波数の可変ステップは、10KHzと100KHzの切り替えとしました。FMラジオでは、100KHzステップで十分ですが、エアバンドラジオなどは10KHzステップが必要です。VCOの発振周波数を変えればアマチュア無線の50MHzや144MHzのFMにもそのまま利用できると思います。
 EEPROMを使った周波数メモリーも実装しました。FM放送ではそれほど必要ではありませんが、エアバンドラジオ等では便利に使えます。スイッチでメモリーモードとVFOモードに切り替えます。このスイッチを長押し(約1秒)することで、メモリーに記録したりメモリーの周波数をVFOに呼び出したりします。

アイコン

pic18f_tc9256p_control.c 7.83 KB 230 downloads

...

2件のピンバック

コメントは現在停止中です。