`
womendu
  • 浏览: 1474840 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

PLL,FCLK、HCLK、PCLK,AHB/APB (S3C2410)

阅读更多

总结的不错的一片文章!

原文地址:http://hi.baidu.com/%B0%AE%D4%C2%D2%B2%D2%B9%C3%DF%B3%D9/blog/item/75d1b6175b76a25cf2de3201.html

把网友的总结一下,归纳如下:


1
PLL(锁相环)
为了降低电磁干扰和降低板间布线要求,芯片外接的晶振频率通常很低(这块板子用的12MHz),通过时钟控制逻辑的PLL提高系统使时钟。锁相环起到的是倍频的作用,锁相环的使用有锁定和连接的过程。(有的芯片锁定连接过程是自动完成的比如S3C2440,有的则需要手动编程实现锁定和连接,总之PLL属于一种片上外设,不同厂家的产品使用上略有不同)

S3C2410为例,其内部有两个锁相环: MPLLUPLL,分别为MCUUSB控制器产生时钟信号,其中MPLL未连接之前MCU直接使用震荡源作时钟信号,连接后则改用MPLL倍频后的震荡源作时钟信号;UPLL因为是为USB设备提供时钟信号,所以规定必须是48MHz96MHz


2
、分频器

S3C2410
有四种时钟信号(从UPLL分出来的UCLK,从MPLL分出来的FCLK/HCLK/PCLK)。UCLK(比为48MHz)是供给USB的,FCLK是供给MCU的,HCLK供给AHBPCLK供给APB

FCLK MPLL的频率一样。我们所说的S3C2410CPU主频为200MHz,就是指的这个时钟信号,相应的,1/FCLK即为CPU时钟周期。

HCLK 可以设置为FCLKFCLK/2 ,即通过设置相应得寄存器CLKDIVN中的对应位HDIVN即可,其中HDIVN0时对应FCLK,为1时对应FCLK/2

PCLK可以设置为HCLKHCLK/2 ,即通过设置相应得寄存器CLKDIVN中的对应位PDIVN即可,其中PDIVN0时对应HCLK,为1时对应HCLK/2



3
AHB/APB

AHBAPB的地位相当于PC中的南北桥,是两道独立的片内总线。AHBadvanced high-performance busAPB advanced peripherals bus。 在这里,需要了解一下AMBA system architecture了。简单的说,AMBA是一种协议,这种协议已经称为片上组织通信的事实上的标准(the de facto standard for on-chip fabric communication)。下面给出英文描述:

The AMBA protocol is an open standard, on-chip bus specification that details a stategy for the interconnection and management of functional blocks that makes up a system-on-chip(SoC).It facilitates "right-first-time" development of embedded processors with one or more CPU/signal processors and multiple peripherals. The AMBA protocol enhances a resuable design methodology by defining a common backbone for SoC modules.

需要知道的是,AMBA总线是ARM提出的一种解决方案,它并非唯一的规范,但是因为ARM的广泛使用,AMBA总线也就成为了事实上的规范了。现在AMBA总线最新为AMBA 3 specification版本,包括AMBA 3 AXI InterfaceAMBA 3 AHB InterfaceAMBA 3 APB InterfaceAMBA 3 ATB Interface。而S3C2410还只能支持AMBA 2 specification,这个版本包含AMBA 2 AHB InterfaceAMBA 2 APB Interface。也就是在S3C2410的框图中看到的两种总线接口。

这两种总线所连的外设是有区别的。AHB总线连接高速外设,低速外设则通过APB总线互连。显然,对不同总线上的外设,应该使用不同的时钟信号,AHB总线对应HCLKAPB总线对应PCLK。弄清楚每条总线对应的外设,在设置好时钟信号后,对应外设的初始化的值依此而确定。

bus上的外设有LCD controllerUSB Host CONTExtMasterNand CONTnand flash boot loaderBUS CONTinterrupt CONTpower managementmemory CONTsram/nor/sdram等)。

APB bus上的外设有UARTUSB deviceSDI/MMCWatch Dog BUS CONTSPIIICIISGPIORTCADCTimer/PWM

4Fin

CPU外围接的晶振本身的频率,通常为12MHz

注意:

1. Although the MPLL starts just after a reset, the MPLL output (Mpll) is not used as the system clock until the software writes valid settings to the MPLLCON register. Before this valid setting, the clock from external crystal or EXTCLK source will be used as the system clock directly. Even if the user does not want to change the default value of MPLLCON register, the user should write the same value into MPLLCON register”

复位后,MPLL虽然默认启动,但是如果不向MPLLCON中写入value,那么外部晶振直接作为系统时钟。 EB110-4的外部晶振有两个,一是用于系统时钟,为12MHz;一个用于RTC,为32.768KHz。若实验没有向MPLLCON写入数值,系统时钟是12MHz。(从这里也可以发现一个问题,如果焊板子时外部晶振开始没有焊上,那么系统是无法正常启动的。因为按照上述规则,复位后还没有写入 MPLLCON,这时又没有可以使用的时钟源,所以不会启动。也就是硬件完成后,这个12MHz的晶振是一定要焊上的,才能进行后续的硬件测试工作。)
上电复位后,几个ms后晶振起振。当OSC时钟信号稳定之后,nRESET电平拉高(这是硬件自动检测过程)。这个时候,PLL开始按照默认的PLL配置开始工作,但是特殊性就在于PLL在上电复位后开始是不稳定的,所以S3C2410设计为把Fin在上电复位后直接作为FCLK,这是MPLL是不起作用的。如果要想是MPLL起作用,那么方法就是写入MPLLCON寄存器值,然后等待LOCKTIME时间后,新的FCLK开始工作。

即使不想改变MPLLCON寄存器的值,也要重新赋值一下。

.

.

.

.

.

.

.

TIPS:

1FCLK PCLK HCLK

http://blog.csdn.net/vrix/archive/2009/07/28/4386400.aspx

2、北邮人论坛

http://bbs.byr.cn/article/Embedded_System/2561

3BootLoaderPLL的初始化代码分析:

http://blog.csdn.net/formerman/archive/2009/07/26/4380126.aspx

4关于时钟及分频的讨论

http://www.linuxforum.net/forum/showflat.php?Cat=&Board=driver&Number=664181&page=&view=&sb=&o=&fpart=all&vc=1

5PC总线到ARM的内部总线

http://blog.csdn.net/thewayma/archive/2009/06/22/4286891.aspx

分享到:
评论

相关推荐

    user's manual_s3c2410x.pdf

    This manual describes SAMSUNG's S3C2410X01 16/32-bit RISC microprocessor. This product is designed to provide hand-held devices and general applications with cost-effective, low-power, and high-...

    s3c2410手册,用得于朋事开发的人员查看手删

    s3c2410手册,amr92oT的 This manual describes SAMSUNG's S3C2410A 16/32-bit RISC microprocessor. This product is designed to provide hand-held devices and general applications with cost-effective, low-...

    嵌入式系统设计(基于F4)

    • 合理配置AHB/APB1/APB2分频,满足不同外设时钟需求。 • 进一步优化时钟系统,降低频率获得最佳功耗。 外设配置: • 相关外设初始化,包括GPIO/ADC/PWM/USB等等。 • 实现外设间的通信与交互,驱动复杂外设电路。 •...

    S3C2410启动程序设计——2410Init.s详细分析

    S3C2410启动程序设计——2410Init.s详细分析 工程里面的头文件 2410Init.s包括了板子上电后的初始化(与vivi很相似),具体有几个步骤: 1. 屏蔽所有中断,关看门狗。 2. 根据工作频率设置PLL寄存器 3. ...

    2410-S实验指导书@2006.11.pdf

    S3c2410X 芯片集成了大量的功能单元,包括: 1. 内部1.8V,存储器3.3V,外部IO3.3V,16KB 数据CACH,16KB 指令CACH,MMU; 2. 内置外部存储器控制器(SDRAM 控制和芯片选择逻辑); 3. LCD 控制器(最高4K 色 STN...

    s3c2410测试开发程序

    s3c2410测试开发程序 源代码 2410init.o(Init) refers to 2410test.o(.text) for Main 2410test.o(.text) refers to 2410lib.o(.text) for Uart_Printf 2410test.o(.text) refers to mmu.o(.text) for MMU_Init ...

    STM32-16-CAN-正常模式YMXB-0402.rar

    /* PCLK1 = HCLK/2 设置低速 AHB 时钟(PCLK1) = 72/2 = 36 MHz*/ RCC_PCLK1Config(RCC_HCLK_Div2); /* PCLK2 = HCLK 设置高速 AHB 时钟(PCLK2)= 72 MHz*/ RCC_PCLK2Config(RCC_HCLK_Div1); //根据外接晶振设置...

    uboott移植实验手册及技术文档

    S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); nand->NFADDR = addr; } static inline void NF_WaitRB(void) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); while (!(nand->NFSTAT & (1...

    PLL.rar_DSP;PLL;C/C++_PLL_PLL C_pll c_pll-pid

    pll算法是来自经典的DSP的C程序和汇编程序库

    干货满满!盘点77条STM32知识,千万不能错过

     4、 ICode总线,DCode总线、系统总线、DMA总线、总线矩阵、AHB/APB桥  5、在使用一个外设之前,必须设置寄存器RCC_AHBENR来打开该外设的时钟  6、 STM32复位有三种:系统复位、上电复位、备份区域复位。其中...

    Noise Aware PLL Design Flow

    Noise Aware PLL Design Flow,锁相环/频率综合器的设计参考书!

    PLL.rar_VHDL/FPGA/Verilog_matlab_

    PHOTOVOLTAIC INVERTER PLL

    ARM开发之嵌入式开发中的S3C2410初始化--【千锋培训】

    文档介绍了前言,程序入口:(ResetHandler),配置memory接口,初始化堆栈,运行空间的初始化,lMMU初始化,配置时钟比、重新设置PLL,IO初始化,中断初始化,初始化串口

    pll.zip_VHDL/FPGA/Verilog_VHDL_

    PLL 锁相环verilog程序 可以直接使用

    7_ip_pll.zip_嵌入式/单片机/硬件编程_C51_

    FPGA ip 核锁相环PLL的简单运用

    STM32F401x固件库DEMO

    SYSCLK=HCLK=168M,PCLK2=HCLK/2=84M,PCLK1=HCLK/4=42M void HSE_SetSysClock(uint32_t m, uint32_t n, uint32_t p, uint32_t q) HSE_SetSysClock(25, 336, 4, 7);//STM32F401x外部晶振25MHz,时钟配置84MHz

    基于arm9的智能小车设计

    S3C2410在片上集成了丰富的组件:分开的16 KB指令Cache和16 KB数据Cache、用于虚拟存储器管理的MMU、支持STN和TFT的LCD控制器、NAND Flash启动装载器、具有片选逻辑和SDRAM控制器的系统管理器、3通道UART、4通道DMA...

    PLL锁相环仿真与C代码实现

    PLL 锁相环 仿真 C代码实现,经过验证的锁相环仿真与C语言实现,对电力电子初学者非常有用,希望对您有帮助。 PLL 锁相环 仿真 C代码实现,经过验证的锁相环仿真与C语言实现,对电力电子初学者非常有用,希望对您有...

    securecrt_linux_crack.pl

    网络转载,留作备份,学校perl脚本。 在Ubuntu上破解SecureCRT的工具。 请下载试用后及时删除。

    timer_trigger_adc_PLL_SUCCESS.rar_DSP PLL_DSP;PLL;C/C++_DSP锁相_tr

    DSP实现锁相 进行同相输出 可以进行数据采集

Global site tag (gtag.js) - Google Analytics