This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
I'm struggling with this problem for a while now and I was no able to find a solution. I'm building a small motor controller based on a STM32 microcontroller and DRV8323RS integrated driver. After a while I found out that a weird noise is coming from the motor, even when all 3 PWM duties are equall (and set to 50%). The frequency that can be heard is about 10-13,5kHz changing a bit with different motors I'm using, however stays constant for a particular motor, no mater what the PWM frequency is (tested from 20- 40khz). Here is the mic fft plot:
The purple cursor is set to 20khz - the carrier frequency, however the wide peak at 13,5khz is not expected.
I decided to check the voltages and compare them to the PWM outputs from the microcontroller. I connected two probes to phase b and c STM32 PWM outputs, and their MOSFET outputs. What I saw was a bit strange for me, as the DRV is randomly injecting a delay of about 30-50ns between the PWM cycles, although the cycles from the microcontroller are perfectly aligned. Without a delay:
And after a few cycles:
I also made a subtraction between the two outputs over a wider time range:
It looks pretty random to me, and I have no idea where to look for the cause of this problem. Things I have tried already:
-Changing the circuit to 4-layer - no matter if the circuit is on a 2 or four layer the behaviour and the sound are the same.
-Changing the motor - the disturbing frequency changes a bit a few khz, but overall there is no difference
-Disconnecting the motor - it is certainly the motor that makes this sound
-Changing the dead times and drive currents in DRV - I can see it's working on the scope (extending the opening time of a mosfet) but no difference in the sound whatsoever.
-Adding capacitance to the DC bus - no improvement even at very high capacitances - the caps are mostly ceramic and their dc bias is taken under consideration.
-The capacitor on CPL CPH pin has a correct value
- Gate charge loops are as small as possible to reduce the inductance.
- I do not suspect software as it is only responsible for generating 3 PWMs.
I'm working in 3x PWM mode, with enable pin shorted with other three INLx pins.
And the sound itself - it is quite hard to catch on mic:
Click here to play this audio clip
Thanks in advance!
Piotr,
Can you share your schematic and layout?
If needed you can friend request me here and send it privately.
Regards,
-Adam
Is the layout and schematic correct? Can you think of any reason causing that sound?
Piotr,
Sorry for the delay, did this get resolved?
I see that your FET QGD is only 4nC, very small, which IDRIVE settings did you try? In the past I've seen an issue like this where the oscillation on the gate and source of the outputs caused an audible noise, lowering the IDRIVE fixed this in that case.
Is there another layer in the PCB? Looks like there must be for GND and power.
I don't see any glaring issues on the PCB or SCH.
Regards,
-Adam
Dear Adam,
unfortunately the problem is still present. For now I've only tried the maximum and minimum IDRIVE settings, but no difference in sound at all. I will double check that these settings are applied using a scope, but I guess they are, since I'm reading back the registers and getting the values I previously wrote.
In that case don't you think the sound comes from these random delays, as some current must flow through the coils in such moments? I'm just guessing, but this explanation seems quite reasonable to me..
Of course there are two more layers, sorry I must have forgotten to attach them:
Best Regards,
Peter
Peter,
Could you please show us the gate waveforms with the lowest IDRIVE setting?
You may also need to add 5-10 ohms in series with each gate because even with the lowest IDRIVE setting, the current is quite high for the tiny 4nC QGD FETs you are using.
Regards,
-Adam
Piotr,
Sorry, could you label each plot? Not sure exactly which is which.
I would also use only the lowest IDRIVE because any higher is going to be too much for the FETs.
As I mentioned above, you may want to try adding 5-10 ohms in series with each gate because even the lowest IDRIVE may be too high for your FETs.
Vishay also makes many FETs in this package so you could look for one with higher QGD, hopefully something at least 10-15nC QGD.
Regards,
-Adam
Of course (from the top) :
1. Highest gate charge current, few cycles visible on the screen,
2. Highest gate charge current, zoom on the rising edge,
3. Lowest gate charge current, few cycles visible on the screen,
4. Lowest gate charge current, zoom on the rising edge
If I may ask, do you see any symptoms of too aggressive gate charging on the waveforms ? I noticed the sound is irrelevant of the current setting, and at the same time I do not see any over/undershoots or ripples on the scope.
I also attach two more scope screens:
Falling edge zoom, lowest gate charge current:
Falling edge zoom, highest gate charge current:
Moreover I've seen a few similar projects, which were equipped with mosfets with even smaller Qgd (TPH5900CNH), so I guess this is not really the case...
Piotr,
The only other time I've seen this issue in the past it was caused by IDRIVE being too high which resulted in overshooting gate waveforms, the harmonics of which created audible tones.
I don't see this overshoot on your waveforms.
This being said, I would not use anything other than the lowest IDRIVE, on the higher IDRIVE we see the gates going to almost 15V which can violate the ABS max rating of the GH/GL pins.
Do you have the EVM for this device? Maybe we could configure it the same way and use the same motor to see if the sound occurs there too.
Regards,
-Adam
Dear Adam,
I totally understand the case with the ringing, as it seems the most probable. Though as we both noticed the waveforms look quite good, so this is probably not the case :) I will keep the IDRIVE low, thanks for advice.
Do you mean "evaluation board" by saying "EVM"? If so I do not own one, I'm just working on my designs. I would be very grateful if you could perform such an experiment in your lab. You just have to keep in mind the sound is quite silent and sounds a bit different among different motors - the easiest way is to put your ear directly above the motor or use a phone mic with FFT plot. It would be great if you could also show the output (motor phase voltages) waveforms compared to PWM signals from the microcontroller (as I showed in the first post). I'm curious about the delays occurring on my device.
My setup:
-3x PWM on DRV
-frequency from 20kHz up to about 35kHz,
- 50% duty on all three PWM inputs
Startup sequence of the DRV:
HBRIDGE_ENABLE_HIGH;
HAL_Delay(5);
HBRIDGE_ENABLE_LOW;
HAL_Delay(5);
HBRIDGE_ENABLE_HIGH;
HAL_Delay(5);
DRV8323_writeSpi(ADR_GATE_DRV_HS, 0x300);
HAL_Delay(5);
DRV8323_writeSpi(ADR_GATE_DRV_LS, 0x700);
HAL_Delay(5);
DRV8323_writeSpi(ADR_DRV_CTRL, 0x20); // 3x PWM mode
HAL_Delay(5);
DRV8323_writeSpi(ADR_CSA_CTRL, 0x29F); // autocal on
HAL_Delay(5);
DRV8323_writeSpi(ADR_CSA_CTRL, 0x283); // autocal off
Thank you for interest in investigating my case,
Peter
Peter,
Without your motor this would be very difficult.
Yes I am mentioning the evaluation board.
is it possible for you to order an EVM to try?
Regards,
-Adam
Adam,
Actually the issue is not motor-dependent. I can hear the sound on 5 different motors, a bit louder or a bit more silent, but it is present at all times.
Sorry right now I'm not able to purchase the evm.