TQ2440国嵌学院gboot-时钟初始化

发布者:BlossomWhisper最新更新时间:2015-10-08 来源: eefocus关键字:TQ2440  国嵌学院  gboot  时钟初始化 手机看文章 扫描二维码
随时随地手机看文章
TQ2440国嵌学院gboot-时钟初始化:

1:设置lock time寄存器

2:设置分频系数(FCLK:HCLK:PCLK)

3:设定CPU到异步模式(通常FCLK不等于HCLK)

4:设置FCLK

 

首先了解下CPU的时钟分类:

同样在S3C2440中找到CLOCK第7章这一章如下:

[转载]TQ2440国嵌学院gboot-时钟初始化

从上面的文字中,可以得到FCLK主要是CPU核的工作时钟,HCLK是AHB总线(LCD,DMA)的工作时钟,PCLK是APB总线(UART,GPIO)工作时钟。

下面是CPU内部时钟电路结构图

[转载]TQ2440国嵌学院gboot-时钟初始化
 

 

其次是CPU的启动时钟时序:

[转载]TQ2440国嵌学院gboot-时钟初始化

从上图可以看出,在上电后,nRESET会拉高,clock开始起振输出时钟信号,此时CPU工作在12MHz,然后PLL开始进入软体设置,这时候FCLK为0,没有时钟信号供CPU工作,当然时间很短,当PLL设定后FCLK以新的时钟频率供CPU工作。

LOCK TIME寄存器设定:

[转载]TQ2440国嵌学院gboot-时钟初始化

通常情况下不设定,采用默认值。

 

再次如何设定分频系数呢?如下图

[转载]TQ2440国嵌学院gboot-时钟初始化
[page]
通过选择HDIVN  PDIVN这2个参数可以选定FCLK:HCLK:PCLK的分频系数,参考值是1:4:8,也就是HDIVN为2,PDIVN为1。找到HDIVN和PDIVN的定义:如下

[转载]TQ2440国嵌学院gboot-时钟初始化

因此设定HDIVN=2,也就是01;设定PDIVN=1,也就是0。DIVN_UPLL不设定,组合起来也就是在CKDIVN寄存器里写入0X5(0b000101),寄存器的地址是0x4c000014。

如何设定CPU到异步模式呢?

为什么要设定CPU到异步模式呢?看下面介绍:

[转载]TQ2440国嵌学院gboot-时钟初始化

翻译可知,当HDIVN不等于0的时候,要设定CPU到异步模式,HDIVN不等于0代表什么呢?首先看等于0,等于0代表FCLK=HCLK,也就是CPU核工作时钟等于总线时钟,当2者相同的时候是同步,不相等就是异步模式。因此要设定到异步模式。如何设置到异步模式?

[转载]TQ2440国嵌学院gboot-时钟初始化

[转载]TQ2440国嵌学院gboot-时钟初始化
 

代码上面也有给出,通过设定CP15的C1寄存器的nF和iA位都为1即可。

 

最后来看设定FCLK的频率:

[转载]TQ2440国嵌学院gboot-时钟初始化

首先我们采用的CPU的工作频率是405MHZ,也就是MDIV=0X7F,PDIV=10;SDIV=1

 

全部代码:

#define CLKDIVN 0x4c000014
#define MPLLCON 0x4c000004
#define MPLL_405MHZ ((127<<12)|(2<<4)|(1<<0))

init_clock:
 ldr r0, =CLKDIVN
 mov r1, #0x5
 str r1, [r0]
 
 mrc p15,0,r0,c1,c0,0
 orr r0,r0,#0xc0000000
 mcr p15,0,r0,c1,c0,0
 
 ldr r0, =MPLLCON
 ldr r1, =MPLL_405MHZ
 str r1, [r0]
 mov pc, lr

关键字:TQ2440  国嵌学院  gboot  时钟初始化 引用地址:TQ2440国嵌学院gboot-时钟初始化

上一篇:TQ2440国嵌学院gboot-关闭MMU和Cache
下一篇:TQ2440国嵌学院gboot-内存初始化

推荐阅读最新更新时间:2024-03-16 14:34

基于设备树的TQ2440触摸屏驱动移植
平台 开发板:tq2440 内核:Linux-4.9 u-boot:u-boot-2015.04 概述 之前移植了LCD驱动,下面继续移植触摸屏驱动,然后将tslib也移植上去。 正文 一、移植触摸屏驱动 为了简单起见我们对TQ2440自带的触摸屏驱动进行改写,改成设备树的形式。 1、设备树 触摸屏使用了两个中断,如下: 这两个中断是子中断,隶属于主中断INT_ADC: 关于寄存器,参考芯片手册的第16章,知道了上面的信息,我们就可以得到如下的设备树节点(可以参考博文基于设备树的TQ2440的中断(1)): tq2440ts@5800000 { compatible = tq2440,ts ; reg =
[单片机]
基于设备树的<font color='red'>TQ2440</font>触摸屏驱动移植
采用S3C24449芯片在TQ2440开发板实现串口扩展
随着计算机网络的发展,以及现场总线等技术的广泛使用,串口通讯在各种场合的应用越来越广泛。在集中控制系统中,需要在多个串口间进行通信,而在一般计算机上,只有1~3个串口,为了实现对多点的控制,需要对串口进行扩展。 ARM芯片是目前在嵌入式系统中应用比较广泛的一种芯片,由于可以运行操作系统,以及拥有包括LCD、串口通讯、网络通讯、存储芯片等大量外围接口芯片的支持,使得ARM广泛应用于检测、通讯、控制等领域。 本文以ARM 920T核的S3C24449芯片作为微控制器,在TQ2440开发板进行串口扩展,利用开发板上的系统总线接口和通用输入输出接口分别与扩展串口相连,达到同时与多台串口设备并行通信的目标。 1 、硬件介绍 1.
[单片机]
采用S3C24449芯片在<font color='red'>TQ2440</font>开发板实现串口扩展
TQ2440实验板上进行linux+qtopia++ov9650+opencv的图像处理系统
项目关键的地方主要是能够在ARM9(TQ2440)上根据所采集(OV9650)的图像和我预先给的模板,来判断图像中是否有我给的模板的内容在,有的话框出来。其实这个我在Windows下,最常用的就是两个函数:cvMatchShapes(速度慢)和cvMatchTemplate(速度快)。但是由于这次的项目小车是运动的,所以目标相对小车,它的大小是变化的,但是形状不会变。还有我们使用两个摄像头(这也是我们项目的创新点),对目标进行多角度的匹配。使用Opencv的函数来进行模式识别,在Windows平台上基本基本没有什么值得考虑的地方,但是在嵌入式平台上,一定的考虑处理器的速度问题。像现在我们arm9的频率在500M左右,我以前在Win
[单片机]
在<font color='red'>TQ2440</font>实验板上进行linux+qtopia++ov9650+opencv的图像处理系统
基于TQ2440和Qemu的GDB+串口调试(1)
一、GDB基础知识 1、控制命令 n: 单步运行 c: 继续运行 q: 退出gdb 2、设置、查看和删除断点 (gdb) br start_kernel Breakpoint 6 at 0x809009b0: file ../init/main.c, line 483. (gdb) br __irq_svc Breakpoint 7 at 0x806e8e60: file ../arch/arm/kernel/entry-armv.S, line 219. (gdb) br gic_handle_irq Breakpoint 8 at 0x801014f4: file ../drivers/irqchip/i
[单片机]
TQ2440移植u-boot-2010.06-rc1---1调试的思路
硬件: 开发板: TQ2440 仿真器: openJtag 软件: 系统: XP + vmware虚拟ubuntu_10.10 编译: ubuntu_10.10下/opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/ 调试环境: XP + eclipse + OpenOCD_GUI u-boot版本: u-boot-2010.06-rc1 一. 调试环境 用openjtag调试与烧到nand_flash中运行基本相同,就是有两点不一样: 一是跳过了memory初始化过程 二是跳过了从flash中读取数据到内存
[单片机]
TQ2440 学习笔记—— 1、Windows平台下开发工具安装与环境建立
1、开发工具的安装与环境建立 系统:win7 64位 SecureCRT软件:该软件可以代替Windows中的超级终端,是个非常好的串口工具(其实它的功能很多,不过这里只是使用了它的串口功能) 功能:SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单的说是Windows下登录UNIX或Linux服务器主机的软件。 可以通过登录虚拟机里面的Linux操作系统,这样我们就不需要频繁的进入虚拟机里面进行操作;同时它也可以连通开发板的操作系统,也可以进行操作,通过相应的设置可以完成开发板、虚拟机、PC机三者的互通。 直接解压即可使用。使用方法: 主要是要注意端口配置: DNW软件:是
[单片机]
<font color='red'>TQ2440</font> 学习笔记—— 1、Windows平台下开发工具安装与环境建立
TQ2440启动代码分析(二)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;; When EINT0 is pressed, Clear SDRAM ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; check if EIN0 button is pressed ;这一段检测EINT0是否被按下,假如EINT0被按下,则清空SDRAM
[单片机]
s3c2440 camif接口摄像头驱动分析——基于tq2440的ov9650.c
前言 最近想做摄像头驱动,看了一些文章,对摄像头驱动的结构还是很晕。于是决定分析内核自带的驱动程序。内核的cmos摄像头有用v4l2的,也有用arm的camif codes通道结构的。本文是针对s3c2440 camif接口而写的驱动的代码导读。写得不好请多多指教。 一、开发环境 1.开发板:tq2440开发板 2.arm cpu:s3c2440 3.摄像头:ov9650 4.linux 内核:linux 2.6.30 5.源码:driver/meida/video/ov9650.c 二、需要了解的概念和准备的东西 1.SCCB协议 点击打开链接 2.ov9650 datasheet 点击打开链接 3.
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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