cancel
Showing results for 
Search instead for 
Did you mean: 

[BLDC] How to get trapezoidal back-emf waveform

Kenji1
Senior

Hi All,

I'm working on driving sensorless BLDC motor by 120 degrees trapezoidal control.

I'm stuck on to get back-emf voltage like below figure:

0693W000008ztZFQAY.pngMy result is like this.

0693W000008ztZPQAY.pngAnd the circuit used for voltage sens part is as follow.0693W000008ztZjQAI.pngI don't know if it's a circuit problem or a control firmware problem.

Please suggest how to get trapezoidal back-emf waveform.

1 ACCEPTED SOLUTION

Accepted Solutions

Hi @Cristiana SCARAMEL​ -san

The answer to the question,

  1. Yes, it spin
  2. Yes, ​I refer AN 4776, “N-pulse waveform generation application example - part 2" for my code
  3. I haven't connected the BEMF signals to GPIO yet.

And, I found out the reason why the expected BEMF waveform could not be obtained. It have to change the PWM duty at the same time as increasing the rotation speed. In the test farm, the relationship between duty and rotation speed was not optimized, and it was done with a fixed value. I think that it will be solved if it is optimized.

BEMF waveform ​after manual duty adjustment, at 4000rpm:

0693W00000AMGWlQAP.png0693W00000AMGX5QAP.png

By the way, the firmware I wrote, the PWM synchronization at the time of commutation is slightly out of sync.

Is it possible to check the code if it is the limit of the device or if it can be corrected?

Or, if you have a Saleae or Kingst Electronics logic analyzer, I will up the PWM data, so would you mind to check if it's the limit of device or not?

View solution in original post

8 REPLIES 8
Kenji1
Senior

Hi All,

I will add new figure.

This is the waveform when drive the Bull-Running model BR2804-1700 kV BLDC motor as a trial.

The slope of the no-energized period appears to be reversed.

0693W000008zuIfQAI.png

Cristiana SCARAMEL
ST Employee

Hello @Kenji​,

for the BEMF voltage sensing a resistors divider, properly sizing according to application ratings, is enough.

I suggest to remove the 75 kohm resistors:

0693W000008zy0zQAA.png 

I hope this post can help you; if so, consider to mark it as best answer by clicking the label "Select as Best".

If you feel a post has answered your question, please click "Accept as Solution"

Hi @Cristiana SCARAMEL​  -san

My aim is to make ESC for drone. The circuit of the ESC I refer, use commutation method based on virtual neutral voltage. We are trying to detect the cross point by comparing the virtual neutral point and the BEMF of each phase. For now, we thinking of making it the same way, like above figure.

0693W00000900s9QAA.pngAbout 75kOhm resistor, there is no change even if it is removed.

0693W00000900sOQAQ.png

Hi @Kenji​ -san,

thanks for the application details, now I understand better the schematic.

Some additional question to try to better understand the issue:

  • When you capture the waveforms, was the motor physically spinning?
  • Are you using a custom control firmware?
  • Could you check the proper setting of GPIOs involved in the feedback circuitry?

Excluding hardware configuration, we try to verify the firmware.

Let me know if there are some progress.

If you feel a post has answered your question, please click "Accept as Solution"

Hi @Cristiana SCARAMEL​ -san

The answer to the question,

  1. Yes, it spin
  2. Yes, ​I refer AN 4776, “N-pulse waveform generation application example - part 2" for my code
  3. I haven't connected the BEMF signals to GPIO yet.

And, I found out the reason why the expected BEMF waveform could not be obtained. It have to change the PWM duty at the same time as increasing the rotation speed. In the test farm, the relationship between duty and rotation speed was not optimized, and it was done with a fixed value. I think that it will be solved if it is optimized.

BEMF waveform ​after manual duty adjustment, at 4000rpm:

0693W00000AMGWlQAP.png0693W00000AMGX5QAP.png

By the way, the firmware I wrote, the PWM synchronization at the time of commutation is slightly out of sync.

Is it possible to check the code if it is the limit of the device or if it can be corrected?

Or, if you have a Saleae or Kingst Electronics logic analyzer, I will up the PWM data, so would you mind to check if it's the limit of device or not?

JJoe.1
Associate

In a BLDC motor, the rotor consists of permanent magnets, and the stator has steel laminations with windings through axial slots. The windings are wound in a trapezoidal fashion and produce a trapezoidal back EMF.

Hi @Kenji​ ,

it is not easy to obtain the expected BEMF waveform running the motor in open loop.

Concerning to your custom firmware I suggest to open a thread in the dedicated STM32 Motor control community

If you feel a post has answered your question, please click "Accept as Solution"

hello,
May I ask how to solve this problem? I also encountered the same problem when adjusting the motor. I hope to get your help, thank you