基于瑞萨RH850F1KMS2 R7F7017603芯片的软件构建记录(三)——时钟树配置
文章通过理论分析与实践配置相结合的方式,为RH850系列芯片的时钟系统设计提供了清晰的指导框架。
时钟树配置
时钟配置是一切的起源,为了更好地进行后续开发,我们需要从时钟开始进行理论梳理。本文梳理的信息是基于RH850/F1K系列,其中关于17603不支持的部分会尽量识别出来。
一、概念介绍
1、时钟振荡器
1. 主振荡器(MainOSC)
- 功能:生成主时钟 X。
- 外部依赖:需要外接一个晶体或陶瓷谐振器连接到引脚 X1 和 X2。
- 用途:作为PLL的参考时钟(即PLL会基于这个时钟倍频或分频生成更高频率的系统时钟)。
- ✅ 重要性:这是系统主时钟源,常用于高性能运行模式。
2. 副振荡器(SubOSC)
功能:生成副时钟 XT,典型频率为 32.768 kHz。外部依赖:需要外接一个32.768 kHz晶体连接到引脚 XT1 和 XT2。用途:主要用于实时时钟(RTC)应用,如计时、闹钟、日历等。特点:这个频率是标准的“秒脉冲”频率(2^15 Hz),便于分频得到1Hz信号。
17603为100pins的芯片,不支持SubOSC。
3. 高速内部振荡器(HS IntOSC)
- 功能:生成时钟 RH,典型频率为 8 MHz。
- 特点:内部振荡器,无需外接元件。
- 用途:用于不需要高精度、但需要快速启动或中等性能的场景(如启动阶段、低功耗模式切换)。
- 优势:省去外部晶振,降低成本和PCB空间。
4. 低速内部振荡器(LS IntOSC)
- 功能:生成时钟 RL,典型频率为 240 kHz。
- 特点:
- 上电即自动启动。
- 不可被关闭,始终运行。
- 用途:主要用于低功耗模式下的唤醒、看门狗定时器、低速外设等。
- 优势:保证系统在任何状态下都有基本时钟可用,提高可靠性。
5. PLL(锁相环)
- 功能:生成高速操作时钟 —— CPLLOUT 和 PPLLOUT。
- 输入:通常以 MainOSC(X)为参考时钟。
- 输出:通过倍频产生更高频率的系统时钟(例如几十MHz到上百MHz),用于CPU和高速外设。
- ✅ 重要性:是系统性能的核心,决定CPU主频和高速外设(如USB、以太网、高速SPI等)能否正常工作。
总结表格(便于理解)
| 时钟源 | 频率(典型) | 是否需外接元件 | 是否可关闭 | 主要用途 | 所在区域 |
|---|---|---|---|---|---|
| MainOSC | 可变(由晶振决定) | ✅ 是(X1/X2) | ✅ 可关 | 主时钟、PLL参考 | AWO |
| SubOSC | 32.768 kHz | ✅ 是(XT1/XT2) | ✅ 可关 | 实时时钟(RTC) | AWO |
| HS IntOSC | 8 MHz | ❌ 否 | ✅ 可关 | 中速运行、启动阶段 | AWO |
| LS IntOSC | 240 kHz | ❌ 否 | ❌ 不可关 | 低功耗唤醒、看门狗 | AWO |
| PLL | 可变(倍频后) | ✅ 依赖MainOSC | ✅ 可关 | 高速系统时钟(CPU/外设) | ISO |
2、时钟系统中的命名规则
SC中的Clocks configuration时钟树上的命名规则参照如下表格解读。
|
3、时钟系统概览

时钟系统概览图
按照信号流向的顺序进行分析。
1. 振荡输入
RH850/F1K系列最多有2组外部振荡输入源,这是外部晶振输入的管脚,相对的我们可以在《工程创建》章节中的MCU/MPU窗口中去检索XT1、XT2来确认自己的芯片是否支持2组外部晶振。
17603不支持XT1、XT2外部晶振输入源,也是印证上文提到的,不支持SubOSC。
2. 时钟生成(Clock Generation)
根据具体项目的需求设计自行选择,本人暂时设想中,会使用外部晶振驱动MainOSC,再用LS intOSC来进行低功耗设计。
3. 时钟输出域(Clock Selection)
输出两条路径:
CKSCLK_A → 供给 AWO clock domains(Always-On / Always Wake-up 域,如低功耗唤醒模块);
CKSCLK_I → 供给 ISO clock domains(Isolated 域,如安全隔离或独立运行模块)。
4. 时钟监控器(CLMA)
能够分别监控晶振生成的时钟的功能。(暂不介绍)
5. 输出时钟模块(FOUT)
接收来自Clock selection的时钟信号,通常是外部测试或者调试的输出测量管脚。(暂不介绍)
4、Stand-by Controller
TAUJ_STPM寄存器示例
每个可以设置Stop request in stand-by mode状态的时钟,都有一个专门的时钟寄存器用来设置STPMSK位,从而达到及时系统进入挂起状态,仍然能让时钟保持运行状态。
二、时钟树配置
1、一级时钟
得益于低速内部时钟的特性(上电自启动、始终运行),其作为一级时钟是最自恰的设计,不仅可以支撑低功耗休眠唤醒、还能用来设计看门狗以及基于内部的RTC。
LS intOSC 配置
将AWDT、ARTC挂载在LS时钟上,并且设置Stby模式下继续运行,保证系统的安全性和RTC的意义。
二、二级时钟
由于本人的芯片外部带有晶振,所以可以选择MainOSC这个依赖外部晶振的高速时钟来作为二级时钟,这一级时钟承担了系统的主要指责。
MainOSC 配置
由于目前不知道后续要开发什么外设功能,所以暂时把所有的时钟线都开启,并且设置为stby模式下即停止运行,并且分频系数暂时不作调整。

Oscillation source选择OSC mode即可,EXCLK是外部形成的时钟线。
三、PLL0
将CPU Clock挂载到PLL0上,然后将输出频率设置为240MHz,使CPU时钟频率为最大值(暂时如此)。

四、PLL1
将其他standby模式下stop的时钟总线,通通挂载到PLL1上,并且将输出频率设置为80Mhz,使输出值为最大值(暂时如此)。

三、结语
经过第一节的理论梳理,对时钟树的认知提升不少,顷刻间即完成了一个简单的时钟树配置。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)