diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/lib/si5351/si5351.c b/lib/si5351/si5351.c
--- a/lib/si5351/si5351.c
+++ b/lib/si5351/si5351.c
@@ -334,7 +334,8 @@ uint8_t si5351_set_freq(uint64_t freq, u
uint8_t params[20];
void si5351_set_pll(uint64_t pll_freq, enum si5351_pll target_pll)
-{ struct Si5351RegSet pll_reg;
+{
+ struct Si5351RegSet pll_reg;
si5351_pll_calc(pll_freq, &pll_reg, ref_correction);
@@ -905,16 +906,10 @@ void si5351_set_clock_fanout(enum si5351
-/* AAAH REFREAKINGIMPLEMENT WITH COMMON STANDARD I2C THINGS:
-~/Projects/featherhab-fw/libopencm3/lib/stm32/common/i2c_common_all.c
-*/
-
uint8_t si5351_write_bulk(uint8_t addr, uint8_t bytes, uint8_t *data)
{
- HAL_Delay(300);
uint32_t res = HAL_I2C_Mem_Write(si5351_i2cport, SI5351_BUS_BASE_ADDR, addr, 1, data, bytes, 100);
led_blink(res);
- HAL_Delay(300);
@@ -931,12 +926,10 @@ uint8_t si5351_write_bulk(uint8_t addr,
uint8_t si5351_write(uint8_t addr, uint8_t data)
{
- HAL_Delay(300);
uint8_t data_arr[1] = {data};
- uint8_t res = HAL_I2C_Mem_Write(si5351_i2cport, SI5351_BUS_BASE_ADDR, addr, 1, data, 1, 100);
+ volatile uint8_t res = HAL_I2C_Mem_Write(si5351_i2cport, SI5351_BUS_BASE_ADDR, addr, 1, data_arr, 1, 100);
led_blink(res);
- HAL_Delay(300);
/*
Wire.beginTransmission(SI5351_BUS_BASE_ADDR);
Wire.write(addr);
@@ -949,11 +942,9 @@ uint8_t si5351_read(uint8_t addr)
{
uint8_t data_arr[1] = {0};
- HAL_Delay(300);
uint8_t res = HAL_I2C_Mem_Read(si5351_i2cport, SI5351_BUS_BASE_ADDR, addr, 1, data_arr, 1, 100);
led_blink(res);
- HAL_Delay(300);
/*
Wire.beginTransmission(SI5351_BUS_BASE_ADDR);
Wire.write(addr);
@@ -966,7 +957,7 @@ uint8_t si5351_read(uint8_t addr)
reg_val = Wire.read();
}
*/
- return data_arr[1];
+ return data_arr[0];
}
/*********************/
diff --git a/src/main.c b/src/main.c
--- a/src/main.c
+++ b/src/main.c
@@ -23,7 +23,7 @@ int main(void)
sysclk_init();
gpio_init();
- led_blink(5);
+ //led_blink(5);
MX_DMA_Init();
MX_ADC_Init();
i2c_init();
@@ -39,18 +39,28 @@ int main(void)
si5351_init(i2c_get(), SI5351_CRYSTAL_LOAD_8PF, 0);
si5351_set_correction(0);
+ //SI5351_XTAL_FREQ
+ si5351_set_pll(SI5351_PLL_FIXED, SI5351_PLLA);
- si5351_set_pll(SI5351_PLL_FIXED, SI5351_PLLA);
+
si5351_set_ms_source(SI5351_CLK0, SI5351_PLLA);
+ si5351_set_ms_source(SI5351_CLK1, SI5351_PLLA);
+ si5351_set_ms_source(SI5351_CLK2, SI5351_PLLA);
+ si5351_set_ms_source(SI5351_CLK3, SI5351_PLLA);
- si5351_set_freq(100000UL * 100, 0, SI5351_CLK0);
+ si5351_set_freq(1000000UL * 100, SI5351_PLL_FIXED, SI5351_CLK0);
si5351_drive_strength(SI5351_CLK0, SI5351_DRIVE_2MA); // Set for max power if desired (8ma max)
+
+
si5351_output_enable(SI5351_CLK0, 1); // Disable the clock initially
+
//wspr_encode(call, loc, dbm, tx_buffer);
si5351_pll_reset(SI5351_PLLA);
+ HAL_Delay(1000);
+
uint32_t led_timer = HAL_GetTick();
uint32_t last_gps = HAL_GetTick();