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系统时钟的配置方法。RCC(Reset and Clock Control)是STM32微控制器中的一个重要模块,负责管理系统的时钟频率和复位信号。通过...
STM32时钟学习笔记 STM32微控制器的时钟系统是由五个时钟源组成的,分别是HSI、HSE、LSI、LSE和PLL。这些时钟源提供了不同的频率和功能,以满足不同应用场景的需求。 1. HSI:高速内部时钟,频率为8MHz,使用RC...
系统时钟通过AHB总线分频器进行分频,AHB分频器有多种分频选择,如1、2、4、8、16、64、128、256、512。 AHB分频器的输出时钟分配如下: 1. **HCLK**:供给AHB总线、内核、内存和DMA使用。 2. **系统定时器时钟**:...
在STM32F1中,系统时钟配置是至关重要的,因为它直接影响到MCU的工作速度和其他外设的操作频率。下面将详细解释STM32F1系统时钟配置的原理、方法以及如何通过寄存器、标准库和HAL库来实现。 首先,STM32F1的系统...
Contiki学习笔记:系统进程etimer_process Contiki学习笔记:深入理解process_run函数 Contiki 进阶学习: Contiki学习笔记:新事件产生及事件处理 Contiki学习笔记:时钟中断处理程序Systick_isr Contiki学习笔记:...
- MAMTIM的设置应根据系统时钟频率进行,确保合适的Flash访问时间。 3. **VIC 使用注意事项**: - 当中断服务程序在片内RAM中运行时,需要将中断向量重映射到Flash地址0x0,以满足异常向量的定位要求。 - 使用...
STM32系统时钟知识点总结 本文总结了STM32系统时钟的相关知识点,涵盖了时钟树的结构、时钟源、时钟监视系统、时钟输出、时钟配置、时钟使能、时钟相关函数等方面。 一、时钟树结构 STM32的时钟树结构主要包括五...
本学习笔记涵盖了网络操作系统的基本概念、操作系统的定义和特征、操作系统在计算机系统中的地位、多道程序设计、虚拟处理机、处理机的运行现场、系统调用、UNIX 的系统调用、分时系统、实时系统、分布式计算机系统...
在嵌入式Linux应用开发中,系统时钟和定时器是至关重要的组成部分,它们负责管理系统的执行流程,确保任务按时执行。本笔记基于申延超的《嵌入式Linux应用开发完全手册》,深入探讨了这一主题。 首先,系统时钟是...
MSP430的系统时钟包括MCLK(主时钟)、SMCLK(子时钟)和ACLK(辅助时钟): - MCLK是系统主时钟,供CPU和部分外围模块使用。它可以由任何振荡器提供,并通过分频器进行1、2、4或8分频。 - SMCLK是系统子时钟,主要...
"嵌入式系统笔记整理学习笔记" 本资源是关于嵌入式系统的笔记整理学习笔记,涵盖了嵌入式系统的基本概念、指令体系结构、存储机制、异常处理、总线规范、存储器、UART、实时系统、嵌入式系统开发过程、DSP 数字信号...
本文主要介绍了 MSP430 单片机的学习笔记和心得,重点讲解了其存储器结构、复位机制、时钟系统以及中断处理。 首先,MSP430 属于冯·诺依曼结构的微处理器,它的存储器分为几个部分:0-0xf 是特殊功能寄存器,0x10-...
### 2335自考《网络操作系统》学习笔记精要 #### 第一章 网络操作系统引论 **1. 操作系统的定义及基本特征** - **定义**: 操作系统是控制和管理计算机系统的硬件和软件资源、合理地组织工作流程以及方便用户的...
### 操作系统学习笔记知识点详解 #### 一、操作系统的基本概念与特征 1. **概念**: - **定义**:操作系统(Operating System, OS)是控制和管理计算机硬件与软件资源的核心系统软件,它合理地组织计算机工作流程...
- **系统同步**:所有输入信号都应与系统时钟同步,确保在正确的时钟边缘捕获数据。 - **源同步**: - **SDR(Single Data Rate)**:数据在时钟的上升沿或下降沿被采样。参考数据手册来确定合适的采样点,并通过...
在当今高度发展的电子设计领域,高速模拟数字转换器(ADC)与数字模拟转换器(DAC)的应用无处不在,...通过持续学习和实践,我们可以更好地克服时钟域杂散串扰带来的挑战,为高端电子系统提供更稳定、可靠的性能保障。
│ MSP430学习笔记系列3—MSP430中断、内嵌函数、时钟系统.pdf │ MSP430学习笔记系列4—MSP430定时器.pdf │ MSP430学习笔记系列5—USCI模块(串口-SPI-I2C).pdf │ MSP430学习笔记系列6—MSP430看门狗-低功耗工作...
### F2812学习笔记知识点详述 #### 一、如何开始DSP的学习 - **基础知识了解**:首先,快速浏览整个书籍,了解DSP的基本概念和技术背景,掌握DSP的总体框架。 - **学习资料的选择**:选择合适的教材或参考资料非常...
该资源为STM32学习笔记,详细介绍了RCC系统时钟的配置方法,内有程序代码,可以正常运行,注释详细。主要讲解了SysTick定时器的使用和配置。 一、SysTick定时器概述 SysTick定时器是一个24位、降序、零约束、写...
它不依赖于外部时钟源,而是以固定的频率(通常为系统时钟的1/256)自增。滴答计时器的主要用途是在系统级提供一个独立的、高精度的定时基准,用于软件定时任务,如RTOS的Tick管理。由于其与CPU时钟同步,滴答计时器...