Microchip TCP/IPスタックを使用しているときのステッピングモーターの制御について質問があります。
過去には、ステッピングモーターの制御にタイマーを使用していました。タイマーの周期をパルス間の必要な時間に設定し、タイマーティックISRで必要に応じてモーターの位相出力を変更します。私がこれを行った場合、私のステッパーは毎秒約400パルスの最大速度で動いていました。これは、割り込みが2.5ミリ秒ごとに発生していたことを意味します。そして、私はホストとの通信にUSBを使用していました。
現在、TCP/IPスタックを使用してイーサネット経由でPCと通信する新製品に取り組んでいます。また、SPIおよびUARTモジュールを介して他のデバイスと通信します。この新しいデバイスは、毎秒最大2000パルスのステッパーを操作できる必要があります。つまり、同じタイマー/ ISRアプローチを使用してステッパーを駆動すると、0.5ミリ秒ごとに割り込みが発生する可能性があります。ステッパーは、ホストから受信したコマンドに基づいてオンとオフが切り替えられるため、ホストとの通信とモーターの動作が調和して同時に行われる必要があります。ステッパーの速度がわずかに変化する場合、それは問題にはなりませんが、理想的ではありません。また、ステッパーが移動の途中でたとえば30ミリ秒間一時停止した場合、それは受け入れられません。
このプロジェクトでは、命令クロック速度が16MHz(内部FRC+PLLを使用して32Mhz/2)のPIC24Fを使用することを検討しています。ステッパーの割り込みによってイーサネット通信が中断されると思いますか、またはその逆だと思いますか?これを行うためのより良い方法はありますか?
ステッパー制御に別のPICを使用することを検討しました。次に、そのPICターゲット位置コマンドまたは停止コマンドを送信して移動を開始および停止できますが、それによって別のファームウェアがミックスに追加され、すべてが複雑になります。