Quantcast
Channel: JH7UBCブログ
Viewing all articles
Browse latest Browse all 440

Si5351Aその3

$
0
0
 3CHクロックジェネレータSi5251Aの構造と制御方法について、分かったところまで書いておきます。(まだ、完全には理解していません。)

 まず、構造と働きです。(図はデータシートから転載)

イメージ 2

 XA,XBに水晶を接続して、基準周波数を発振させます。秋月電子のモジュールではfxtal=25MHzです。

 これを元にPLLAおよびPLLBで375MHz~900MHzを発生させます。PLL周波数はfvcoで表します。PLL周波数の設定は、レジスタ内のMSNxP1~MSNxP3で行います。(xはA,B)

 PLLで発生させた周波数を分周器MultiSynth0~MultiSynth2で分周してCLK0~CLK2に出力します。これをfoutで表します。分周器の設定は、レジスタ内のMSxP1~MSxP3で行います。(x=0~3) どちらのPLLを使用するかは、MSx_SRCで決めることができます。

 R0~R1は分周器で、1/1~1/128を指定できます。デフォルトは、1/1です。
 出力強度もレジスタで設定することができます。
 出力周波数foutは、2.5KHz~150MHzです。

 このように、Si5351Aの各種設定は、全てレジスタの値で行われています。したがって、Si5351Aをコントロールするには、I2C通信によって各レジスタに設定値を書き込めばよいわけです。

 I2C通信で書き込む方法は、1バイト書き込みと2バイト以上の書き込みがあり、次のようなフォーマットで行います。

イメージ 3

 今回は、分かりやすくするため、1バイト書き込みで行いました。
 Arduinoでは、Wireライブラリを使用して次のように行います。Si5351Aのスレーブアドレスは、0x60です。

 setup(){
   Wire,begin();
  }
として、Arduinoをマスターとします。

 Wire,beginTransmission(Si5351Aアドレス);
  Wire,write(レジスタアドレス);
 Wire,write(データ);
 Wire.endTransmission();
で、ArduinoからSi5351Aにレジスタアドレスとデータが送信され、書き込みが行われます。

 次に、Si5351Aのプログラミングの方法です。
 データシートによると次のように行います。

イメージ 1

 今回は、割り込みは省略しています。

 次回は、Si5351Aのレジスタについて、書いてみます。

Viewing all articles
Browse latest Browse all 440