CGC 全称 Clock Generation Circuit 即时钟生成电路,是用于产生时钟信号,以同步系统操作的电路。
时钟源
地奇星的时钟源 文档第140页 ,如下图所示:
RA6E2的各类时钟模块功能与参数如下:
- 主时钟振荡器(Main Clock Oscillator,MOSC):用于连接外部 8 - 24 MHz 的高速晶振,为系统提供高速时钟基准。
- 副时钟振荡器(Sub - Clock Oscillator,SOSC):连接外部 32.768 kHz 低速晶振,主要为实时时钟(RTC)服务,为用户系统提供时间日历功能。
- 锁相环(Phase Locked Loop,PLL)
- 具备频率倍增功能,可对输入时钟信号进行分频、倍频处理。
- 输入时钟源可选 MOSC、HOCO,输入频率范围在 8 MHz - 24 MHz。
- 倍频比支持在 10 到 30 之间以 0.5 步进选择,输出频率范围为 120 MHz - 200 MHz。
- 高速片上振荡器(High - speed on - chip oscillator,HOCO):以 【立创·地奇星RA6E2开发板】 为例,振荡频率有 16/18/20 MHz 几种选择,无需外接晶振即可提供高速时钟。
- 中速片上振荡器(Middle - speed on - chip oscillator,MOCO):固定振荡频率为 8 MHz ,满足系统对中速时钟信号的需求。
- 低速片上振荡器(Low - speed on - chip oscillator,LOCO):振荡频率为 32.768 kHz,常用于对时钟频率要求较低的场景。
- IWDT 专用片上振荡器(IWDT - dedicated clock,IWDTLOCO):专为 IWDT 设计,振荡频率为 15 kHz 。
- SWD 的外部时钟输入(External clock input for SWD,SWCLK):用于为 SWD 提供外部时钟,其振荡频率上限为 25 MHz。
内部时钟
分类 | 时钟名称 | 时钟源 | 目标设备/输出 | 频率范围 | 分频比 |
---|---|---|---|---|---|
系统时钟 | 系统时钟 (ICLK) | MOSC/SOSC/HOCO/MOCO/LOCO/PLL | CPU、DTC、DMAC、Flash、RAM | 最高200MHz | 1/2/4/8/16/32/64 |
外设模块时钟 | 外设模块时钟A (PCLKA) | MOSC/SOSC/HOCO/MOCO/LOCO/PLL | QSPI、SCI、CAN-RAM、SPI、CRC、DOC、ADC12、DAC12、I3C、TRNG、GPT总线时钟 | 最高100MHz | 1/2/4/8/16/32/64 |
外设模块时钟B (PCLKB) | MOSC/SOSC/HOCO/MOCO/LOCO/PLL | CAC、ELC、I/O端口、POEG、RTC、WDT、IWDT、AGT、CANFD、USBFS、SSIE、CEC、TSN、待机SRAM | 最高50MHz | 1/2/4/8/16/32/64 | |
外设模块时钟C (PCLKC) | MOSC/SOSC/HOCO/MOCO/LOCO/PLL | ADC12转换时钟 | 最高50MHz | 1/2/4/8/16/32/64 | |
外设模块时钟D (PCLKD) | MOSC/SOSC/HOCO/MOCO/LOCO/PLL | GPT计数时钟 | 最高100MHz | 1/2/4/8/16/32/64 | |
专用模块时钟 | FlashIF时钟 (FCLK) | MOSC/SOSC/HOCO/MOCO/LOCO/PLL | FlashIF | 编程/擦除:4MHz-50MHz 读取:最高50MHz | 1/2/4/8/16/32/64 |
USB时钟 (USBCLK) | PLL | USBFS | 48MHz | 3/4/5 | |
CANFD时钟 (CANFDCLK) | PLL | CANFD | 最高40MHz | 1/2/4/6/8 | |
CAN时钟 (CANMCLK) | MOSC | CAN | 8MHz-24MHz | - | |
CEC时钟 (CECCLK) | MOSC/SOSC | CEC | MOSC:最高20MHz SOSC:32.768kHz | MOSC:1/2 | |
I3C时钟 (I3CCLK) | Main/Sub/HOCO/MOCO/LOCO/PLL | I3C | 最高200MHz | 1/2/4/6/8 | |
AGT慢速时钟 (AGTSCLK) | SOSC | AGT | 32.768kHz | - | |
AGT低速时钟 (AGTLCLK) | LOCO | AGT | 32.768kHz | - | |
CAC主时钟 (CACMCLK) | MOSC | CAC | 最高24MHz | - | |
CAC副时钟 (CACSCLK) | SOSC | CAC | 32.768kHz | - | |
CAC LOCO时钟 (CACLCLK) | LOCO | CAC | 32.768kHz | - | |
CAC MOCO时钟 (CACMOCLK) | MOCO | CAC | 8MHz | - | |
CAC HOCO时钟 (CACHCLK) | HOCO | CAC | 16/18/20MHz | - | |
CAC IWDTLOCO时钟 (CACILCLK) | IWDTLOCO | CAC | 15kHz | - | |
RTC时钟 (RTCCLK) | SOSC/LOCO | RTC | 32.768kHz | - | |
IWDT时钟 (IWDTCLK) | IWDTLOCO | IWDT | 15kHz | - | |
SysTick定时器时钟 (SYSTICCLK) | LOCO | SysTick定时器 | 32.768kHz | - | |
串行线时钟 (SWCLK) | SWCLK | OCD | 最高25MHz | - | |
时钟/蜂鸣器输出 (CLKOUT) | MOSC/SOSC/LOCO/MOCO/HOCO | CLKOUT引脚 | 最高60MHz | 1/2/4/8/16/32/64/128 |
注:
- 时钟频率设置基本限制:ICLK ≥ PCLKA ≥ PCLKB,PCLKD ≥ PCLKA ≥ PCLKB,ICLK ≥ FCLK 。
- 当使用 P/E(可能指特定外设或模式)时,FCLK 最小频率需 ≥ 4MHz。
时钟树
注:由于图太大了,我只截图了小部分。
这时我们切换到 e2 studio 软件的 Clocks 时钟部分可以看到一个简略图,如下所示:
我们这里以 System clock(ICLK)(To CPU, DMAC, DTC, Flashand RAM)为例,可以在CLOCK Src 来选择我们是时钟源是从那个输入,下图所示:
目前我们的时钟是 XTAL -> PLL -> Clock Src - ICLK Div -> ICLK ,来为我们CPU提供一个心跳脉冲。剩下的自己探索。
LCKOUT 实验
首先我们需要去 FSP Configuration -> PinS -> Peripherals -> CLKOUT:CLKOUT -> CLKOUT ,接下来我们需要配置 PIN Group Select 为模式 Mixed ,Operation Mode ,选择 Custom 。如下图所示:
接下来我们去 Clocks 配置时钟 LCKOUT 输出,如下图所示:
这里我们可以去修改时钟分频,来进行系统时钟测试,我们这里 选择 HOCO 时钟源,分频分频系数选择 32 ,如下图所示:
设置完成后,按下 Ctrl + S 进行保存,然后点击 Generate Project Content 进行工程生成。接下来就可以编译和下载运行程序了。
实验结果
注:由于我这边的示波器采样率偏低,故采样出来打不够 625KHz。