工具/软件:Code Composer Studio
大家好,
我在使用DRV8885EVM固件(FW)时遇到一些问题。 固件似乎忽略了来自我的软件和EVM软件的G_MAUNAL_Advance命令。
通常,一旦安装了部件,要移动一定数量的步骤,过程是:
-通过写入地址0x11A0,将所需的#步数写入G_NUM_Steps。
-将布尔值TRUE或逻辑1写入0x11CC,即G_MANUAL_Advance变量,这将启动电机移动。
-轮询0x11C8,即G_MOTOR_CMD_ACLE2变量,直到其清除为止,这应表示马达已完成移动。
我遇到的问题是,可能1/10写入G_MANUAL_Advance似乎被忽略了,当我在写入后刚刚轮询G_MOTOR_CMD_active2时,很明显,当我不可能时,我要求电机移动100步,这应该需要100mS以上。 请参阅随附的串行示波器截图。
重现步骤,请参阅EVM屏幕的图片。
我已在CCS中将固件和类似的EVM拉下来,所有这些似乎都错过了命令。 该问题似乎与来自SW的异步poke / peeks有关,以某种方式导致G_manual_Advance或G_motor_CMD_active2标志清除。 对这些位置的写入似乎只发生在少数几个地方,GUI默认值,但最重要的是,当电机控制状态机确定设备处于空闲状态时,可能会发生。
我们非常感谢您提供任何建议。
谢谢!
亚当