Tagged: timer

Tutorial: Control WS2812B leds with STM32 0

Tutorial: Control WS2812B leds with STM32

In this tutorial I will explain how to drive WS2812B with STM32 using TIM PWM and DMA peripherals in the most efficient way by using minimum amount of RAM, required to process all leds. There is a good explanation, already available on the web. If you have no experience with WS2812B leds, I strongly recommend you to read the blog post. It is very well written, but it has one major issue. It uses 24 words of RAM for each LED,...

HAL library 3- DELAY for STM32Fxxx 17

HAL library 3- DELAY for STM32Fxxx

Delay functions are needed in your program, no matter how optimized and fast program you wanna do. Delay functions I’ve updated my delay library to support milliseconds and microseconds delays. Milliseconds based delay is done using systick timer which makes interrupts every 1ms generated by HAL library. For microseconds based delay, DWT cycle counter is used to get maximal optimized delay. DWT unit is for F4 and F7 only, F0 series does not have DWT, because of Cortex-M0. Software timers...

Disable peripherals in debug mode on STM32F4xx 0

Disable peripherals in debug mode on STM32F4xx

Have you ever used watchdog in your application? Have you ever debug your application when watchdog was enabled and you hit stop? Watchdog did not stop in this case and when you pressed “continue” in your debugger, your program starts over because WDG has reset your system. One choice is that you remove line where you initialize IWDG, but you then must recompile and redownload and all that stuff. Wasting useful time. To avoid this problem, STM32 devices have possibility...

Library 60- CPU load monitor for STM32F4xx devices 3

Library 60- CPU load monitor for STM32F4xx devices

Yesterday, I’ve made a post about monitoring CPU load depending on CPU work and it’s sleep time using DWT counter. This post can be found here. This post is now a library, set together from post about CPU load. Library Features Measures CPU load. Load depends between sleep time and work time of CPU CPU load is updated for every System core clock cycles. In other words, that is each 1 second DWT counter used for measurements Sleep mode which...

PWM graph 47

Library 48- Measure PWM input signal with STM32F4

First library in 2015 is here. With it, you will be able to measure PWM input signal from “other world”. STM32F4’s timers have capability to make an interrupt on edge, when signal is active on input pin for specific timer. This allows us, to measure signal in input. With a simple calculations, we can detect frequency of signal and duty cycle. Of course, this is not veery accurate, but with 168MHz F407 device, using 32bit TIM2 (high resolution) I got...

Servo motor 71

Library 42- Control RC servo with STM32F4

Library 42 allows you to simple connect and interface RC servo motors with STM32F4. They are small, cheap motors, commonly used for RC (Radio Control), small scale robotics and more. Servos are really simple to interface. They expect 50Hz signal on the input. According to the pulse length (duty cycle) they rotate between 0 and 180 degrees. If signal has 1ms pulse length, motor rotation will be 0 degrees and if signal has 2ms length, then it will have 180degrees rotation. Any pulse length...