10 MHZ standard

Mijn oude 10mhz gps uitbreiden

10 Mhz Standard

GPS signaal die ervoor zorgt dat tcvcxo op 10 Mhz gelockt wordt.

10 Mhz deler met als actief component de MAX4012

Een si5351 als programmeerbare clock. X-tal is verwijdert en voorzien van een sma connecter gescheiden voor 120 nf en potmeter van 20Kohm

/*
* si5351_clk67_example.ino – Simple example of setting CLK6 and CLK7
* outputs using Si5351Arduino library
*
* Copyright (C) 2016 Jason Milldrum <milldrum@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* change software for extern gpsvcxo signal. 10 mhz
* Output frequency 25,27 and 40Mhz
* see www.pa1izr.nl
*/
#include “si5351.h”
#include “Wire.h”
Si5351 si5351;
void setup()
{
// Start serial and initialize the Si5351
Serial.begin(57600);
si5351.init(SI5351_CRYSTAL_LOAD_0PF, 0, 0);
// Set the CLKIN reference frequency to 10 MHz
// si5351.set_ref_freq(10000000UL, SI5351_PLL_INPUT_CLKIN);
si5351.set_ref_freq(10000000UL, SI5351_PLL_INPUT_XO);
// Apply a correction factor to CLKIN
// si5351.set_correction(0, SI5351_PLL_INPUT_CLKIN);
si5351.set_correction(590, SI5351_PLL_INPUT_XO);
// Set PLLA and PLLB to use the signal on CLKIN instead of the XTAL
//si5351.set_pll_input(SI5351_PLLA, SI5351_PLL_INPUT_CLKIN);
//si5351.set_pll_input(SI5351_PLLB, SI5351_PLL_INPUT_CLKIN);
// Set CLK0 to output 25 MHz
si5351.set_freq(2500000000ULL, SI5351_CLK0);
// Set CLK1 to 27 MHz
si5351.set_freq(2700000000ULL, SI5351_CLK1);
// Set CLK2 to 40 MHz
si5351.set_freq(4000000000ULL, SI5351_CLK2);
si5351.update_status();
delay(500);
}
void loop()
{
// Read the Status Register and print it every 10 seconds
si5351.update_status();
Serial.print(“PLLA: “);
Serial.print((uint32_t)(si5351.plla_freq/100));
Serial.print(” PLLB: “);
Serial.print((uint32_t)(si5351.pllb_freq/100));
Serial.print(” SYS_INIT: “);
Serial.print(si5351.dev_status.SYS_INIT);
Serial.print(” LOL_A: “);
Serial.print(si5351.dev_status.LOL_A);
Serial.print(” LOL_B: “);
Serial.print(si5351.dev_status.LOL_B);
Serial.print(” LOS: “);
Serial.print(si5351.dev_status.LOS);
Serial.print(” REVID: “);
Serial.println(si5351.dev_status.REVID);
delay(10000);
}