s3c2440的系统时钟

发布者:自由探索者最新更新时间:2022-04-09 来源: eefocus关键字:s3c2440  系统时钟 手机看文章 扫描二维码
随时随地手机看文章

下面内容是《ARM处理器裸机开发实战—机制而非策略》里的,以s3c2440开发板为例


系统时钟是整个电路的心脏。


总体来说,与s3c2440处理器有关的时钟主要有4种:Fin、FCLK、HCLK和PCLK。


Fin:  外部输入的晶振频率


FCLK: 主要用于CPU核


HCLK: 主要用在与AHB总线互连的设备上(存储器控制器、lcd控制器、dma)


PCLK: 主要用在与APB总线互连的低速设备上(uart adc 定时器)


S3c2440系统时钟概述


S3c2440处理器的系统时钟分为两部分,外部有时钟输入引脚,内部有2个锁相环将外部输入时钟倍频到处理器工作所需要的时钟。锁相环相当于一个时钟变换电路,低频晶振输入即可得到处理器所使用的较高频的时钟。


锁相环示意图如下:

其中,MPLLCON和CLKDIVN是两个控制寄存器,分别用于控制分频比。


MPLLCON控制FCLK和Fin的比例关系


CLKDIVN用于控制FCLK、HCLK和PCLK之间的比例关系


此外,s3c2440内部还有一个锁相环UPLL,用于将外部时钟倍频到USB设备正常工作所需要的时钟频率。


系统时钟初始化


其流程图如图所示:

S3c2440系统时钟初始化流程如下:


(1) 系统刚上电几毫秒后,FCLK等于外部晶振的振荡频率,即FCLK=Fin


(2) 当复位信号nReset恢复高电平后,锁相环按照寄存器MPLLCON和CLKDIVN设定的倍频比例开始生成所需要的时钟频率。从锁相环开始工作到输出新的稳定的频率值需要一定的时间(lock time 即锁相环的捕获时间),经过这段时间后,锁相环输出新的频率值,这是FCLK等于锁相环的输出。


 


 


FCLK、HCLK和PCLK与Fin的关系


如何控制锁相环PLL的输出频率?s3c2440处理器内部有两个寄存器:MPLLCON寄存器用于控制FCLK和Fin的比例关系,CLKDIVN寄存器用于控制FCLK、HCLK和PCLK之间的比例关系。


FCLK = (2*m*Fin) / (p*2^s)


其中,m=MDIV+8,p= PDIV +2,,s=SDIV。MDIV, PDIV, SDIV是MPLLCON寄存器中的数据。


 


例如,已知系统外部晶振输入为12MHz,要求FCLK输出为200MHz,经过计算可以得到MDIV=92,PDIV=4,SDIV=1


可以用下面的指令进行初始化


M_MDIV  EQU  92


M_PDIV   EQU  4


M_SDIV   EQU  1


ldr  r0 , =MPLLCON


ldr  r1 , =((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV)


str  r1,[r0]


关键字:s3c2440  系统时钟 引用地址:s3c2440的系统时钟

上一篇:[ARM裸机程序][7]ARM 指令分类学习
下一篇:SylixOS的BSP开发实例之S3C2416 【第一篇】时钟配置

推荐阅读最新更新时间:2024-11-11 10:50

s3c2440学习之路-006 clock的设置
1.基本知识 1.1clock模块介绍 2440主要的时钟有4个2个PLL:FCLK,HCLK,PCLK,UCLK;MPLL,UPLL。 FCLK是给CPU用的,频率最高。HCLK是给高速外设用的,如LCD、NAND Flash、Camera。 PCLK是给低速外设用的,如UART,IIS,IIC等。HCLK和PCLK都是从FCLK分频得到的。UCLK是专门给USB使用的。 MPLL, UPLL主要是用来升频的,将外部的晶振(jz2440为12M)升频到需要频率。 MPLL是用来给FCLK升频的,UPLL则是给UCLK升频的。 本博客主要介绍FCLK,HCLK,PCLK和MPLL;ULCK和UPLL暂时不讲。 1.
[单片机]
<font color='red'>s3c2440</font>学习之路-006 <font color='red'>clock</font>的设置
S3C2440—6.串口的printf实现
一.框架 在之前STM32的学习中,我在串口输出调试信息的时候,经常采用printf()函数作为串口输出函数,这样不仅方便调试而且代码易读。 在S3C2440的学习中,对于UART同样需要对串口输出信息进行调试,那么在这里可不可以使用printf函数呢? 当然是可以的,不过相比于STM32中简单的配置,S3C2440中对printf的使用要深入到printf函数的原理,将printf函数进行彻头彻尾的刨析,然后结合底层的UART输出,使用printf打印调试信息,其实现的前提是: UART底层的putchar函数 了解printf函数中,固定参数和可变参数 会利用固定参数以及格式字符推出可变参数 根据不同的格式字符输出
[单片机]
<font color='red'>S3C2440</font>—6.串口的printf实现
/sys/class/gpio 文件接口操作IO端口(s3c2440)
在嵌入式设备中对GPIO的操作是最基本的操作。一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的。其实Linux下面有一个通用的GPIO操作接口,那就是我要介绍的 “/sys/class/gpio” 方式。 首先,看看系统中有没有“/sys/class/gpio”这个文件夹。如果没有请在编译内核的时候加入 Device Drivers — GPIO Support — /sys/class/gpio/… (sysfs interface)。 /sys/class/gpio 的使用说明: 01 gpio_operation 通过/sys/文件接口操作IO端口 GPIO到文件系统的映射 class/gpio c
[单片机]
基于STM32时钟系统的开发及配置
一、背景 最近做个项目,需要使用STM32,还是以前一样的观点,时钟就是MCU心脏,供血即时钟频率输出,想要弄明白一个MCU,时钟是一个非常好的切入点。言归正传,网上已经有太多大神详述过STM32的详细配置方法了,在此就简单介绍下STM32时钟系统,以及如何配置做个简单记录,方便以后的快速开发。 二、正文 废话不多说,上一张STM32F10xx的时钟树图: 由图可知,STM32F10XX有两级时钟 第一级时钟 * 高速内部时钟(HSI) * 锁相环时钟(PLLCLK) * 高速外部时钟(HSE) 第二级时钟 * 低速内部时钟(LSI) * 低速外部时钟(LSE) 又由图可知, * HSE由外部晶振从“OSC_OUT”,“
[单片机]
基于STM32<font color='red'>时钟</font><font color='red'>系统</font>的开发及配置
s3c2440裸机-电阻触摸屏编程(4.isr设计_4.2支持长按和滑动)
1.改进定时器 五. irq之定时器中断这记一节中,是在handle_irq_c()中去区分中断源,执行不同的isr。那现在通过register_timer注册对应的定时器中断服务程序,timer_irq进行执行不同的定时器中断服务程序。 #define TIMER_NUM 32 #define NULL ((void *)0) typedef void(*timer_func)(void); typedef struct timer_desc {   char *name;   timer_func fp; }timer_desc, *p_timer_desc; timer_desc timer_array ; in
[单片机]
S3C2440的中断寄存器的分类及中断的过程分析
S3C2440一共有60个中断源,其中有15个子中断源,它们与SUBSRCPND寄存器中的每一位相对应,其他45个中断源与SRCPND中的每一位相对应。要注意的是EINT4~7对应的是同一位SRCPND,而EINT8~23对应的也是SRCPND一位。 1 S3C2440的中断寄存器 中断分两大类:外部中断和内部中断。 1.1 外部中断寄存器 24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体可参考datesheet数据手册。 寄存器: EXTINT0-EXTINT2:分别设置EINT0—EINT7、E
[单片机]
<font color='red'>S3C2440</font>的中断寄存器的分类及中断的过程分析
Sqlite 3.7.6.2在PC及S3C2440平台移植
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月. 至今已经有10个年头,SQLite也迎来了一个版本 SQLite 3已经发布。 本文章讨论sqlite在PC机(RedHa
[单片机]
高速数据转换系统时钟和数据传输的性能要求
随着今天模数转换器的数据转换采样速度进入到每秒千兆次采样(GSPS),系统需要能够支持这样高的转换速度,模拟器件必须产生和放大高频信号。除了模拟信号路径外,设计师需要完全了解采样时钟和高比特率数据获取电路方面。信号路径设计师将为这两个关键的方面提供建议方案。下面的信息与需要高性能ADC的系统紧密相关。 时钟源 在高速数据转换系统中一个最重要的子系统是时钟源,这是因为时钟信号的时序准确性可以直接影响ADC的动态特性。为减少这种影响,ADC时钟源必须表现出非常低的时序抖动或相位噪声。如果在选择时钟电路时没有考虑到这种因素,无论前端模拟电路或者ADC的质量有多高,系统可能表现出很差的动态性能。优良的时钟将总能在精确的时钟间隔内出现时
[电源管理]
高速数据转换<font color='red'>系统</font>对<font color='red'>时钟</font>和数据传输的性能要求

推荐帖子

SMT环境下的PCB设计技术详细
1.引言SMT工艺是利用钎料或焊膏在元件与电路板连接之间构成机械与电气两方面的连接,其主要优点在于尺寸小、重量轻、互连性好;高频电路的性能好,寄生阻抗显著降低;抗冲击力与振动性能好。采用SMT工艺时引线不需穿过电路板,可避免产生引线接受或辐射而得来的信号,进而提高电路的信噪比。评价SMT工艺性能的好坏,首先应使焊点能够正确成型;而正确成型的前提是必须合理设计PCB板上元器件的焊盘尺寸;其次在PCB板布局时要合理安排元件的密度,满足测试点的要求。进行电路板设计时,可通过DFM(可制造性设计)
kandy2059 PCB设计
最新版-电动汽车供电设备安全要求及试验规范 发布
GB/T39752-2021电动汽车供电设备安全要求及试验规范实施日期:2021-10-01标准简介本标准规定了电动汽车供电设备(以下简称供电设备)的安全要求、试验导则和试验方法。本标准适用于额定输出电压为1000VAC或1500VDC及以下各类型供电设备,包括充电模式2、充电模式3和充电模式4的供电设备,不作为公共用途使用、在特殊条件下使用的供电设备(如防爆型、液冷型、海拔2000m以上高原使用的供电设备等)也适用于本标准,并需要结合相关标准的要求。对于供电
qwqwqw2088 模拟与混合信号
《控制之美(卷2)——最优化控制MPC与卡尔曼滤波器》--数学基础
本篇数学理论基础比较集中探讨,涉及到高等数学、线性代数、信号与系统等知识面基础。线性时不变系统状态空间方程x(t)是状态变量,y(t)是系统的输出,u(t)是系统的输人。状态空间方程的解如下等号右边第一部分与系统初始条件相关,被称为状态转移矩阵,它代表了系统的状态变量随时间的变化。连续系统离散化离散时间系统即可理解在连续时间系统上脉冲周期取样。采样周期的倒数称为采样频率,为还原信号原貌,采样周期不宜过大导致信号丢失。这里有一个非常有名的定理--
dirty 汽车电子
如何用ARM7串口呼叫GPRS?
本人有ARM-7开发板,附有光盘,里有44b0test测试程式序,也有GPRS模块,请问如何修改程序才能通过串口呼叫GPRS向指定IP发送数据?多谢各位的帮助!!谢谢!!!如何用ARM7串口呼叫GPRS?怎么回事,居然没有人回应我!!!!!!!!AT命令
niuhaibing ARM技术
求助各位大侠
怎么我下载时老是下这个附件啊?attachment.php,求解,谢咯!求助各位大侠
yuan520 PCB设计
关于C2000芯片的FLASH锁死----以及解决办法
FLASH锁死了这是为什么,有没有办法解锁。为什么会有类似下面这几种报错:Readstatusvalue0x0001fromsymbolPRG_status(24x系列)ADCCalibrationnotcomplete,checkifdeviceisunlockedandrecalibrate.(2833x系列)答:FLASH锁死是由于在FLASH中的密码部分写入了密码。如果在烧写的的过程中,受到干扰就有机会导致FLASH锁死,如果试了下面的方
hlx3012 微控制器 MCU
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved