Tool/software: Code Composer Studio
Hi All,
I'm experiencing some trouble with the DRV8885EVM's firmware (FW). The FW seems to ignore G_MAUNAL_ADVANCE commands from both my software and the EVM software.
Generally, once the part is setup, to move a certain number of steps, the process is:
- Write the desired # steps to G_NUM_STEPS by writing to address 0x11A0.
- Write a boolean true or logic 1 to 0x11CC, the G_MANUAL_ADVANCE variable, this should start the motor moving.
- Poll 0x11C8, the G_MOTOR_CMD_ACTIVE2 variable until it clears, this should indicate that the motor has completed the move.
The issue I'm having is that maybe 1/10 writes to G_MANUAL_ADVANCE seem to be ignored, when I poll G_MOTOR_CMD_ACTIVE2 just after the write, it is clear, when I couldn't possibly be, I'm asking the motor to move 100 steps, this should take 100mS plus. See the attached serial scope shot.
Steps to reproduce, see pic of the EVM screen.
I've pulled the FW down in CCS for it and similar EVMs, all seem to miss the commands. The issue seems to be related the asynchronous POKE/PEEKs that come in from the SW, somehow causing a clearing of the G_MANUAL_ADVANCE or G_MOTOR_CMD_ACTIVE2 flags. Writes to these locations seem to only occur in a few places, GUI defaults, but most importantly maybe, when the motor control state machine determines the unit is in IDLE.
Any advice / suggestions would be very much appreciated.
Here is a link to the software for the DRV8885EVM.
Thanks,
Adam