【车载开发系列】系统时钟与定时器
【车载开发系列】系统时钟与定时器
一. 系统时钟的概念
系统时钟是定时器的时间基准,决定定时器精度、最大频率与功耗;定时器通过时钟源选择+多级分频,从系统时钟树中获取计数时钟。
系统时钟(System Clock)是整个芯片运行的"心脏",直接决定CPU、外设(ADC、CAN、UART、Timer等)的运行速度。
二. 时钟体系
RH850 时钟体系一般分为三层:
- 振荡源(Oscillator)
- PLL倍频(锁相环)
- 时钟分配(给CPU/外设)
1)什么是PLL
PLL = Phase Locked Loop锁相环的意思,你可以把它理解成芯片里的"时钟倍频器"。PLL就是把低频精准时钟,成倍变高的硬件电路
2)PLL的作用
把低速外部晶振(如 8MHz)倍频到几百MHz,作为CPU主时钟源。PLL没锁定前不能用作系统时钟,否则芯片跑飞。
只有倍频之后,才能输出给 CLK_SYS(系统时钟)。
3)PLL补充
CPU速度、UART波特率、CAN时序、ADC采样时钟全都依赖PLL
INTC、ADC 都是"外设",PLL是它们的动力源头
三. 关键时钟名词
- CLK_SYS:系统基时钟,所有时钟的"根"
- CLK_CPU:CPU 内核运行时钟(最高频)
- CLK_PERI:外设总线时钟(CAN、UART、ADC、Timer 都用它)
- CLK_LSB:低速时钟(给 ADC、WDT 等)
- MSTPCR:模块停止控制寄存器(外设时钟开关)
四. 系统时钟树
时钟源 → PLL → SYSCLK(CPU) → 总线时钟(PCLK) → 外设时钟域 → 定时器(TAUJ/TAUB/TAUD)
- 时钟源:主晶振(8--24MHz)、内部高速(8MHz)、内部低速(240kHz)、副晶振(32.768kHz)、PLL
- PLL:倍频到80/240MHz(常见),生成CPLL/PPLL,供给CPU与外设
- SYSCLK:CPU主频(如240MHz)
- PCLK:外设总线时钟(如80MHz),是定时器主要时钟源
- 外设时钟域:IAWO(常开,低功耗唤醒)、ISO(可关,省电)
五. TAU与系统时钟的关系
系统时钟(SYSCLK)是TAU的源头,TAU只是对PCLK进一步分频计数
如果系统时钟不稳或者配置有错误,那么必然TAU也不会准确。
CLK_SYS(系统时钟)→ 分频 → CLK_PERI → TAU预分频 → TAU计数时钟。系统时钟一变,TAU定时时间就全变
- 先配好系统时钟 + PLL,确认 CLK_SYS、CLK_PERI 频率
- 打开 TAU 时钟(MSTPCR 对应位清 0)
- 根据真实时钟频率计算 TAU 预分频和重载值