チカラの技術

電子工作やプログラミング

STM32F2xxのRCC_PLLCFGRを計算するソフトを作ってみました。

 
ついにdigikeyで手に入るようになったSTM32F2ですが、
既存のSTM32F1ボードにマイコンのみを載せ変えができるか気になりまして
STM32F2の英文リファレンスマニュアルをウンウン悩みながら読んでたのですが
一番重要な水晶振動子をそのままで載せ変えが出来るかがわかりませんでした。
何故ならSTM32F2のPLL機能が高機能過ぎて
有効な設定を見つけるのが容易では無くなったからです。
 
そこで希望のPLLCLKが出力できるか計算するソフトを作ってみました。
 
ダウンロード
ミラー(URLをブラウザにコピーペースト)

C++・CLIプロジェクトファイル
ミラー(URLをブラウザにコピーペースト)
使用は自己責任でお願いします。(結果を一度検算してみる事をお勧めします)
 
イメージ 2
 

○使い方
 ①ClockInput(入力周波数)を入力
     内部オシレータ使用する場合は下のチェックボタンを押すと自動的に16MHzに選択されます。 
  ②OutPLLCLK(希望のPLLCLOCK出力周波数)を入力
 ③Calc startボタンを押すと計算結果が下の表に出てきます。
 ④表のRCC_PLLCFGRが該当のレジスタの設定数値になります。

○細かい話
 ①リファレンスマニュアルを見た所、設定値の範囲などに規制があった為、計算に反映させています。
イメージ 1
   正直この制限が正しく理解出来ているかがこのソフトで一番不安な所です。
   もしよろしければ正誤のご指摘を頂ければ大変助かります。
 
 ②出力周波数の計算結果は整数のみ有効な値として出力しています。
 ③PLLQがInValidとなっている項目は、PLLCLKは目的の周波数を設定できるものの、
   PLL48CLKが48MHzに設定できない値となります。この場合USBOTGやSDIOの動作に支障が出ますので
   利用する際はご注意ください。

○使えない,使いたくないという人の為に。
 このプログラムは.netプログラムなので
 Windowsユーザー以外には使用できないと思われるので
 使えない人の為に計算しておいた代表的な値を以下に列挙します。
 
出力が120MHz、かつPLL48CLKを満たすRCC_PLLCFGR
  ClockInput       RCC_PLLCFGR
        4MHz            0x05403c04
       
        8MHz            0x05403487
 
       12MHz            0x0540320a
 
       16MHz            0x054030cd
       16MHz(HSI)     0x050030cd
 
       20MHz            0x05403010

○お願い
 STM32F2を実際に使用して確認した訳ではない為、
 もしこのソフトを使っておかしいと思った事があれば
 ソフトを改善致しますので、コメント等でご報告頂けると大変助かります。
 よろしくお願いいたします。
 
  もし既に同機能のソフトや表が他に存在していたら面白いので是非教えてくださいw

2011年6月8日 無意味にバージョンUPしました。
          ①結果の表からクリップボードへコピーできるようになりました。
          ②結果の表をCSV形式で保存できるようになりました。 
          ③各行の数値から列をソートできるようになりました。項目のクリックでソートされます。

PS: STM32F2を色々調べてみて思ったのですが、素晴らしく多機能,高性能の為
    日本語リファレンスマニュアルか「STM32マイコン徹底入門F2 」( のような書籍 )が出るまでは
    私には使いこなせなさそうです。(パワーが有りすぎてどう生かせばいいのかという問題もありますw)
    まずはSTM32F1xxを使いこなせるよう頑張っていこうと思います。