`

系统时钟学习笔记

阅读更多

12m晶振----->pll------>cpu

 

Mux多路选择器

Div分频器

示例代码如下:

汇编实现

.globlclock_init

 

clock_init:

 

/*1.设置LOCK_TIME*/

ldrr0,=0x7E00F000/*APLL_LOCK*/

ldrr1,=0x0000FFFF

strr1,[r0]

 

strr1,[r0,#4] /*MPLL_LOCK*/

strr1,[r0,#8] /*EPLL_LOCK*/

 

#defineOTHERS 0x7e00f900

@setasyncmode/*CPU时钟!=HCLK时,要设为异步模式*/

ldrr0,=OTHERS

ldrr1,[r0]

bicr1,#0xc0

strr1,[r0]

 

loop1: /*等待,直到CPU进入异步模式*/

ldrr0,=OTHERS

ldrr1,[r0]

andr1,#0xf00

cmpr1,#0

bneloop1

 

/*SYNC667*/

/*MISC_CON[19]=0*/

 

#defineARM_RATIO0/*ARMCLK=DOUTAPLL/(ARM_RATIO+1)*/

#defineHCLKX2_RATIO1/*HCLKX2=HCLKX2IN/(HCLKX2_RATIO+1)*/

#defineHCLK_RATIO1/*HCLK=HCLKX2/(HCLK_RATIO+1)*/

#definePCLK_RATIO3/*PCLK=HCLKX2/(PCLK_RATIO+1)*/

#defineMPLL_RATIO0/*DOUTMPLL=MOUTMPLL/(MPLL_RATIO+1)*/

ldrr0,=0x7E00F020/*CLK_DIV0*/

ldrr1,=(ARM_RATIO)|(MPLL_RATIO<<4)|(HCLK_RATIO<<8)|(HCLKX2_RATIO<<9)|(PCLK_RATIO<<12)

strr1,[r0]

 

/*2.配置时钟*/

/*2.1配置APLL*/

/*2.1.1设置APLL

*2.1.2MUXAPLL

*2.1.3SYNC667

*2.1.4DIVAPLL

*/

#defineAPLL_CON_VAL((1<<31)|(266<<16)|(3<<8)|(1))

ldrr0,=0x7E00F00C

ldrr1,=APLL_CON_VAL

strr1,[r0] /*APLL_CON,FOUTAPL=MDIV*Fin/(PDIV*2^SDIV)=266*12/(3*2^1)=532MHz*/

 

/*2.2配置MPLL*/

/*2.2.1设置MPLL

*2.2.2MUXMPLL

*2.2.3SYNCMUX

*2.2.4SYNC667

*2.2.5HCLKX2_RATIO

*2.2.6PCLK_RATIO

*/

#defineMPLL_CON_VAL((1<<31)|(266<<16)|(3<<8)|(1))

ldrr0,=0x7E00F010

ldrr1,=MPLL_CON_VAL

strr1,[r0] /*MPLL_CON,FOUTMPL=MDIV*Fin/(PDIV*2^SDIV)=266*12/(3*2^1)=532MHz*/

 

/*3.选择PLL的输出作为时钟源*/

ldrr0,=0x7E00F01C

ldrr1,=0x03

strr1,[r0]

 

movpc,lr

 

 

 

C实现

#defineAPLL_LOCK(*((volatileunsignedlong*)0x7E00F000))

#defineMPLL_LOCK(*((volatileunsignedlong*)0x7E00F004))

#defineEPLL_LOCK(*((volatileunsignedlong*)0x7E00F008))

 

#defineOTHERS (*((volatileunsignedlong*)0x7E00F900))

 

#defineCLK_DIV0(*((volatileunsignedlong*)0x7E00F020))

 

#defineARM_RATIO 0

#defineHCLKX2_RATIO 4

#defineHCLK_RATIO 0

#definePCLK_RATIO 1

#defineMPLL_RATIO 0

 

#defineAPLL_CON(*((volatileunsignedlong*)0x7E00F00C))

#defineAPLL_CON_VAL((1<<31)|(250<<16)|(3<<8)|(1))

 

#defineMPLL_CON(*((volatileunsignedlong*)0x7E00F010))

#defineMPLL_CON_VAL((1<<31)|(250<<16)|(3<<8)|(1))

 

#defineCLK_SRC(*((volatileunsignedlong*)0x7E00F01C))

 

voidclock_init(void){

APLL_LOCK=0XFFFF;

MPLL_LOCK=0XFFFF;

EPLL_LOCK=0XFFFF;

 

/*CPU时钟!=HCLK时,要设为异步模式*/

OTHERS&=~0XC0;

while((OTHERS&0XF00)!=0);

 

CLK_DIV0=(ARM_RATIO)|(MPLL_RATIO<<4)|(HCLK_RATIO<<8)|(HCLKX2_RATIO<<9)|(PCLK_RATIO<<12);

APLL_CON=APLL_CON_VAL;/*500MHZ*/

MPLL_CON=MPLL_CON_VAL;/*500MHZ*/

 

CLK_SRC=0X03;

}

 

分享到:
评论

相关推荐

    STM32学习笔记——RCC系统时钟配置

    自己写的STM32的学习笔记,详细介绍了RCC系统时钟的配置方法,内有程序代码,可以正常行,注释详细。

    [学习笔记]STM32F1系统时钟配置(寄存器、标准库、HAL库源码)

    [学习笔记]STM32F1系统时钟配置(寄存器、标准库、HAL库源码)

    contiki 学习笔记

    Contiki学习笔记:系统进程etimer_process Contiki学习笔记:深入理解process_run函数 Contiki 进阶学习: Contiki学习笔记:新事件产生及事件处理 Contiki学习笔记:时钟中断处理程序Systick_isr Contiki学习笔记:...

    MSP430学习笔记

    │ MSP430学习笔记系列3—MSP430中断、内嵌函数、时钟系统.pdf │ MSP430学习笔记系列4—MSP430定时器.pdf │ MSP430学习笔记系列5—USCI模块(串口-SPI-I2C).pdf │ MSP430学习笔记系列6—MSP430看门狗-低功耗工作...

    STM32系统时钟

    通过学习STM32的时钟树的讲解,记录的一些知识点,希望对大家有用。

    STM32F4xx学习笔记

    STM32F4xx学习笔记 时钟配置  STM32F407最高层是SYSCLK系统时钟,由其生成了 AHB时钟,再由AHB时钟生成APB时钟。 系统时钟的来源: 系统时钟有三个来源: 内部告诉晶体(16MHZ)。 外部告诉晶体(4-26MHZ)。 PLL输出...

    STM32学习笔记——系统定时器systick的使用

    自己写的STM32的学习笔记,详细介绍了RCC系统时钟的配置方法,内有程序代码,可以正常行,注释详细。

    P89C51RC2HBP 单片机为核心的实时时钟系统

    Altium Designer学习笔记

    SD卡协议学习点滴学习笔记

    SD卡协议学习点滴(一) 首先SD卡有所谓操作模式(operation mode)的概念,每种操作模式又具体对应一种或多种状态,主机通过发送命令可以使SD卡在不同的状态间转换,SD卡则接受命令,并根据自己现在所处状态做出...

    Vxworks学习笔记

    返回系统时钟每秒的tick数量, tick详解 43 6 中断应用设计要点 44 7 驱动程序设计 49 8 缩短vxworks的启动时间 51 9 调试篇 54 10 驱动编程步骤 54 10.1 将驱动程序增加到“系统驱动程序列表”中 54 10.2 将设备增加...

    学习笔记 平凡单片机教程

    介绍了单片机汇编指令、计数、中断等 在51 单片机内部有一个CPU 用来运算、控制,有四个并行I/O 口,分别是 P0、P1、P2、P3,有ROM,用来存放程序...还有定时/计数器,串行I/O 口,中断系统,以及一个内部的时钟电路。

    2.stm32f103学习笔记,OLED显示万年历

    该项目采用stn32单片机,0.96寸oled屏幕,RTC时钟系统,可显示UNIX时钟,日期,生肖年,时间等

    F2812学习笔记.pdf

    一、如何开始DSP 的学习 ................................................................................................................. 2 二、完整工程的构成 .............................................

    STM32学习笔记:通用定时器基本定时功能

     STM32中一共有11个定时器,其中2个控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒时钟。今天主要是学习8个定时器。    定时器其中TIM1和TIM8是能够产生3对PWM互补...

    嵌入式学习资料之Linux内核定时器笔记--千锋培训

    文档介绍了实时时钟(RTC),时间戳计时器(TSC),CPU本地定时器,高精度时间定时器(HPET),ACPI电源管理定时器,定时器的数据结构,定时插补,单处理器系统上的计时体系结构,时钟中断处理程序,多处理器系统上...

    笔记本维修视频教程.zip

    第14讲液晶屏背光灯系统 第15讲bios电路 第16讲电池维修 第17讲维修思路 第18讲维修技巧 第19讲维修思路1 第20讲维修思路2 第21讲维修思路3 第22讲维修思路4 第23讲改通用高压条 第24讲示波器使用说明 第25讲上电...

    国嵌笔记。全集全集

    本人学习的国嵌笔记。操作详细! 第一季 精通嵌入式 4 一. 安装tftp服务器 4 二. Samba服务器安装 4 三. NFS服务器 5 四. 安装vsftpd FTP服务器 5 第2季-裸奔吧-ARM 6 一. 安装交叉编译器 6 二. 安装驱动 6 三...

    液晶显示器、CRT显示器、笔记本维修培训课程.pptx

    显示器、笔记本、主板维修培训课程,任务一 LCD显示器概述,显示原理和常见术语解释 液晶显示器 任务二 LCD液晶面板的原理和...第十:对主板总结性实战维修,如供电、时钟、复位、BIOS电路,物理损伤、进液、腐蚀等。

    电子时钟设计(1).doc

    小型化、微型化、低功耗、智能化、系统化方向更新换代 20世纪90年代电脑向智能方向发展制造出与人脑相似电脑进行思维、学习、记忆、网络 通信等工作 进入21世纪电脑更笔记本化、微型化和专业化每秒运算速度超过100万...

    contiki学习资料

    详细的contiki学习笔记,包括:环境设置,微处理器,系统架构,线程,时钟,硬件I/O,网络,无线电,其它。

Global site tag (gtag.js) - Google Analytics