I built a controller with FOC for BLDC motors and it works well for most motors I tested so far, but as it comes to motors with low resistance and inductance, I hear a noise, that sounds like water in a pipe. For motors with higher resistance (>1Ohm) and Inductance (>1mH) I cannot hear anything. The PWM frequency is 32kHz and clearly out of the audible frequencies. I uploaded a video of the noise on youtube:

BLDC Noise

By using a spectrum analyser, I found the following picture. I measure between phase A and GND.


I further used an acoustic spectrum analyzer app, which gave me a different image with two peaks at 2400Hz and 4800Hz:


What I already tried/analyzed:

  • I used different PWM frequencies, also in the audible spectrum, but this did not change the noise frequency.
  • The PWM signals itself look very clean, and it also works on different motors without any noise at all.
  • The gate drive is a DRV8304H (Datasheet), such that dead time handling works just fine.
  • The ADC current measurement triggering works also fine and triggers when the low side is open. I also adjusted there different parameters to test if something changes, but nothing did.
  • I also tried to apply a constant PWM timing to the motor, also here the noise is the same.

I just found nothing, which influences the frequency itself. If it is somehow the motors resonance frequency, I don't know why this only occurs at low resistance and inductance motors. Has anyone an Idea what could be the cause of this noise?

Edit When I only apply a constant timing for PWM and then wait in a loop, I get exactly the same noise, so this is definitely hardware/motor related, but I'm not sure how I really can find the noise source. It will be probably the DRV8304H, since at a constant PWM input, the output is fully determined by this driver and the MOSFETs.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.