Electronic – PWM over DMA on STM32F100 behaves strange

dmapwmstm32stm32f10x

I try to drive WS2812B LEDs with the STM32F100 chip. I read a lot of sources and stopped on the following thing.

I have a repository with latest version of code: https://bitbucket.org/ruslanpopov/stm32-ws2812b-dma/commits/branch/armka

I did debug print to USART and saw that everything is OK there.

I connected a Saleae-like analyzer and different version of reality that also is proved by the LED's behaviour.

Enter image description here

I sent RGB=0x550000. The PWM buffer has the right values. But the analyzer takes RGB=0x660000. I don't understand how 0b01010101 becomes 0b01100110. What is the reason?

Best Answer

The root of problem was in 'dma_source' variable. Renaming it to '_dma_src' solves problems. Video on VK.

Related Topic