« 信号分岐のはなし | トップページ | 周波数逓倍(ていばい)のはなし »

2010年5月22日 (土)

PLL付VCOのはなし

PLL付VCOとは
私達が使い易く、かつ安価に可変周波数発振器を得るには1チップで PLLと VCOの入ったICが便利です。ここでは私がよく使った アナログデバイスの ADF4360シリーズを紹介します。
ハード的には
ADF4360シリーズには使用可能周波数によって種類があり、最後の "-X"で規定されています。
4360block
-0 .... 2400 - 2725MHz
-1 .... 2050 - 2450MHz
-2 .... 1850 - 2150MHz
-3 .... 1600 - 1950MHz
-4 .... 1450 - 1750MHz
-5 .... 1200 - 1400MHz
-6 .... 1050 - 1250MHz
-7 .... 350 - 1800MHz
-8 .... 65 - 400MHz
-9 .... 1.1 - 200MHz
右のブロック図は ADF4360-9のものです。これは4360-8の出力にデバイダをつけて1/2〜1/32 まで可変分周できるようにしてさらに低い周波数まで使えるようにしたICです。大きさは4mm角でリードレスSMDタイプなので、基板をおこさないと実験できないのが難点です。このICの特徴である VCO内蔵という点では2本のインダクタを接続するだけで使え、内部で8種類の同調コンデンサを自動で切り替えて可変範囲を広げていますが、上記周波数範囲で使えるという意味で、1つのインダクターで可変範囲がすべて使えるわけではないので注意が必要です。
4360schema下は使用回路例ですが出力2本を持っていますが、使わない時は OPENでかまいません。出力は最大で 0dBmです。インダクターに並列の抵抗は発振の安定のようです。パターン作成時の最大の問題はGND配置でしょう。VCOにつかうインダクターとAGNDは直近に配置し、デジタル関係の電源は 10Ω程度で供給元からフィルタリングして 、特にVCO電源はリップルフィルターをつけた方が良いでしょう。配置の点ではVtune近くに 56pFを配置する。CPにつくCRのGNDはCPGNDに近く配置する。一番悩むのは  Vvco-Cnに付ける 10uFでしょう。電圧が 3.3Vなのでセラミックコンデンサが良いですがピンが離れていることからどこを延ばすか悩みます...内層を使ってCnのそばの配置がいいでしょうか。リファレンス周波数の入力は必ずしもこのように 50Ωを入れなくても良いですが、伝送ラインが長くなる時に、このIC近くで終端しなさいという意味です。クロックの波形が悪いとスプリアスが多く出る場合があります。
ソフト的には
アクセスは3線式のシリアル制御で一般的ですが、送るデーターの最後2ビットでセットするレジスタを決めています。レジスタは3つあり、リファレンスデバイダ関連、周波数決定用のデバイダ、コントロールレジスタです。注意がマニュアルにもありますが、レジスタを送る順番です。電源投入時にリファレンス(R-Counter)->コントロールと送ったあとすぐに周波数決定レジスタ(N-Counter)を送っても設定され無い時があることです。しばらく時間待ち( 100mSから 1S)して再度送るのが確実です。N-Counterデーターが送られたタイミングでVCO内部コンデンサ自動切り替えが起こるので、R-Counterだけを変えることなく、変更時は全て送るようにするのが安心です。


|

« 信号分岐のはなし | トップページ | 周波数逓倍(ていばい)のはなし »

RF」カテゴリの記事

コメント

はじめまして!

PLLチップのことを色々と調べていたらこちらのサイトにたどりつきました。
知りたかった情報がいっぱいあって素晴らしいと思いました!

ひとつ教えていただきたいのですが、私は今28MHzの無線機を自作しようと
考えています。PLLの発振周波数は38MHz近辺を考えています。

こちらで紹介されているADF4360-9がVCOも内蔵されていて
1.1MHzから使用できるので便利かなと思ったのですが、
私の用途には使用可能でしょうか?

データシートを見たところ、65MHz以下は内蔵のdividerで分周するために
矩形波になってしまうように読めるので、多分だめかなと思ってます。

第2候補として同じアナデバのADF4001が5MHzから使用できるようなので、
ADF4360-9がだめなら普通にVCOをディスクリートで構成して使おうかと思いました。
但し、ADF4001のデータシートには200MHzクロックジェネレータPLLと
記載されているので、私の用途に使用しても大丈夫なのかちょっと心配していますが、
いかがなものでしょうか?

また、他にもしおすすめのチップがありましたら教えていただけるとありがたいです。

よろしくお願いします。m(_ _)m

投稿: 北風 | 2011年1月12日 (水) 09時27分

ADF4360-9 は 38MHzを出そうとすると最低でも1/2にしなければならず、分周して矩形波になります。しかしながら出力にトランスを使って同調すれば、スプリアスは実用レベルにはなるかと思います。ADF4001は「200MHzまで使えますよ」という意味でそのようにカタログに載っていますので38MHzも大丈夫です。利点はSOPのパッケージがあるので作りやすい点ですね。ADF4360のパッケージは底面にGNDが必要で端子ピッチが狭いですが、VCOがある点はコンパクトに出来て便利です。VCO、PLL初心者でしたら別々に作って確認できるADF4001のほうが確実ではないでしょうか?何度か経験があって「超小型に作りたい」って人にはADF4360はおすすめです。
以下の本はPLLは使ってませんが、トランシーバー製作の参考になりますよ。
・手作りトランシーバ入門―ランド方式で作る (HAM TECHNICAL SERIES)

投稿: SUDOTECK | 2011年1月12日 (水) 10時18分

早速のアドバイスいただき、ありがとうございます!

なるほど、トランスで同調させて正弦波に戻すという方法があったのですね。
参考になります。

VCO内蔵というのは大変魅力的なのですが、今後の勉強になること、
SOPパッケージがあることなどを考慮し、今回はADF4001でいきたいと思います。

おすすめいただいた本も、なかなかいいですね。
早速Amazonで購入しました。

またいろいろと教えてください。ありがとうございました。

投稿: 北風 | 2011年1月12日 (水) 16時29分

初めまして!

現在ADF4360-3の試作を作ってデバッグしており、Nカウンタの値がうまく設定されず、情報を探していたところたどり着きました。
-9ですとCnピンに10uFのコンデンサをつけるとNカウンタの書き込みまで15ms以上あけろとデータシートに書かれていますが、100msか1sあけた方が確実とおっしゃっています。データシート通りの時間だとうまくいかなかったのでしょうか?

投稿: yokada | 2012年10月15日 (月) 21時55分

すみません。追記です。

Nカウンタの書き込みの遅延時間はシリアルのクロックの周波数には依存しないのでしょうか?
データシートは遅い分には問題ないような書きっぷりですが、周波数が遅い分、Nカウンタの遅延時間にも影響してくるかなと思いまして…。

投稿: yokada | 2012年10月15日 (月) 22時07分

この遅延時間についての記載は、電源 ON したあとの初期状態ことですが、10uFをつけると内部の設定が安定するまで時間が増えるようで、最初にRクロックを設定した時にそれがどのくらい安定しているかです。要はNカウンタの設定のタイミングでロックする動作が始まるようなので、内部クロックが不安定なときにロックさせようとしてもうまくいかない場合があるということです。PLLはデジタルですが、ロックさせようとするループ系はアナログなので、時定数なるものが必ず存在しており、それが全くの電源 OFF 状態からと、各部にすこし電荷が残っている状態ではちょっと動作が変わった来るのを理解して下さい。
もちろんシリアルクロックが遅ければ、おっしゃるようにNカウンタ設定されるタイミングも遅くなります。カタログスペックはあくまでも AD の測定回路で測ったもので、量産回路でそのとおりかは分かりません。経験上ゆっくりで送るか 100mSぐらいウェイトをかけたほうが確実だったおぼえがあります。

投稿: SUDOTECK | 2012年10月15日 (月) 23時01分

早速回答頂きありがとうございます!

シンセサイザは初めて扱うので、
一週間四苦八苦しながら格闘しています。

RカウンタとコントロールレジスタはMUX OUTの値を変えて確認しているので書き込みは行えているのですが、Nカウンタだけどうしても上手くいかなかったので、遅延の影響かなと考えています。

今は6ms程度だったので、100ms程時間を取って試してみようと思います。

データシートにもパワーオン時の時は・・・と書かれていますが、途中で周波数を変える場合でも(システム的に時間に余裕があれば)遅延していても問題ないのでしょうか?

今はNカウンタが設定できていないですが、パワーオンから十分時間が経った後に、再度書き込んでも症状が変わらなかったので、1度ちゃんと設定できないと、後から何度やっても設定できないようでした。

投稿: yokada | 2012年10月16日 (火) 00時19分

クロックの周波数に応じて、遅延時間が変わるとすると、周波数が遅ければ遅いほど、遅延時間も長く取らなければならないですね。

投稿: yokada | 2012年10月16日 (火) 00時27分

カウンタの値の設定自体は周波数が変わっても、同じタイミングでかまいません(デジタル部だから) 周波数が2倍低くなったから2倍遅延しなければならないという訳でもないようです。電源ON 時に十分な遅延時間があれば問題無いです。
うまくいかないのは最初のクロック設定かコントロールデーターの設定がうまくいかなかったのではないでしょうか?
下記は昔作った 5つの PLLの LE信号を分けて制御する H8 のコードです。周波数は 200MHz台ですが設定の参考にして下さい。各レジスタについては1バイト(8Bit)を3回送ってます。pll_buff[]に計算したNカウンタの値が入ります。

このように多少時間がかかっても、レジスタ3つまとめて送るようにすると安心ですよ。

/* --------------------------------------------------------*/
/* OUT PLL DATA by pll_data(3) @20KHz Step */
/* --------------------------------------------------------*/
out_pll( unsigned char n )
{
int i ;

IO.PDR5.BYTE = 0x3f ; /* PLL LE ALL HIgh */
le_lo( n ) ; /* PLL LE Low */

out_byte( 0x00 ) ;
out_byte( 0x00) ; /* N=50 (0x32) 200KHz */
out_byte( 0xc9 ) ; /* Send R-Counter DATA */

IO.PDR1.BIT.B0 = 0; /* CLK Low */
IO.PDR5.BYTE = 0x3f ; /* PLL LE ALL HIgh */

for ( i=0;i<100;++i) { }

le_lo( n ) ; /* PLL LE Low */

out_byte( 0xc7 ) ;
out_byte( 0xf1 ) ; /* Out -9dBm */
out_byte( 0x20 ) ; /* LOCK DETECT */

IO.PDR1.BIT.B0 = 0; /* CLK Low */

IO.PDR5.BYTE = 0x3f ; /* PLL LE ALL HIgh */

for ( i=0;i<100;++i) { }

le_lo( n ) ; /* PLL LE Low */

out_byte( pll_buff[0] ) ;
out_byte( pll_buff[1] ) ;
out_byte( pll_buff[2] ) ;

IO.PDR1.BIT.B0 = 0; /* CLK Low */
IO.PDR5.BYTE = 0x3f ; /* PLL LE ALL HIgh */


}

投稿: SUDOTECK | 2012年10月16日 (火) 06時25分

ソースありがとうございます!
ゆっくり見てみます。

レジスタの書き込みはFPGAで行っており、クロックは10MHzを送っています。
カウンタを回しながら全体を送り、遅延部分はデータを0にして送っています。

クロックの設定というのはシリアルのクロックでしょうか?

RカウンタとコントロールのレジスタはMUXOUTの値を変えてチェックしたので、そこまでは問題なく設定できているのですが、Nカウンタだけなぜか受け付けてくれない状態です。

初めてデータシートの図を見るとLEと遅延部分はクロックが止まっている絵だったので止めてみましたが、何も変化はありませんでした。
デジタルの入力であればクロックが動いていても関係ないですね…。

投稿: yokada | 2012年10月16日 (火) 07時22分

以下チェック下さい
1) 10MHzのクロックはPin17 CLK に接続していますか? PLL用の Pin16 REF in には 何MHzを入れているのでしょうか?タイミングの内部処理でたぶん REFin は CLK の2〜4 倍ぐらいは必要ではないかと思います。
設定用の CLK を 1MHz ぐらいまで落とせませんか?
2)Nカウンタデーターの最後が DB1 = 1,DB0 = 0 となっていますか?
3)Nカウンタのプリスケーラを 8/9 で使っているのにA のカウンタに 8 以上の数値が入っていることはありませんか?

投稿: SUDOTECK | 2012年10月16日 (火) 09時05分

回答頂きありがとうございます。

>1) 10MHzのクロックはPin17 CLK に接続していますか? PLL用の Pin16 REF in には 何MHzを入れているのでしょうか?タイミングの内部処理でたぶん REFin は CLK の2~4 倍ぐらいは必要ではないかと思います。
設定用の CLK を 1MHz ぐらいまで落とせませんか?

ピンアサインはあっていました。
一時Cnピンのピンアサインが間違っており、電源電圧がかかっていましたが、出力してるのと、低インピーダンス入力ピンではないので壊れてないと思います。

REFは15MHzでシリアルCLKが10MHzなのでかなり近いです。近いと問題あるのでしょうか?1MHz位で試してみます。

2)Nカウンタデーターの最後が DB1 = 1,DB0 = 0 となっていますか?

コントロールビットは合っていました。

3)Nカウンタのプリスケーラを 8/9 で使っているのにA のカウンタに 8 以上の数値が入っていることはありませんか?

Rカウンタは50でPFDが300kHzになるようにしています。
Bが6488でAが0、Pが32/33で1.8GHz程度が出るように設定していますが、2.1GHz程度が出力されています。

投稿: yokada | 2012年10月16日 (火) 10時31分

Ref in 15MHz で Rカウンタ 50 ならば比較周波数は 15000KHz ÷ 50 = 300KHzであってます。
Nカウンタですが、 Pを 32/33 とした場合は Bに設定した 32倍の分周数となりますので、
6488 x 32 x 300KHz =62,284MHz となってしまいます。 Bは 6488÷ 32 = 202 Aに 6488-(202x32) = 24 を設定します。

投稿: SUDOTECK | 2012年10月16日 (火) 11時41分

回答ありがとうございます!

ご指摘の通りでした。
プリスケーラー値の認識を誤っておりました。
レジスタ設定表の32/33や8/9などの値がプリスケーラー値だと思っておりました。

ご指摘頂いた通り設定したところ想定の周波数で発振するようになりました。
後はチャージポンプ電流値やループフィルタの値を決めていかなくてはと思います。

投稿: yokada | 2012年10月17日 (水) 00時25分

まずはロック出来ておめでとうございます。
AD4360のNカウンタ・プリスケーラーの動作を追記しましたので、参考までご覧ください。
http://sudoteck.way-nifty.com/blog/2012/10/post-3984.html

投稿: SUDOTECK | 2012年10月17日 (水) 06時31分

記事にして頂きありがとうございます!

FPGAの内容をいじったり、出力の先を突っついたりしていたらロックがかからなくなってしまいました…。また明日見直しです…。

ところで社内のアナログ屋さんはこの別シリーズのシンセやデジタル減衰器のクロックを継続して出しているのを嫌がります。確かに止めた方が無難ですが内部回路のアナログ部とデジタル部のアイソレーションにもよると思います。空間に飛んでたら防ぎようがないですが。設定しないときは止めた方が良いのでしょうか?

投稿: yokada | 2012年10月18日 (木) 22時25分

確かに(-100dBmぐらいの弱い)アンテナからの信号を増幅する高感度なアナログ部にしたら、3.3V(50Ωだったら +3dBm)もスイングする矩形波が邪魔になるのはあたりまえです。空間アイソレーションは取れても 80dBぐらいじゃないでしょうかね。必要ない時は止めてあげましょう。定期的なアクセスも嫌がられますので、ロック状態はMIXOUT端子をモニタするのが良いでしょうね。

投稿: SUDOTECK | 2012年10月19日 (金) 07時57分

ありがとうございます!止めておいた方が無難ですね。
ところでデータシートのリファレンスデザインに出力にDCカットコンデンサに挟まれた終端抵抗がありますが、これは出力インピーダンスを50Ωに変換しているのでしょうか?

投稿: yokada | 2012年10月20日 (土) 16時12分

REFin の所の 50Ω だと思いますが、実は ICの入力端子は結構ハイインピーダンスで、そのまま水晶発振させるには好都合なのですが、他からクロックを供給してもらう場合、インピーダンスが高くて 50Ω にマッチングせず、不整合状態がおきて出力に変なスプリアス(不要な信号)が出る場合があります。
 この 50Ω は外部から来た信号ラインを 50Ω で終端するものですから、できるだけICのそばに配置すべきです。

投稿: SUDOTECK | 2012年10月20日 (土) 17時20分

ありがとうございます。シンセのRFOUTの出力もシングルやLCバラン回路の後、DCカットコンデンサを挟んだ後50Ω抵抗で終端しているようですが、RFOUT出力もハイインピーダンス出力なのでしょうか?

投稿: yokada | 2012年10月20日 (土) 20時26分

RF OUT は単純にトランジスタのコレクタ出力になっていますから、インピーダンスはコレクタに流れるバイアス電流で変わってくるので一概にはいえません。出力が最大でも 0dBm程度なので、この場合の出力インピーダンスは 50Ω よりはかなり高いのではないかと考えられます。

投稿: SUDOTECK | 2012年10月20日 (土) 20時45分

ありがとうございます!
RFOUTの出力電力によって後段とアンマッチになってしまうため、RFOUTの先に50Ωの終端抵抗が入っているのですね。

投稿: yokada | 2012年10月20日 (土) 22時45分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: PLL付VCOのはなし:

« 信号分岐のはなし | トップページ | 周波数逓倍(ていばい)のはなし »