Bldc control using XMC1300

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
Hi,
i'm trying bldc motor control with 750w motor control kit. But the motor doesn't run. Initialy it runs for 1 or 2 min and then stops. If I use PMSM app for the same motor it runs.
why is this happenening? Is there any specific configuration to be done for bldc?

And in case of PMSM, is there any way by which v can knw the pattern of hall sensors (making use of adaptive pattern recognition) ???


Thanking you,
smriti
0 Likes
29 Replies
Not applicable
Hi smriti,

May I know which apps are you using? if you are using 750W inverter as your hardware to drive 24V or 48V, you need to optimize your BEMF sensing resistive network. It was designed based on 320V BEMF.

For PMSM case, you don't know the pattern of hall sensor, you may make use of adaptive pattern recognition. What it does is it will drive the motor in OpenLoop V/F, record down the hall pattern and switch to closed loop.
0 Likes
Not applicable
I'm using BLDCBCSL01 with a 24v BLDC motor.
Even with BLDCBCH03, I'm not able to run the motor.If I use PMSMFOCSL02, motor operates.

In case of Hall sensored operation,Is there a way to view this recorded hall pattern?
0 Likes
Not applicable
Hi Smriti,

We normally use xSPY to do the streaming. You can output the hall sensor digitally via virtual com port on XMC1300 boot kit.

Just to understand more details, why are you using 750W board to drive 24V BLDC motor. You can refer to our 15W PMSM LV motor kit.
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
The 750W Application Kit is high voltage motor control kit. If you need to drive LV BLDC motor, you need to check the hardware compatible to your application.
0 Likes
Not applicable
I'm actually intended to use a 600w motor. For the time bieng, i'm trying with 24v motor. I had used the same kit for 24v PMSM motor without any difficulty. But not able to use it for this perticular 24v BLDC motor.
0 Likes
Not applicable
Moving some related topic to this thread...

smriti wrote:
Hi,
I'm trying to control a 24v motor using PMSMFOCSL02 app on 750w motor control kit.(xmc1302)
My issue is that I'm not able control speed using potetiometer. The motor runs at some fixed speed all the time.

why is this happening ?

Thanking you,
Smriti


smriti wrote:
Hi

Even I'm facing the similar problem. I used BLDCBCH03 app for speed control. I used adaptive hall pattern detection.
There is a initial jerking and then the motor stops.
0 Likes
lock attach
Attachments are accessible only for community members.
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
Hi

Even I'm facing the similar problem. I used BLDCBCH03 app for speed control. I used adaptive hall pattern detection.
There is a initial jerking and then the motor stops.


This could be due to the wrong BMI configuration setting. P0.15 is the hall input pin which is also one of the programming pin. Please refer to the attached picture file.

755.attach

Hi,
I'm trying to control a 24v motor using PMSMFOCSL02 app on 750w motor control kit.(xmc1302)
My issue is that I'm not able control speed using potetiometer. The motor runs at some fixed speed all the time.

why is this happening ?

Thanking you,
Smriti


I have attached the PMSMFOCSL02 dave apps code with POT speed control features enabled. Please check the dave apps UI configuration and pin mapping.
0 Likes
Not applicable
Hi,
I changed the BMI as it was indicated. Still the problem remains the same 😞
I tried with the example project too.
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
smriti wrote:
Hi,
I changed the BMI as it was indicated. Still the problem remains the same 😞
I tried with the example project too.


Perhaps you need a oscilloscope to check the hall signal feeding into your HW board. You need to connect +5V and GND for your hall sensor. The app SW will give an open voltage to push the motor, once it detect correct hall pattern, it switches to closed loop.

The example project was created based on my motor parameters. You have to fine-tune the app in GUI with your motor parameters. Turn the POT into a fixed position, the motor should start in open loop and ramp up to a fixed speed.
0 Likes
Not applicable
Funmix wrote:
Perhaps you need a oscilloscope to check the hall signal feeding into your HW board. You need to connect +5V and GND for your hall sensor. The app SW will give an open voltage to push the motor, once it detect correct hall pattern, it switches to closed loop.

The example project was created based on my motor parameters. You have to fine-tune the app in GUI with your motor parameters. Turn the POT into a fixed position, the motor should start in open loop and ramp up to a fixed speed.


Regarding PMSM,

I have changed motor parameter, board config, speed KP KI and checked pin config with your code.

Open loop operation is fine. But In closed loop it runs at the start speed reference itself. Basically, it isn't ramping up to the end speed reference.
My start speed ref is 25, start threshold is 100 and end speed ref is 1000 for 4000rpm motor. What I observe is that it runs at around 25rpm. If I change end speed ref, there is no change in
motor speed.

Thanking you,
Smriti
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
smriti wrote:
Regarding PMSM,

I have changed motor parameter, board config, speed KP KI and checked pin config with your code.

Open loop operation is fine. But In closed loop it runs at the start speed reference itself. Basically, it isn't ramping up to the end speed reference.
My start speed ref is 25, start threshold is 100 and end speed ref is 1000 for 4000rpm motor. What I observe is that it runs at around 25rpm. If I change end speed ref, there is no change in
motor speed.

Thanking you,
Smriti


You should not try enabling POT changing the speed. You should go for fixed end speed ref (1000 to 4000 rpm).
How do you justify your open loop operation is working fine?
Just do a quick test what if you change start speed ref to 1 and only run in open loop. You should get the motor turning at 100 rpm only.
0 Likes
Not applicable
That's right.
It doesn't work in open loop too. If I set start ref to 1, it runs at 1rpm itself 😞
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
For first step, we need to make sure our open loop is smooth and robust. Please go under your project -> Dave -> Generated -> PMSMFOCSL02 -> PMSMFOCSL02.c.

Look void PMSMFOCSL02_SpeedRampup(const PMSMFOCSL02_HandleType* HandlePtr) API function, grey out from line 1239 until 1243 code.

Recompile the code, set the Start up speed threshold to 100 rpm. Now your motor should turn at 100 rpm in open loop.
0 Likes
Not applicable
It doesn't run at 100rpm. It runs at start speed ref of 25rpm.
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
smriti wrote:
It doesn't run at 100rpm. It runs at start speed ref of 25rpm.


In open loop, motor start with Start Speed Reference and ramp up the motor until speed reaches as Start Speed Threshold. Something is wrong with your SW setup.

Could you please try create new project with the apps again?
0 Likes
Not applicable
I tried with PMSMFOCSL01 in open loop.
In this case also, it runs at start speed ref.
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
smriti wrote:
I tried with PMSMFOCSL01 in open loop.
In this case also, it runs at start speed ref.


Hi smriti,

Since the app is configured in Open loop (i expect you configured to open loop successfully), remove your motor. Use oscilloscope probe to check phase U signal output.
You can measure the signal phase U frequency with the oscilloscope.

If your motor pole pair is 3, you should get 5 Hz.

Speed (RPM) = 60 x frequency measured in scope / no of pole pairs

100 rpm = 60 x freq from oscillscope / 3

if you cannot get 5 Hz in open loop, you have to double check your GUI configuration. It's very straight forward for open loop. There is no complex calculation involve.
0 Likes
Not applicable
Hi
Somehow I'm not able to measure phase u signal. I get too much of noise and freq in kHz.
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
smriti wrote:
Hi
Somehow I'm not able to measure phase u signal. I get too much of noise and freq in kHz.


Hi smriti,

You would expect the waveform something as shown below:
791.attach

If you place your probe channel on phase U, you would be able to measure the frequency.
0 Likes
Not applicable
Hi
Frequency is at 20kHz. For both 100 rpm start speed threshold in open loop and 150 rpm start speed threshold.

Thanking you,
Smriti
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
smriti wrote:
Hi
Frequency is at 20kHz. For both 100 rpm start speed threshold in open loop and 150 rpm start speed threshold.

Thanking you,
Smriti


The frequency that you measured from Phase U shouldn't be 20KHz. By calculation, you should get 5 hz if you set your start speed threshold 100 rpm in open loop. Please attach the signal that you measure from scope.
0 Likes
Not applicable
Sorry, my security sys doesn't allow me to attach files on a web page.
Perhaps I could mail it if can provide me a mail id.
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
smriti wrote:
Sorry, my security sys doesn't allow me to attach files on a web page.
Perhaps I could mail it if can provide me a mail id.


Hi smriti,

This is a public forum. I apologize that I cannot disclose my email here. Please refer to my attached file previously. In open loop, you should get very clean signal like shown in pdf. You can just probe the signal without connecting to motor.

If you measure 1 complete cycle of phase U, you will get 5 Hz.
0 Likes
Not applicable
Hi

I get the same waveform as in the attachment. Does it make a difference if I connect the motor and measure ?


Thanking you,
Smriti
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
smriti wrote:
Hi

I get the same waveform as in the attachment. Does it make a difference if I connect the motor and measure ?


Thanking you,
Smriti


Hi,

If you manage to get same waveform, means that your motor is driving in open loop with constant speed 100rpm(1 complete cycle should show 5Hz (0.2s)). It should be a very clean signal.
The output PWM phase U will get destructed if connect with motor. We have to ensure that the hardware (inverter & mcu side) are working fine before we are going to closed loop.
0 Likes
Not applicable
Hi
I could get the clean waveform but of 20khz itself. Is my configuration itself wrong ?
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
smriti wrote:
Hi
I could get the clean waveform but of 20khz itself. Is my configuration itself wrong ?


Hi smriti,

If you refer to my thread #20, use oscilloscope cursor to measure 1 peak to another peak. From the slide, it shows 1/100Hz = 0.01 s.

In your application, the timing from 1 peak to another peak should be 1/5hz = 0.2 s based on your configuration in your apps.
0 Likes
Not applicable
Hi
Isn't it the hall output frequency that varies with speed?
my understanding is that to vary speed of the motor, voltage magnitude is changed. but the frequency will be the switching frequency. Correct me if I'm wrong.
0 Likes
Funmix
Employee
Employee
5 sign-ins 25 replies posted 10 replies posted
smriti wrote:
Hi
Isn't it the hall output frequency that varies with speed?
my understanding is that to vary speed of the motor, voltage magnitude is changed. but the frequency will be the switching frequency. Correct me if I'm wrong.


Hi smriti,

I think I would have to see your captured waveform for further investigation.
First of all, you should go to create question thread at https://www.infineon.com/cms/en/corporate/company/contact/product-support-form/
Specify the "Funmix" to support your question. You might need to paste this thread url inside the remark box as well.
0 Likes