s3c2440学习之路-006 clock的设置

发布者:dst2015最新更新时间:2021-10-14 来源: eefocus关键字:s3c2440  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.2 时钟的比例

HCLK和PCLK是由FCLK分频得到,之间的分频比不是随意设置的,2440给出了一张可供挑选的表格。

在这里插入图片描述

在2440文档的Product Overview 章节(后面章节没有提过)查到FCLK最大400M, HCLK最大136M, PCLK最大68M。频率当然是越高越好,所以把FCLK设置成400M。再根据前面分频比的表格,选择1:4:8 的分频比。 PCLK 50M : HCLK 100M: FCLK 400M = 1:4:8

在这里插入图片描述

1.3 升频的过程

外部的晶振通过 MPLL/UPLL 升频后达到更高的频率,升频的过程需要一定的时间才可以稳定输出。(VCO:Voltage Controlled Oscillator )

在这里插入图片描述

2.主要寄存器介绍

2.1 LOCKTIME

LOCKTIME 就是用来设置升频过程中的lock time, 这里只关心MPLL[15:0]的设置,默认值就是最大值,也是最安全的值。

在这里插入图片描述

2.2 MPLLCON

设置MPLL的控制寄存器,最终影响FCLK的频率。

Mpll的最终输出会给到FCLK, 也就是FLCK的频率=Mpll的输出频率。FCLK要设置成400M,Mpll也就等于400M。

Mpll的计算公式为:

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

m = (MDIV + 8), p = (PDIV + 2), s = SDIV

2440文档给出了一组参考配置,MDIV= 92, PDIV=1,SDIV=1,带入公式

m= (MDIV +8) =92+8=100

p=(PDIV+2)= 1+2=3

s=SDIV=1

Fin是外部晶振的频率=12M

Mpll =(2*100 * 12M)/(3 * 2^1) = 2400M / 6 = 400M

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.3 CLKCON

设置各个模块时钟的开关,使用默认值就可以了

在这里插入图片描述

2.4 CLKDIVN

HCLK, PCLK的分频比控制。

PCLK 50M : HCLK 100M: FCLK 400M = 1:4:8, 那么HCLK=FCLK/4 = 400M/4= 100M, PCLK=HCLK/2 = 100M / 2 = 50M 。所以HDIVN设置成10b,PDIVN设置成1b。其中的CAMDIVN[9]需要设置成0, 它的初始值就是0,所以不用管。

在这里插入图片描述

在这里插入图片描述

2440里面有个NOTE, 当HDIVN不等于0时(我们设置为10b),需要把将bus mode 设置为非同步总线模式。相关的寄存器说明在2410的手册查到,需要把CP15 (协处理器)的R1寄存器(控制寄存器)的[31:30] 设置为11b。具体的汇编代码为:


mrc  p15,0,r0,c1,c0,0       /* 把CP15的R1的值读到r0*/

orr  r0,r0, #0xc0000000     /* r0'或'上0xc0000000, 即r0 | 0xc0000000,把31,30bit设置为1 */

mcr  p15,0,r0,c1,c0,0       /* 把r0的值写到CP15的R1 */

在这里插入图片描述

在这里插入图片描述

2.5 CLKSLOW

使用默认值即可。

在这里插入图片描述

3. 源码

start.s


.global _start

_start:


    /* stop watch dog */

    ldr r0, =0x53000000

    mov r1, #0

    str r1, [r0]


    /* Source  crystal oscillator 12M

    FCLK 400M HCLK 100M PCLK 50M */


    /* 1, set lock time LOCKTIME 0x4c000000 */

    ldr r0, =0x4c000000

    ldr r1, = 0xFFFFFFFF

    str r1, [r0]

    /*2, set CLKDIVN 0x4c000014

        HDIVN = FLCK / 4

        PDIVN = HCLK / 2

        HDIVN->b10 PDIVN->1 */

    ldr r0, = 0x4c000014

    ldr r1, = ( (2 << 1) | (1 << 0) )

    str r1, [r0]


    /* HCLK = FCLK/4 when CAMDIVN[9] = 0

    and thc CAMDIVN[9] default value is 0*/


    /*3, if HDIVN is not 0, CPU bus mode must be asynchronous */

    mrc  p15,0,r0,c1,c0,0

    orr  r0,r0, #0xc0000000

    mcr  p15,0,r0,c1,c0,0


    /* 4, set MPLLCON 0x4c000004

    MDIV->92(0x5c), PDIV->1 SDIV->1

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

    m = (MVID + 8) = (92 + 8) = 100

    p = (PDIV + 2) = (1 + 2) = 3

    s= SDIV = 1

    MPLL = (2 * 100 * 12M) / (3 * 2 ^ 1) = 400M

    */

    ldr r0, =0x4c000004

    ldr r1, =( (92 << 12) | (1 << 4) | (1 << 0))

    str r1, [r0]


    /* aoto switch nand or nor flash */

    /* write 0 to address[0] and read it

    * if address[0] is equal 0, it is nand

    * because nand can wirte easy, but nor need send

    * write-commond before wirte data, so write 0 to

    * nor address[0] will fail, and get nor address[0]

    * data is not equal 0

    */

    mov r1, #0

    ldr r0, [r1] /* r0=[0] store address[0] data*/

    str r1, [r1] /* 0->[0] */

    ldr r2, [r1] /* r2=[0] */

    cmp r1, r2

    ldr sp, =0x40000000 + 4096/* for nor */

    ldreq sp, =4096  /* for nand */

    streq r0, [r1] /* recover address[0] data */


    bl main


loop:

b loop


源码很简单,就是按照之前介绍寄存器时的参数去设置就行了,不做过多的介绍。

关键字:s3c2440  clock  设置 引用地址:s3c2440学习之路-006 clock的设置

上一篇:s3c2440学习之路-007uart的简单配置
下一篇:s3c2440学习之路-005 轮训模式读取key(按键)

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

STM32学习三之时钟树分析
上一章我们已经将STM32的开发环境搭建成功了,那么接下来我们就可以开始进行实际操作了。在进行实际操作之前我们需要提前准备好一些资料文档,这些资料文档大家可以在我的百度网盘 https://pan.baidu.com/s/1BejuAkvtU5KKlJEo3HAXMA 提取码:dfs6 中进行下载。 很多同学在学习单片机的时候都有遇到过一个东西,那就是晶振。其实这个所谓的晶振全名叫做晶体振荡器,其作用是用于产生原始的时钟频率,晶振产生的频率经过频率发生器的放大或缩小后就成了计算机中各种不同的总线频率 ,用于计算机中各个不同的外设工作,常用晶振的模样如下图所示: 一、什么是时钟频率 计算机是一个由各种集成电路和电子器件组成,
[单片机]
STM32学习三之<font color='red'>时钟</font>树分析
关于STM32F4定时器时钟频率问题
从时钟树中我们可以得知 (1)高级定时器timer1, timer8以及通用定时器timer9, timer10, timer11的时钟来源是APB2总线 (2)通用定时器timer2~timer5,通用定时器timer12~timer14以及基本定时器timer6,timer7的时钟来源是APB1总线 从STM32F4的内部时钟树可知, (1)当APB1和APB2分频数为1的时候,TIM1、TIM8~TIM11的时钟为APB2的时钟,TIM2~TIM7、TIM12~TIM14的时钟为APB1的时钟; (2)而如果APB1和APB2分频数不为1,那么TIM1、TIM8~TIM11的时钟为APB2的时钟的两倍,TIM2~TIM
[单片机]
关于STM32F4定时器<font color='red'>时钟</font>频率问题
学习AVR 系统时钟时钟选项
时钟的设计,因系统的复杂度、集成度、速度的提高,越来越成为嵌入式系统设计的一个难题,所以多了解一些时钟的知识,对于整个系统的设计都是有所裨益的。 时钟系统及其分布 图 11 所示为 AVR 中的主要时钟系统及其分布情况。在任一给定时间,并不需要这些时钟都是活动的。为了减少功耗,可以由各种休眠模式来停止到某模块的时钟,如后面要学到的“功率管理和休眠模式”。下面将详细讲解时钟系统。 (罗亩按:自从功耗成为一个问题,计算机就学会了休眠;或者反之,仿生吧) 图 11. 时钟分布 CPU 时钟--C clkCPU CPU 时钟被引入到与 AVR 内核操作有关的系统部分。这种模块的例子是通用寄存器堆、状态寄存器和存储堆栈指针的数据存储器。中
[单片机]
学习AVR 系统<font color='red'>时钟</font>和<font color='red'>时钟</font>选项
STM32 系统时钟复位与系统时钟配置
复位: 复位所有外设 RCC- APB1RSTR = 0x0000 0000 RCC- APB2RSTR = 0x0000 0000 关闭所有外设时钟 RCC- AHBENR = 0x0000 0014 RCC- APB1ENR = 0x0000 0000 RCC- APB2ENR = 0x0000 0000 RCC- CR:打开 HSI,关闭 PLLON,HSEON,CSSON,关闭 HSE 旁路 RCC- CFGR:设置 MCO 没时钟输出,HSI 做系统时钟,复位所有外设时钟频率,USB,时钟选择器为 0 时钟配置: RCC- CR:打开 HSE
[单片机]
STC15F2K60S2设置内部时钟工作频率
STC15F2K60S2系列单片机有两个时钟源,一个是内部高精度R/C时钟,另一个是外部时钟(外部输入的时钟或者外部晶体振荡产生的时钟)。 STC15F2K60S2的内部集成高精度R/C时钟,+/-1%温漂,常温下温漂5%,5MHz~35MHz宽范围可设置,可彻底省去昂贵晶振电路和外部复位电路。 设置单片机内部高精度R/C时钟,在程序中包含下面代码。 #define FOSC 11059200L //主控芯片工作频率 然后在使用STC-ISP下载的时候,勾选使用内部IRC时钟,并且设置内部时钟频率,注意这里与程序里设置的一定要相同。
[单片机]
STC15F2K60S2<font color='red'>设置</font>内部<font color='red'>时钟</font>工作频率
STM32时钟使能及应用总结
STM32的新手,一般都会对一个问题很纠结。我也是,就是所谓的”时钟问题“。我们在尽心STM32编程时,会痛苦地发现这样一个事实:不管你要干嘛,你首先要做的一件事就是使能时钟。而且可能每一次的时钟还是不同的。 你就会问:为什么要使能时钟?为什么每次使能的时钟还不一样呢?为什么51单片机中没有这些鬼?在学51单片机的时候,基本上接触不到I/O方向和外设时钟的概念,I/O想输入就直接读,想输出就直接赋值,串口、AD转化、外部中断等等也都是想用就用,不需要单独配置时钟。这样在初学时的确方便了很多,不需要有乱七八糟的设置就能让芯片跑起来,但是随之带来的就是所谓的功耗问题。但是作为初学者,谁还管这个啊?能让程序跑起来就已经让我们兴奋得几
[单片机]
级联PLL超低噪声精密时钟抖动滤除技术研究
本文针对全方位的信号路径系统中的高速全差分运放及高频宽14位模拟/数字转换器的随机及固定时钟抖动,具体分析、研究了超低噪声兼时钟抖动滤除技术。研究选用双级联PLLatinum架构,配置高性能压控振荡器(VCXO),很好地实现了降噪和时钟抖动滤除的作用。 0 引言 随着电子信息技术的发展,数据传输在军事航空、无线网络基础构建、测试与测量中发挥了巨大的作用。而时钟作为通信终端、发射与接收定量和同步标准,成为不可或缺的关键部分。信号传输过程中,晶振参考时钟本身具有较低的抖动,但由于IC、开关电源噪声、数据或时钟线的干扰引起的随机抖动和周期抖动(PJ)对时钟质量及系统性能都有比较大的影响。 典型的信号路径设计由信号传感器、模拟信号处理区块
[电源管理]
级联PLL超低噪声精密<font color='red'>时钟</font>抖动滤除技术研究
S3C2440裸机------异常与中断__swi异常模示程序示例
一般来说,我们的app运行于用户模式,用户模式是一种受限的模式,不能访问硬件,如果app想访问硬件,必须切换模式,当发生中断或者异常时会自动切换模式,但是中断和异常时可遇不可求的,这时候我们通过软中断切换模式。 1.start.S 由于复位之后cpu处于svc管理模式,所以我们先修改cpsr让cpu处于用户模式,然后设置用户模式下的栈。 .text .global _start _start: b reset /* vector 0 : reset */ ldr pc, und_addr /* vector 4 : und */ ldr pc, swi_addr /* vector 8 :
[单片机]
<font color='red'>S3C2440</font>裸机------异常与中断__swi异常模示程序示例

推荐帖子

【连载之一】电源的七十二种化身
此内容由EEWORLD论坛网友风过琴弦原创,如需转载或用于商业用途需征得作者同意并注明出处本文pdf版下载...序言...电源领域种类繁杂,各种电源有不同的特点、不同的适用场景。本文为系列的第一篇,面向硬件工程师的日常工作,介绍常见的各种电源方案,给出各方案的主体框架,并对其优缺点、适用场合做出详细说明。本文的目标是,依据本文,能够为硬件电路选择一个电源的总体方案,并且能在讨论中怼死对方讲出其中的要点。作者多年前从单片
风过琴弦 电源技术
【CH579M-R1】+驱动LCD5110显示屏
经过一天时间的调试,LCD5110显示屏终于驱动成功,程序是从STM32移植过来的,调整时序时还借助了逻辑分析仪。调试过程中还犯了低级错误,忘记对LCD5110初始化了,时序已经调整的非常理想,但LDC就是无显示,百思不得其解,最后才发现问题。下图为调试过程:这是用逻辑分析仪调整时序的截图:下面是main.c代码:intmain(){UINT8len,i,dir;/*配置串口1:先配置IO口模式,再配置串口*/GPIOA_Set
hujj 国产芯片交流
数据中心(通讯机房)交流电流信号采集方案
上海安科瑞为广大数据中心(通讯机房)配电用户提供以下交流电流采集元件:1、AKH-0.66/Z三相电流互感器AKH-0.66/Z系列三相电流互感器外壳采用阻燃、耐温140℃的进口聚碳酸酯注塑成形,产品颜色为米黄色,外壳之间固定采用超音波焊接。铁芯采用取向冷轧硅钢带卷绕而成,二次导线采用高强度电磁漆包线,产品结构新颖,造型美观,安装方便,体积小,质量轻,准确度高,容量大。AKH-0.66/Z三相电流互感器规格尺寸参数对照表
acrel2011 工控电子
无线节点的程序流程图1
这个肯定是有地方还需要改的,以后继续改进哈。无线节点的程序流程图1很不错。基本体现这个项目的目的好。画得漂亮。是2张图片啊,开始还以为采集2次才发送呢
lonerzf ADI参考电路
滤波电容,小电容滤高频,大电容滤低频的理解
在调试硬件电路时,当并联的小滤波电容不焊接时,发现电压纹波很大(当然是相对而言),焊接后,效果较好,大概峰峰值降低了300mV,随机对该问题展开调查。一开始一直沉迷于公式XC=1/2*PI*f*C,但是计算后感觉还是有出入(也有可能是我算的不对,有理解的深,希望能给与交流),然后就查看了一些资料,前人经验:电源滤波电容如何选取,掌握其精髓与方法,其实也不难。1)理论上理想的电容其阻抗随频率的增加而减少(1/jwc),但由于电容两端引脚的电感效应,这时电容应该
qwqwqw2088 模拟与混合信号
卡尔曼滤波原理的学习
《卡尔曼滤波原理及应用:MATLAB仿真》讲了卡尔曼滤波的基本原理及扩展卡尔曼滤波的原理,书中有MATLAB仿真代码,可以作为电子信息类各专业高年级本科生和硕士参考资料,非常适合自学者。卡尔曼滤波原理的学习有时间借本卡尔曼滤波的书来看看有Python仿真的相关书籍吗simulink专门用于仿真的
ANSHANLIU 测试/测量
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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