« F207 | トップページ | シリアルモニタ起動 »

2011年7月 8日 (金)

F200 一応の決着

STM32F2、LEDちかちかに到達。

110708

結局、原因はソフトウエアだった。
レジスタ名のタイプミス、というか読み違い。

×RCC->APB1ENR
○RCC->AHB1ENR

×RCC->PLLCFGR
○RCC->CFGR

------

ポートぱたぱたが出来れば、そこを足がかりに色々進められるのだけれど。
そこにも到達しないことには、足りていないものを見つけ出す作業は困難なものだ。

今回は、ソフトウエア開発環境こそ、F100のを使っているので、その点の問題はなかったのだけれど。

今回作った、怪しいシリアル書き込みツールは、まあ動いているとは思うのだけれど、保証されているものではないので、常に怪しむべき項目ではあった。

110708a

Bootloaderは起動するのに、自前のオブジェクトはまったく起動する気配が無い。
こういうときだけは、デバッガーが使えるといいなあ....と思うのだけれど。

------

F207ボードでも同じ症状だったので、おそらくソフトウエア周辺だなあ、と当たりは付いた。

IOポートに出力を出すには最低でも、GPIOブロックにクロックを供給するためのレジスタと、ピンをGPIOの出力に設定するためのレジスタ4個、さらに出力レジスタに値を書き込む必要がある。
これのどこかでつまづくと、どこが悪いのやら...

なんとか1個レジスタを設定するだけで外に出力できるものは、なにかないかな....

あった。HSE、これだ。

外付けに25MHzのクリスタルをつけ、ソフトの先頭でHSEを許可してみる。
むう、25MHzで発振しているようだ。
これで確信が持てたので、安心して?じっくりソースコードとリファレンスマニュアルを見比べる。
あとは、HSEを許可するコードの位置を色々変えてみて、動作を探る。
ここまで行けば、冒頭の状態まではすぐだった。

難航したような気もするが、実際にはたいした時間はかかってないような気もする。
怪しい書き込みツールも作った分も込みだし。
苦戦の印象が強いのは、途中、手詰まりを感じたからだろうか。

------

本当にスペック上限の120MHzで動作しているか検証する意味も含め、PLLの設定をいじり、オーバークロック耐性を試してみる。
スペック上限で動かしていると信じていても、クロックを倍や3倍にしても平然と動くとしたら、設定を外していて、実際にはゆっくり動いているかもしれない。

クロックをいじるときは、消費電流も見ておく。
クロックを上げると消費電流も増えるので、変えたつもりが変わってなかったのでは?というのを回避しやすくなる。

ふーむ、160MHzでは、F205、F207とも問題なく動くようだ。
180MHzでは動かない。(消費電流も低い)
まあ、いいところかな。
PLLの設定も外してはいないようだ。

書き込みツールの怪しいところを直したり、スタートアップのベクタテーブルの定義がF103用のままなのを直したりとか、まあ、細かい作業はまだ色々あるが。

なんだかんだと動くようになってしまったので、新作マウスはF2で行くかなあ...

|

« F207 | トップページ | シリアルモニタ起動 »

コメント

コメントを書く



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




トラックバック


この記事へのトラックバック一覧です: F200 一応の決着:

« F207 | トップページ | シリアルモニタ起動 »