时钟频率详解和编程

本文详细介绍了嵌入式系统中时钟频率的工作原理,以三星S3C2440为例,讨论了MPLL和UPLL的作用,以及FCLK、HCLK、PCLK的用途。在系统上电或复位后,需要初始化MPLL寄存器以设定正确的时钟频率。通过MPLLCON寄存器设置MDIV、PDIV和SDIV来计算系统时钟,并利用CLKDIVN寄存器控制HCLK和PCLK的分频比例。最后提到了CAMDIVN寄存器在某些情况下的设置需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         晶振:其作用是产生原始的时钟频率,这个频率经过频率发生器的倍频或分频后就成了电脑中各种不同的总线频率;其本身不振荡但和外电路产生谐振。

        一般来讲系统都会有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

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值