From 331acce4fc765322283d28771dde796b659702ae Mon Sep 17 00:00:00 2001 From: Kuldeep Singh Dhaka Date: Thu, 20 Mar 2014 22:55:31 +0100 Subject: [PATCH] [STM32F0] add support of autotrimming HSI to USB SOF frames Signed-off-by: Frantisek Burian --- include/libopencm3/stm32/f0/crs.h | 2 ++ lib/stm32/f0/Makefile | 2 +- lib/stm32/f0/crs.c | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/include/libopencm3/stm32/f0/crs.h b/include/libopencm3/stm32/f0/crs.h index b65610ca..dc7eeee0 100644 --- a/include/libopencm3/stm32/f0/crs.h +++ b/include/libopencm3/stm32/f0/crs.h @@ -125,6 +125,8 @@ BEGIN_DECLS +void crs_autotrim_usb_enable(void); + END_DECLS /**@}*/ diff --git a/lib/stm32/f0/Makefile b/lib/stm32/f0/Makefile index 8003ff61..a9faff72 100644 --- a/lib/stm32/f0/Makefile +++ b/lib/stm32/f0/Makefile @@ -41,7 +41,7 @@ OBJS += gpio_common_all.o gpio_common_f0234.o crc_common_all.o \ pwr_common_all.o iwdg_common_all.o rtc_common_l1f024.o \ dma_common_l1f013.o exti_common_all.o spi_common_all.o \ spi_common_f03.o flash_common_f01.o dac_common_all.o \ - timer_common_all.o rcc_common_all.o + timer_common_all.o rcc_common_all.o crs.o VPATH += ../../usb:../:../../cm3:../common diff --git a/lib/stm32/f0/crs.c b/lib/stm32/f0/crs.c index db451688..63f3e341 100644 --- a/lib/stm32/f0/crs.c +++ b/lib/stm32/f0/crs.c @@ -29,4 +29,19 @@ */ #include +#include +/** + * This function enables autonatic trimming of internal RC oscillator by USB SOF + * frames + */ +void crs_autotrim_usb_enable(void) +{ + rcc_periph_clock_enable(RCC_CRS); + + CRS_CFGR &= ~CRS_CFGR_SYNCSRC; + CRS_CFGR |= CRS_CFGR_SYNCSRC_USB_SOF; + + CRS_CR |= CRS_CR_AUTOTRIMEN; + CRS_CR |= CRS_CR_CEN; +} \ No newline at end of file