マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 5.4.6.1. マイコンの種別の指定

Up: 5.4.6. ファームウェアの修正

Next: 5.4.6.3. ファームウェアライブラリ使用の宣言


マイコン徹底入門:導入編:オープンソースでCortex-M3/STM32の開発環境を無償構築: 5. ワークスペースの構築: 5.4. ファームウェア・設定ファイルの修正: 5.4.6. ファームウェアの修正:

5.4.6.2. クリスタルの周波数が異なるボードの場合

 ファームウェアライブラリの標準の設定は、マイコンボードに搭載されているクリスタル(水晶発振器)8MHzであることを前提としています。STBeeSTBee Mini、本書では紹介していませんがSTM32-Primer2などは12MHzのクリスタルを使用していますので、設定の変更が必要です。

 makefile.in12MHzのクリスタルを搭載したマイコンボードを選択した場合には、ユーザプログラムの実行時に、12MHz用のクロック設定を再実行するようになっています。具体的にはBoardInit関数(lib/Platform/boardinit.c)中で、Use_12MHz_Xtal関数を実行しています。Use_12MHz_Xtal関数は後述のSystemInit関数を12MHz用に修正したものです。

 自分で変更をする場合には、2つのファイルの変更が必要です。

 まず/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10xフォルダ内にあるstm32f10x.h95行目の、

#define HSE_Value??? ((uint32_t)8000000)

#define HSE_Value??? ((uint32_t)12000000)

と変更します。HSE_Valueはクロック設定の際に使用されるマクロです。

次に/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10xフォルダ内にあるsystem_stm32f10x.c981行目の、

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);

を、

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);

と変更してください。初期値は、8MHzのクリスタルの仕様を前提にしているので、これを「9倍」にして72MHzを作っているのですが、12MHzであることを前提に「6倍」にします。

 72MHz以外の周波数で動作させる場合には、周波数に応じて以下の変更が必要です。

24MHzの場合

system_stm32f10x.c? 575行目付近

変更前

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL6);

変更後

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL2);

36MHzの場合

system_stm32f10x.c? 676行目付近

変更前

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL9);

変更後

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL3);

48MHzの場合

system_stm32f10x.c? 776行目付近

変更前

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);

変更後

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL4);

56MHzの場合

 HSEクロックが12MHzの場合には、システムクロックを56MHzにすることはできません。


Previous: 5.4.6.1. マイコンの種別の指定

Up: 5.4.6. ファームウェアの修正

Next: 5.4.6.3. ファームウェアライブラリ使用の宣言


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。