s3c2410时钟信号:FCLK、HCLK和PCLK;clk_get_rate()

发布者:玄幻剑客最新更新时间:2016-12-03 来源: eefocus关键字:s3c2410  时钟信号 手机看文章 扫描二维码
随时随地手机看文章

s3c2410 有三个时钟FLCK 、HCLK 和PCLK (这3个时针都是核心时针)
s3c2410 芯片有这么一段话: 
FCLK is used by ARM920T ,内核时钟,主频。 
HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt controller, the LCD controller, the DMA and USB host block. 也就是为AHB总线上的外设提供时钟信号,包括USB时钟。 AHB总线用于连接高速外设。
PCLK is used for APB bus, which is used by the peripherals such as WDT, IIS, I2C, PWM timer, MMC interface,ADC, UART, GPIO, RTC and SPI. 也就是为APB总线上的外设提供时钟信号,即IO接口时钟,串口的时钟设置就是从PCLK来的。APB总线用于连接低速外设。
The S3C2410X supports selection of Dividing Ratio between FCLK, HLCK and PCLK. This ratio is determined by HDIVN and PDIVN of CLKDIVN control register.
s3c2410可通过设置CLKDIVN控制寄存器的HDIVN位(第1位)和PDIVN位(第0位)来改变FCLK, HLCK 和 PCLK的比率。
s3c2410时钟信号:FCLK、HCLK和PCLK;clk_get_rate() - 乌云然 - 香烧间有歇 花落无还时
那么如何获取FCLK, HLCK 和 PCLK的时针频率呢?
可先通过clk_get获取一个clk结构体


/* clk_get获取一个名为id的时针
 * 输入参数dev:   可以为NULL
 * 输入参数id:    时针名称,如fclk、hclk、pclk等
 * 返回值:        返回该时钟的clk结构体
 */
struct clk *clk_get(struct device *dev, const char *id)
struct clk {
    struct list_head list;
    struct module *owner;
    struct clk *parent;
    const char *name; /* 该时针名称 */
    int id;
    int usage;
    unsigned long rate; /* 时钟频率 */
    unsigned long ctrlbit;
    int (*enable)(struct clk *, int enable);
    int (*set_rate)(struct clk *c, unsigned long rate);
    unsigned long (*get_rate)(struct clk *c);
    unsigned long (*round_rate)(struct clk *c, unsigned long rate);
    int (*set_parent)(struct clk *c, struct clk *parent);
};


再将clk_get返回的clk结构体传递给clk_get_rate,获取该时钟的频率


unsigned long clk_get_rate(struct clk *clk)

一个例子:


printk(KERN_DEBUG"fclk = %d, pclk = %d, hclk = %d, uclk = %d\n",
            clk_get_rate(clk_get(NULL, "fclk")),
            clk_get_rate(clk_get(NULL, "hclk")),
            clk_get_rate(clk_get(NULL, "pclk")),
            clk_get_rate(clk_get(NULL, "uclk")));


这里出现了另一个时针uclk,专门给usb供给时针信号。uclk是外部时针源,由s3c2410芯片的gph8/uclk管脚引入,给uart提供外部时针信号,以获取更精确地时针频率。
 
关于AMBA片上总线
AMBA(Advanced Microcontroller Bus Architecture)是由ARM公司提出的片上总线规范。AMBA 2.0规范包括四个部分:AHB(AMBA高性能总线)、ASB(AMBA系统总线)、APB(AMBA外设总线)和Test Methodology。
the Advanced High-performance Bus(AHB)应用于连接高性能、高时钟频率的系统模块(如CPU、DMA和DSP等)它构成了高性能的系统骨干总线( back-bone bus )。AHB bus上的外设有LCD controller(CONT代表controller,控制器)、USB Host CONT、ExtMaster、Nand CONT和nand flash boot loader、bus CONT、interrupt CONT、power management、memory CONT(sram/nor/sdram等)。
the Advanced System Bus(ASB)是第一代AMBA系统总线,同AHB相比,它数据宽度要小一些,它支持的典型数据宽度为8位、16位、32位。
the Advanced Peripheral Bus(APB)是本地二级总线(local secondary bus ),通过桥和AHB/ASB相连。它主要是为了满足不需要高性能流水线接口或不需要高带宽接口的设备的互连。APB bus上的外设有UART、USB device、SDI/MMC、Watch Dog Timer、bus CONT、spi、iic、iis、gpio、rtc、adc、timer/pwm。


关键字:s3c2410  时钟信号 引用地址:s3c2410时钟信号:FCLK、HCLK和PCLK;clk_get_rate()

上一篇:s3c2410触摸屏驱动(2.6内核)分析
下一篇:S3C2410 内存连接方法的深入研究

推荐阅读最新更新时间:2024-03-16 15:22

基于ARM9处理器S3C2410的LCD显示系统设计
  0 引言   Xscale处理器是Intel公司推出的基于ARMv5TE体系结构的ARM处理器。PXA270是该公司于2003年第四季度推出一款全性能、高性价比、低功耗的Xscale处理器,其最高主频可达624MHz。   PXA270拥有的 Quick Capture(快速拍摄)、Wireless MMX(无线MMX指令)和Wireless Speed Step(无线动态节能)技术,大大提升了多媒体处理能力;同时在保证CPU性能的情况下,最大限度地降低移动设备功耗。   嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁减处理之后,能够固化在容量只有几KB或者几MB的存储器芯片或者单片
[单片机]
基于ARM9处理器<font color='red'>S3C2410</font>的LCD显示系统设计
基于S3C2410的CAN总线通信设计与开发
  1 引言   网络化控制系统是控制系统的发展趋势和研究热点,现场总线控制系统作为网络化系统的重要组成部分,近年来在实际的控制系统中得到了广泛的应用。CAN(Con- troller Area Network)总线作为一种容错性强、可靠性高、布线简单且成本低廉的现场总线倍受用户钦睐,在国内CAN总线已经得到了广泛应用。目前国内广泛应用的独立CAN控制器SJA1000因存在如地址、数据总线的分时复用常导致接口效率低下;接收、发送缓冲区的个数太少,导致数据吞吐率不高;帧屏蔽和过滤器的设置不够灵活,不能满足同时需要更多屏蔽和过滤条件的要求等。   ARM芯片S3C2410是一种高集成度,高性价比的嵌入式处理芯片,已成功用于工控设备
[单片机]
基于<font color='red'>S3C2410</font>的CAN总线通信设计与开发
s3c2410的timer定时器的使用
2410共有5个定时器,其中timer4没有引脚输出,其余都可以用作pwm。 0、1共用一个预分频器 2、3、4共用一个预分频器 TCFG0 分别对应这两个预分频器,分频值不要忘了+1,因为分频值不能为0 TCFG1 分别对应这每个定时器自己的分频值 TCNTB0 定时器的计数值 TCMPB0 定时器的比较值 我理解的PWM,在一个固定的时间周期中,也就是TCNTB0这个值,一个周期开始后,TCNTB0开始减1计数,当减到和TCMPB0 相等时,TOUT0输出反转,当TCNTB0减到0时,TOUT0输出再次反转,一个新的计数周期开始。 TCNTO0 定时器监听寄存器 TCON0 控制寄存器
[单片机]
S3C2410中文芯片手册-11.串口
S3C2410x 提供3个独立的异步串行I/O接口,每一个都可以工作在中断或是 DMA 模式。UART 最高可以支持230. 4K bps波特率,通过使用系统时钟。如果有外部设备给 UART 提供 UCLK, 那么 UART 可以达到更高的速度。每个 UART 通道包含2个16个字节的 FIFO 用于接收和发送数据。 S3C2410 的 UART 包括 可编程波特率,infra-red 发送/接收, 1~2个停止位, 5~8位数据位和奇偶校验。 每个 UART 由波特率发生器、发送器、接收器和控制单元组成,如图11-1所示。波特率发生器可以由 PCLK 或是 UCLK 提供时钟。数据发送器和接收器包含16字节的 FIF
[单片机]
<font color='red'>S3C2410</font>中文芯片手册-11.串口
u-boot 启动过程 —— 基于S3C2410
本文以流行的Samsung公司的S3C2410,openmoko平台和u-boot-1.3.2(2008.5 发布)为例,介绍如何在ZIX嵌入式开发环境下探索u-boot启动过程。 虽然u-boot已经广泛应用,由于其相对的复杂性使用户在了解其内部 机理和进行u-boot的移植工作时还是会碰到困难。u-boot已有一些分析文档,但多数和真正的代码不能同步或者版本老旧,难以将概念和现实的代码匹配 即硬件板上跑的代码在文档资料中却看不到,更无法紧密的跟踪。本文涉及的代码基于在s3c2410硬件运行的成熟u-boot-1.3.2代码,版本较新,提供的特性非常丰富,而且在 forum.linuxbj.com 可以 自由浏览 和 下载 。此u
[单片机]
S3c2410裸板程序入门---流水灯
初学arm,写了几个练习小程序,记录在此,道行低微,贻笑大方 包括: 流水灯, 单按键, pwm驱动蜂鸣器, 串口与PC通信 开发板s3c2410, 开发环境realview + h-jtag 废话少说,开始第一个程序,流水灯对于裸板程序开发的学习,就像hello world对于任何一门高级语言,新手第一课,呵呵。几个文件内容如下: led.c 1 #include s3c2410.h 2 #include delay.h 3 4 5 6 void myblink(void) 7 { 8 delay(0); 9 GPFCON = (GPFCON & ~(0xff 8))|0x5500;
[单片机]
S3C2410触摸屏驱动代码分析1
/* * s3c2410-ts.c * * touchScreen driver for SAMSUNG S3C2410 * * Author: Janghoon Lyu nandy@mizi.com * Date : $Date: 2002/06/04 07:11:00 $ * * $Revision: 1.1.2.6 $ * * Based on pt036001b-ts.c * * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main dir
[单片机]
基于S3C2410的网络式汽车防盗系统
引言 汽车的普及为人们的生活带来了方便,同时也给人们提出了一大难题——汽车防盗。本设计是为了解决以往汽车防盗产品的缺点和不足而开发的集成传感、报警和远程图像监控3大功能模块的汽车防盗报警系统。 系统工作原理及组成 本系统是把传感器装在车身的隐蔽位置,当有人走进监控距离、车身移动或振动、车门被打开时,传感器发出电信号,通过A/D转换装置,发送到主控制器。控制器根据信号的来源,把报警分为“有人靠近”、“车体振动”和“车门被开”3个等级,并用 GPRS/GSM终端将报警信息用短信的方式发送到用户手机上。把“车门被开”作为高级别的报警,通知用户的同时,启动视频驱动程序,通过车内的摄像头把车内实况记录下来,发送到车主手机。前两种
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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