ARMコアのクロックは、MPU PLLの出力クロック(CLKOUT)が使われ、
その周波数は、MPU PLLの入力クロック(CLKINP)周波数と
レジスタ設定によるMultiplierとDividerの値で決まります。
目的の周波数に合わせ、各レジスタ[Field]の値を算出し設定してください。
下記がMPU PLL(ADPLLS)のブロック図です。
出力クロック(CLKOUT)周波数の通常の算出方法は下記の通りです。
CLKOUT = [M / (N+1)] * CLKINP * [1/M2]
N、M、M2は、MultiplierおよびDividerの設定値を示し、下記レジスタ[Field]の値に対応します。
‐ N:PRCM_CM_CLKSEL_DPLL_MPU[DPLL_DIV]
‐ M:PRCM_CM_CLKSEL_DPLL_MPU[DPLL_MULT]
‐ M2:PRCM_CM_DIV_M2_DPLL_MPU[DPLL_CLKOUT_DIV]
例えば、入力クロック(CLKINP)周波数および各レジスタ[Field]の値が下記の場合、
‐ CLKINP = 24MHz
‐ N:PRCM_CM_CLKSEL_DPLL_MPU[DPLL_DIV] = 0
‐ M:PRCM_CM_CLKSEL_DPLL_MPU[DPLL_MULT] = 25
‐ M2:PRCM_CM_DIV_M2_DPLL_MPU[DPLL_CLKOUT_DIV] = 1
出力クロック(CLKOUT)周波数は、
CLKOUT = [M / (N+1)] * CLKINP * [1/M2] より
CLKOUT = [25 / (0+1)] * 24 * [1/1] = 600MHz となります。
なお、オシレータ(DCO)出力クロック(CLKDCOLDO)の周波数は、
CLKDCOLDO <= 2GHz となる様に設定する必要があり、
その上で、Nの値が、より小さくなる様に設定してください。
例えば、上記の出力クロック(CLKOUT)が600MHzの例の場合、
オシレータ(DCO)出力クロック(CLKDCOLDO)の周波数は、
CLKDCOLDO = 2 * [M / (N+1)] * CLKINP
CLKDCOLDO = 2 * [25 / (0+1)] * 24 =1200MHz(1.2GHz)
となり、2GHz以内の条件を満たしています。
また、Nの値は最小値である0に設定しています。
設定手順の詳細は、AM437x TRM(spruhl7) "6.6.9.1 Configuring the MPU PLL"を参照してください。