一、时钟源

系统时钟源有5种:

外部主晶振8M-24M。(main osc)

外部副晶振32.768KHz。 (sub osc)

内部高速晶振8M。(high speed int osc)

内部低速晶振240KHz。(low speed int osc)

PLL倍频器。

Note 1. 外部副晶振只有 144 pin and 176 pin产品有。

时钟源如下图:

  1. 隔离时钟域(ISO Clock domains)是可以关闭的时钟系统。
  2. 常开时钟域(IAWO Clock domains)是不能关闭的时钟系统。

每个外设都有时钟选择寄存器选择需要的时钟。外设时钟这里不讨论。

二、时钟源相关的寄存器说明:

  技术规格书列出的时钟源寄存器:

主晶振寄存器

2.1 MOSCE主晶振使能寄存器MainOSC Enable Register

MOSCE主晶振使能寄存器可以32bit读写。地址:FFF8 1100H,复位值0000 0000H。

Bit position

Bit Name

Function

31 - 2

保留

1

MOSCDISTRG

0:无影响,1:禁止主晶振

0

MOSCENTRG

0:无影响,1:使能主晶振

MOSCDISTRG: MOSC Disable Trigger

MOSCENTRG: MOSC Enable Trigger

使用外部晶振,必须使能。MOSCENTRG = 1。

2.2 MOSCS主晶振状态寄存器MainOSC Status Register

MOSCE主晶振状态寄存器只能32bit读。地址:FFF8 1104H,复位值0000 0000H。

Bit position

Bit Name

Function

31 - 3

保留

2

MOSCCLKACT

0:主晶振没有工作,1:主晶振工作正常

1、0

保留

MOSCCLKACT: MOSC Clock Acative

这个bit判断主晶振是否正常工作。

2.3 MOSCC主晶振控制寄存器MainOSC Control Register

MOSCC主晶振控制寄存器可以32bit读写。地址:FFF8 1108H,复位值0000 0004H。

Bit position

Bit Name

Function

31 - 2

保留

1、0

MOSC

AMPSEL[1:0]

主时钟频率选择:

00:  20M<fx<=24M

01:  16M<fx<=20M

10:  8M<fx<=16M

11:  8M

AMPSEL[1:0]选择主晶振频率。按外接晶振频率设置即可。

2.4 MOSCST主晶振稳定延时寄存器MainOSC Stabilization Time Register

MOSCST主晶振稳定延时寄存器可以32bit读写。地址:FFF8 110CH,复位值0000 44C0H。

Bit position

Bit Name

Function

31 - 17

保留

16 - 0

MOSC

CLKST[16:0]

主时钟稳定时间寄存器,这个时间是上电到主时钟稳定的时间设置。只有主时钟稳定了,才能切换到外部主时钟。

  1. 如果内部高速晶振使能了,稳定时间是MOSCCLKST/frh。
  2. 如果内部高速晶振不使能,稳定时间是MOSCCLKST/frl。

2.5 MOSCSTPM主晶振停止屏蔽寄存器MainOSC Stop Mask Register

MOSCSTPM主晶振停止屏蔽寄存器可以32bit读写。地址:FFF8 1118H,复位值0000 0002H。

Bit position

Bit Name

Function

31 - 1

保留

0

MOSCSTPMSK

0:待机模式主晶振停止

1:待机模式主晶振工作

副晶振寄存器

2.6 SOSCE 副晶振使能寄存器— SubOSC Enable Register

功能同主晶振使能寄存器

2.7 SOSCS副晶振状态寄存器— SubOSC Status Register

功能同主晶振状态寄存器

2.8 SOSCST副晶振稳定延时寄存器 — SubOSC Stabilization Time Register

功能同主晶振稳定延时寄存器

内置振荡器寄存器

2.9 ROSCE内置振荡器使能寄存器— HS IntOSC Enable Register

功能同主晶振使能寄存器,只有禁止功能,没有使能功能。

2.10 ROSCS 内置振荡器状态寄存器— HS IntOSC Status Register

功能同主晶振状态寄存器

2.11 ROSCSTPM内置振荡器停止屏蔽寄存器 — HS IntOSC Stop Mask Register

功能同主晶振停止屏蔽寄存器

PLL倍频器寄存器

2.12 PLLE PLL使能寄存器 — PLL Enable Register

功能同主晶振使能寄存器

2.13 PLLS PLL状态寄存器— PLL Status Register

功能同主晶振状态寄存器

2.14 PLLC  PLL控制寄存器— PLL Control Register

Bit position

Bit Name

Function

31 - 17

保留

16

OUTBSEL

fCPLLCLK选择

0:和fPPLLCLK相同

1:fVCOOUT / 5

15 - 13

保留

12,11

M[1:0]

M1  M0  Mr-Value  MainOSC frequency fX

0   0    1        8 MHz ≤ fX ≤ 24 MHz

0   1    2        16 MHz ≤ fX ≤ 24 MHz

1   0    3        fX = 24 MHz

1   1             禁止设置

10 - 8

PA[2:0]

PA[2:0]  Par-Value   PLL output frequency range

000     禁止设置     /

001     禁止设置     /

010      4           60 MHz to 80 MHz

011      6           40 MHz to 80 MHz

100      8           30 MHz to 60 MHz

101      16           25 MHz to 30 MHz

110     禁止设置     /

111     禁止设置     /

7,6

保留

5-0

N[5:0]

设置分流比Nr

For N[5:0] example settings, see Table 10.16, PLL Output Table.

PLL以上几个参数的配置,技术规格书给出了表格,只要查询就可以得到。以下是主晶振16MHz的表格,其他表格对应查找即可。

Table 10.16, PLL Output Table

采用16M外部晶振,PLL输出主频80M。所以配置PLL控制寄存器配置为:

OUTBSEL = 0;Mr = 2;Par=4;N5-N0 = 100111 = 0x27。

Mr=2,所以配置M1 M0 = 01。

Par = 4,所以配置PA[2:0] = 010。

所以PLLC = 0000 1010 0010 0111b = 0A27H。

配置例程:

/*写保护寄存器*/

void protected_write(unsigned int  pro_ reg, unsigned  int pro_status, unsigned  int reg, unsigned  int  value)

{

Do

{

pro_ reg = 0xa5;

reg = value;

reg = ~value;

reg = value;

} while(pro_status ==1u)

}

void Init_Clocks(void)

{

/*配置主晶振 16M*/

if((MOSCS&0x04u) != 0x4u)   /* 检测MainOsc 有没有启动 */

       {

MOSCC=0x06;  /* 10B,(8MHz < MOSC frequency =< 16MHz) */

            MOSCST=0x8000;  /* 设置稳定延时时间(8,19 ms) */

protected_write(PROTCMD0,PROTS0,MOSCE,0x01u);  /* MOSCE=0x01,使能主晶振*/

while ((MOSCS&0x04u) != 0x04u); /* 等待MainOSC正常工作 */

}

/*配置PLL 80M*/

if((PLLS&0x04u) != 0x04u)  /* 检测PLL有没有启动 */

{

PLLC=0x00000a27u;  /* 配置PLL控制寄存器,主晶振 16M,CPLLOUT,PPLLOUT输出80M,数据来源见前面分析*/

protected_write(PROTCMD1,PROTS1,PLLE,0x01u);  /*使能 PLL */

while((PLLS&0x04u) != 0x04u)   /*等待 PLL正常工作 */

}

/*配置CPU时钟80M*/

protected_write(PROTCMD1,PROTS1,CKSC_CPUCLKD_CTL,0x01u); /*CPU时钟不分频,80M */

while(CKSC_CPUCLKD_ACT!=0x01u);

protected_write(PROTCMD1,PROTS1,CKSC_CPUCLKS_CTL,0x03u); /*CPU时钟源选择,BIT1-0, 3-PLL输出CPLLCLK*/

while(CKSC_CPUCLKS_ACT!=0x03u); /*等待 CPU时钟正常工作 */

}

程序经实测CPU工作频率80M。

1、RH850时钟源及配置相关推荐

  1. STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)

    本篇文章包含的内容 一.TIM 定时器 1.1 TIM 定时器简介 1.2 TIM 定时器类型及其工作原理简介 1.2.1 基本定时器工作原理及其结构 1.2.2 通用定时器工作原理及其结构 1.2. ...

  2. SYD8811 使用外部32.768Khz晶振作为时钟源

    要使用外部晶振作为时钟源有如下两点要注意: 1.4k中的时钟源配置项要和代码的配置项相同,4K中的时钟源通过studio的protocol界面的"Clock select"功能来配 ...

  3. STM32学习笔记之一:时钟源HSI、HSE、LSI、LSE、PLL及其不接外部晶体时的管脚配置

    如何识别STM32五个时钟源及其不接外部晶体时的管脚配置? A: 1.HSI是高速内部时钟,RC振荡器,频率为8MHz. 2. HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 ...

  4. STMCube学习记录(一)RCC时钟源配置

    打开STMCube的RCC配置界面如下图, 在用cube配置时钟时,有下面三个选项 Disable(禁用) BYPASS Clock Source(旁路时钟源) Crystal/Ceramic Res ...

  5. STM32时钟源时钟系统配置

    一.在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. ①HSI是高速内部时钟,RC振荡器,频率为8MHz. ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率 ...

  6. 纠结的STM32 RTC时钟源LSE

    一开始,所有实验都是在神舟板上去完成,根本就没有发现RTC的问题.直到我们自己画板来后调试时,才发现STM32 RTC的外部时钟源存在问题. 这也算是STM32的一个鸡肋,对于LSE外部晶振太过于苛刻 ...

  7. linux下编写时钟代码,Linux时间子系统之一:clock source(时钟源)【转】(示例代码)...

    clock source用于为linux内核提供一个时间基线,如果你用linux的date命令获取当前时间,内核会读取当前的clock source,转换并返回合适的时间单位给用户空间.在硬件层,它通 ...

  8. STM32通用定时器(原理、结构体、库函数、定时器中断每秒闪烁一次灯) —— 时钟源、分频值、重装载值

    参考:stm32定时器与定时器中断 作者:打酱油的 发布时间: 2021-04-11 01:04:09 网址:https://blog.csdn.net/weixin_46098612/article ...

  9. STM32F4设置系统时钟源为内部HSI

    最近项目需要在调试STM32时遇到外部晶振时钟不稳定,查看RCC_CR寄存器的第17位始终处于0,表示外部晶振始终处于不稳定状态: 当HSE开启时,如果HSERDY一直处于0时,则芯片会启动内部16M ...

  10. 如何管理kvm虚拟机的时钟源

    概述 有很多时钟源可用于硬件虚拟机 (HVM) 实例,例如 Xen.时间戳计数器 (TSC).高精度事件时间 (HPET) 或高级配置和电源接口规范 (ACPI).对于windows虚拟机 ,最佳实践 ...

最新文章

  1. Fiddler抓包工具总结(转)
  2. arm 饱和指令_ARM平台下NEON使用方法详解
  3. 让Dev-C++运行C++程序的控制台窗口等待查看运行结果
  4. Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)
  5. linux rmi端口,RMI 两个端口 - 差不多先生的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. 搜索引擎学习(七)解析查询
  7. 【模拟】签订协议(nowcoder 217601)
  8. CAN总线很难吗?CAN总线看不懂是不可能的!
  9. 【转】 Android常用实例—Alert Dialog的使用
  10. 浅谈line-height 1
  11. Teleport Ultra网站静态资源下载工具
  12. LPDDR4协议规范之(二)复位和上电初始化
  13. 重看经典动漫《火影忍者》的一些感受
  14. 计算机类英文参考文献,计算机英文参考文献.doc
  15. 【CAN】PCAN连线
  16. 选择云服务器主要看那方面的参数和性能
  17. 马士兵java ppt_[马士兵JAVA教程课件.ppt
  18. 反驳生命的起点是rna_生命起源学说或将被改写?“天外来客”陨石给科学家带来新发现!...
  19. 如何通过轨迹信息判断驾驶人是否为同一人?
  20. matlab里面的sul,MATLAB语言在电机控制系统仿真研究中的应用

热门文章

  1. 算法导论答案网Solutions to Introduction to Algorithms Third Edition_开源免费完整
  2. 《图论及其应用》学习笔记(图和简单图)
  3. 按住 ctrl 并滚动鼠标滚轮才可缩放地图_鼠标永远快不过键盘!32组PS常用快捷键你值得拥有!...
  4. 高清数字电视视频处理器画质增强技术简介
  5. 无线安全破解软件汇总和破解技术资源汇总
  6. WebLogic部署项目成功后,访问Error 404
  7. CuteFtp通用注册码
  8. java转换apk软件_jar软件转安卓apk软件
  9. 怎样做小游戏挖金子(VC,源码3)
  10. winpe加载raid_WinPE添加RAID驱动的步骤