[国嵌攻略][038][时钟初始化]

发布者:Xiaohan521最新更新时间:2025-02-25 来源: cnblogs关键字:时钟初始化  时钟  脉冲频率 手机看文章 扫描二维码
随时随地手机看文章

时钟脉冲信号

按一定的电压幅度,一定的时间间隔连续发出的脉冲信号叫做时钟脉冲信号。用于给处理器和其他硬件提供时钟度量。

 

时钟脉冲频率

在单位时间内产生的时钟脉冲的个数叫做时间脉冲频率

 

时钟源分类

1.晶振:又称晶体振荡器,通过石英晶体切割、加电极、通电后会产生固定的机械震荡。优点是结构简单、噪声低,缺点是生产成本高。

2.PLL:锁相环,通过外部晶振和锁相环电路来提高晶振的频率。

 

时钟体系

1.晶振频率是多少?

2.有多少个PLL?

3.PLL产生出了哪些时钟?(ARM核使用的是哪个时钟)

4.产生出来的时钟用来做什么?

5.在datasheet中的CLOCK & POWER MANAGEMENT中可以相关描述

 

2440时钟体系

1.晶振频率是12MHz

2.MPLL,UPLL

3.MPLL产生出来FCLK、HCLK、PCLK;UPLL产生出来UCLK

时钟

应用场合

应用举例

所属PLL

FCLK

处理器

ARM9

MPLL

HCLK

AHB总线

LCD,DMA

MPLL

PCLK

APB总线

UART,GPIO

MPLL

UCLK

USB总线

USB

UPLL

 

6410时钟体系

1.晶振是12MHz

2.APLL,MPLL,EPLL

3.APLL产生出来ARMCLK;MPLL产生出来HCLK、PCLK;EPLL产生出来SCLK

时钟

应用场合

应用举例

所属PLL

ACLK

处理器

ARM11

APLL

HCLK

AHB总线

LCD,DMA

MPLL

PCLK

APB总线

UART,GPIO

MPLL

SCLK

USB总线

USB

EPLL

 

210时钟体系

1.晶振是24MHz

2.APLL,MPLL,EPLL,VPLL

时钟体系

所属时钟

应用举例

锁相环

MSYS

ARMCLK

HCLK_MSYS

PCLK_SYS

ARM核

内存控制器

中断

APLL

DSYS

HCLK_DSYS

PCLK_DSYS

显示相关部件如FIMC

MPLL

PSYS

HCLK_PSYS

CLK_DPM

外设,如UART,I2C

EPLL


视频相关


VPLL

 

思维导图设计

 

1.上电之后ARM核按照晶振频率在工作

2.当PLL配置完成是会进入Lock Time,处理器停止工作,然后以新的频率开始工作。

3.时钟初始化软件需要完成的工作:

3.1.配置Lock Time;

3.2.设置分频系数(用于FCLK来配置HCLK和PCLK);

3.3.如果HDIVN不等于0,需要设置CPU从快速模式到异步模式。FCLK是核的频率,HCLK是总线的频率,当核的频率和总线的频率不相等的时候需要设置CPU到异步工作模式。

3.4.配置FCLK

 

代码编写

1.找到设置lock time的寄存器LOCKTIME(0x4C000000),一般使用默认值,所以不需要去设置

2.设置PLL需要去设置MPLLCON(0x4C000004)中的MDIV=127 PDIV=2 SDIV=1

3.设置分频系数一定要在datasheet中对应的表里面。可以参考uboot中的分频系数来设置FCLK:HCLK:PCLK=1:4:8 HDIVN=2 PDIVN=1。在CLKDIVN(0x4C000014)寄存器中是用来设置HDIVN和PDIVN的

4.设置异步工作模式需要在ARM核手册中找到CP15的R1寄存器的iA和nF位,并设置为1

 

时钟设置总结(可以参考芯片手册和uboot代码)

1.设置PLL系数

2.设置选择器

3.设置分频系数

4.设置异步模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
*名称:init_sysclk
*功能:初始化系统时钟
*/
init_sysclk:
    //设置PLL系数
    ldr r0, =MPLLCON
    ldr r1, =MPLLCON_VAL
    str r1, [r0]
 
    //设置分频系数
    ldr r0, =CLKDIVN
    ldr r1, =CLKDIVN_VAL
    str r1, [r0]
     
    //设置异步模式
    mrc p15, 0, r0, c1, c0, 0
    orr r0, r0, #0xC0000000   //设置iA:1 iF:1
    mcr p15, 0, r0, c1, c0, 0
     
    mov pc, lr


关键字:时钟初始化  时钟  脉冲频率 引用地址:[国嵌攻略][038][时钟初始化]

上一篇:[国嵌笔记][037][点亮指路灯]
下一篇:[国嵌笔记][028][Bootloader设计蓝图]

推荐阅读最新更新时间:2026-03-25 11:48

时钟初始化配置函数
在前面推文的介绍中,我们知道STM32系统复位后首先进入SystemInit函数进行时钟的设置,然后进入主函数main。那么我们就来看下SystemInit()函数到底做了哪些操作,首先打开我们前面使用库函数编写的LED程序,在system_stm32f10x.c文件中可以找到SystemInit()函数,SystemInit()代码如下:   void SystemInit (void)   {   /* Reset the RCC clock configuration to the default reset state(for debug purpose) /   / Set HSION bit /   RCC- CR |
[单片机]
28.时钟初始化
ARM系统时钟初始化: 这就需要知道什么是时钟脉冲信号,什么是时钟频率,什么是时钟源。 时钟脉冲信号: 时钟脉冲信号:按一定的电压幅度,一定的时间间隔连续发出的脉冲信号。时钟脉冲信号是时序逻辑的基础,它用于决定逻辑单元中的状态何时更新。数字芯片中众多的晶体管都工作在开关状态,它们的导通和关断动作无不是按照时钟信号的节奏进行的 时钟脉冲图解: 1.2时钟脉冲频率: 时钟脉冲频率:就是在单位时间,如1秒,内产生的时钟脉冲个数。 1.3信号产生: 如何产生时钟信号:1.晶振2.锁相环PLL 1.3.1信号产生-晶振: 晶振全称晶体振荡器,是用石英晶体经精密切割磨削并镀上电极焊上引线做成。这种晶体
[单片机]
28.<font color='red'>时钟</font><font color='red'>初始化</font>
s3c6410时钟初始化
今天自己写bootloader做时钟初始化时遇到的问题,特记录下来。为了方便理解,我大部分都有截图, 在此我先说明下,图均来自数据手冊。也希望看了本篇文章的同志多多參看数据手冊才干理解的更加透彻,才干真正的锻炼自己的能力。以下程序部分我也拆分成了5个部分分别解释,最后也给出了整个程序。本文假设有什么错误的地方。欢迎各位批评指正。不甚感激。 6410有3个内部PLL(Phase Locked Loop:为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料。PLL用于振荡器中的反馈技术。 很多电子设备要正常工作,通常须要外部的输入信号与内部的振荡信号同步。利 用锁相环路就能够实现这个目的。 各自是:APLL
[单片机]
s3c6410<font color='red'>时钟</font><font color='red'>初始化</font>
S3C2440 初始化时钟
一、S3C2440 时钟 1、时钟树 从s3c2440的技术手册的时钟树可以了解到,它的时钟分四大块FCLK,HCLK,PCLK,UCLK。FCLK主要用于CPU的运行时钟,HCLK主要用于内存控制器,中断控制器等一些高速设备的时钟,PCLK主要用于GPIO控制器,I2C控制器等一些较低速设备的时钟,UCLK主要给USB控制器提供时钟的。时钟树如下图: 2、S3C2440支持的时钟速率 1、S3C2440的最高速率:FCLK最高支持400MHz,HCLK最高支持136MHz,PCLK最高支持68MHz。 2、在本实验将 FCLK设置为400MHz,HCLK设置为100MHz,PCLK设置为50MHz。 二、设
[单片机]
S3C2440 <font color='red'>初始化</font><font color='red'>时钟</font>
STM32入门系列-STM32时钟系统,时钟初始化配置函数
在前面推文的介绍中,我们知道STM32系统复位后首先进入SystemInit函数进行时钟的设置,然后进入主函数main。那么我们就来看下SystemInit()函数到底做了哪些操作,首先打开我们前面使用库函数编写的LED程序,在system_stm32f10x.c文件中可以找到SystemInit()函数,SystemInit()代码如下: void SystemInit (void) { /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ /* Set HSION bit */ RCC- CR |= (ui
[单片机]
Systemlnit时钟系统初始化函数剖析
在工程文件的system_stm32f10x.c中有如下代码: 这里将为大家逐个注释,让大家了解。 void SystemInit (void) { RCC- CR |= (uint32_t)0x00000001;//把HSI时钟打开 //HSION:内部高速时钟使能 (Internal high-speed clock enable) 由软件置’1’或清零。 //当从待机和停止模式返回或用作系统时钟的外部4-16MHz振荡器发生故障时,该位由硬件置’1’ 来启动内部8MHz的RC振荡器。 //当内部8MHz振荡器被直接或间接地用作或被选择将要作为系 统时钟时,该位不能被清零。 //0:内部8MHz振荡器
[单片机]
uboot-2011.12移植到S3C2440(三)——硬件初始化:看门狗、中断、时钟
/* * turn off dog, see C18P3 */ ldr r0, =pWTCON mov r1, #0x0 str r1, /* * C14 * mask all IRQs by setting all bits in the INTMR - default */ mov r1, #0xffffffff ldr r0, =INTMSK str r1, ldr r1, =0x7fff ldr r0, =INTSUBMSK str r1, /* * FCLK:HCLK:P
[单片机]
飞思卡尔单片机DZ60---时钟初始化
/* Derivative peripheral declarations */ #include derivative.h /* Definitions and function prototypes */ #include DZ60_init.h //FEI切换到PEE模式,外部晶振=4MHZ,总线频率=8MHZ( 中文手册,P144页) /* External crystal oscillator = 4MHz */ /* FOR PEE mode: Bus_Clock = (1/2)* /(Bus_div) = 8MHz */ #define BUS_DIV 0 /* Bus di
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved