Files
@ b5b9635e3cd8
Branch filter:
Location: FeatherHAB/wsprhab/src/main.c - annotation
b5b9635e3cd8
3.1 KiB
text/plain
Fix comms issues with the SI5351 which actually works now
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0dd5c923fdea b5b9635e3cd8 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 b5b9635e3cd8 b5b9635e3cd8 0d9900312165 b5b9635e3cd8 0d9900312165 b5b9635e3cd8 b5b9635e3cd8 b5b9635e3cd8 0d9900312165 b5b9635e3cd8 0d9900312165 0d9900312165 b5b9635e3cd8 b5b9635e3cd8 0d9900312165 b5b9635e3cd8 0d9900312165 0d9900312165 0d9900312165 0d9900312165 b5b9635e3cd8 b5b9635e3cd8 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 | #include "stm32f0xx_hal.h"
#include "si5351.h"
#include "jtencode.h"
#include "adc.h"
#include "dma.h"
#include "i2c.h"
#include "usart.h"
#include "gpio.h"
#include "gps.h"
void sysclk_init(void);
char call[7] = "N0CALL";
char loc[5] = "AA00";
uint8_t dbm = 27;
uint8_t tx_buffer[255];
int main(void)
{
HAL_Init();
sysclk_init();
gpio_init();
//led_blink(5);
MX_DMA_Init();
MX_ADC_Init();
i2c_init();
HAL_GPIO_WritePin(OSC_NOTEN, 0);
HAL_GPIO_WritePin(TCXO_EN, 1);
HAL_Delay(100);
// MX_USART1_UART_Init();
//jtencode_init();
//gps_init();
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_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(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();
while (1)
{
if(HAL_GetTick() - led_timer > 100)
{
HAL_GPIO_TogglePin(LED_BLUE);
led_timer = HAL_GetTick();
}
if(HAL_GetTick() - last_gps > 100)
{
// gps_process();
last_gps = HAL_GetTick();
}
}
}
// Initialize system clocks
void sysclk_init(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_PeriphCLKInitTypeDef PeriphClkInit;
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSI14;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSI14State = RCC_HSI14_ON;
RCC_OscInitStruct.HSICalibrationValue = 16;
RCC_OscInitStruct.HSI14CalibrationValue = 16;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1|RCC_PERIPHCLK_I2C1;
PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK1;
PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_SYSCLK;
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit);
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
// SysTick_IRQn interrupt configuration
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}
|