位相差が90度の2つの出力を持つVFOを作りたい。 Silicon LabsのSi5351Aを使った例がネット上にたくさんあるので、手持ちもあるし2出力自体のVFOは既に経験があるのでSi5351Aを使ってみる。 Si5351は便利なICだけど、周波数の設定方法がなかなか複雑で理解しがたいので、マニュアルを見ながら覚え書きとして整理しておきたい。
秋月電子で購入できるモジュールの構成は、出力が3つで、PLLが2つとそれぞれの出力に対応するデバイダーが3つ、デバイダーの内蔵された出力に対応するドライバーが3つで構成されている。 したがって、2つの出力は同じPLLを共通に使うことになる。 モジュールに内蔵されている水晶発振器のクロックは25MHz。
周波数の決め方は、水晶発振器の周波数をPLLで逓倍し、さらにデバイダーで分周する構成になっている。 一見簡単に見えるが、いろいろ制限があるのでかなりややこしい。
まず、PLLで水晶発振器の出力を逓倍する。 PLLの発振周波数は、600M~900MHzに制限されている。 IC自体の逓倍できる倍数は、15~90倍だが、このモジュールの場合は、25MHzで固定されているので、逓倍可能倍数は、24~36倍になる。 この倍数は、偶数だとジッターが改善される。
デバイダーの分周数は、6~1800。 PLLの発振周波数との関係から出力の最低周波数は600MHz/1800 ≒ 333kHz、最大周波数は、900MHz/6 = 150MHzとなる。 マニュアルには、出力可能周波数は、2.5kHz~200MHzとある。
ここがややこしいところで、低い周波数は、ドライバーに更にデバイダーがあって、それを使うと333kHzを128分周できる。 これを使うと、333kHz / 128 ≒ 2.6kHzとなる。 ちょっと違うけど..。
150MHz以上は、分周比を4にできる設定があって、それを設定すると200MHzまで出力できる。 900MHzを使えば225MHzまで出力できそうだけど、仕様上は200MHzまでとなっている。 分周比も偶数だとジッターが抑えられる。
で、肝心の2つの出力の位相を調整する方法がいまいちよくわからない。 提示されている式は以下。
CLKx_PHOFF = Rounr(DesiredOffset(sec) * 4 * Fvco
この式を見ると、位相の調整というよりはdelayのようで、VCO周期の1/4単位で遅れを設定しているように見える。 なので、分周比を設定してやればよさそうだが、CLKx_PHOFFは7bitしかないので、分周比が128以上になると設定できないことになる。
世の中には、Si5351を使ったquadrature VFOは多数存在しているので、何か方法があるとは思うんだけど、今日のところは謎を残したまま終了。
明日、ネットで少し他人様のコードを確認してみたい。 また、簡単にコーディングできると思うので、実際に現物で確かめてみたい。