ARM Technical Support Knowledge Articles

How do I change the clock frequencies on the CT926?

Applies to: CT926


[new 19 October 2007]

Many customers want to change clock frequencies in order to make software run faster, benchmark software by scaling down the CPU frequency, or to build a custom motherboard for a Core Tile. The ARM926EJ-S Core Tile example design we provide in application note AN148 gives fairly coarse control over clock frequency. This FAQ describes the test chip signals in more detail than is covered in the Core Tile user guide.

To change the clocks you need to understand the clock circuit described in chapter 4 of the ARM926EJ-S Core Tile user guide.

Maximum CPU frequency for the test chip is given in the printed release notes in the Core Tile box.

Clock control signals

These details are for the ARM926EJ-S test chip marked 'UMC'.

CPU clock is fed from the output of the test chip PLL. So for CPU running at 150MHz given a 25MHz REFCLK, the PLL should multiply by 150/25 = 6. 

The formula for the PLL output frequency is:

CPU frequency = ( ( REFCLK / ( PLLREFDIV + 1 ) ) * ( PLLFBDIV + 1 ) ) / ( PLLOUTDIV + 1 )

PLL reference frequency (output of PLLREFDIV) range is 137kHz - 275MHz
PLL VCO frequency range is 55MHz - 275MHz

The PLL control signals should be set like this:

PLLREFDIV[3:0] = b0000       for divide by 1
PLLFBDIV[7:0] = b00000101 for divide by 6
PLLOUTDIV[2:0] = b000 for divide by 1
PLLOUTDIV[3] = b0 not used, recommend tie low
PLLCTRL[1:0] = b00 to use PLL in normal mode
PLLBYPASS = b0 to use PLL

To run the external AHB bus clock (HCLKE) at 25MHz you need to divide down the output of the PLL by 150/25 = 6. The clock divider signals should be set like this:

HCLKDIV[2:0]   = b101        for divide by 6
USERIN[1:0] = b00 most significant bits of HCLKDIV
USERIN[3] = b0 to disable some undocumented features

Measuring frequency

You can use an oscilloscope to measure the input reference clock (REFCLK) at U18 pin 7, and the output AHB bus clock (HCLK) at U14 pin 41.

You can measure the CPU frequency by timing how long a loop takes to run in zero wait state TCM. See the 'speed test' program in our ARM1136JF-S clocks FAQ, but note taking the branch only takes an ARM9 5 cycles to re-fill the pipeline not 7.

Article last edited on: 2009-01-20 14:04:29

Rate this article

Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential