在电子技术中,脉冲信号是一个按一定电压幅度,一定时间间隔连续发出的脉冲信号。脉冲信号之间的时间间隔称为周期;而将在单位时间(如1秒)内所产生的脉冲个数称为频率。频率是描述周期性循环信号(包括脉冲信号)在单位时间内所出现的脉冲数量多少的计量名称;频率的标准计量单位是hz(赫)。本文主要介绍什么是时钟频率及编程,具体的跟随小编一起来了解一下。
什么是时钟频率
时钟频率即cpu的外部时钟频率,由电脑主板提供,以前一般是66mhz,也有主板支持75各83mhz,目前intel公司最新的芯片组bx以使用100mhz的时钟频率。另外via公司的mvp3、mvp4等一些非intel的芯片组也开始支持100mhz的外频。精英公司的bx主板甚至可以支持133mhz的外频,这对于超频者来是首选的。
时钟频率就像发动机转速,以一定频率在转,但能跑多块还要具体分析
频率越高,对信号质量要求越高,能耗越大,与同样产品相比,高频率=高性能不是一辆卡车变两辆卡车……虽然还是那个速度,但装的多
木桶能装多少水取决于最短那块板,在电脑上有一定道理没有绝对的好,坏,成本决定性能,同样的成本可以有不同的侧重点,加强某方面的性能,但其他方面相应减弱
时钟频率详解和编程
晶振:其作用是产生原始的时钟频率,这个频率经过频率发生器的倍频或分频后就成了电脑中各种不同的总线频率;其本身不振荡但和外电路产生谐振。
一般来讲系统都会有2个锁相环。这里就拿三星的s3c2440来作为例子吧。s3c2440有2个锁相环(pll--- phase locked loop),一个是mpll,一个是upll;mpll用于cpu及其他外围器件。upll用于usb提供48mhz.外部时钟源,经过mpll处理后能够得到三种不同的系统时钟。他们分别是fclk,hclk,pclk三种频率,这三种频率分别有不同的用途。
fclk是为cpu提供时钟信号,主频时钟,用于art920t内核。
hclk是为ahb总线提供的时钟信号,主要用于高速外设,比如内存控制器,中断控制器,lcd控制器,dma以及usb主模块等。
pclk是为apb总线提供的时钟信号,主要用于低速外设,比如看门狗,uart控制器,iis,i2c,sdi/mmc,gpio,rtc and spi。
当系统上电或者复位时后,mpll就可以工作,但此时mpll的值并不是系统时钟,因为此时mpll寄存器还没初始化,还是个无效的值,所以系统选择外部时钟晶振作为系统时钟。因此系统上电及复位后,必须向mpll寄存器写入一个值,尽管这个值可能就是寄存器中的旧值。
locktime寄存器:用于设置mpll启动后稳定前所需等待的时间(lock time),一般使用默认值。
mpllcon/upllcon寄存器设置:mdiv 主频控制位,pdiv 预分频控制位,sdiv 后分频控制位
mpll(fclk) = (2 * m * fin)/(p*2s)
upll = (m * fin)/(p*2s)
其中:m = (mdiv+8), p = (pdiv+2), s = sdiv
fclk、pclk、hclk 这三个系统时钟具有一地定的比例关系,这种关系是通过寄存器clkdivn中的hdivn位和pdivn位来控制的,因此我们知道了fclk,再通过这2位的控制就能确定hclk,pclk.而fclk则是通过外部晶振频率fin由上面公式可以得到。
说了这么多,还是来理理顺序:
下面的例子网上好多,先贴出来,然后再分析其本质是什么。
mpll_val = (92《《12)|(1《《4)|(1);//至于为什么mpll_val这个值是(92《《12)|(1《《4)|(1),没有找到说明,个人分析有可能是大家的经验,或者是从后面逆推计算出来的。在fin为12mhz情况下,要让主频达到400mhz,可以从后面开始逆推出来。
定义mpll_val这个值实际是为了让倍频因子控制寄存器设定下面的值:
mdiv=92 pdiv=1 sdiv=1
changempllvalue((mpll_val》》12)&0xff, (mpll_val》》4)&0x3f, mpll_val&3);
函数原型:
void changempllvalue(int mdiv,int pdiv,int sdiv)
{
rmpllcon = (mdiv《《12) | (pdiv《《4) | sdiv;
}
函数功能:输入参数设定mpllcon寄存器的值,即倍频因子寄存器的值。
再根据公式:
mpll(fclk) = (2 * m * fin)/(p*2s),m = mdiv + 8 =100;fin 外部晶振频率为12mhz,p = pdiv+2 = 3,s = sdiv =1;
所以得到:fclk = mpll = 400mhz
得到了fclk,要计算出pclk和hclk就比较容易了。设置下分频系数寄存器clkdivn中的hdivn位和pdivn位就可以了。下面是常用的分频系统。
其实分频系数寄存器中hdivn位要设置为10或者11时,还要设置下camdivn寄存器:
最后,再补上一个总结的图上去。
OpenHarmony打造了一款新的音视频引擎——HiStreamer
2020年将会有哪些新的数据中心诞生
我国海上风电嵌岩单桩最大直径纪录刷新 又迎来一里程碑式进展
Daqri为专业船舶配AR智能眼镜,现已开始出货
5G物联网即将引爆哪些市场?
什么是时钟频率_时钟频率详解和编程
立思辰旗下硬件外设产品完成UOS系统适配 为打造操作系统创新生态提供了保障
采用放大器或变压器进行带宽设计的简单剖析
澳大利亚拟建设全球最大的超级电池工厂
5G云VR的产品组合形态将使VR用户获得6 DOF的交互沉浸体验
双头应急灯个工作原理和电路图详解
看完这六条 让你买华为P10 P10plus不后悔
期货合约存在哪一些风险
解密数字化制造:离散与流程制造MES/MOM业务与功能需求分析
计算机视觉落地企业及计算机视觉应用前景
CVC威凯汽车整车大气暴露认证服务
IR推出采用PQFN4x4封装的高压栅级驱动器
看门狗和电压监控芯片的数据手册
PCB覆铜需要处理的哪些问题?
基于IP协议的LTE和WiMAX两种技术的对比