• No : 3748
  • 公開日時 : 2019/08/15 15:39
  • 更新日時 : 2019/12/23 16:10
  • 印刷

【TI:プロセッサ】 AM437x ARMコア周波数の確認と設定方法

AM437xのARMコア周波数の確認、及び設定方法について教えてください。
カテゴリー : 

回答

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"を参照してください。