PLL radio / AM ラジオ : PIC18F1320, LA1600, LM386

小学生の私は、ラジカセの前に座ってヒット曲をカセット・テープに録音していた。指先に意識を集中させてバリコンのダイヤルを回し、耳で同調点を確認する。金庫破りの泥棒を連想して滑稽である。尤も、子供の私に周波数を液晶表示させる工作は、全く夢物語であった。やがて analog から digital 全盛の時代になり、今では one-chip microcomputer が数百円で購入できてしまう。夢の工作が簡単に実現できる時代となった。しかし、PLL 技術で制御する瞬時で正確な同調には驚嘆しながらも、ラジカセの時代を生きた私には、ポリ・バリコンやエア・バリコンへの恋心を捨て去れないのも事実である。

【 参考文献 】 トラ技 2010年1月号 PICマイコンで作るPLL用位相比較器

(LCD の下に PIC と三端子レギュレータが隠れています)

PIC18F1320  (5V)

AM radio IC : LA1600 (5V)

Audio Amp : LM386 (5V)

【 選局 】

タクトスイッチによる高位割り込みで、LCD 表示と CCPR1 register 値を変更。

SW1(RB0)またはSW2(RB1)スイッチで割込を発生させた状態で、SW3(RB5)スイッチにより preset 放送局(大阪エリア)を巡回して選択。
SW3(RB5)を押した状態でSW1(RB0)またはSW2(RB1)を離して割込から抜け出る。

【 PLL回路 】

局部発振回路の信号を増幅回路(2SK241, 2SC3732)を経て PIC Timer1 に入力。

バリキャップのコントロール電圧を 0 – 9V の範囲で確保するために、PIC で tree state buffer : L293D (Supply Voltage 9V, Logic Voltage 5V) を制御。

L293D の出力を lag lead filter で平滑化、Voltage Follower 回路を間置させて、同調回路のバリキャップ 1SV149(2個対向直列) に印加。

局部発振周波数は中間周波数だけ高い(high side injection)ので、差分を非反転加算回路で昇圧して局部発振回路のバリキャップに印加(OSC コイルのコアで調整して良い。今回は Op Amp で非反転加算回路を評価したかっただけ)。

【 Pin connection of 18F1320 】

A 19.6608MHz crystal resonator is connected to the OSC1 and
OSC2 pins.

LCD : ACM0802C-NLW-BBH ( RS – RB4, R/W – GND, E – RB3, Data bus: DB4 – RA0, DB5 – RA1, DB6 – RA2, DB7 – RA3 );

Switch (pull down) : SW1 – RB0 (INT0), SW2 – RB1 (INT1), SW3 – RB5;

Output of the local oscillator in the receiver – Amp – RB6/T13CKI (Timer1);

L293D :  enable/disable pin – RB2; input pin – RB7;

【 PLL用デモ・プログラム 】

(containing a HEX file only, compiled by XC8 for PIC18F1320)

以下の2つの低位割り込みで位相比較し、tree state buffer の出力を制御。

Timer2 で位相比較周期 10msec(基準周波数 100Hz)の割り込みを発生。

Timer1 and CCP1 Compare Mode で目的の周波数まで局部発振の信号をカウントして割り込みを発生。

【 実験結果 】 当然ながら私の指先の精度は PLL 同調に遠く及ばない。