Mini210S 開発キットOSなしのプログラム開発手順連載(14)

Mini210S/Tiny210等開発ボード関連のフォラーム

Mini210S 開発キットOSなしのプログラム開発手順連載(14)

投稿記事by dwtechadm » 金 5 10, 2013 3:50 pm

Mini210S 開発キット詳細URL


第XI章 システムクロック初期化
第二節 プログラム説明

画像

PLLおよびサブ周波数係数を設定する前にPLLを使用できません。安全のために、先に、低周波数の外部24MHz水晶分周器を使用します。PLLおよびサブ周波数係数を設定完了後、クロック・スイッチの再設定を行います。
ステップ 2 ロック時間を設定
PLL設定後、クロックは Fin から目標周波数に引き上げるには、時間が必要です。すなわちロック時間です。
ステップ3 分周を設定
分周相関のレジスタはCLK_DIV0、下記図をご参照ください:

画像
本章第一節のクロック設定でレジスタを設定します。
画像

• ARMCLK = 1000MHz = MOUT_MSYS / (APLL_RATIO + 1)、 ステップ4~5のあと、MOUT_MSYSは 1000MHzと設定します、APLL_RATIO=0
• SCLKA2M=200MHz=SCLKAPLL / (A2M_RATIO + 1)、 SCLKAPLL=1000MHz、 A2M_RATIO=4。
• HCLK_MSYS=200MHz=ARMCLK / (HCLK_MSYS_RATIO + 1)、HCLK_MSYS_RATIO=4
• PCLK_MSYS=100MHz=HCLK_MSYS / (PCLK_MSYS_RATIO + 1)、 PCLK_MSYS_RATIO=1
• HCLK_DSYS=166MHz=MOUT_DSYS / (HCLK_DSYS_RATIO + 1)、 ステップ4~5のあと、MOUT_DSYS =667MHz、 HCLK_DSYS_RATIO=3
• PCLK_DSYS=83MHz=HCLK_DSYS / (PCLK_DSYS_RATIO + 1)、PCLK_DSYS_RATIO=1
• HCLK_PSYS=133Mhz=MOUT_PSYS / (HCLK_PSYS_RATIO + 1)、ステップ4~5のあと、MOUT_PSYS =667MHz 、 HCLK_PSYS_RATIO=4
• PCLK_PSYS=66Mhz=HCLK_PSYS / (PCLK_PSYS_RATIO + 1)、 HCLK_PSYS_RATIO=1、
CLK_DIV0 = 0x14131440;
ステップ4 PLLを設定
PLL、すなわち周波数逓倍器、動作周波数を拡大するために使用されます。分周器を設定し、PLLを設定する必要があります。 APLL / MPLLはAPLL_CON0/MPLL_CONレジスタにより起動します、まずレジスタの設定を行います。

画像
APLL_CON0

画像

ALPP_CON0 は APLL、FINPLL=24MHzに設定します、 APLL を通じ、 クロック分周はFOUT=1000Mhz を出力します、FOUT の計算公式は下記の通りです:
FOUT=MDIV*FIN/(PDIV*2^(SDIV-1)) = 1000 MHz
FIN=24MHz、FOUT=1000MHz、その値は: MDIV= 0x7d、PDIV= 0x3、SDIV=1。 三つの値は固定値ではありません、 FOUT=1000Mhzをサポートするなら、任意値を使用できます。
MPLL_CON

画像

MPLL_CON レジスタは MPLLを設定します、 MPLLを通じ、クロック分周は FOUT=667Mhz を出力します、FOUT の計算公式は下記の通りです:
FOUT=MDIV*FIN/(PDIV*2^SDIV) = 667 MHz
  FIN=24MHz、FOUT=667MHz、その値は: MDIV=0x29B、PDIV= 0xC、SDIV=1。三つの値は固定値ではありません、 FOUT=1000Mhzをサポートするなら、任意値を使用できます。
ステップ5 各クロック•スイッチを設定

画像

S5PV210 时钟设置参考图
上記図のように、全ての MUX はクロックを選択すると使用されます、関連レジスタは CLK_SRC0、下記図をご参照ください:

画像

S5PV210 を参照して、各クロック・スイッチを設定します:
APLL_SEL=1、FOUTAPLLを使用します
MPLL_SEL=1、FOUTAPLLを使用します
EPLL_SEL=1、FOUTAPLLを使用します
VPLL_SEL=1、FOUTAPLLを使用します
MUX_MSYS_SEL=0、SCLKAPLLを使用します
MUX_DSYS_SEL=0、SCLKMPLLを使用します
MUX_PSYS_SEL=0、SCLKMPLLを使用します
ONENAND_SEL=1、HCLK_DSYSを使用します
CLK_SRC0=0x10001111;
3. main.c
main 関数で LED点滅を実現します、コードは前のとほぼ同じです。





---続く
dwtechadm
 
記事: 60
登録日時: 月 2 25, 2013 1:35 pm

Return to Cortex-A8関連

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]