RS41ng/src/si5351_test.cpp

50 wiersze
1.4 KiB
C++

#include <stdio.h>
#include "hal/delay.h"
#include "drivers/si5351/si5351.h"
#include "si5351_test.h"
int si5351_test()
{
Si5351 si5351 = Si5351(&DEFAULT_I2C_PORT);
printf("Si5351 init\n");
bool i2c_found = si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0);
if (!i2c_found) {
printf("Si5351 not found\n");
}
printf("Si5351 set freq 1\n");
// Set CLK0 to output 14 MHz
si5351.set_freq(1400000000ULL, SI5351_CLK0);
// Set CLK1 to output 175 MHz
printf("Si5351 set ms source\n");
//si5351.set_ms_source(SI5351_CLK1, SI5351_PLLB);
printf("Si5351 set freq 2\n");
//si5351.set_freq_manual(17500000000ULL, 70000000000ULL, SI5351_CLK1);
printf("Si5351 update status\n");
// Query a status update and wait a bit to let the Si5351 populate the
// status flags correctly.
si5351.update_status();
delay_ms(500);
printf("Loop\n");
int counter = 0;
while (true) {
si5351.update_status();
printf("SYS_INIT: %d, LOL_A: %d, LOL_B: %d, LOS: %d, REVID: %d\n",
si5351.dev_status.SYS_INIT, si5351.dev_status.LOL_A, si5351.dev_status.LOL_B,
si5351.dev_status.LOS, si5351.dev_status.REVID);
delay_ms(1000);
si5351.set_freq(1400000000ULL + counter * 10 * 100, SI5351_CLK0);
//si5351.set_freq_manual(17500000000ULL + counter * 10, 70000000000ULL, SI5351_CLK1);
counter++;
}
}