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

Si5351Aその2

$
0
0
 3CHクロックジェネレータSi5351Aの勉強をしています。

 前回は、Arduino のライブラリ EtherKit Si5351のサンプルプログラムを使って、動作を確認しました。

 今回は、ライブラリを使わないで、信号を発生させてみます。

 参考にしたのは、JL1VNQ局の「万年準備中のブログ」の記事です。

 この記事では、PIC16F1827でSi5351Aをコントロールしています。ソースリストが公開されていましたので、Arduinoに移植してみました。(JL1VNQ局ありがとうございます。)

 PLLAの発振周波数 fvco=800MHz  とし、CLOCK0の出力周波数fout=10MHzを発生させるスケッチです。

---------------------------------------
#include <Wire.h>
const byte si5351_Addr = 0x60;
void setup(){
  Wire.begin();        // Arduino is Master.
  si5351_cmd(3,0xFF);  //Disable Output
  si5351_cmd(16,0x80); //CLOCK0 Power down
  PLL_set();
  MS0_set();
  si5351_cmd(177,0xA0);//Reset PLLA and PLLB
  si5351_cmd(16,0x4F); //CLOCK0 Power up
  si5351_cmd(3,0xFE);  //Enable CLOCK0
}
void loop(){
}
void si5351_cmd(byte Reg , byte Data){
  Wire.beginTransmission(si5351_Addr);
  Wire.write(Reg);
  Wire.write(Data);
  Wire.endTransmission();
}
//fvco = fxtal * (a+(b/c)
//a=32  b=0  c=1
//MSNA_P1=128*a+(128*(b/c))-512=128*32+(128*(0/1)-512=3584=B1110 0000 0000
//MSNA_P2=128*b-c*(128*(b/c)=128*0-1*(128*(0/1))=0
//MSNA_P3=c=1
void PLL_set(){
  si5351_cmd(26,0);         //MSNA_P3[15:8]
  si5351_cmd(27,1);         //MSNA_P3[7:0]
  si5351_cmd(28,0);         //MSNA_P1[17:16]
  si5351_cmd(29,B00001110); //MSNA_P1[15:8]
  si5351_cmd(30,0);         //MSNA_P1[7:0]
  si5351_cmd(31,0);         //MSNA_P3[19:16]MSNA_P2[19:16]
  si5351_cmd(32,0);         //MSNA_P2[15:8]
  si5351_cmd(33,0);         //MSNA_P2[7:0]
}
//fout = fvco / (a+(b/c)
//a=80  b=0  c=1
//MS0_P1=128*a+(128*(b/c))-512=128*80+(128*(0/1)-512=9728=B0010 0110 0000 0000
//MS0_P2=128*b-c*(128*(b/c)=128*0-1*(128*(0/1))=0
//MS0_P3=c=1
void MS0_set(){
  si5351_cmd(42,0);         //MS0_P3[15:8]
  si5351_cmd(43,1);         //MS0_P3[7:0]
  si5351_cmd(44,0);         //MS0_P1[17:16]
  si5351_cmd(45,B00100110); //MS0_P1[15:8]
  si5351_cmd(46,0);         //MS0_P1[7:0]
  si5351_cmd(47,0);         //MS0_P3[19:16]MS0_P2[19:16]
  si5351_cmd(48,0);         //MS0_P2[15:8]
  si5351_cmd(49,0);         //MS0_P2[7:0]
}

 コンパイルしたスケッチサイズは、2266byte(7%)です。

 詳しい説明は、次回に行いますが、とりあえず、10MHzを発生することができました。(周波数は、やや低めですが・・)

 出力は、12.3dBm=17mWでした。(出力は、レジスタ16で調整できます)

イメージ 1


 Si5351のデータシートレジスタ説明書AN619を読みながら、勉強を進めていきます。

 ただ、どちらも英文ですので、どこまで理解できるか、?ですが、できるだけ分かりやすく解説をしていきたいと思います。

 目標は、Si5351Aを使ったVFOです。これも既にJL1VNQ局のブログに例があり、参考にさせていただきたいと思います。


 

 

Viewing all articles
Browse latest Browse all 440

Trending Articles