I want to use torque control on a DC motor, and for that I need to control the input current.
My question is, I seem to have 2 options:
- Make the input PWM-driven, and use the DRV 8874’s current sensing ability to arrive at the desired current by dynamically adjusting the input PWM
- Drive with the max input voltage, but rather set desired current via the chips’ current limiting ability.
Is one better than the other? It would seem option #2 would be the more straightforward.
Thanks in advance!
Your first approach would probably be easier to implement.
As described on the product page under the “Current limiting” header, lowering the current limit on the DRV8874 requires either connecting an additional resistor between VREF and GND or connecting an external reference voltage directly to VREF. Since it is not as common for microcontrollers to be able to produce true analog voltages, using the driver’s built-in current limiting for dynamically controlling power to the motor might not be practical. Additionally, I have not looked into how fast the driver’s circuitry responds to changes to the VREF voltage. (If you are still considering that approach, you might check if there is information about that in the driver’s datasheet, which is available under the “Resources” tab).
Thanks for the reply.
One followup question about using the first approach (using the current sensing), when I used a simple current sensor (INA219) to measure the current going to the motor, I was running into the problem that I was picking up aliasing effects from the fact that the motor was being driven via PWM.
Is the current sensing on the DRV8874 smart in some way that it would smooth out such PWM artifacts?
I do not expect the current sense output signal on the DRV8874 to be filtered that way. I recommend reviewing the driver’s datasheet for more detailed information about how its current sensing works.