您的位置 首页 国产IC

体系时钟和定时器简略记载

S3C2440A中的时钟控制逻辑可以产生必须的时钟信号,包括CPU的FCLK,AHB总线外设的HCLK以及APB总线外设的PCLK。S3C2440A包含两个锁相…

S3C2440A 中的时钟操控逻辑能够发生有必要的时钟信号,包括CPU的FCLK,AHB总线外设的HCLK以及APB总线外设的PCLK。S3C2440A 包括两个锁相环(PLL):一个提供给 FCLK、HCLK 和PCLK,另一个专用于USB模块(48MHz)。时钟操控逻辑能够不运用PLL来减慢时钟,而且能够由软件衔接或断开各外设模块的时钟,以降低功耗

锁相环(PLL):时钟发生器之中作为一个电路的MPLL,参阅输入信号的频率和相位同步出一个输出信号。用于生成与输入直流电压成份额的输出频率的压控振动器(VCO)、用于将输入频率(Fin)按p分频的分频器 P 、用于将VCO输出频率按m分频并输入到相位频率检测器(PFD)中的分频器M用于将VCO输出频率按s分频成为Mpll(输出频率来自MPLL模块)的分频器S、鉴相器、电荷泵以及环路滤波器。
鉴相器(PFD ):PFD检测 Fref 和Fvco之间的相位差,并在检测到相位差时发生一个操控信号(盯梢信号)。Fref 意思为参阅频率。
电荷泵(PUMP )
电荷泵将PFD 操控信号转换为一个按份额改动的电压并通过外部滤波器来驱动 VCO。
环路滤波器
PFD发生用于电荷泵的操控信号,在每次 Fvco与Fref 比较时或许发生很大的误差(纹波)。为了防止 VCO过载,运用低通滤波器采样而且滤除操控信号的高频重量。滤波器是一个典型由一个电阻和一个%&&&&&%组成的单极性RC滤波器。
压控振动器(VCO)
从环路滤波器的输出电压驱动 VCO,引起其振动频率线性增大或减小,好像均匀改动电压的功用。当Fvco与Fref 频率和相位都在限期内相匹配时,PFD 中止发送操控信号给电荷泵,并转变为安稳输入电压给环路滤波器。VCO频率坚持稳定,PLL 则坚持固定为体系时钟
PLL和时钟发生器的通常条件 (拜见文档)
怎么操控锁相环PLL的输出频率呢?MPLLCON(FCLK和Fin的份额关系)和CLKDIVN寄存器(FCLK、HCLK和PCLK之间的份额关系):FCLK=(2*m*Fin)/(p*2^s)
m=MDIV+8,p=PDIV+2,s=SDIV。(MPLLCON寄存器中)。留意:在体系初始化阶段应该先初始化UPLL(USB时钟),然后等候大约7个nop指令之后,再初始化MPLL.这也便是发动代码时,需求留意的。一起最好依照官方给出的体系时钟装备参阅。
比如:已知体系外部晶振输入为12MHz,要求FCLK输出为200MHz,通过核算能够得到MDIV=92,PDIV=4,SDIV=1。
M_MDIV EQU 92 //Fin=12.0MHz,Fout=200MHz
M_PDIV EQU 4
M_SDIV EQU 1
ldr r0 ,=MPLLCON
ldr r1 ,=((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV)
str r1,[r0]
下面装备CLKDIVN寄存器,完成FCLK、HCLK、PCLK之间的分频比。其间HDIVN用于操控FCLK和PCLK的份额关系;PDIVN首要用于操控HCLK和PCLK的份额关系。
守时器原理与使用
S3C2440有5个16位守时器,守时器0、1、2、3被称为PWM守时器。守时器 4 是一个无输出引脚的内部守时器。守时器 0 还包括用于大电流驱动的死区发生器。(时钟源是PCLK)
守时器原理相同,寄存器TCMPBn和TCNTBn用于缓存守时器n的比较值和初始化值;TCON用于操控守时亲的敞开与封闭;能够通过读取寄存器TCNTOn得到守时器的当时计数值。
TCMPBn的值是用于脉宽调制(PWM)。当递减计数器的值与守时器操控逻辑中的比较寄存器的值相匹配时守时器操控逻辑改动输出电平。因而,比较寄存器决议 PWM 输出的敞开时刻(或封闭时刻)。
守时器作业原理概述:
首要、将守时器的比较值和初始值装入寄存器TCMPBn和TCNTBn中。
然后、设置守时器操控器TCON发动守时器。此刻、TCMPBn和TCNTBn中的值会加载到寄存器TCMPn和TCNRn中。
此刻、守时器会减1计数,即TCNTn进行减1计数,当TCMPn=TCNTn时,TOUTn引脚输出取反。TCNTn持续减1计数。
当TCNTn的值抵达0时,其输出管脚TOUTn再次发转,并触发守时器n的中止。(假设中止使能的话)
当TCNTn的值抵达0时,假设在TCON寄存器中将守时器n设置为“主动取反”,则主动加载初值,下一轮计数流程开端。
能够通过读取TCNTOn读取调查守时器当时的值。PCLK通过两级分频器,输出频率作为守时器的作业频率。
守时器装备寄存器TCFG0用于操控第1级分频器的分频系数,分频器输出频率为:
PCLK/(prescaler value+1),其间prescaler value=0~255.
守时器装备寄存器TCFG1用于操控多路开关。
守时器的输入时钟=PCLK/(prescaler value+1)/(divider value)
prescaler value=0~255;divider value=2、4、8、16
比如:设置恰当的分频系数,使守时器0的输入时钟为62.5kHz
假设PCLK为50MHz,则50MHz/62.5kHz=800,能够是榜首级分频系数为100,第2级的分频系数为8即可满足要求。
rTCFG0 &= ~(0xFF);
rTCFG0 |=99;
rTCFG1 &=~(0xf);
rTCFG1 |=0x02;
整体思路是先将这几位清零,然后将数据写入这几位。
WATCHDOG守时器能够像16位守时器相同用于发生周期性的中止,也能够用于宣布复位信号以重启异常的体系。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/275604.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部