《2440裸机》时钟体系

发布者:size0109最新更新时间:2022-04-23 来源: eefocus关键字:2440裸机  时钟体系  锁相环 手机看文章 扫描二维码
随时随地手机看文章

1. 原理分析

在这里插入图片描述

S3C2440A有两个锁相环(PLLs):一个(MPLL)用于FCLK、HCLK和PCLK,另一个(UPLL)专用于USB。其中FCLK用于CPU,HCLK用于AHB总线,PCLK用于APB总线。


AHB(Advanced High performance Bus)高级高性能总线,用于高性能模块的连接。

APB(Advanced Peripheral Bus)外围总线,用于低速外设的连接。


将上图简化之后,我们可以粗略的得到下图。

在这里插入图片描述

由这个简化的图我们可以得知,晶振的频率经过MPLL生成的频率便是FCLK所用频率,经过UPLL生成的频率就是USB所用频率。如果将FCLK再经过HDIV和PDIV进行分频,那么将分别得到HCLK和PCLK。


那么从系统上电(复位)到按照设定的频率工作,整个的时序和工作流程是怎么样的呢?在芯片手册中有这样一个图,解释了这个流程。

在这里插入图片描述

系统上电后,晶振(crystal oscillator 简称OSC)开始工作。等到OSC稳定之后,nRESET才会拉至高电平,之后PLL会按照配置进行工作,锁定时间过后,可以立即将FCLK配置为锁相环输出。

在有了上述理论基础,假如我们想将FCLK:HCLK:PCLK=400M:100M:50M,晶振频率为12M,我们就可以将配置分为如下几步


设置LOCKTIME(0x4C000000)


设置HDIV和PDIV的分频值,FCLK:HCLK:PCLK=400M:100M:50M,所以可以得出HDIV=4、PDIV=8,这两个值可以通过CLKDIVN(0x4C000014)寄存器来配置。

在这里插入图片描述

根据上表,HDIVN我们应配置为0b10,PDIVN应配置为0b1,所以该寄存器应配置为0x5


设置CPU工作于异步模式

在这里插入图片描述

这段话的意思大致就是,如果HDIVN不是0(我们上面设置了,它的确不是0了),CPU的模式必须要从快速总线模式更改为异步总线模式。怎么改,芯片手册也提供了汇编代码,其中有疑问的就是 #R1_nf:OR:R1_iA 这个是什么意思?

其实 orr r0,r0,#R1_nf:OR:R1_iA 这句话的意思就是将30位(nf bit) 31位(ia bit) 置1,所以这句话也等同于orr r0,r0,#0xc0000000


设置MPLL中的P、M、S,使FCLK=400M

在这里插入图片描述

手册里面提供了公式,现在我们可以将手册给出的值带入公式验证一下。

image.png

可以通过MPLLCON(0x4C000004)来设置它们3个的值。

在这里插入图片描述

2. 程序编写

.text

.global _start


_start:


/* 关闭看门狗 */

ldr r0, =0x53000000

ldr r1, =0

str r1, [r0]


/* 设置MPLL, FCLK : HCLK : PCLK = 400m : 100m : 50m */

/* LOCKTIME(0x4C000000) = 0xFFFFFFFF */

ldr r0, =0x4C000000

ldr r1, =0xFFFFFFFF

str r1, [r0]


/* CLKDIVN(0x4C000014) = 0X5, tFCLK:tHCLK:tPCLK = 1:4:8  */

ldr r0, =0x4C000014

ldr r1, =0x5

str r1, [r0]


/* 设置CPU工作于异步模式 */

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

orr r0,r0,#0xc0000000   //R1_nF:OR:R1_iA

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


/* 设置MPLLCON(0x4C000004) = (92<<12)|(1<<4)|(1<<0) 

*  m = MDIV+8 = 92+8=100

*  p = PDIV+2 = 1+2 = 3

*  s = SDIV = 1

*  FCLK = 2*m*Fin/(p*2^s) = 2*100*12/(3*2^1)=400M

*/

ldr r0, =0x4C000004

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

str r1, [r0]


/* 一旦设置PLL, 就会锁定lock time直到PLL输出稳定

* 然后CPU工作于新的频率FCLK

*/


/* 设置内存: sp 栈 */

/* 分辨是nor/nand启动

* 写0到0地址, 再读出来

* 如果得到0, 表示0地址上的内容被修改了, 它对应ram, 这就是nand启动

* 否则就是nor启动

*/

mov r1, #0

ldr r0, [r1] /* 读出原来的值备份 */

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

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

cmp r1, r2   /* r1==r2? 如果相等表示是NAND启动 */

ldr sp, =0x40000000+4096 /* 先假设是nor启动 */

moveq sp, #4096  /* nand启动 */

streq r0, [r1]   /* 恢复原来的值 */


bl main


halt:

b halt


关键字:2440裸机  时钟体系  锁相环 引用地址:《2440裸机》时钟体系

上一篇:ARM微处理器的指令集概述(四)——MOV和LDR的区别
下一篇:《2440裸机》基础知识

推荐帖子

有用FPGA做过图像压缩dct变换的吗
有没有什么好的资料,算法借鉴有用FPGA做过图像压缩dct变换的吗楼主是想知道什么问题吗?还是遇到什么困难了,最好发出来说下原因,看看能不能帮到你哦error_echo发表于2014-12-2613:51楼主是想知道什么问题吗?还是遇到什么困难了,最好发出来说下原因,看看能不能帮到你哦不知道DCT变换的算法啊
my_style FPGA/CPLD
TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总
CCS与仿真器连接问题实际使用过程中,仿真器和CCS连接可能出现这样或那样的问题,也许你的连接很成功,没碰到过什么问题,但我的问题的确不少,可能与电脑配置有关吧,也可能与人品有关吧;下面的自己的一些错误和解决方法总结,不一定对,但也算是一种解决方法,分享给大家:问题:1.jtag连接不上,报错:ThecontrollerhasdetectedadeadJTAGclock.Theusermustturn-onorcon
风雨也无晴 微控制器 MCU
51单片机230个Proteus仿真实例
51单片机230个Proteus仿真实例买一个謝謝你的分享谢谢楼主资源分享!回复楼主GONGHCU的帖子我晕,,,没有源码,没有HEX文件。。。怎么玩啊打开怎么是乱码啊一点儿头绪都没有111111111号!不错!没有程序???买了,收藏下感谢分享!!!好东西。。。。打开怎么是乱码啊一点儿头绪都没有楼主好人啊好资源啊,正在学习中。谢谢ddddddddddddddddd我晕,,,没有源码,没有HEX文件。。。怎么玩啊看来还是不下了
GONGHCU 51单片机
CE6 MUX 不能加载,怪事
有个很奇怪的事情,我的平台下,mux07_10.dll死活不加载。后来我做了一个最简单空驱动,比方叫kmt驱动,生成kmt.dll,是可以加载的,但我把Kmt.dll修改成MUX.DLL,MUX07_10.DLL,MUX0710.DLL,死活就不加载。完全一模一样的代码,只修改source、def文件和platform.bib,reg文件;再把生成的Muxxx.dll改成其他什么名字,例如xxx.dll,就又可以加载了。大家有没有碰到这样的问题?太奇怪了。。。。。难道wince不支持MUX?
czgg048 嵌入式系统
ds1820读出的数据
ds1820不带B,常温下读出的数据为00H76H,测量体温是数据为00H88H,77H转换成10进制后118*0.5=59°度88H=68度,显然是不对的吧?谁能告诉我是读出数据出错了,还是不会转换的问题。急等;将温度数据通过串口发送出去,波特率2400;本程序专为AT89C51实验开发板编写.适合12晶振;本程序经过验证,可以显示温度+/-和两位整数温度和两位小数温度数据DOTEQU30HZHENGSHUEQU31HFLAG1EQU38H;是否
zhaofuzheng 测试/测量
【读书】《RISC-V开放架构设计之道》1.新生儿RISC-V
每当有一个新概念产生时,我们会习惯性的问:催生他的目的是什么?对于RISC-V来说,他的主要目的在于:替代现有的ARM架构和X86架构当然,X86架构是CISC(复杂指令集),我们首先和同为RISC(精简指令集)的ARM架构做对比ARM好用吗?答案是肯定的。现如今一个房间里的ARM设备极大可能要比X86、8051等架构的设备要多许多,况且ARM的多样化也是其他几种类型的几倍。但是,还不够好。(图源:网络)ARM架构由ARM公司收取专利
电子烂人 编程基础
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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