I have several dual motor controllers working fine but one of them has an strange behavior.
One motor moves only in one direction and the speed is inverted (the other motor works fine). For example,
Sending these commands to the controller:
SEROUT 12,84,[$80,0,3,110] 'Motor 2
SEROUT 12,84,[$80,0,1,110] 'Motor 1
Motor 2 moves at high speed but motor 1 moves at low speed.
If I send
Motor 1 moves at high speed.
If I send
SEROUT 12,84,[$80,0,0,30] or SEROUT 12,84,[$80,0,0,110]
motor 1 does not change direction and moves at max speed.
Can you help me?
I suspect that one of the motor driver half bridges is broken or that you otherwise have a problem with one of the pins (e.g. you could have a short from one of the motor leads to ground). To give you some idea of why the behavior is not completely strange, consider how the motor controller works: to make the motor go in one direction, it makes one output high and PWMs the other one. If that output instead goes low (or is shorted go ground), the direction will be inverted and the speed will also be flipped.
Can you swap motor driver chips between two motor controllers and see if the problem moves with the chip or with the board? If one of the boards has a short on it, that would also explain why your motor drivers are going up in smoke.