Category: ARM Cortex-M

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,...

1-Wire over UART 0

1-Wire over UART

Today’s application mostly use somekind of operating system on microcontroller. Since these apps are not really real time anymore, keeping standard 1-Wire protocol developed with delays in software may make programmer’s life much harder and annoying. UART and 1-Wire protocols have 2 things in common: To reset 1-Wire network, we can use 9600 bauds on UART To read/write 1-Wire bit, we can use 115200 bauds on UART Detailed timings for the UART reset sequence, write/read bit can be found on...

ST released STM32L4+ family 0

ST released STM32L4+ family

Recently, STMicroelectronics released a new low-power family, STM32L4+, with extended performance (120MHz frequency) and up to 2MB dual bank flash memory and 640kB of RAM memory. Together with graphics support, it makes it the best ultra low-power device on the market for smart watches and other long life-high performance projects. Benchmark result is 150DMIPS or 409 coremarks in ULPbench test by EEMBC. STM32L4+ portfolio STM32L4+ family consists of 3 main derivarions each with optional encryption. You can find 3 different lines,...

STM32 tutorial: Efficiently receive UART data using DMA 21

STM32 tutorial: Efficiently receive UART data using DMA

U(S)ART peripheral can work very good by using RXNE (Receive Not Empty) for each byte separatelly. In this case, every received byte is manipulated by CPU by jumping to appropriate UART interrupt service routine. To allow CPU to do fully other job when we receive UART data at high speed we can use DMA (Direct Memory Access) to offload CPU. We can think of DMA as co-processor who can only transfer data between different memories, in our case between peripheral data register UART...

0 17

EasyGUI preview on STM32F7-Discovery

Last 2 months I was working hard to build a platform independent graphical user interface library for embedded systems. I called it EasyGUI because idea behind is very simple library with support for custom user based widgets with touch and keyboard support. So far I built these features: Unlimited widgets (limited to RAM memory) Support for widgets which support children widgets (windows, panels, etc) Support for touch and keyboard events Support for UTF-8 encode and decode functions Support for custom...

Tutorial – Jump to system memory from software on STM32 9

Tutorial – Jump to system memory from software on STM32

One of you are already familiar with STM32 feature of embedded bootloader for software download to flash. This memory is called system memory and is normally accessible with BOOT configuration (either pin hardware or option bytes (later OB) in flash software). Normally, if you want to jump to system memory, you have to setup pin/OB and reset device. If you have OB setup, this is ok, but since you need at least one BOOT pin in hardware, this can lead to hardware...