1 / 17

HOLTEK 产品训练课程

HPTC-A1-HT32-06. HOLTEK 产品训练课程. CKCU 简介 ( 时钟控制单元 ). CKCU 特性. 4 ~ 16MHz 外部高速晶体振荡器 (HSE) 8MHz 内部高速 RC 振荡器 (HSI) 32,768Hz 外部低速晶体振荡器 (LSE) 注 : HT32F1251B 不支持 LSE 32kHz 内部低速 RC 振荡器 (LSI) 锁相环 (PLL) 时钟源可以是 HSE 或 HSI HSE 时钟监控. CKCU 方框图 -1. 1. 2. 3.

raoul
Download Presentation

HOLTEK 产品训练课程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HPTC-A1-HT32-06 HOLTEK 产品训练课程 CKCU 简介 ( 时钟控制单元)

  2. CKCU 特性 • 4 ~ 16MHz 外部高速晶体振荡器 (HSE) • 8MHz 内部高速 RC 振荡器 (HSI) • 32,768Hz 外部低速晶体振荡器 (LSE) • 注: HT32F1251B 不支持 LSE • 32kHz 内部低速 RC 振荡器 (LSI) • 锁相环 (PLL) • 时钟源可以是 HSE 或 HSI • HSE 时钟监控

  3. CKCU 方框图 -1 1 2 3

  4. CKCU 寄存器内---GCCR CKCU 方框图 -2 • 系统时钟 (CK_SYS) 来源可以选择 HSI, HSE 或 PLL,最高允许输出 144MHz

  5. CKCU 方框图 -3 • AHB, APB 以及 CortexTM-M3 皆是由系统时钟 (CK_SYS) 而来 • 系统核心时钟 (CK_AHB) 的最大工作频率可达 72MHz

  6. CKCU 寄存器内---GCFGR RTC 寄存器内---RTCCR CKCU 方框图 -4 • 看门狗定时器 (WDT) 与实时时钟 (RTC) 的时钟来源可以选择LSI 或 LSE

  7. 外部高速晶体振荡器 • HSE • 频率为 4 ~ 16MHz,提供高精确度时钟源 • 通过GCCR寄存器的HSEEN位开启或关闭 • GCSR寄存器中的 HSERDY 标志用来指示HSE是否稳定 • 如果HSE已呈现稳定状态,则寄存器GCIR中的HSERDYIE位被置位,并产生一个中断

  8. 内部高速 RC 振荡器 • HSI • 固定频率约为 8MHz±3%,是上电后的默认时钟源 • 由寄存器 GCCR 中的 HSIEN 位开启或关闭 • 寄存器 GCSR 中的 HSIRDY 标志位用来指示 HSI 是否稳定 • 如果 HSI 已呈现稳定的状态,则寄存器 GCIR 中的 HSIRDYIE 位被置位,并产生一个中断

  9. 锁相环 • PLL • 提供 8~144MHz 的时钟输出 • 输出时钟频率可以由下列公式确定: 这里,NF2 = Feedback divider 2 = 1~64,NO2 = Output divider 2 =1, 2, 4 或 8

  10. 外部低速晶体振荡器 • LSE • 频率为 32,768 Hz,提供高精确度时钟源 • 由RTCCR 寄存器中的LSEEN位开启或关闭 (RTC) • GCSR寄存器中的 LSERDY标志用来指示LSE是否稳定 • 如果 LSE已呈现稳定的状态,则寄存器 GCIR中的 LSERDYIE位被置位,并产生一个中断

  11. 内部低速 RC 振荡器 • LSI • 固定频率约为 32kHz±2%,是上电后 RTC 和 WDT 的默认时钟源 • 由寄存器 RTCCR 中的 LSIEN 位开启或关闭 (RTC) • 寄存器 GCSR 中的 LSIRDY 标志位用来指示 LSI 是否稳定 • 如果 LSI 已呈现稳定的状态,则寄存器 GCIR 中的 LSIRDYIE 位会被置位,并产生一个中断

  12. HSE 时钟监控 • 启动控制位为寄存器 GCCR 的 CKMEN 位 • 应在 HSE 作为时钟来源之前开启 • 一旦检测到 HSE 失效,会有下列动作发生: • HSE 会自动关闭 • 标志位 CKSF 会被置位 • 如果 CKSIE 位被置位, • 则会产生 NMI 中断 • 迫使 CK_SYS & PLL来源切换 成HSI

  13. CKCU 时钟输出能力 • 可以通过寄存器 GCFGR 中的 CKOUTSRC[2:0]来选择几种时钟信号 • PB11 引脚应在 CKOUT 模式正确配置

  14. CKCU 范例 -1 • System_Clock • 描述如何将系统频率输出调整为 24MHz, 48MHz 及 72MHz • 演示 HSE 时钟监控和时钟输出功能

  15. CKCU 范例 -2 int main(void) { : /* Configure system clock frequency and HCLK prescaler. External 8MHz crystal is used to drive the system clock */ SysClockConfig_24MHz(); /* Get the current clocks setting */ CKCU_GetClocksFrequency(&ClockFreq); /* Configure NVIC to enable clock ready interrupt */ NVIC_EnableIRQ(CKRDY_IRQn); /* Enable HSE clock monitor & interrupt, once HSE is failed the NMI exception will occur */ CKCU_CKMCmd(ENABLE); CKCU_IntConfig(CKCU_INT_CKSIE, ENABLE); /* Output HSE on CKOUT pin */ CKCU_APBPerip0ClockConfig(CKCU_APBEN0_AFIO, ENABLE); AFIO_GPBConfig(AFIO_PIN_11, AFIO_MODE_1); CKOUTInit.CKOUTSRC = CKCU_CKOUTSRC_HSECK_DIV16; CKCU_CKOUTConfig(&CKOUTInit); : }

  16. CKCU 范例 -3 • SysClockConfig_24MHz() void SysClockConfig_24MHz (void) { : /* Wait until HSE is ready or time-out */ ClockStatus = CKCU_WaitHSEReady(); if (ClockStatus == SUCCESS) { /* PLL configuration, PLLCLK = 96MHz */ PLLInit.ClockSource = CKCU_PLLSRC_HSE; PLLInit.CFG = CKCU_PLL_8M_96M; PLLInit.BYPASSCmd = DISABLE; CKCU_PLLInit(&PLLInit); CKCU_PLLCmd(ENABLE); /* Wait until PLL is ready */ while (CKCU_GetClockReadyStatus(CKCU_FLAG_PLLRDY) == RESET); /* FLASH zero wait clock */ FLASH_SetWaitState(FLASH_WAITSTATE_0); /* HCLK = SYSCLK/4 */ CKCU_SetHCLKPrescaler(CKCU_SYSCLK_DIV4); /* Configure PLL as system clock */ ClockStatus = CKCU_SysClockConfig(CKCU_SW_PLL); } : }

  17. 谢谢!

More Related