Si5351単体で3MHz以下の直交信号を出力する

Si5351Aは Multisynth の delay パラメータを使って直交信号を出力することができるが,パラメータの設定範囲が最大127のため,直交信号を出力できる範囲はおよそ3MHz以上に限られる.(Si5351で直交信号) そこで 別の方法によって 3MHz以下の直交信号を得ることにした.

Si5351の構成は図通りで,Mutisynthの分周比M0, M1をある値で固定しておき,PLLのフィードバック分周比Nを変化させて周波数をコントロールするのが一般的.

si5351_01.png

今回のポイントは,M0, M1も分数分周比をとることができるので,M0, M1によって周波数を細かく制御することが可能という点.ただ,Mの値の制御ではスムーズな周波数制御はできないと思うのでMの制御は位相差π/2を得るためだけの手段とし,周波数の制御はPLLの分周比Nの制御で行う.

Mの制御で希望の位相差を得るには,M0,M1を時間差をつけて変化させればよい.
例えば,M0, M1 = m’ としておいてPLLリセットする(これで位相が0にそろう).
その後, M0 = m  (m<m’,  M1 = m’  はそのまま) とすれば  f I>f Q となり
周波数差 fd = f I – f Q  が生じる.
これによって,f I の位相が f Q に対して時間経過とともに進んでいく.
経過時間を Td  とすれば,位相の進み θd は次式で表される.

eq1

よって,θd = π/2 となる Td は,

eq2.png

となるので,この時間経過後に M1 = m にセットすれば,π/2の位相差を持った信号が得られる.この操作は一度行えばよい.それ以降,m の変更がなく,かつ,周波数の変更をPLLで行えば位相差は維持される.

例として,2.0MHzの直交信号を得る場合について手順を示す.
条件は,m = 300,  fd = 4Hz,  Multisynthのモードは fractional.

  1.   fvco = 300*2.0MHz = 600MHz となるよう  N =  600MHz/25MHz = 24  にセット
  2.  出力周波数 f I, fQ = 2.0MHz –  4Hz  となるよう,
    M0, M1=600MHz / ( 2MHz-4Hz ) = 300.0006 にセット
  3.  PLLリセット
  4.  M0 = 300 にセット
  5.  Td = 1/(4fd) = 62.5ms 経過後に M1 = 300 にセット

これで2MHzの直交信号が得られる.以降,周波数を変化させる場合,例えば1.99MHzに変更するには,Nのみ変更し,N = 1.99MHz*300 / 25MHz = 23.88 にセットする.
ここで重要なのはPLLリセットしないこと.
fd は任意だが小さい方が位相差の精度がよいかもしれない.ただしTdが大きくなり待ち時間が長くなる.

以下動作例

出力周波数=1.18MHz
20200827_193438

出力周波数=588kHz
20200827_193537.jpg

 

保証された動作ではないかもしれないが,いまのところ変な動作はしていない様子.

Si5351で直交信号

直交信号が得られると非常に有用なので,Si5351で試してみた.
MultiSynth のDelay機能を使えば,ch間の位相差(時間差)を設定できる.
結論としては,3MHz以上で直交信号を得ることができた.

サンプルコード(Si5351Aの設定に関する部分のみ)を修正しておいた.
ch0, ch1 に出力されるようになっている.

以下詳細.

Delayは,td= N/(4*fvco) —-(1)
で,N は,0~127の範囲で設定できる.

出力周波数は, fout=fvco/(M*R) —- (2)
(M:MultiSynthの分周比,R:出力dividerの分周比)

90度位相差に相当するDelayは, td=1/(4*fout) —- (3)

(1), (2), (3) より,
N=M*R

つまり,fvco と fout の比(fvco/fout )を設定すれば
90度の位相差となる.

ここでNの値として設定できるのが最大127まで,というのが制限になる.
fvcoの下限は375MHzであるから,
(fvco=fxtal*(a+b/c) で,a>=15, fxtal=25MHz.よって25*15=375 )

375/127≒2.95MHz.これが,直交信号が得られる下限となる.

ちなみに,VCO自体の周波数範囲は,
使用したチップの実測で 200MHz~1160MHz くらいあるようで,
意外と広帯域である.

3MHz
20170314_3M

7MHz
20170314_7M

14MHz
20170314_14M

21MHz
20170314_21M

28MHz
20170314_28M

50MHz
20170314_50M

Si5351

Clock Generator Si5351A搭載のモジュールを入手したので動かしてみた.
今回作成したサンプルコード
(Si5351Aの設定に関する部分のみ)を置いておく.

これだけで2.5kHz ~ 200MHzの任意の周波数を発生できる.
周波数分解能は出力周波数にもよるが,約6Hz(150MHz~200MHz時)
出力周波数が低いほど高分解能になる(Divider で分周するため).
20170313_1

7.000000MHz 出力
20170313_7M

受信機でモニタした限りでは,通信に使えそうなC/Nではないかと思う.
矩形波なので高調波の問題はあるが,
受信用のローカルOSCとして使用するならこのままでいいかもしれない.

200.000000MHz 出力
20170313_200M

こちらは,モニタできないので波形のみ観測.
100MHzのオシロなので,フィルタがかかってきれいな波形になっているが,
信号がおよそ200MHzで出ていることは確認できる.

位相も設定できるようなので,後日試してみたい.