I am controlling a BLDC motor (24V, 125W) with this IFX007T board controlled by an STM32L412 MCU. The PWM frequency should be around 40kHz (I have 80MHz clock, counter period of 512-1 and prescaler of 4-1).
I am using the hall sensors and a commutation table. I use FreeRTOS and the BLDC task has realtime priority.
On each phase I have an LC filter with 40uH and 680uF. I have removed the two 220nF (from phase to VCC and GND) capacitors on the board.
The motor is turning (more or less quietly) but it is not as strong as I would expect it to be (I am using it to run a rotary vane pump, which it can't manage to do right now).
The picture on the oscilloscope looks like this:
If I remove the filter, I see this:
however, from what I understand, it should actually look something like this (source):
Does anyone have an Idea why I don't see nice slopes between the steps? And why do I have a lot of peaks despite the filter?
UPDATE 1:
This is what the PWM looks like:
in the "transition part" the PWM is set to half of the maximum duty cycle, but the phases are actually left open since the enable pin is pulled low on the IFX007T.
UPDATE 2:
These are the hall sensors and one of the phases:
UPDATE 3: SOLUTION the commutation was wrong, once I adapted it using this table, the motor spins quietly and the waveform looks as expected!