The circuit appear to work fine, the motor draws 300mA while running so it’s well under the 2.1A from driver datasheet, but i’ve noticed the FAULT pin sometimes pulses when the motor stops running. Sometimes just pulses, sometimes does nothing, sometimes pulses and keep an intermediate state.
I suspect inductive pulses from stopping motor is the cause, but i fear it could damage the motor driver.
Is there some mitigation to apply or it does not cause any harm to the driver?
The nFAULT pin can be triggered when the DRV8874 driver’s automatic current chopping engages, but that does not disable the H-Bridge. You can find more details about how that works in the DRV8874 datasheet, which is available on the product page under the “Resources” tab.
The behavior you described mostly sounds consistent with that, so as long as the intervals you observe those pulses are not too long and there are not any other adverse affects, I do not think you need to be worried about it. The nFAULT pin staying in an intermediate state is a bit unusual, so if that continues happening, it might be worth looking into more, though maybe you just need a slightly stronger pull-up.
If you still want to try and suppress the current spikes when the motor stops, you might try reducing the motor’s deceleration rate. If the spikes are very short transients, adding a capacitor across your motor’s terminals might help (up to a couple hundred nF).
Separately, you mentioned using a Raspberry Pi Pico, but the schematic you posted shows the nFAULT pin being pulled up to 5V. Please keep in mind that the pins on a typical Raspberry Pi Pico are NOT 5V tolerant, so you should probably be pulling nFAULT up to 3.3V instead.
Since now i also have the Pico, i’ll try to drive the motor with pwm as suggested in that discussion and i’ll se what happens.
You were right about the nFault PIN pulled to 5v: the error was a lacking of level translation, because i needed at 5v to be then connected to Logic ics( which expects 5v)
Of i got it working by implementing the Logic in the Pico, ill’ not need at 5v anymore…
fyi: i still prefer however to drive the motor using a dumb circuit with logic ics because in the long run is probably easier to maintain. the Pico Is there to provider a control web UI, but WHEN it will stop working, i will still be able to drive the door manually.
fyi: using the pwm from RPico to ramp up and down the motor from 0 to 100% of speed does not make the fault PIN to appear.
I’m using 30khz frequency and the duty cicle goes from 0 to 100% in 150ms with 1ms step.
i’ll probably stick with this.
One side note: the drv8847 datasheet declares the high logic level starts at 1.5v, i can theorethically connect directly the RPico output pins to ph/en to control them, am i right (no extra components required)?
It should be fine to connect your Raspberry Pi Pico pins directly to the DRV8874 carrier’s EN/IN1 and PH/IN2 pins without additional circuitry between the pins. Please also remember to make a common ground connection between the two boards.