当前位置:首页 > 单片机 > 单片机
[导读]s3c2410 有三个时钟FLCK 、HCLK 和PCLK (这3个时针都是核心时针)s3c2410 芯片有这么一段话:FCLKis used by ARM920T ,内核时钟,主频。HCLKis used for AHB bus, which is used by the ARM920T, the memory contr

s3c2410 有三个时钟FLCK 、HCLK 和PCLK (这3个时针都是核心时针)

s3c2410 芯片有这么一段话:

FCLKis used by ARM920T ,内核时钟,主频。

HCLKis 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总线用于连接高速外设。

PCLKis 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的比率。

那么如何获取FCLK, HLCK 和 PCLK的时针频率呢?

可先通过clk_get获取一个clk结构体

de>/* clk_get获取一个名为id的时针
* 输入参数dev: 可以为NULL
* 输入参数id: 时针名称,如fclk、hclk、pclk等
* 返回值: 返回该时钟的clk结构体
*/de>

de>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);
};
de>

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

de>unsigned long clk_get_rate(struct clk *clk)de>

一个例子:

de>printk(KERN_DEBUG"fclk = %d, pclk = %d, hclk = %d, uclk = %dn",
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")));de>

这里出现了另一个时针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。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在现代电子设备中,晶振作为提供精确时钟信号的核心元件,其重要性不言而喻。从智能手机、计算机到汽车电子、通信基站,晶振的身影无处不在,它如同电子设备的 “心脏起搏器”,确保各种复杂电路有条不紊地运行。而晶振的核心 —— 石...

关键字: 晶振 时钟信号 振荡器

在电子电路的世界里,时钟信号是整个系统有序运行的 “节拍器”,而无源晶体与有源晶振作为产生时钟信号的核心器件,扮演着举足轻重的角色。尽管它们的目的都是为电路提供稳定的频率信号,但在结构原理、性能特点、应用范围及使用方法上...

关键字: 时钟信号 无源晶体 有源晶振

在电子电路中,晶振是一种至关重要的频率控制元件,为系统提供稳定且精确的时钟信号。而晶振负载电容以及晶振两边的电容在晶振的正常工作中都扮演着关键角色,尽管它们存在一定关联,但实则有着不同的特性与功能。

关键字: 控制元件 时钟信号 晶振

在现代通信、数据处理和精密测量系统中,时钟信号的稳定性和低抖动性至关重要。时钟抖动(Jitter)作为时钟信号中不期望的时序变化,会导致数据传输错误、信号同步问题以及系统性能下降。为了应对这一挑战,研究人员和工程师们不断...

关键字: 时钟信号 PLL 锁相环

脉冲电路主要包括脉冲产生电路和脉冲整形电路。脉冲产生电路的功能是产生各种脉冲 信号,如时钟信号。

关键字: 脉冲电路 时钟信号

在现代电子系统中,时钟信号的稳定性和精确性对系统性能至关重要。随着科技的快速发展,对时钟频率和相位噪声的要求也日益提高。双环路时钟发生器,作为一种先进的时钟生成技术,凭借其独特的结构和卓越的性能,在高端应用中展现了强大的...

关键字: 时钟信号 低相位 锁定环

在现代电子系统中,时钟信号的稳定性和精确性对于系统性能至关重要。随着数据转换器的速度和分辨率不断提高,对高频、低相位噪声的时钟源需求日益增长。尤其是在蜂窝基站、军用雷达系统和其他需要高速、高性能时钟信号的应用中,时钟发生...

关键字: 时钟信号 双环路 数据转换器

在信息技术飞速发展的今天,电信和网络应用对时钟信号的要求日益严苛。时钟信号作为系统运行的基石,其稳定性、精确性和灵活性直接关系到整个系统的性能和可靠性。在这样的背景下,可编程多速率时钟产生器以其独特的优势脱颖而出,尤其是...

关键字: 时钟信号 可编程 NB3H5150

同步传输通过某种时钟信号来控制数据的传输速率和保证接收端正确接收数据;异步传输则采用起始/停止位等标志来分离每个字符并进行传输。

关键字: 串行通信 时钟信号 异步传输

为增进大家的晶振的认识,本文将对晶振损坏时的一些特征现象,以及晶振失效的三大原因以及对应的解决办法予以介绍。

关键字: 晶振 指数 时钟信号
关闭