しゅうの自作マウス研修

コーディングpart1 プログラムの書き込み – しゅうの自作マウス研修 part41

しゅうの自作マウス研修

こんにちは、お久しぶりです、しゅうです。
前回は電源の投入を行いました。想定している電源電圧が生成されていたり、マイコンの起動が確認できました。
今回からはコーディングを始めているので、まずは新しい基板へのプログラムの書き込み方についてお話しします。
基本的には、こちらの記事で説明している、デバッガを使った書き込みと同じ流れになります。

プログラムの準備

以前用意した、openocdを用いた書き込み方法でも行えますが、設定ファイルの用意などが簡単になるのでまずはGUIを使っていきます。即ち、プログラムのビルドと書き込みはSTM32CubeIDEから行います。

マイコンのピン設定などは既にこちらの記事で行っています。(注意:僕の場合、途中で修正作業が入ったので、センサ側のピン配置はこちらの記事のように修正しています)

一通りピン設定を確認したら、とりあえずプログラムを生成します。上のツールバーの歯車のようなアイコンをクリックすれば、設定している保存先にプログラムが生成されます。

それでは、書き込みができるか一旦確認してみましょう。

ビルド

プログラムのビルドは、DebugとReleaseの2種類選択できます。開発方針として、開発途中はDebugの方でビルドを行い、大会間近になったらマウスが動くコードをReleaseの方でビルドしておくと良いです。直前に編集などを加えて、動かなくなってしまう……ということは十分あり得ます。
Debugを選択した上で、上のツールバーのトンカチをクリックすればビルドが開始されます。出力結果などは画面下の方に表示されます。

書き込み

それではこのまま、プログラムの書き込みに進みます。今回はデバッガである、ST-LINK V2(こちらの記事で紹介しています)を使います。こちらを使えば、マイコンをBootモードに切り替えなくても、強制的にモードを切り替えて書き込み作業が行えるようにしてくれます。
ST-LINK V2と自作マウスの接続をします。こちらの記事を参考にSWCLK、SWDIO、GNDを接続します。電源に関しては、今回は外部から供給するので接続しなくても問題ありません。
今回の場合は下記画像のようになります。
黄(to灰)がSWDIO、青(to紫)がSWCLK、緑(to黒)がGNDになります。ST-LINK V2をPCにも接続しておきましょう。

次に、STM32CubeIDEの方で操作を行います。上のツールバーの再生ボタンをクリックすれば書き込みが開始されます。

初回書き込み時には、書き込み用の設定をおこないます。設定の名前は、プロジェクト名+Debug/Releaseとしておくとわかりやすいです。
Mainタブでは、書き込み用のファイル(.elf)を指定します。先ほどビルドした時の生成物の一部です。

Debuggerタブでは書き込み時に用いるパッケージなどを指定します。今回はST-LINK GDB serverを使います。

残りのタブは標準設定のままで問題ないです。設定が完了したら右下にあるApply(適用)とRun(実行)を順番にクリックしましょう。

特に警告やエラーが表示されなければ、書き込みは完了です。エラーが出た場合は、接続し直したり、配線が正しいかチェックしましょう。SWCLKとSWDIOはよく入れ替わったりします。

問題が…

実は僕の場合、最初は書き込みに失敗し続けていました。設定ファイルも、書き込み用の配線も、特に問題がないことは確認できました。
ではいったいどこに問題があったのでしょう?それは電源でした。
実は電源周りのチェックがOKであっても、マイコン自体に供給されている電流量に問題が生じている場合があります。
マイコンは基本的に、リセット状態の電流量、起動時の電流量に違いがあります。その電流量はデータシートに書かれていたり、安定化電源の表示で直接確認ができます。

以下の画像では、マイコンがリセット状態の時です。電流量は15mAほど流れています。

書き込み作業を行なっていた時は、上記の画像のように15mA前後しか流れてなかったです。
即ち、常時リセット状態になっていて、マイコンが起動しない状態でした。たまたま、リセットボタンを数回ポチポチしたら治りました……
どうやら、使用しているタクトスイッチ内部のバネが引っかかっていたのか、常に押されている状態になっていたみたいです。
それがたまたまリセット用のボタンとして使っていました。
こう言う事態も起きるんですね、むしろいい経験になりました。

ちなみに、以下の画像では書き込んだプログラムを実行している時です。50mAほど流れています。モータを使い始めると倍ぐらいの電流量が流れるそうです。

まとめ

以上で、書き込み作業が無事行えました!
自分で作った基板に、プログラムを書き込むことができるのは思ってたよりも感動しましたね。

次回からはいよいよ本格的に作業を進めてまいります。
まずは実装した基板が正常に動作するかを確認していきます。

タイトルとURLをコピーしました