モータ制御プログラムのデバッグ

ネガティブフィードバック制御をプログラムで実現する場合、個々の演算モジュール毎の動作確認をして、それらをループに構成したとたん、デバックが難しくなる。
過去の情報がグルグル蓄積されて、現在の状況があるという事態になる。

とくに、CPUバスが外部ピンとして出ていない場合、核心を直接観測できないので、非常にもどかしい。
この場合、状態を観測するために

  1. 内部データを通信で、長時間ロギングして、エクセル等で解析
  2. DAコンバータで、アナログ連続波形としてオシロスコープで解析

という方法がある。

1の場合、データ蓄積用の内部RAM空き容量が必要。UART(SCI)でデータをアップロードして、解析に時間がかかる。

2の場合、SPIポートが空いていれば、そこにシリアル入力のDAコンバータがつながる。

2を薦める。
可能ならば、16ビットDAが2チャンネル欲しい。
DAコンバータチャンネル1に疑わしい演算モジュールの演算「前」のデータを出力、演算「後」のデータをもう一つのチャンネルへ出力する。
そうすると、どちらがさきに 問題となる値を出したか、前後関係が明確になる。

このほかに、PWM出力ポートが空いていたら、PMW信号+CRフィルタで、速度等の定速信号アナログモニタを用意しておくとよい。