s3c2410 时钟频率
扫描二维码
随时随地手机看文章
PLL
PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料。PLL用于振荡器中的反馈技术。
锁相环是一种反馈电路,其作用是使得电路上的时钟和某一外部时钟的相位同步。PLL通过比较外部信号的相位和由压控晶振(VCXO)的相位来实现同步的,在比较的过程中,锁相环电路会不断根据外部信号的相位来调整本地晶振的时钟相位,直到两个信号的相位同步。
在数据采集系统中,锁相环是一种非常有用的同步技术,因为通过锁相环,可以使得不同的数据采集 板卡共享同一个采样时钟。因此,所有板卡上各自的本地80MHz和20MHz时基的相位都是同步的,从而采样时钟也是同步的。因为每块板卡的采样时钟都是 同步的,所以都能严格地在同一时刻进行数据采集。
通过锁相环同步多块板卡的采样时钟所需要的编程技术会根据您所使用的硬件板卡的不同而不同。对 于基于PCI总线的产品(M系列数据采集卡,PCI数字化仪等),所有的同步都是通过RTSI总线上的时钟和触发线来实现的;这时,其中一块版板卡会作为 主卡并且输出其内部时钟,通过RTSI线,其他从板卡就可以获得这个用于同步的时钟信号,对于基于PXI总线的产品,则通过将所有板卡的时钟于PXI内置 的10MHz背板时钟同步来实现锁相环同步的。
http://www.altera.com.cn/support/devices/pll_clock/basics/pll-basics.html
---------------------------------------------------------------------------------------------
PLL在电子电路中的应用
PLL即锁相环,基本原理图是:
输入信号-> 鉴相器 -> 低通滤波器 -> 压控振荡器-> 输出信号
^|_____________________ |
鉴相器有两个输入,分别是输入信号和压控振荡器的输出信号,在二者相位差和频
率差不是很大的情况下,鉴相器的输出与两输入信号之差成正比,鉴相器的输出为模
拟信号,其通过低通滤波器虑除高频杂波,后进入压控振荡器,压控振荡器的输出频
率随其输入电压的改变而改变。
从原理图上看,PLL实际上是一负反馈系统,只要输入信号在正常范围内,输出信号
在“一定时间内”都能跟上。输入信号发生变化后,输出信号跟踪输入信号的过程称之
为捕获;输出信号跟踪完毕时称之为锁定;输入信号变化过快导致输出信号无法跟踪
时称为失锁。
通过PLL可以方便实现N倍频,原理如下:
输入信号-> 鉴相器 -> 低通滤波器 -> 压控振荡器-> 输出信号
^|______N分频器______________|
此外,可以实现小数倍频,原理如下:
输入信号-> 鉴相器 -> 低通滤波器 -> 压控振荡器-> 输出信号
^|________N分频器/N+1分频_________|
| |
|------ 模式控制 ――---------> |
模式控制模块可以选择分频器处于N分频器还是N+1分频,若通过模式控制模块实现
10个clk中有9个clk为N分频,1个clk为N+1分频,则实际输出信号频率为(N+0.1)×
输入频率。
PLL电路本质是模拟电路,与ARM内核的数字电路截然不同,故在CPU中处于独立地
位,另外很多CPU的PLL供电为单独供电,且对PLL供电质量要求较高。
http://www.qingyangos.org/maillist/msg00025.html
其中pll 包含两种: MPLL 主要应用于各种设备时钟的提供,将重点讨论
UPLL 应用于USB时钟频率应用,为48M
其中MPLL的设置主要依靠使用各种锁相环和分频器来改变输入原始的频率,经过锁相环之后可以提升频率,关于频率的选择主要依靠改变CPU寄存器实现,MPLLCON通过改变其中的参数设置即可
Mpll = (m * Fin) / (p * 2s)
m = (MDIV + 8), p = (PDIV + 2), s = SDIV
MPLL就是要得到的频率,我建议用参考手册给定的频率设置即可,标准之际。
接下来该设置各种设备的频率:
我所认为的MPLL分出三种模式:FCLK、HCLK、PCLK
这三种也应用于不同的场合,FCLK应用于CPU的时钟,HCLK用于AHB bus各种外围设备,PCLK 用于APB bus各种接口设备。
其中FCLK 应用就是MPLL的频率,一样的,不用设置的。
HCLK 可以设置为FCLK或FCLK/2 ,即通过设置相应得寄存器CLKDIVN中的对应位HDIVN即可,其中HDIVN为0时对应FCLK,为1时对应FCLK/2
PCLK可以设置为HCLK或HCLK/2 ,即通过设置相应得寄存器CLKDIVN中的对应位PDIVN即可,其中PDIVN为0时对应HCLK,为1时对应HCLK/2
If HDIVN=1, the CPU bus mode has to be changed from the fast bus mode to the asynchronous bus mode using following instructions.
MMU_SetAsyncBusMode
mrc p15,0,r0,c1,c0,0
orr r0,r0,#R1_nF:OR:R1_iA
mcr p15,0,r0,c1,c0,0
If HDIVN=1 and the CPU bus mode is the fast bus mode, the CPU will operate by the HCLK. This feature can be used to change the CPU frequency as a half without affecting the HCLK and PCLK.
以上这段文字也是讲关于写协处理器来控制协调内部总线和外部总线的关系,不过原文有点不太明白,又不敢把错的意思表达出来,贻害众生,只好原文照搬后谈点 看法,我感觉是当HCLK中设置为FCLK/2 时必须协调与内部总线关系,至于同步非同步还要通过协处理器来管理,这样就可以很好的协调各种总线的关系了,当出现HDIVN=1和CPU总线被设为快速 非同步模式时,CPU(我认为是总线频率)可以完全依靠HCLK提供频率,因此将会改变CPU频率时不会影响到其它的变化。
今天看数据手册时有发现了几点没有发现的东西,主要是关于协处理器的。
ARM920T 竟然有两种输入时钟方式,FCLK 和BCLK ,其中BCLK 主要提供给AMBA
Bus的,可也可以通过选择协处理器的R1的NF,iA位来选择是否供是时钟给核ARM920T
3, FCLK是核心频率, 是用ARM920T;
4, HCLK: 管理中断控制器, 内存控制器, LCD(你的液晶屏)控制器, DMA(直接内存访问)控制器, 和大家津津乐道的USB Host控制器;
(类似PC机的北桥芯片)
5, PCLK: 周边总线的频率(类似PC机的南桥芯片);
6, FCLK(核心频率)不变的情况下, 可以使 FCLK:HCLK:PCLK 在 1:1:1(默认) -> 1:8:16 之间获得多档频率, 而FCLK始终不变, 这点很重要
2410内部有三个时钟:FCLK、HCLK、PCLK,分别供CPU、AHB总线和
APB总线使用,为了降低功耗,一般都选择周期比为1:2:4的合理配置。 同时将PLL配置为运行环境时钟,一般都达到最高202M。
FCLK是供给CPU的 是主频
HCLK是供给AHB总线(主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线)上的外围设备
PCLK是供给APB总线(APB主要用于低带宽的周边外设之间的连接,例如UART、1284等)上的外围设备
UCLK是两路PLL中一路供给USB的频率
FCLK, HCLK, and PCLK
FCLK is used by ARM920T.
HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt controller, the
LCD controller, the DMA and the USB host block.
PCLK is used for APB bus, which is used by the peripherals such as WDT, IIS, I2C, PWM timer, MMC interface,
ADC, UART, GPIO, RTC and SPI.
The S3C2410X supports selection of Dividing Ratio between FCLK, HLCK and PCLK. This ratio is determined by
HDIVN and PDIVN of CLKDIVN control register.
HDIVN PDIVN FCLK HCLK PCLK Divide Ratio
0 0 FCLK FCLK FCLK 1 : 1 : 1
(Default)
0 1 FCLK FCLK FCLK / 2 1 : 1 : 2
1 0 FCLK FCLK / 2 FCLK / 2 1 : 2 : 2
1 1 FCLK FCLK / 2 FCLK / 4 1 : 2 : 4
(recommended)
文章说明:calmarrow(lqm)原创,参考thisway.diy的《S3C2410完全开发》
文章引自:http://piaoxiang.cublog.cn
clock部分比较容易,现在按照datasheet的思路梳理一下。
一、对clock的基本认识
第七部分是“clock & power management”,总结如下:
1 s3c2410的clock & power management模块包含三个部分:clock control、usb control、power control。现在的关注点是clock control。
2、s3c2410有两个pll(phase locked loop,锁相环,在高频中学过,可以实现倍频,s3c2410的高频就是由此电路产生的)。其中一个是MPLL,M即为main,用来产生三种时钟信 号:Fclk(给CPU核供给时钟信号,我们所说的s3c2410的cpu主频为200MHz,就是指的这个时钟信号,相应的,1/Fclk即为cpu时 钟周期)、Hclk(为AHB bus peripherals供给时钟信号,AHB为advanced high-performance bus)、Pclk(为APB bus peripherals供给时钟信号,APB为advanced peripherals bus)。在这里,需要了解一下AMBA system architecture了。这个可以到官方网站www.arm.com下载相关资料。简单的说,AMBA是一种协议,这种协议已经称为片上组织通信的事实上的标准(the de facto standard for on-chip fabric communication)。下面给出英文描述:
The AMBA protocol is an open standard, on-chip bus specification that details a stategy for the interconnection and management of functional blocks that makes up a system-on-chip(SoC).It facilitates "right-first-time" development of embedded processors with one or more CPU/signal processors and multiple peripherals. The AMBA protocol enhances a resuable design methodology by defining a common backbone for SoC modules.
需要知道的是,AMBA总线是ARM提出的一种解决方案,它并非唯一的规范,但是因为ARM的广泛使用,AMBA总线也就成为了事实上的规范了。现在 AMBA总线最新为AMBA 3 specification版本,包括AMBA 3 AXI Interf