JA1QVM

アマチュア無線機とアンテナを作ることそして温泉が大好き。
何とかスムーズに周波数が可変出来て、尚且つスプリアスも少ないプログラムが完成です。
後は実際のバランスド・モジュレータに繋いで、発生する SSB信号の純度の観測です。
少し前のブログで紹介した、手作りの W-DBM を接続して実験中の写真を・・・

イメージ 1
低周波信号は W/G の位相差 90度の 800-1250Hz を使いました。

全く高周波補正無しで(Si5351A出力を W-DBM に直付)逆サイド・サプレッションは 4〜10MHz/-40db 前後です。
此の数値は悪くはないですが、SSB ジェネレータとしては失格でしょう。
其処で周波数帯域は狭くなりますが、位相補正として Si5351A の片方にトリーマ・コンデンサを抱かせました。
その効果は絶大で・・・

イメージ 2
キャリアの位置は、画面のほぼ中央になります。
私の SSB ジェネレータの線引きレベル・・・
キャリア・サプレッション:    -60db
逆サイド・サプレッション:   -60db
IMD/3 :                          -60db
・・・何とかクリアしています。
因みに W-DBM では無く、片肺動作?では下の様になりました。

イメージ 3
いわゆるダブル・サイドバンドのスペクトルですね!

心配した補正による周波数帯域の狭まりは当然有りましたが、7000〜7200kHz では全く問題無い様です。
此の特性を目の当りにすると、低周波側の位相差 90度信号をどのようにして作るのかワクワクします。

最後に長いですが無事に組めた Si5351A 制御プログラムを自慢?げに、下に貼って置きます・・・

//**Si5351**4-10MHz/1HzSTEP*12F683
 周波数補正あり  I/Q 2信号**/

 #include <pic.h>
 
 __CONFIG(FOSC_INTOSCIO&WDTE_OFF
 &PWRTE_ON&BOREN_ON&MCLRE_OFF
 &CP_OFF&IESO_OFF&FCMEN_OFF);
 #define _XTAL_FREQ 8000000
 #define SDA GP1
 #define SCL GP0
 #define TRISSDA TRISIO1
 
 unsigned char data,regi,cmd,ER,EL,JJ,N;
 unsigned char P1H,P1L,P2H,P2L;
 unsigned char h1,h2,h3,h4,h5,h6,h7,h8;
 unsigned long B1,F,J;
 
 void main(){
 OSCCON=0b01110000;
 ANSEL =0b00000000;
 CMCON0=0b00000111;
 TRISIO=0b00111100;
 GPIO  =0b00000000;
 
 F=7150000;JJ=133;J=100;N=0;
 FB();FC();FA();FK();VFO();
 
 while(1){
 FC();LCN();CC();EN();
 FS();FB();FK();FBBC1();
}
}
 FB(){
 B1=F*2-7999828;
}
 FS(){
 if (F>=10000000)   F=10000000;
 if (F<=4000000)    F=4000000;
}
 FC(){
 unsigned int K1,K2;
 K1=F%10000;K2=F/10000;
 h1=(K1%100)%10;h2=(K1%100)/10;
 h3=(K1/100)%10;h4=(K1/100)/10;
 h5=(K2%100)%10;h6=(K2%100)/10;
 h7=(K2/100)%10;h8=(K2/100)/10;
}
 EN(){
loop: ER=0;EL=0;
 if ((GP5==0)&&(GP4==0)){
 __delay_ms(2);if (GP5==1){
 ER=1;goto loap;
} if (GP4==1){ EL=1;goto loap;
}
}
 if ((GP2==0)||(GP3==0)){LCC();}
 goto loop;
loap: F=F+(EL*J)-(ER*J);
}
 FK(){
 unsigned int SS;
 SS=1536+(B1*128/499989);
 P1L=SS&255;P1H=(SS>>8)&255; 
 SS=(B1-((B1*128/499989)*499989/128));
 P2L=SS&255;P2H=(SS>>8)&255;
}
 LCN(){ 
 LC(12);LC(128);
 LD(48+h8);LD(48+h7);LD(48+h6);LD(48+h5);
 LD(48+h4);LD(48+h3);LD(48+h2);LD(48+h1);
}
 LCC(){ 
 if (GP2==0) LC(JJ=JJ-1);
 else LC(JJ=JJ+1);
 if (JJ<=129) JJ=135;
 if (JJ>=136) JJ=130;
 CC();
 if (JJ==135) J=1;
 if (JJ==134) J=10;
 if (JJ==133) J=100;
 if (JJ==132) J=1000;
 if (JJ==131) J=10000;
 if (JJ==130) J=100000;
 __delay_ms(500);
}
 CC(){ 
 LC(JJ);LC(14);
}
 FBBC1(){
 VD(34,15);VD(35,66); //P3H,P3L
 VD(37,P1H);VD(38,P1L);
 VD(40,P2H);VD(41,P2L);
}
 FBBC2(){
 //VD(34,15);VD(35,66);
 VD(50,0);VD(51,1);VD(53,48);VD(54,0);
 VD(58,0);VD(59,1);VD(61,48);VD(62,0);
}
 VFO(){
 VD(3,255);VD(17,128);VD(18,128);
 VD(183,128);
 VD(167,100);
 FBBC1();FBBC2();
 VD(15,4);VD(17,109);VD(18,109);
 VD(3,249);VD(177,128);
}
 STA(){
 SDA=0;TRISSDA=0;
}
 STP(){
 SCL=0;__delay_us(1);
 SDA=0;TRISSDA=0;
 SCL=1;__delay_us(1);
 SDA=1;__delay_us(10);
}
 OUT(data){
 unsigned char BP,ACK,i;
 TRISSDA=0;BP=128;
 for(i=0;i<8;i++){ SCL=0;
 if((data&BP)!=0) SDA=1;
 else SDA=0;
 BP=BP>>1;SCL=1;
}
 SCL=0;TRISSDA=1;__delay_us(2);
 SCL=1;__delay_us(2);
 ACK=SDA;return(ACK);
}
 FA(){
 __delay_ms(100);
 LC(56);LC(57);LC(20);
 LC(120);LC(93);
 LC(106);__delay_ms(300);
 LC(56);LC(12);LC(1);
}
 LD(data){
 STA();OUT(124);OUT(64);OUT(data);
 STP();__delay_us(30);
}
 VD(regi,data){
 STA();OUT(192);OUT(regi);OUT(data);
 STP();__delay_us(30);
}
 LC(cmd){
 STA();OUT(124);OUT(0);
 OUT(cmd);STP();
 if((cmd==1)||(cmd==2))
 __delay_ms(2);
 else  __delay_us(30);
}

くれぐれもパクる人は自己責任でお願いします。
by    JA1QVM

この記事に

開く コメント(6)[NEW]

開く トラックバック(0)

確実に考える能力が低下しつつある(ボケが始まっている?)脳をフル回転させて、クロックジェネレータ Si5351Aの能書を読んでいます。
いわゆる”AN619"ですね。
其の中の 167レジスタの解説です。

・・・Register 167. CLK2 Initial Phase Offset・・・
・・・CLK2_PHOFF[6:0]・・・

全て英文で細かい内容も有りましたが、簡単に云うと 167-Regに数値(6:0ですから 0〜127)を代入すると、其れに見合って位相ズレした信号が CLK2 に出力されると云う事らしいです。
当然、ズレる前の基準信号は CLK1 から出力される前提で話を進めます。
あくまでも目標は位相差 90度の2信号ですから CLK1-CLK2=90度にしなくてはイケマせん。
此処で167-Reg に「1」を入れるとはどう云う事なのか?
解らない英文はOMに訊いて・・・「1」を入れると分周する前の PLL周波数が 90度ずれる・・・を確認しました。
つまり、分周比が 100ならば 167-Reg に「100」を入れとけば、PLL周波数を可変しても、常に 90度位相差信号が得られる訳です。
当に夢の様な話で、早速プログラムを考えて実行します。
しかも私の作った周波数設定のプログラムでは、1オクターブ辺りの分周比は変化しません。
理屈では PLL周波数 500-1000MHzで、分周比を 100 に設定して、167-Reg に「100」を代入すれば、CLK1/CLK2に 5-10MHzの連続した 90度位相差信号が表れます。

毎度変り映えしない、12F683/Si5351A実験基板の出力ピンを CLK1/CLK2として、あ〜だ、こ〜だプログラムを書き直している写真です。

イメージ 1

固定周波数だと、そこそこ良いのですが・・・

イメージ 2

スムーズな連続可変にしようとすると波形が乱れます。
思いの他、奥が深いようで当分楽しめます。

by     JA1QVM

この記事に

開く コメント(2)

開く トラックバック(0)

梅雨に入る前に、何処か秘湯の温泉に行きた〜い・・・と云う事で福島県と山形県の県境にある、凄〜い山奥の温泉に行って来ます。

此処、埼玉県から東北自動車道を北上して、福島市から米沢市に抜ける国道13で行きます。

出発して3時間程で、取りあえず無事に福島市に到着です・・・結構遠かったな〜。
旅の無事を祈って、岩谷観音に御参りです。
イメージ 1
此の後、作曲家の古関裕而記念館を廻り13道で米沢方面へ・・・


東栗子トンネルを抜けて信号の無い3差路を左折すると、いよいよ秘湯の雰囲気が漂う山道へ入ります。
距離にすれば大した事ないのですが流石に秘湯ですから、細い山道をユックリ進みます。

そして着きました・・・
イメージ 2

イメージ 3
とても良い雰囲気です。
イメージ 4
こんな事が書いてある小屋が有りました。
イメージ 5
「前回は在ったかな〜」ですね。
其れなりの水圧管も来ており、発電機が回っている音もします。

早速、部屋に通されて・・・
イメージ 6
疲れた顔で失礼しました。
此の後は直に浴衣に着替えて、自慢の岩野天風呂にGO〜です。
一応、此処「福島屋」に2泊して、間の1日はもっと山奥の姥湯温泉に立ち寄りで楽しもうと思います。

**********
**********

舗装はされていますが、細い急坂をやっと登って来て(途中スイッチバックみたいな所が有る)温泉の駐車場に到着しました。
イメージ 7
車を降りて写真を撮りましたが、遥か彼方に有る建物が此れから寄る「姥湯温泉・枡形屋」です。
途中吊橋を渡り・・・
イメージ 8
やっと辿り着きました。(正直、爺さん・婆さんにはキツイです)
イメージ 9
でも、苦労してでも此処の露天風呂は素晴らしいです。
ヤミツキに成ります。
ゆっく〜り、のんび〜り岩風呂に浸かって滑川温泉に戻ります。

**********
**********

さて2泊して、場所も埼玉からは随分遠いですから、高速道路で真っ直ぐに帰ろうとしましたが・・・やはりそう云う事にはならない様です。
吾妻小富士を見た〜い! で浄土平に寄り道です。
イメージ 10
立派な散策用の木道が出来ていました。
前は有ったかな〜と思いつつ・・・
イメージ 11
写真を一枚・・・私はコンナに腹が出てない筈ですが・・・

浄土平湿原を散策した後は、おとなしく家路につきました。
今回もプロデュースしてくれたカミサンに感謝して終ります。
by    JA1QVM

この記事に

開く コメント(6)

開く トラックバック(0)

最近、目にした(耳にした?)キャッチフレーズで「日本一長い・バラのトンネル」と云うのが有ります。
大して気にも止めず、やり過していました。
でも孫の写真を見て、その撮影場所が「日本一・・・・」と判り、慌てて地図を調べました。
有りました、ありました。 正式には「平成の森公園」で埼玉県・川島町と書いてあります。
私の住んでいる坂戸市の隣町に「在ったのだ〜」ですね。
此れはもう行かなくてはイケマセン。
訳の判らないPICマイコンのプログラムに没頭している爺さんには、気が紛れて良いでしょう。

車で30分程で着きました。
平日ですが、結構賑わっています(殆どが爺さん婆さん)。
早速、そのバラのトンネルとヤラを・・・

イメージ 1

トンネルを外から見た写真ですが、内側はこの様になってます・・・

イメージ 2

大変綺麗です。
一応トンネル自体は丸く繋がっていて、数箇所から入れるように成っていました。
バラだけではツマラナイので人物も一緒に・・・

イメージ 3

お前の顔なんか見たくない、と云う声が聞えそうですが、最後に・・・

イメージ 4

何時までも仲良く過したいです。 感謝

by    JA1QVM

この記事に

開く コメント(8)

開く トラックバック(0)

アマチュア無線局を開局したのは昭和39年で東京オリンピックの年でした。
当時はA3変調全盛期で、私も当然の様に秋葉原で中古で仕入れた[807]と云う真空管で、A3送信機を作り楽しんでいました。
ある日、受信をしていると如何してもマトモな音声に復調出来ない局がいます。
「酷い電波だな〜」と思いましたが、実はそれが進歩的OMの発射しているSSB信号だったわけです。
そんな折、近所のOM局に呼ばれ、遊びに来いと云う有り難〜い話です。
早速伺いました・・・しかし其処で見たものは水晶発振(FT243)による、ダイレクト PSN/SSB送信機でした。
マイクに向って喋ると、ダミーロード代わりの裸電球が見事に点灯します。
・・・へ〜、此れがSSBなんだ。でもオレには出来そうもな〜い・・・
**********
**********
其れから50年以上の歳月が流れ、縁が有り PICマイコンにのめり込み、挙句に Si5351A(クロックジェネレータ)制御をこなして満足していた矢先の事です。
有り余る時間のせいでしょうか、Si5351Aのメーカが発表している詳しいプリ説を読んでいると、気になる一言が有りました。
・・・位相差のある2信号を取り出すことが出来る・・・と有ります。(全て英文なので自信が無かったのですが、英語の解るOMに聞いたら、そう云う事らしいです)
此れはもう一度、Si5351Aについて勉強しなくてはイケマセン。
もし90度位相差の2信号が、広帯域に取り出せるとすると、50年前の近所のOMがやっていた「ダイレクト PSN/SSB送信機」が作れそうです。
しかも、今回は周波数を可変出来るでしょう。

さて実際にプログラムを組み、自分の考えている通りの結果が出ているのか?・・・は、Si5351Aを動作させて初めて判ります。
実は此れが大変な作業で、今回も頑張る所存であります。
と云う訳で、プログラム確認用に2信号取り出せる Si5351Aの回路を下に・・・

イメージ 1


何の事は無く、CLK1/CLK2を使う予定です。
上手くプログラムが組めれば良いのですが・・・
by    JA1QVM

この記事に

開く コメント(6)

開く トラックバック(0)

[ すべて表示 ]


.


みんなの更新記事