Generating arbitrary signals using an MCU is extremely useful. It can be used for example to play back any audio or make a modulator for a modem. The most needed MCU peripheral is of course a DAC, but it also needs other peripherals to efficiently play back the samples without loading the CPU.
This post shows how to implement a signal generator on an STM32L432 without using HAL libraries.
Continue reading “Generating signals with STM32L4 timer, DMA and DAC”
Most STM32 microcontrollers feature an internal EEPROM. It is useful for storing settings or calibration data. Regular flash (that stores code) can also be used, but the EEPROM can be updated byte-by-byte and is independent from regular flash. This may come handy during application updating, as whole flash can be simply erased without affecting the EEPROM.
I wrote a generic driver for keeping settings in the EEPROM based on the standard peripherals library for STM32L, that is easier to understand than the official demos from ST. It was tested on an STM32L151RC.
Continue reading “Using the internal EEPROM of STM32L”
When starting my STM32 makefile project for the first time I encountered a very early hard fault in the startup code. It happened exactly when calling libc function at
/* Call static constructors */
The whole startup code came straight from ST, so I did not suspect it to be faulty. Here is what I have found out to fix the problem.
Continue reading “Hard fault in __libc_init_array”
I have published a basic Makefile project for STM32L151 on Github. I plan to develop it into a low-power wireless sensor network using SP1ML modules. The modules contains STM32L151RB MCU with 128K of flash, SPIRIT1 transceiver chip, antenna and passive components. Basically everything needed to make an 868MHz radio network.
Continue reading “STM32L151 makefile project”