I built a simple motor driver circuit using Texas Instrument's DRV8835 motor driver IC.
The IC is driven in IN/IN mode, (the mode pin is left unconnected, pulled down by the internal resistor). VM is 8-9V, filtered with 10uF + 100nF capacitors. VCC is 3.3V regulated, filtered with 10uF + 100nF capacitors. The inputs are driven with a microcontroller through 10K resistors. The outputs connect to the motor directly without any further components. The 100nF capacitors are mounted close to the IC. PWM is applied by pulling down the IC's input through a pair of diodes using a single PWM line.
DVM / oscilloscope measurements on the inputs showed no anomalies.
I'm using the circuit drive LEGO Power Functions motors with it.
I noticed a strange and annoying problem with the circuit: while the servo motor and the two largest motors (XL and L) work fine, the medium motor doesn't work.
I built several circuits and tried several M motors, all of the combination produced the following behaviour:
I switch one of the bridges continuously on using IN/IN mode, but the motor don't start (it was connected before switching the bridge on). An approximately 1KHz noise is audible. The frequency was later confirmed with measurements with an oscilloscope. The problem can also reproduced by switching the bridge on and connecting the motor later.
It seems that the over current protection of the IC engages, despite the fact that the problem only occurs with the smallest motors.
The oscilloscope showed that the IC is trying to drive the motor once in every 1ms, but it quickly turns off. This looks like OCP is engaging, the 1ms time interval fits the behaviour described in the datasheet.
The following changes "fix" the issue:
- Connecting a 1 Ohm or 0.5 Ohm resistor series with one of the motor leads (too much EMF, and the de-Q-ing helps?)
- Driving the motor with 125KHz PWM, asynchronous current recycling (I did not try synchronous modes)
My question is:
How on earth the smallest motor seem to trip the OCP even when the chip is simply turned on?
Thank you all in advance.