久しぶりの電子工作ネタです。
自動導入モータードライブをこつこつ作っているのですが、昨年の終わりごろから
仕事が、忙しかったりで、ペンディング状態だったのですが、いつまでも放置して
おくこともできないので、また、ボチボチ開発を再開しようとしております。
今までの状態は、H8マイコンの3694Fを使ってLX200コマンド互換の自動導入モーター
ドライブを作ることまでは、できているのですが、高速の導入時にモーターが、脱調
することがある。
なぜ、モーターが、脱調する現象が、起きるかを調べたところ、PCに赤経、赤緯の
データを送信する際にステップデーターを元に赤経、赤緯の位置を計算して、計算結果を
バイナリーからアスキーに変換して、LX200のフォーマットに変換するところが、原因で
あるところまで突き止めました。
で、なぜここが、原因かというと、モーターを高速で回転させるとマイコンの割り込み
周期が、短くなる。ここに1秒間隔で、PCから送られる赤経、赤緯の位置データ送信
コマンド処理を行わなければならなくなり、複雑な処理が、立て込んでしまう。そのために
割り込みが、発生したときに計算処理のスタック処理が、追いつかずに、割り込み処理が、
瞬間的に遅れるためだからです。
モーターが高速で回転している状態では、短い時間であっても割り込み処理が、遅れると
モーターの回転が狂うために脱調を起こすことになります。
マイコンを使って自動導入制御を行う場合、自動導入を行うための計算処理は、それほど
難しいものではありませんが、扱うデータの容量が、大きいためにどうしてもRAMの容量が
必要になります。今回の高速の導入時にモーターが、脱調する現象を無くするためにマイコンを
H8 Tinyの3694FからRAMの容量の大きなAtmelのATmega128に換えてみましたが、こうなって
くると処理の速度も必要になりそうなので、やはり32ビットマイコンのSH2マイコンを使わ
ないといけないのかとも思い始めてます。
あ~、根本的に設計のやり直しか~!!
初めから能力のあるマイコンを使っていればこんな事は、なかったのでしょうね。
スポンサーサイト
こんばんは。以前、モーターの購入方法をお聞きしましたhawk_chです。あの時はありがとうございました。
自動導入装置の製作、再開されたんですね。完成が楽しみです。
しかし、受信コマンドの受付でオーバーヘッドが出てしまうとは厳しいですね。
何か良い解決方法があれば良いのですが。。
以前、ホームページの回路図を見させてもらって1点気づいた点があるのですが、
モータードライバのTA8435Hの電流検出抵抗に、0.82Ωを使っておられますが、これはまだ0.82Ωのままでしょうか。
私も以前、TA8435Hを使ったことがありまして、その時にマイクロステップ駆動がうまくいかなかったことがあるのですが、この電流検出抵抗は、モーターのコイル抵抗に合わせて変える必要があって、60Ωくらいのモーターコイル抵抗の場合は、10~12Ωくらいの電流検出抵抗でないと、正常な電流検出が出来ずに駆動が乱れることがあります。
もしかしたらすでにこのあたりは対処されているかと思いますが、ご参考までに。。
hawk_chさん、こんにちは。
TA8435Hの電流検出抵抗値は、モーターに流す最大電流値を決める値で
抵抗値の計算方法は、データシートに書いてありますよね。
モーターのコイル抵抗にもよりますが、今のところ1.3Ωにしています。
どうも舌足らずな説明ですみません。
電流検出抵抗は確かにデータシートでは電流の最大値設定と書いてあるのですが、どうもこの抵抗値がモーターの駆動電流に対して小さめだと、抵抗の両端で十分な電圧検出ができずにマイクロステップが乱れるようなのです。
具体的には以前私もモーター抵抗60Ωくらいのものを検出抵抗0.82Ωで駆動したらモーターの振動がかなり大きく、検出抵抗の両端電圧をオシロで見たら、マイクロステップ駆動なのにハーフステップくらいの波形になっておりました。
それで検出抵抗の値を、モーター定格電流に見合った値(定格電流70mAだったので、ちょっと余裕を持たせて100mA位)に変更したら、検出抵抗の両端電圧波形もそこそこになりスムーズな駆動ができました(その時のコイル抵抗が12Ωくらいです)
そんなわけで電流検出抵抗は、モーターの定格電流に合わせてちょっと調整する必要があるかと思うのですが、でもngc4826さんのHPでは、特にモーター振動が大きい旨などは書かれてないので、現状の1.3Ωでうまく行っているのかも知れませんね。
どうも細かい話になりましてすみませ
コメントの投稿