2019年1月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Amazonウィジェット

  • お気に入り
  • 書籍ランキング

AdSense

  • 広告
無料ブログはココログ

« LPC1114のXPressoとりあえずの使い方。デバッグ、ブレークポイントの設定方法など。 | トップページ | PIC_16F84をC言語で動かす XC8で古いデバイスを活用 »

2013年2月16日 (土)

LPCXPresso LPC1114のクロック周波数 設定方法の詳細

LPCXPressoのLPC1114におけるクロック周波数の変更方法。

☆ユーザーマニュアル(UM10398.pdf)をダウンロードし、これを見ながら参照されたし。

Table.46にPLL configuration exampleという表があり、ここでLPCに設定できるクロックの例が書いてある。この例に沿ってレジスタを書き込めば、所望のクロックでCPUを動かせる。



クロックの設定は、CMSISのフォルダのsrcに入っている、system_LPC11xx.cで行っている。今使っているのはCMSISv1p30_LPC11xxで、プルダウンでsrcのフォルダを探すと見つかる。

中身の結論を先に言うと、サンプルプログラムのデフォルトでは最速の48MHzが設定されている。このクロックはXpresso基板上の12MHzのクリスタルを逓倍して作りだしている。

クロック信号の経路としては、このブロック図の赤線のようになる。丸で囲ったレジスタが設定のキーポイントになる。

Lpc1114clocksrc_2


そしてデフォルトのソース(system_LPC11xx.c)内では、下記のようになっている。

#define SYSPLLCLKSEL_Val      0x00000001
#define SYSPLL_SETUP          1
#define SYSPLLCTRL_Val        0x00000023
#define MAINCLKSEL_Val        0x00000003

一つずつ解析していくと、

・SYSPLLCLKSEL を1にすると、System oscillatorつまり外付けクロックをセレクトする。
 尚、内蔵オシレータを使う場合はIRC oscillatorなので0x0を設定。

・SYSPLL_SETUP でPLLを使用するをセレクトしている。

・SYSPLLCTRL   は少し複雑。

  まず、SYSPLLCTRLの0~4ビット目までの5ビットはMSEL。
  そして6,5ビット目の2ビットはPSELとなっている。
  今の0x00000023は、ビットに直して考えると下5ビットが3なので、MSELには3が。
  その次の2ビットは01だからPSELは1が入っていることになる。

Lpc

 わかりにくいので図にしてみた。サンプルソースには、いきなり16進数でレジスタに値を入れたりしているので理解しづらい。しかし、こうしてビットに分けて一つずつ噛み砕いていくと、何をやっているかがつかめる。また良くある書式で[0:4]というのがある。マイコンの仕様書では何の断りもなく使われていたりするけれど、0~4bit目という意味。



24MHzに設定したければ、先ほどのPLL configuration exampleの表から必要な値を選んでビットを設定すればよい。この表の上から3段目がそう。

Ws000053

表から、
MSEL bits = b'00001
PSEL bits = b'10


とあることから、下記のように設定すればOK。

#define SYSPLLCLKSEL_Val      0x00000001
#define SYSPLL_SETUP          1
#define SYSPLLCTRL_Val       
0x00000041
#define MAINCLKSEL_Val        0x00000003



尚、クロックは内臓の12MHzの倍数にしか設定できない。細かな刻みに設定したければクリスタルをつないで、そのクリスタルの周波数倍にする形で設定しなければならない。





--------------------------------------------------------------------

Linux搭載のARMマイコンボード
簡単にWebサーバーが構築できるらしい。

誰でもできる! Raspberry Piで楽しもう (日経BPパソコンベストムック)

        日経Linux 日経BP社 2013-06-29
        売り上げランキング : 1290
by ヨメレバ

« LPC1114のXPressoとりあえずの使い方。デバッグ、ブレークポイントの設定方法など。 | トップページ | PIC_16F84をC言語で動かす XC8で古いデバイスを活用 »

ARM LPCXpresso」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: LPCXPresso LPC1114のクロック周波数 設定方法の詳細:

« LPC1114のXPressoとりあえずの使い方。デバッグ、ブレークポイントの設定方法など。 | トップページ | PIC_16F84をC言語で動かす XC8で古いデバイスを活用 »