设置usb时钟
This commit is contained in:
@@ -195,7 +195,6 @@ void OTG_HS_EP1_OUT_IRQHandler(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if PKG_TINYUSB_DEVICE_ENABLE
|
|
||||||
void OTG_FS_IRQHandler(void) {
|
void OTG_FS_IRQHandler(void) {
|
||||||
tusb_int_handler(0, true);
|
tusb_int_handler(0, true);
|
||||||
}
|
}
|
||||||
@@ -204,7 +203,6 @@ void OTG_HS_IRQHandler(void) {
|
|||||||
tusb_int_handler(1, true);
|
tusb_int_handler(1, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
@@ -348,9 +348,9 @@
|
|||||||
through STLINK MCO pin of STM32F103 microcontroller. The frequency cannot be changed
|
through STLINK MCO pin of STM32F103 microcontroller. The frequency cannot be changed
|
||||||
and is fixed at 8 MHz.
|
and is fixed at 8 MHz.
|
||||||
Hardware configuration needed for Nucleo Board:
|
Hardware configuration needed for Nucleo Board:
|
||||||
<EFBFBD> SB54, SB55 OFF
|
? SB54, SB55 OFF
|
||||||
<EFBFBD> R35 removed
|
? R35 removed
|
||||||
<EFBFBD> SB16, SB50 ON */
|
? SB16, SB50 ON */
|
||||||
/* #define USE_HSE_BYPASS */
|
/* #define USE_HSE_BYPASS */
|
||||||
|
|
||||||
#if defined(USE_HSE_BYPASS)
|
#if defined(USE_HSE_BYPASS)
|
||||||
@@ -392,7 +392,11 @@
|
|||||||
#endif /* STM32F446xx */
|
#endif /* STM32F446xx */
|
||||||
|
|
||||||
#if defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F446xx) || defined(STM32F469_479xx)
|
#if defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F446xx) || defined(STM32F469_479xx)
|
||||||
|
#ifdef __USB_USB__
|
||||||
|
#define PLL_N 336
|
||||||
|
#else /* !__USB_USB__ */
|
||||||
#define PLL_N 360
|
#define PLL_N 360
|
||||||
|
#endif
|
||||||
/* SYSCLK = PLL_VCO / PLL_P */
|
/* SYSCLK = PLL_VCO / PLL_P */
|
||||||
#define PLL_P 2
|
#define PLL_P 2
|
||||||
#endif /* STM32F427_437x || STM32F429_439xx || STM32F446xx || STM32F469_479xx */
|
#endif /* STM32F427_437x || STM32F429_439xx || STM32F446xx || STM32F469_479xx */
|
||||||
@@ -438,7 +442,11 @@
|
|||||||
#endif /* STM32F40_41xxx */
|
#endif /* STM32F40_41xxx */
|
||||||
|
|
||||||
#if defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F446xx) || defined(STM32F469_479xx)
|
#if defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F446xx) || defined(STM32F469_479xx)
|
||||||
|
#ifdef __USB_USB__
|
||||||
|
uint32_t SystemCoreClock = 168000000;
|
||||||
|
#else /* !__USB_USB__ */
|
||||||
uint32_t SystemCoreClock = 180000000;
|
uint32_t SystemCoreClock = 180000000;
|
||||||
|
#endif
|
||||||
#endif /* STM32F427_437x || STM32F429_439xx || STM32F446xx || STM32F469_479xx */
|
#endif /* STM32F427_437x || STM32F429_439xx || STM32F446xx || STM32F469_479xx */
|
||||||
|
|
||||||
#if defined(STM32F401xx)
|
#if defined(STM32F401xx)
|
||||||
|
@@ -51,6 +51,7 @@ typedef struct
|
|||||||
uint32_t HCLK_Frequency; /*!< HCLK clock frequency expressed in Hz */
|
uint32_t HCLK_Frequency; /*!< HCLK clock frequency expressed in Hz */
|
||||||
uint32_t PCLK1_Frequency; /*!< PCLK1 clock frequency expressed in Hz */
|
uint32_t PCLK1_Frequency; /*!< PCLK1 clock frequency expressed in Hz */
|
||||||
uint32_t PCLK2_Frequency; /*!< PCLK2 clock frequency expressed in Hz */
|
uint32_t PCLK2_Frequency; /*!< PCLK2 clock frequency expressed in Hz */
|
||||||
|
uint32_t USBCLK_Frequency;
|
||||||
}RCC_ClocksTypeDef;
|
}RCC_ClocksTypeDef;
|
||||||
|
|
||||||
/* Exported constants --------------------------------------------------------*/
|
/* Exported constants --------------------------------------------------------*/
|
||||||
|
@@ -1316,7 +1316,8 @@ void RCC_PCLK2Config(uint32_t RCC_HCLK)
|
|||||||
*/
|
*/
|
||||||
void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
|
void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
|
||||||
{
|
{
|
||||||
uint32_t tmp = 0, presc = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
|
uint32_t tmp = 0, presc = 0, pllvco = 0, pllp = 2, pllq = 7, pllsource = 0,
|
||||||
|
pllm = 2;
|
||||||
#if defined(STM32F412xG) || defined(STM32F413_423xx) || defined(STM32F446xx)
|
#if defined(STM32F412xG) || defined(STM32F413_423xx) || defined(STM32F446xx)
|
||||||
uint32_t pllr = 2;
|
uint32_t pllr = 2;
|
||||||
#endif /* STM32F412xG || STM32F413_423xx || STM32F446xx */
|
#endif /* STM32F412xG || STM32F413_423xx || STM32F446xx */
|
||||||
@@ -1352,7 +1353,9 @@ void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
|
pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
|
||||||
|
pllq = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLQ) >>24);
|
||||||
RCC_Clocks->SYSCLK_Frequency = pllvco/pllp;
|
RCC_Clocks->SYSCLK_Frequency = pllvco/pllp;
|
||||||
|
RCC_Clocks->USBCLK_Frequency = pllvco/pllq;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#if defined(STM32F412xG) || defined(STM32F413_423xx) || defined(STM32F446xx)
|
#if defined(STM32F412xG) || defined(STM32F413_423xx) || defined(STM32F446xx)
|
||||||
|
@@ -102,8 +102,10 @@ const libc_device_file *g_usart;
|
|||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ӣ<EFBFBD>25m<35><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>֤usbΪ48m<38><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ168m
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ӣ<EFBFBD>25m<35><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>֤usbΪ48m<38><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ168m
|
||||||
void reconfig_clock(void) {
|
void reconfig_clock(void) {
|
||||||
RCC_PLLConfig(RCC_PLLSource_HSE, 25, 336, 2, 7);
|
RCC_ClocksTypeDef rcc = {0};
|
||||||
SystemCoreClock = 168000000;
|
// RCC_PLLConfig(RCC_PLLSource_HSE, 25, 336, 2, 7);
|
||||||
|
RCC_GetClocksFreq(&rcc);
|
||||||
|
SystemCoreClock = rcc.SYSCLK_Frequency;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -41,8 +41,9 @@ DEF=[
|
|||||||
'-D__packed=__attribute__((__packed__))',
|
'-D__packed=__attribute__((__packed__))',
|
||||||
'-D__weak=__attribute__((weak))',
|
'-D__weak=__attribute__((weak))',
|
||||||
'-D__RTTHREAD__',
|
'-D__RTTHREAD__',
|
||||||
'-DSOC_SERIES_STM32F4',
|
# 使用usb时打开这个宏 系统时钟会被设置为168MHz USB时钟为48MHz
|
||||||
'-DPKG_TINYUSB_DEVICE_ENABLE',
|
# 如果不打开这个宏 系统时钟会被设置为180MHz USB会通信异常
|
||||||
|
'-D__USB_USB__',
|
||||||
]
|
]
|
||||||
|
|
||||||
INC=[
|
INC=[
|
||||||
|
Reference in New Issue
Block a user