結局今月中にハードは完成しなかった。
なので例によって完成した体でテクニカルデータを登録。ここから大きく外れることはないはず。
2016-10-28
CubeMXのバグ
STM32F411 のソフト開発に CubeMX を使用中。
ペリフェラルの設定が非常に簡単なので便利だが、クロックの設定でバグ(たぶん)を踏んでしまった。
STM32 では HCLK の値によって Flash latency の値を変える必要があって、その設定コードは CubeMX が生成してくれる。
30MHz < HCLK <= 64MHz の時は Flash latency は 1 wait cycle、
64MHz < HCLK <= 90MHz では 2 wait cycle となる。
で、HCLK が 64MHz の時は 1 wait state になるはずが、なぜか 0 wait state のコードが吐き出される。
63MHz や 65MHz、他の境界値では正しい設定になってたが、64MHz だけおかしい。
こんなピンポイントなバグを踏んでしまうとは・・・
CubeMX のバグったコードが目に浮かぶようだ・・・
ちなみに CubeMX は Eclipse のプラグインのやつで、バージョンは 4.16.0.201607131424 です。
ペリフェラルの設定が非常に簡単なので便利だが、クロックの設定でバグ(たぶん)を踏んでしまった。
STM32 では HCLK の値によって Flash latency の値を変える必要があって、その設定コードは CubeMX が生成してくれる。
30MHz < HCLK <= 64MHz の時は Flash latency は 1 wait cycle、
64MHz < HCLK <= 90MHz では 2 wait cycle となる。
で、HCLK が 64MHz の時は 1 wait state になるはずが、なぜか 0 wait state のコードが吐き出される。
63MHz や 65MHz、他の境界値では正しい設定になってたが、64MHz だけおかしい。
こんなピンポイントなバグを踏んでしまうとは・・・
CubeMX のバグったコードが目に浮かぶようだ・・・
ちなみに CubeMX は Eclipse のプラグインのやつで、バージョンは 4.16.0.201607131424 です。
2016-10-25
基板実装
今作もホームリフローで実装。
前作でリフローできることが分かったので、調子の乗って小物系パーツに LGA とか BGA の部品を選定。新しくて良さげな部品って大体そういうきついパッケージしてる。
電源が入ることは確認したが、それ以外の部品については実際に動作確認するまではちゃんと実装できてるのかはっきりしない。とりあえずマイコンの QFN は実装できているように見える(ちょっと怪しいけど)。
全部の動作確認ができるまでは組み立てもできないので、ハードウェアの完成はまだだいぶ先になる。
リフローについては大会後に余裕あるときにまた書く予定。(書かないフラグ)
前作でリフローできることが分かったので、調子の乗って小物系パーツに LGA とか BGA の部品を選定。新しくて良さげな部品って大体そういうきついパッケージしてる。
電源が入ることは確認したが、それ以外の部品については実際に動作確認するまではちゃんと実装できてるのかはっきりしない。とりあえずマイコンの QFN は実装できているように見える(ちょっと怪しいけど)。
全部の動作確認ができるまでは組み立てもできないので、ハードウェアの完成はまだだいぶ先になる。
リフローについては大会後に余裕あるときにまた書く予定。(書かないフラグ)
登録:
投稿 (Atom)