マイコンと組み合わせればVFOとして十分実用になるし安価に手に入るため、お手軽な発振器として従来のDDSにとって代わってしまったようです。
自分もVNシリーズの発振源として重宝していますが、そろそろ新しいプロジェクトということで高い周波数の発振テストを行いました。以前50MHz台のテストを行い問題なく設定周波数で発振したのを確認したので今度は144MHz帯を狙いテストしたところ、なぜか90MHz台と設定値と異なる出力周波数でした。
いろいろと設定周波数を変えながら検証していくと、どうやら80MHz以上を設定した場合ダメらしいことが分かりました。
そこで原因を探るべくまずはSi5351Aの設定パラメータの関係と、周波数設定の考え方について以前の記事をみながら再度おさらいすることにしました。
Si5351Aの周波数設定式
1.VCO周波数設定(PLLA, PLLB)
fvco = fXTAL x (a + b / c)
a...15~90, b...0~1048575, c...1~1048575, fXTAL = 25MHz or 27MHz
fvco = 375MHz~900MHz
2.VCO分周設定(MultiSynth0,1,2,...)
fout = fvco / (d + e / f)
d...4~900, e...0~1048575, f...1~1048575
3.設定周波数とパラメータ値の関係
a(16~32(36)) | c | d | R | |
80~180MHz | 2F | 500000 | 5 | 0 |
40~80MHz | 4F | 250000 | 10 | 0 |
36~40MHz | 8F | 125000 | 20 | 0 |
16~36MHz | F | 1000000 | 25 | 0 |
8~16MHz | 2F | 500000 | 50 | 0 |
4~8MHz | 4F | 250000 | 100 | 0 |
2~4MHz | 8F | 125000 | 200 | 0 |
1~2MHz | 16F | 62500 | 400 | 0 |
0.5~1MHz | 16F | 62500 | 400 | 2 |
0.25~0.5MHz | 16F | 62500 | 400 | 4 |
0.125~0.25MHz | 16F | 62500 | 400 | 8 |
62.5~125kHz | 16F | 62500 | 400 | 16 |
31.25~62.5kHz | 16F | 62500 | 400 | 32 |
15.625~31.25kHz | 16F | 62500 | 400 | 64 |
8~15.625kHz | 16F | 62500 | 400 | 128 |
さてこれらのパラメータの設定値、一見問題なさそうに見えますが、あらためてSi5351Aのレジスタマップ説明書AN619でおそらく最新版Rev.0.7の記述をたどってみると・・・
なんと2.でいうところの d + e / f 値は8以上でないとダメだということです。つまり分周比を整数にするため e / f を0にすると、d値は8以下を設定できないことになります。これは気が付きませんでした。つまりいままでの設定アルゴリズムでは80MHz以上の場合d値が5と設定できない値であったため、期待どおりの周波数が出力されなかったというわけですね。
では80MHz以上設定するにはどうしたらいいでしょうか?
この設定でd値を4とすることによって200MHzまで設定が可能になるということです。
以上を踏まえ改定版設定表を作ってみました。
(追記(2019.11.1):80MHzから100MHzまでの設定を変更しました)
(追記(2019.11.1):80MHzから100MHzまでの設定を変更しました)
a(16~32(36)) | c | d | R | |
100~200MHz※ 80~100MHz |
4/25 F 8/25 F |
625000 312500 |
4 8 |
1 1 |
40~80MHz | 4/10 F | 250000 | 10 | 1 |
36~40MHz | 8/10 F | 125000 | 20 | 1 |
16~36MHz | F | 1000000 | 25 | 1 |
8~16MHz | 2F | 500000 | 50 | 1 |
4~8MHz | 4F | 250000 | 100 | 1 |
2~4MHz | 8F | 125000 | 200 | 1 |
1~2MHz | 16F | 62500 | 400 | 1 |
0.5~1MHz | 16F | 62500 | 400 | 2 |
0.25~0.5MHz | 16F | 62500 | 400 | 4 |
0.125~0.25MHz | 16F | 62500 | 400 | 8 |
62.5~125kHz | 16F | 62500 | 400 | 16 |
31.25~62.5kHz | 16F | 62500 | 400 | 32 |
15.625~31.25kHz | 16F | 62500 | 400 | 64 |
8~15.625kHz | 16F | 62500 | 400 | 128 |
注:36MHz以上は10Hzステップ
※・・・2.の条件に依らずP1=0, P2=0, P3=1, MSx_INT=1, MSx_DIV4=3に設定
この設定表を基にコードを書き直し実機でテストしてみました。(144.10000MHzに設定)
というわけで、設定どおりの周波数で出力できました。(右上の青い周波数値)