SettingPll¶
- Table of contents
- SettingPll
STM32CubeMXでプロジェクトを作ると、デフォルトではPLLの設定は低速です。
STM32F429ZIだと 16MHz で、CubeMXの Clock Configuration
タブで速度が確認できます。
ボードに発振器が載っているか確認¶
CubeMXでNUCLEO用のプロジェクトを開いているときに、メニューバーのHelp-Docs&Resourcesをクリックすると、評価ボードに応じたドキュメント(pdf)が簡単に入手できます。
NUCLEO-F429ZIなら UM1974 の 6.8 OSC に発振器の情報が記載されています。
UM1974 の 6.8 OSC より、以下が分かります。
- HSE用発振器は非搭載
- LSE用発振器を搭載、部品の型番でネット検索すると2端子なので発振子(CubeMX上では
BYPASS Clock Source
でなくResonator
を選ぶ)
CubeMX上で、Pinout&Configurationタブの System Core-RCC の LSE を Crystal/Ceramic Resonator に直すのと、
Clock Configurationタブの HCLKにmaxの180を入力して、Clock Wizardまかせでほかのクロックを設定してもらいましょう。
あとは、Timerを使うときにAPB1とAPB2のどちらのペリフェラルだか気にしなくてもよいように、APB2のPrescalarをAPB1と同じ/4に直します。
トラブルシューティング¶
正しく動くが、なぜか自分の書いたコードに到達するまで数秒かかる¶
CubeMX上で、ボードに未実装のクロック発振器/子を使う設定になっている場合、「発振器/子から出力されるクロックを待つけれどタイムアウトしてSTM32内蔵発振器に切り替える」という動作をします。
正しく動いているように見えても誤りがあります。
なお、Nucleoボードによっては「基板に発振器/子が実装済みなのだけれど、ハンダゴテでSBxxをブリッジしないとSTM32に未接続となる」ものがあるので、注意が必要です。
SerialWireViewerへの文字出力が化ける¶
SWOの基準周波数の自動認識に失敗している可能性があります。
J-Link(化したST-Link)を使っている場合、Debug Configurationsのダイアログで Startupタブ-Enable SWOの右の CPU freqを0(自動)から 180000000
(ゼロ7つ)に直してください。
CPU freqが設定されていれば、SWO freqは0(自動認識)のままで大丈夫なようです。
累計表示回数:136
Updated by mole lord 5 months ago · 3 revisions