CAT VFO_Si5351A テストプログラム 2018.10.30 JA7GVQ 適用  「CATを利用したVFOの実験」 実験2 総合試験 ボード  Arduino UNO IDE  V.1.8.3 ライブラリ 1)LCD LiquidCrystal_I2C-master.zip   https://github.com/openenergymonitor/LiquidCrystal_I2C 2)AD9833・・・未使用 AD9833-Library-Arduino-master.zip   https://github.com/Billwilliams1952/AD9833-Library-Arduino 3)Si5351A Si5351Arduino-master.zip   https://github.com/etherkit/Si5351Arduino その他  1)AD9833関連行コメント化  2)Si5351A出力:連続出力  3)Si5351A周波数設定:IFオフセット(455kHz)有り //******* CAT VFO_Si5351A Test Program ******** // // JA7GVQ // // V.1.0 2018.10.08 // V.2.0 2018.10.16 // //"FT-2000D" - "CAT VFO" - "QT-71J" // //#include //20181018 #include "si5351.h" //20181018 #include #include #include // //SoftwareSerial SoftwareSerial CAT(2, 3); // RX, TX // /* //20181018 //AD9833 // // VCC = 5V // DGND = GND // SDATA = 11 (MOSI/SPI) // SCLK = 13 (CLK/SPI) // FSYNC = 10 // AGND = GND // OUT = OUT // #define FSYNC 10 // unsigned long freq=7013000; // AD9833 gen(FSYNC); // */ // //Si5351A // Vin = 5V // G = GND // SDA = A4 // SCL = A5 // CLK2 = CLK2 // CLK1 = CLK1 // CLK0 = CLK0 // Si5351 si5351; //20181018 // //LCD // SCL = A5 // SDA = A4 // VCC = 5V // GND = GND // LiquidCrystal_I2C lcd(0x27,16,2); // //SEND/REC SW #define SRsw 4 // // //CAT // "FA;" 周波数要求 // "TX0;" PTT OFFコマンド // "TX1;" PTT ONコマンド // String str=" "; //周波数応答文字列 //FLG int RFLG=0; //RECフラグ int SFLG=0; //SENDフラグ // // //--------------------------------------------------- void setup() { //Serial CAT.begin(38400); //ソフトシリアル 伝送速度設定 to/from FT2K //SEND/REC SW pinMode(SRsw,INPUT_PULLUP); // SRsw(4番ピン)を入力モードに設定する。 /* //20181018 //AD9833 gen.Begin(); // gen.EnableOutput(false); //出力OFF gen.ApplySignal(SINE_WAVE,REG0,7010000+454500); //サイン波、位相0 、周波数freq gen.EnableOutput(true); // SEND ON (DDS出力 ON) */ //Si5351 20181018 // i2c_found = si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0); si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0); // Set CLK0 // si5351.set_freq(700300000ULL+45450000ULL, SI5351_CLK0); si5351.set_freq(700300000ULL, SI5351_CLK0); // si5351.set_freq(5108000000ULL, SI5351_CLK0); si5351.update_status(); // delay(500); // //LCD lcd.backlight(); lcd.init(); lcd.clear(); lcd.setCursor(0,1); lcd.print(" JA7GVQ"); } // // //------------------------------------------------------------- void loop() { //SRsw int val = digitalRead(SRsw); // SEND/RX SW状態 //RX mode============================================= if (val){ //val=1 RX mode //CAT if (RFLG==0){ CAT.print("TX0;"); //PTT OFF To FT2K si5351.output_enable(SI5351_CLK0, 1); // ON 20181017 delay(2); // RFLG=1; } CAT.print("FA;"); //周波数要求 To FT2K delay(2); // if (CAT.available()){ //データ受信 fron F2K str=CAT.readStringUntil(';'); if (str.substring(0,2)=="FA"){ //周波数データか str=str.substring(2); //"FA"削除。戻り値ex"07003000" //LCD lcd.setCursor(3,0); lcd.print(str); //周波数表示 delay(1); lcd.setCursor(0,0); lcd.print("RX "); //"RX"表示 delay(2); // /* //20181018 // //AD9833 unsigned long freq=str.toInt(); gen.ApplySignal(SINE_WAVE,REG0,freq+454500); //サイン波、位相0 、周波数freq // */ //Si5351 20181018 unsigned long freq=str.toInt(); si5351.set_freq(freq*100ULL, SI5351_CLK0); //delay(3000); // si5351.update_status(); // } } /* gen.EnableOutput(false); //SEND OFF (DDS出力 OFF) */ SFLG=0; //TX mode====================================================== }else{ //TX mode if (SFLG==0){ SFLG=1; //CAT CAT.print("TX1;"); //PTT ON To FT2K si5351.output_enable(SI5351_CLK0, 0); // OFF 20181017 delay(2); // /* //AD9833 unsigned long freq=str.toInt(); gen.ApplySignal(SINE_WAVE,REG0,freq+454500); //サイン波、位相0 、周波数freq gen.EnableOutput(true); // SEND ON (DDS出力 ON) */ //LCD lcd.setCursor(0,0); lcd.print("TX "); //"TX"表示 delay(2); // } RFLG=0; } lcd.setCursor(0,1); lcd.print(" JA7GVQ"); }