2015年10月18日日曜日

代替策

統合システムの場合,最も性能の悪い要素に引っぱられて全体の性能も低下する.

新作が昨年のマウスを超えられないのであればこのまま進める意味はない.

であるから,なんとかわずかな妥協で設計ミスをカバーしたい.

リファレンスマニュアルを見ながら考えた結果,なんとかなりそうである.モータ駆動にはTIM1からPWM出力が2本出れば良い.TIM1はコンペアマッチ信号を4本出力できる.よって残り2本をDMAトリガに使える.この2本はDMAの空きStreamをたたける.問題は,周波数を共通にしなければならないことと,AD変換器のトリガに他のタイマを使う必要があることである.モータドライブに周波数を合わせるしかないが,256kHz駆動にすると,それに合わせて過剰にDMAトリガがかかるがまあ良いとする.もともと64kHzでDMA起動の予定だったが4倍なのでそこまで負荷が増えることはなかろう.AD変換器のトリガはTIM2を使って,TIM1と同期動作させる.途中で停止,再開しても完全に同期して動作させることができる.TIM2の周期をTIM1の4倍に設定すると64kHzであるので当初の予定通りの周期でAD変換できる.

これで頭の中とテスト動作のレベルでは解決したが実際はどうなるか?また別の落とし穴にはまるだけだろうか.

しかし,依然としてErrataと思われる問題は残っている.シリアル通信のDMA転送が上記DMA転送に干渉してくる.STM32のDMACはダメですね.

1 件のコメント:

福井 さんのコメント...

そういや,K氏のカルマンフィルタの話って採用する予定ありますか?

すべり角のダイナミクスを組みつつ加速度センサーを使うと,単にタイヤの速度を推定するだけでなくて,機体の位置そのもののを推定できるようなできないような.
どうなるんでしょうね.

コメントを投稿