« 電源説はシロだった | トップページ | 情報処理技術者試験の結果 »

2006年11月30日 (木)

原因追求(2) --- タイマユニットのカウンタ説

マウスの動作がガクガクいってしまうことの原因究明の続きです。電源説はシロでした。で、ソフトウェアに起因する不具合は、なにも先日書いたような制御の遅れだけじゃなく、モータドライバICにステッピングモータを回すためのクロックを供給するタイマユニットのカウンタ値更新タイミングが悪いと、出てほしいタイミングでパルスがでなくてモータがガクガクいってしまうのではないか、と疑ってみました。

具体的には、現状ではH8/3052FのITU1とITU3を使ってそれぞれ通常モードでGRAのコンペアマッチでTIOCAからトグル出力を行ってステッピングモータを駆動するためのパルスを作っています。モータの速度を変えたいときはGRAの値を書き換えています。これでは、ITUのタイマカウンタであるTCNTがGRAの値に近づいたときにGRAの値を書き換えられてしまうとTCNTとGRAがコンペアマッチするタイミングが狙ったタイミングにならない虞があります。

対策です。ITU3, ITU4 はバッファモードがあり、TCNTとGRAのコンペアマッチ時にBRAの値をGRAに自動転送することができます。なので、速度を変えるためには直接GRAを書き換えるのではなくBRAに値を書き込んで、コンペアマッチのタイミングで自動的にGRAの値をBRAの値に差し替えることで、コンペアマッチのタイミングがずれてパルス出力がかけたりすることを防ぐことができます。

この対策をするために、回路図を少々修正。モータを駆動するためタイマユニットはITU3, ITU4を使うことになりました。回路変更後に調整用迷路内でマウスを走らせて見たところ、ガクガクが激減しました。ほとんどゼロといってもいいくらい。ただ、ちょっとだけ停止してから再度走り出す際にフラフラする感じがあります。そのフラフラの原因もなんとなく推測はできているので、これは明日以降に修正する予定です。

« 電源説はシロだった | トップページ | 情報処理技術者試験の結果 »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/167990/12875022

この記事へのトラックバック一覧です: 原因追求(2) --- タイマユニットのカウンタ説:

« 電源説はシロだった | トップページ | 情報処理技術者試験の結果 »

最近の写真