STM32Primer2をBARE-METALで使ってみる2 -Systickタイマと電源制御-

前回は一番基本的なLEDの点滅を行いました。点滅だけなので、STM32 Primer2の
バッテリーの制御(電源OFF)ができません。これから先いちいちUSBケーブルを抜き差し
するのは不便なので今回は電源制御を行います。


電源の制御にあたって、STM32(というかCortex-M3)に搭載されているSystickタイマ
を利用し、定期的にSWポートをスキャンしてある条件を満たしていれば電源をOFFに
することにします。これはCircleOSと同じ仕様ですね。

具体的には1mSecごとにCenterキー(PA8)を走査して5000mSecの間連続してHi
レベルにあったときにSHUTDOWN(PC13)をHiレベルにしてFETスイッチをOFFに
します。4入力キーの定義も行っていますが、今回は使うのはまだCENTER
キーだけです。

un
↑4+1キー入力と電源制御(SHUTDOWN)周辺

またRLINKのフラッシュの方法も少し工夫しました。RFlasher7でちんたらやってた
ら非常に煩わしいので、OpenOCDを使ってた時よろしくmake programでコマンドラ
インのフラッシュライタを呼び出し、バッチ処理しています。これでOpenOCD使って
た頃とまったく変わらない操作性になりました。やっぱこっちのスタイルの方がい
いですね〜♥もちろんRLINKのデバイスドライバはWinUSBの方で!

un
↑OpenOCDのフラッシュプログラムの処理をRLINKに置き換える


土台が整ったので、ここから先は駆け足になると思います。同じ事やってても何も
身につかないのは自覚してるので浅く広く早くでやっていくつもりです。
一応ねむいさんの基本スタンスは…
●無償で公開されてるライブラリ・プログラムは極力有り難く利用させてもらう。
●↑のことした場合は"ネットで見つけた"とか書かずに公開元のルールのもと引
 用先をブログやソース内で明示させてもらう。
●使わせてもらう前にざっとでいいからコードを眺めて流れを把握する。
●ここは自分でやらないとだめだ!って部分は自分で調べてフルスクラッチで書く。
●真似てやって壊れても潰れても燃えても泣かない(これ重要)。一度壊したけど。
●他の方がされていることに過度に干渉しない(これ重要)
この辺虹裏内での立ち回りと全く同じなわけですが、気をつけます。

Go to top of page