kopia lustrzana https://github.com/bristol-seds/pico-tracker
HF = DFLL version
rodzic
f75371d815
commit
d477adeecc
|
@ -76,7 +76,7 @@
|
||||||
#define GPS_TIME_PIN PIN_PA28
|
#define GPS_TIME_PIN PIN_PA28
|
||||||
#define GPS_TIME_PINMUX PINMUX_PA28H_GCLK_IO0
|
#define GPS_TIME_PINMUX PINMUX_PA28H_GCLK_IO0
|
||||||
#define GPS_SERCOM_MUX USART_RX_1_TX_0_XCK_1
|
#define GPS_SERCOM_MUX USART_RX_1_TX_0_XCK_1
|
||||||
#define GPS_TIMEPULSE_FREQ 24000000
|
#define GPS_TIMEPULSE_FREQ 4000000
|
||||||
// 32768
|
// 32768
|
||||||
#define GPS_PLATFORM_MODEL UBX_PLATFORM_MODEL_AIRBORNE_1G
|
#define GPS_PLATFORM_MODEL UBX_PLATFORM_MODEL_AIRBORNE_1G
|
||||||
|
|
||||||
|
|
|
@ -33,11 +33,11 @@
|
||||||
void si4060_shutdown(void);
|
void si4060_shutdown(void);
|
||||||
|
|
||||||
|
|
||||||
#define XO_FREQ 12000000UL
|
#define XO_FREQ 16000000UL
|
||||||
#define RF_FREQ_HZ 434600000.0f
|
#define RF_FREQ_HZ 434600000.0f
|
||||||
#define RF_DEV_HZ 100.0f
|
#define RF_DEV_HZ 100.0f
|
||||||
|
|
||||||
#define F_INT (2 * XO_FREQ / 4)
|
#define F_INT (2 * XO_FREQ / 8)
|
||||||
#define FDIV_INTE ( (RF_FREQ_HZ / F_INT) - 1)
|
#define FDIV_INTE ( (RF_FREQ_HZ / F_INT) - 1)
|
||||||
#define FDIV_FRAC ( (RF_FREQ_HZ - F_INT*(int)FDIV_INTE) * ((uint32_t)1 << 19) ) / F_INT
|
#define FDIV_FRAC ( (RF_FREQ_HZ - F_INT*(int)FDIV_INTE) * ((uint32_t)1 << 19) ) / F_INT
|
||||||
#define FDEV ( ( ( (uint32_t)1 << 19) * 8 * RF_DEV_HZ)/ (2*XO_FREQ))
|
#define FDEV ( ( ( (uint32_t)1 << 19) * 8 * RF_DEV_HZ)/ (2*XO_FREQ))
|
||||||
|
|
|
@ -108,14 +108,18 @@ int main(void)
|
||||||
|
|
||||||
/* For the moment output GCLK_MAIN / 2 on HF CLK */
|
/* For the moment output GCLK_MAIN / 2 on HF CLK */
|
||||||
switch_gclk_main_to_timepulse();
|
switch_gclk_main_to_timepulse();
|
||||||
half_glck_main_on_hf_clk();
|
/* Wait for GCLK to stabilise */
|
||||||
|
for (int i = 0; i < 1000*100; i++);
|
||||||
|
|
||||||
|
//half_glck_main_on_hf_clk();
|
||||||
|
timepulse_init();
|
||||||
/* Wait for HF CLK to stabilise */
|
/* Wait for HF CLK to stabilise */
|
||||||
for (int i = 0; i < 1000*100; i++);
|
for (int i = 0; i < 1000*100; i++);
|
||||||
|
|
||||||
semihost_printf("GCLK_MAIN = %d\n", gclk_main_frequency());
|
semihost_printf("GCLK_MAIN = %d\n", gclk_main_frequency());
|
||||||
|
|
||||||
/* Drop the CPU clock to 1.5Mhz */
|
/* Drop the CPU clock to 1.5Mhz */
|
||||||
system_cpu_clock_set_divider(SYSTEM_MAIN_CLOCK_DIV_16);
|
//system_cpu_clock_set_divider(SYSTEM_MAIN_CLOCK_DIV_16);
|
||||||
|
|
||||||
/* Initialise Si4060 */
|
/* Initialise Si4060 */
|
||||||
si4060_hw_init();
|
si4060_hw_init();
|
||||||
|
|
|
@ -421,7 +421,7 @@ void si4060_setup(uint8_t mod_type) {
|
||||||
/* setup divider to 8 (for 70cm ISM band */
|
/* setup divider to 8 (for 70cm ISM band */
|
||||||
si4060_set_property_8(PROP_MODEM,
|
si4060_set_property_8(PROP_MODEM,
|
||||||
MODEM_CLKGEN_BAND,
|
MODEM_CLKGEN_BAND,
|
||||||
SY_SEL_1 | FVCO_DIV_4);
|
SY_SEL_1 | FVCO_DIV_8);
|
||||||
/* set up the PA power level */
|
/* set up the PA power level */
|
||||||
si4060_set_property_8(PROP_PA,
|
si4060_set_property_8(PROP_PA,
|
||||||
PA_PWR_LVL,
|
PA_PWR_LVL,
|
||||||
|
|
|
@ -32,9 +32,9 @@
|
||||||
#define DFLL48_MUL (DFLL48M_CLK / GPS_TIMEPULSE_FREQ)
|
#define DFLL48_MUL (DFLL48M_CLK / GPS_TIMEPULSE_FREQ)
|
||||||
|
|
||||||
/* Check that DFLL48_MUL is an integer */
|
/* Check that DFLL48_MUL is an integer */
|
||||||
//#if ((DFLL48M_CLK * 100000000) / GPS_TIMEPULSE_FREQ != (DFLL48_MUL * 100000000))
|
#if ((DFLL48M_CLK * 100000000) / GPS_TIMEPULSE_FREQ != (DFLL48_MUL * 100000000))
|
||||||
//#error DFLL48M_CLK must be a integer multiple of GPS_TIMEPULSE_FREQ!
|
#error DFLL48M_CLK must be a integer multiple of GPS_TIMEPULSE_FREQ!
|
||||||
//#endif
|
#endif
|
||||||
|
|
||||||
void timepulse_init(void)
|
void timepulse_init(void)
|
||||||
{
|
{
|
||||||
|
@ -74,7 +74,7 @@ void timepulse_init(void)
|
||||||
system_gclk_gen_set_config(SI406X_HF_GCLK,
|
system_gclk_gen_set_config(SI406X_HF_GCLK,
|
||||||
GCLK_SOURCE_DFLL48M, /* Source */
|
GCLK_SOURCE_DFLL48M, /* Source */
|
||||||
false, /* High When Disabled */
|
false, /* High When Disabled */
|
||||||
48, /* Division Factor */
|
3, /* Division Factor = 16MHz*/
|
||||||
false, /* Run in standby */
|
false, /* Run in standby */
|
||||||
true); /* Output Pin Enable */
|
true); /* Output Pin Enable */
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue