AMBA总线是一个多总线系统。规范定义了三种可以组合使用的不同类型的总线:AHB(Advanced High-performance Bus)、ASB(Advanced System Bus)和APB(Advanced Peripheral Bus)——先进外设总线

  AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字节和字的传输。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。
http://blog.21ic.com/user1/405/archives/2006/20569.html

  AMBA(Advanced Microcontroller Bus Architecture)总线规范是ARM公司设计的一种用于高性能嵌入式系统的总线标准。它独立于处理器和制造工艺技术,增强了各种应用中的外设和系统宏单元的可重用性。AMBA总线规范是一个开放标准,可免费从ARM获得。目前,AMBA 拥有众多第三方支持,被ARM公司90%以上的合作伙伴采用,在基于ARM处理器内核的SoC设计中,已经成为广泛支持的现有互联标准之一。AMBA总线规范2.0于1999年发布,该规范引入的先进高性能总线(AHB)是现阶段AMBA实现的主要形式。AHB的关键是对接口和互连均进行定义,目的是在任何工艺条件下实现接口和互连的最大带宽。AHB接口已与互连功能分离,不再仅仅是一种总线,而是一种带有接口模块的互连体系。

AMBA总线规范主要设计目的如下:① 满足具有一个或多个CPU或DSP的嵌入式系统产品的快速开发要求;② 增加设计技术上的独立性,确保可重用的多种IP核可以成功地移植到不同的系统中,适合全定制、标准单元和门阵列等技术;③ 促进系统模块化设计,以增加处理器的独立性;④ 减少对底层硅的需求,以使片外的操作和测试通信更加有效。

 

FCLK, HCLK, and PCLK
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.
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.
he S3C2440A supports selection of Dividing Ratio between FCLK, HLCK and PCLK. This ratio is determined by HDIVN and PDIVN of CLKDIVN control register.

 

看来HDIVN and PDIVN of CLKDIVN control register是决定HCLK和PCLK的关键,现在再来看看

 

2440 数据手册258 page

CLKDIVN 0x4C000014  R/W Clock divider control register 0x00000000

——更详细请看258 page了。

 

那现在看看FCLK到底是由谁来决定呢?

在clock&Power Management的开始处,有讲到FCLK是由晶振通过锁相环(PLL)倍频而来的。在slow模式下没有使用PLL就会使FCLK等于晶振的频率。现在往下看看怎么配置。

The Clock Control Logic determines the clock source to be used, i.e., the PLL clock (Mpll) or the direct external clock (XTIpll or EXTCLK). When PLL is configured to a new frequency value, the clock control logic disables the FCLK until the PLL output is stabilized using the PLL locking time. The clock control logic is also activated at power-on reset and wakeup from power-down mode.

  FCLK要在PLL输出稳定之后才会有效。

在page244 有

FCLK defination
If SLOW mode
   FCLK = input clock/divider ratio
If Normal mode (P, M & S value)
   FCLK = MPLL clock (Mpll)

 

page257

SLOW_BIT [4]

0 : FCLK = Mpll (MPLL output)
1: SLOW mode
FCLK = input clock/(2xSLOW_VAL), when SLOW_VAL>0
FCLK = input clock, when SLOW_VAL=0.
Input clock = XTIpll or EXTCLK

 

page298

 

CLKSEL0
(Note) [6:4] Select source clock with CLKOUT0 pad
000 = MPLL INPUT Clock(XTAL)
001 = UPLL output
010 = FCLK
011 = HCLK
100 = PCLK
101 = DCLK0
11x = reserved

——看来要想测试FCLK、HCLK、PCLK的真实值,使用这样的配置就可以了。不过普通的示波器测试不了。

 

在page255 有MPLLCON的设置,输出就是FCLK,但是2440的数据手册并没有明说,导致初学者相当郁闷。

等下我使用应用程序看看我的机器设置的主频到底是多少。