Hello,
I'm tyring to program a STM32F4 (with ARM F4) board to generate a sinusoidal PWM, that is a sequence of pulses with variable width that, once filtered by a LPF, gives a sinusoid.
I was told the best way to get it is by generating a sequence of single pulses synchronized to timer by interrupts.
I've tried several solutions but I'm not good at managing interrupts.
Do you have any idea how to achieve this goal? Can you attach a piece of code where it's explained how to do it?
Thanks in advance! ;)
Mara
I'm not using HAL/Cube, you're on your own there.
But the 401RE doesn't not run at 180MHz, it's a part limited to 84 MHz as I recall
try using a table for the values 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436 1 7 8 1 5 23 7 6 3 6 5 45 3 5 7 5 4 34 5 7 6 45 3 4 56 5 6 34 43 5 4 3 43 5 5 4 3 3 4 5 6 7 87 65 5 65 6 4 342 4 5 54 3 3 43 5 53 34 34 35 5 5 4 32 2 1 34 56 47 45 45 3 3 8 2 67 7 54 56 643 346 436