2025-01-22 12:40 AM
Hi everyone,
we're currently using the L6227Q as a driver for 2 DC motors. Everything seemed to work fine. We put on 3,3V on the VREF_x inputs. Enable the IC with EN_x to high and apply a PWM (100 kHz) at the IN1_x and IN2_x. With the PWM (depending on rotation direction: one PWM signal, the other is low) we can influence the speed of the motors, which works fine.
We want to use the shunt as an input for current measurement, so there is an op-amp with some filtering ending in ADC of the MCU.
The DC motors have huge filters, recommended by the motor supplier to extend life of the motors to a maximum.
We recnognized, the measured current has less to do with the applied PWM and the current measured after the filtering (current input into motor). With this I'm afraid, if the driver is used in the right way?
Is it ok, to apply a 100 kHz PWM to INy_x? Or should we use another driver IC like L6226Q (which I found in another thread here in the forum) without R_sense and use a inline current measurement method (hall sensing, etc.) in the motor line?
Thank you for your help!
If you need further information (SCH snippets, etc.), please let me know.
Best regards,
Daniel
2025-01-22 08:28 AM
Welcome @daniel_muenzer, to the community!
Can you explain the ‘measured current has less to do with the applied PWM and the current measured after the filtering (current input into motor)’ in more detail?
The L6227Q is able to work up to 100kHz, so no issue here.
Regards
/Peter
2025-01-22 10:58 AM
Hi Peter,
of course I will share some more information...
To begin with the actuator: we use a brushed DC motor with the following inductivity: 1670 µH. The maximum power is 5W, we apply 45V on it.
Each line of the supply has a filter (left side is driver side, right side is to the motor):
The driver is used for two identical motors. As described in my inital post, we start pulling the EN_x to high. The same we do with the VREF_x. The we apply e.g. a PWM with 100 kHz and a duty cycle of 30% to the IN1_x and a low signal to the IN2_x to move the motor forward.
In our application we want to measure the current flowing through the motor to recognize any brake or blockage to turn it off by software. Therefore the following circuit is implemented and connected to the Kelvin connections on the shunts in the picture above. The function is: 1,5 volts per 1 ampere with an offset of 1,485 volts.
We expected to measure a linear depency between current through the motor and the voltage on "MOT_ROT_I" (cleaned by offset).
During our investigation, we measured the following voltages:
Yellow is measured on TP1618 (i.e. SENSE_A pin), blue is TP4001, green is TP TP4002. The confusing signal is the one on the shunt: it shows a quite large peak of current flowing into the "wrong" direction. This picture was taken with duty cycle = 20%.
The next screenshot shows the current into the motor (after filtering, filter works really nice, no rise or fall of current) taken with a current clamp (red signal). The yellow signal is the shunt again, this time the duty cycle was 10%.
I can do some more measure any time, so please ask for it!
One additional information for you: we have the VREF_x pin connect to a DAC. But giving the driver any other value than the maximum voltage caused the motor not to rotate any more. I think, it has to do with the inner circuits of the L6227Q: as there is not the rising in current through the shunt as expected, the sense comparator seems not to work properly.
We also tried to fix INy_x to certain value for forward or reverse rotation and put the PWM signal on the EN_x. But the result was the same, the shunt measurement seems not to work properly.
Thank in advance for your help. Any hint is appreciated.
Today I found the L6226Q, which may suite our application better (measuring the current with a hall effect sensor after the filter).
Best regards,
Daniel