ネガティブフィードバック制御をプログラムで実現する場合、個々の演算モジュール毎の動作確認をして、それらをループに構成したとたん、デバックが難しくなる。
過去の情報がグルグル蓄積されて、現在の状況があるという事態になる。
とくに、CPUバスが外部ピンとして出ていない場合、核心を直接観測できないので、非常にもどかしい。
この場合、状態を観測するために
- 内部データを通信で、長時間ロギングして、エクセル等で解析
- DAコンバータで、アナログ連続波形としてオシロスコープで解析
という方法がある。
1の場合、データ蓄積用の内部RAM空き容量が必要。UART(SCI)でデータをアップロードして、解析に時間がかかる。
2の場合、SPIポートが空いていれば、そこにシリアル入力のDAコンバータがつながる。
2を薦める。
可能ならば、16ビットDAが2チャンネル欲しい。
DAコンバータチャンネル1に疑わしい演算モジュールの演算「前」のデータを出力、演算「後」のデータをもう一つのチャンネルへ出力する。
そうすると、どちらがさきに 問題となる値を出したか、前後関係が明確になる。
このほかに、PWM出力ポートが空いていたら、PMW信号+CRフィルタで、速度等の定速信号アナログモニタを用意しておくとよい。