今回は、新型マイクロマウスに使うマイコンの初期設定を行います。SW4STM32のインストールHM-StarterKitではRenesasマイコンの開発環境としてCS+を使っていました。STM32)を使用します。STM32」からダウンロードページを表示します。Windows版はWindows7のみ対応のように書いてありますが、一応Windows10でも動くらしいです。ダウンロードしたインストーラを起動してインストールします。インストール完了後、SW4STM32を起動すると、workspaceを選択するように求められます。ここで選択したフォルダの下に、ソフトウェア関連のファイルを保存していくことになります。STM32CubeMXのインストールSTM32CubeMXはSTM32マイコンの初期設定を視覚的に行うことができるソフトです。UARTやSPIやADCといった機能の初期設定用のコードも生成してくれます。こちらのページからダウンロードできます。ダウンロードが終わったらインストーラの指示に従ってインストールすればOKです。Project」画面を開きます。Project」ボタンをクリックします。Asで、SW4STM32のworkspaceにプロジェクト名(今回はblink_led)を付けて保存します。ピンの設定プロジェクトが作成されると、まず「Pinout&Configuration」タブが表示されますので、回路図に合わせてピンひとつひとつにGPIOの出力やSPIのクロックといった機能を設定します。Configuration」タブを開いて、クロックの設定を行います。できるだけ処理速度を高めたいので、CPUクロック(HCLK)を最大値の216MHzにします。この値が大きいほどマイコンの消費電力も大きくなるらしいですが、それは今後の動作を見て調整しようと思います。Manager」タブを開いて、「Toolchain/IDE」をSW4STM32にします。Root」にチェックを入れます。peripheral」にチェックを入れます。これにチェックを入れない場合、初期化コードがmain.cにまとめて書かれてしまい、ファイルが長くなって読みにくくなるためです。CODE」ボタンを押します。これで、STM32の初期設定が書かれたC言語のコードが出力されました。今回出力したコードから、LEDを点滅させるプログラムを作りたいと思います。今回は、Part9の解説に一部追記+後々のモータのPWMについて解説しときます。MTUの設定は、init.cで定義されています。126~128行目は、プロテクト解除⇒MTUモジュールをON⇒プロテクト保護を行っています。MTUの機能は、CMTと同様に省エネの為、初期状態では、電源供給されないようになっています。130行目、タイマストップしているのは、TCRレジスタの設定を行う際、止める必要があるためです。スピーカー用MTUの設定は下図のようになります。133行目は、PWMのカウントをクリアするタイミングの設定です。134行目は、カウントする周期の設定。135行目は、PWMのモードに設定。(このマイコンはモードが複数あるためです。)136~137行目は、コンペアマッチしたときの動作の設定。138~139行目は、周波数の設定をしています。この設定で生成される波形は、下図のようになります。モーター用MTU設定は以下のようになります。左右一緒なので右モータについてだけ説明します。殆どスピーカの設定と同じですが、148行目にTGRCが追加されています。TGRCは、TGRAの値を途中で変更するためのバッファー用です。(ただし、値を変更するタイミングは、TGRAコンペアマッチ後となります。)バッファーモードの設定は、150行目で行われています。TGRAの値を直接変えることもできるのですが、不都合が生じる可能性があるためバッファーモードを使用します。TGRAの値を12000から1000に変えた時、カウントが1000を通り過ぎていた場合、いつまでたってもコンペアマッチしない、と言う状況にならないようにバッファーモードを使用します。TGRCの値はPI:COのスピードを変えるために使用されます。152~154行目は複数の割り込みが発生した場合、どのプログラムを優先的に処理するかの設定です。優先度は15が最大です。この設定で生成される波形は、下図のようになります。PWMのhighの時間がTGRCで変更できます。これによって速度を変更することが出来ます。shotaこんにちは、shotaです。社員研修として、オリジナルマウスの製作しています。[前回の記事]では回路ブロック図について書きました。今回は電源回路について書きます。マウスの回路ブロック図(振り返り)マウスの回路ブロック図は以下のとおりでした。今回は、この左上部分の電源回路について書きます。電源回路のブロック図はこのようになりました。点線から左側が外部回路で、LiPoバッテリが接続されます。点線から右側が内部回路で、コネクタから始まり、スイッチやLDO、その先にはESP32マイコンやモータドライバが接続されます。それでは、各ブロックの役割を左から順に説明します。LiPoバッテリLiPoバッテリは、電源回路(広く言えばマウス回路)の電源供給源です。バッテリがなければ回路は動きません。どのLiPoバッテリを使用するかは、動かしたい回路の電源電圧や消費電流などから選定します。150mAhを使用する予定ですが、容量を何mAhにするかは実際に動かしてみて決めたいと思います。ESP32はWiFiやBluetoothが使用できるので、150mAhでは容量が足りないことを懸念しています。3.7V”と検索]したり、模型屋さんでドローン用のバッテリを調べたりして入手しようと思います。電源コネクタ電源コネクタは、使用するバッテリのコネクタ形状に合うものを選びます。今回はハムスターで使用しているものと同じ、JSTのZHコネクタを使います。データシート]ケーブルが車体外に飛び出ないようにトップ型を選びます。ケーブルを繰り返し抜き差しすることを想定して、スルーホールタイプ(表面実装タイプではない)を選びます。