2010年03月17日

PLL発振器メモ

XMEGAボードで CPLD を使っているが、たぶんマクロセルが余る。ピンも余っていて、L24A3 なら若干スペースもある。

それなら、PLL発振器を仕込んでおきたい。回路は、PLL を CPLD で作った記事: 「PLL発振器の製作」「PICマイコンを使ったPLL方式ステレオFMラジオ」を参考にしようかと思う。

あと、VCO をどうするか。3.3V で動作するものにしたいし、表面実装部品を使いたい。

... 容量可変ダイオードを使った、LC タンク回路の例は、リンク先にある。... のだが使いたいのは 1SV322



だいたい 8p -50p の範囲。これと手持ちの インダクタの共振周波数を計算してみると ...

    50pF 8pF
    6.8uH 8.6 MHz 21.6 MHz
    10uH 7.1 MHz 17.8 MHz
    22uH 4.8 MHz 12.0 MHz
    47uH 3.3 MHz 8.2 MHz

このあたり。だが 100 MHz ぐらいで発振させたい。


    50pF 8pF
    0.1uH 71 MHz 178 MHz
    0.33uH 39 MHz 98 MHz


どうもこのあたりを使わないといけなさそうだ。

共立で LAL02 の 0.27uH なら扱っている。デジキーで探すと、LK1608が見つかった。



100MHz 超えでも 大丈夫そうな感じ。

FM 向けだと、発振回路は、FETを使った例が多いのだが、ここは LVC2GU04 を使ったフランクリン発振回路を使いたい。以前自分でも記事を書いた覚えがあるが、「LC共振周波数を利用したインダクタンスメータ」の回路にしようかと思う。



回路図を書いてみた。4 線を CPLD に接続するわけだが、出力は GCK に割り当てる。CPLD の中は別途検討する。

出力以外も接続しているが、INV0 は発振を止めておくため。INV1 は不要だが、LVC2GU04 なしの実験をするため一応。

D1 は、1SV322 を予定していたが、SCV710 にするかも。D2 は 直列になっているだけだから 0.1u で良さそうな気もする。あと 数 MHz なら L を変えれば良いのだが、数十 MHz 以上で使えるかどうかについては、自信なし。



回路パターンは、こんな風にした。インバータは LVC2GU04 の予定で、SOT23-6 を予定していたが、0.65mm ピッチのものにするかも。インダクタは、CB2518 のパターンを 使用。低周波数に、CB2518 を使い、高周波数には NLHV25T を使う予定。

さて PLL 発振器が無事つくれたとして、何につかうのか?

ひとつはテスト用。きれいな正弦波が出るらしいので、オシロ機能で確認する。もうひとつは周波数カウンタのテスト。
-- インダクタを差し替えられるようにしておくと良いかも。

あとは、ダイレクトコンバージョン用のクロック生成。外部回路が必要だが、ラジオを作ってみたい。うまくすれば、AM だけでなく FM もいけるかも知れない。

追記: 購入した部品での周波数みつもり。

容量可変コンデンサ SVC710 と NLHV25T,NLCV25T を購入したので、見積もりしなおしてみる。

SVC710 は、だいたい 5p -40p の範囲。直列だと 5p - 20ぐらいか。これと インダクタの共振周波数を計算してみると ...

    20pF 5pF 自己共振周波数
    0.12uH 103 MHz 205 MHz NLHV25T 700 MHz
    0.33uH 62 MHz 124 MHz NLHV25T 400 MHz
    0.68uH 43 MHz 86 MHz NLHV25T 180 MHz
    3.3uH 19 MHz 39 MHz NLCV25T 55 MHz
    6.8uH 14 MHz 27 MHz NLCV25T 39 MHz
    15uH 9.2 MHz 18 MHz NLCV25T 21 MHz
    33uH 6.2 MHz 12.4 MHz NLCV25T 16 MHz
    :
    150uH 2.9 MHz 5.8 MHz (参考)
    220uH 2.4 MHz 4.8 MHz (参考)


上記の回路図の定数で果たしてどれぐらいまで発振するのだろうか?

NLCV25T で自己共振周波数が近いということは、インダクタの C の要素が 5pF に近いのと同じ? ならば 5pf - 20pF ではなく、10pF - 25pF のようなもの? 最高周波数が 落ちることは問題ないとしても、 最高周波数/最低周波数が 2 以上ないと困る...

やはり D2 を普通のコンデンサにしたい。

SVC710 を使った回路図をさがしてみたら LV2285VB という FMトランスミッタIC のデータシートにあった。(pdf)



FM 変調をかけるから、アノードは出力に接続されている。PLL では GND で OK 。PLL のループフィルタ相当がカソードに接続されている。

D2 相当はただのコンデンサ。数十pF を使っているが FM 変調の都合なのだろう。0.1uF ぐらいにしようかと思っていたが ... ちょっと考え直してみよう。

例えば 100pF を直列にすると 5pF - 40pF が 4.7pF - 28.5 pF になる。これに 5pF 並列にしたとすると 9.7pF - 33.5 pF 。

最大/最小 は 4 以上必要なので、×。

220pF なら 同じ計算で 38.8pF/9.8pF で ちょうど 4 倍ぐらい。-- 余裕をみて 330pF ぐらいが良さそう。1000pF でも良いように思うけれども一応。

さて、100kHz ステップで 周波数を設定できるようにするには、AVR の PWM で 100kHz を基準周波数として出力させる。最大 200MHz までとすると 1/1 〜 1/2000 で分周できるようにする必要がある。1/2048 は 11bit で比較値を格納するレジスタも 11bit 必要。合計 22bit も使うわけだが XC2C64A に入れられるだろうか?

AM用に考えると、最大 2MHz で 9kHz きざみ? これ自体は 8bitx2 で済みそうだが、33uH 使っても 12MHz 。6 倍の54kHz を PWM で出力して、最後に 1/6 すれば良い。たとえば 1/1 , 1/6 選択のレジスタ と 3bit のカウンタで 4bit 。合計で 20bit 。

PWM も周波数を変えられるわけだから、工夫することで bit数を減らせるはず。




ようやく、FreeHDL で PLL の回路を作ってシミュレーションできた。上は、REFCLK より PLLCLKの周波数が低いケースで、PLLCTRL が Hi-Z か H になっている。そうすると電圧が上がり、電圧が上がれば、容量可変コンデンサの容量が減り、周波数が上がるので OK 。下はその逆。参考にしたのは、CD74HC4046データシートのブロック図

  • ソース : pll-01.zip

    テストベンチと 分けてコンパイルする方法が分からなかったのだが、くっつけて 1 つにすれば 動くので Makefile で cat してビルドするようにしている。

    たぶん configuration を使うのだが、拾ってきた正しいサンプルでも エラーになるので諦めた。
posted by すz at 19:41| Comment(0) | TrackBack(0) | CPLD
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/36473004
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック