Ground Embedded KO Subscribe

Roadmap / Firmware

MCU Firmware

One register bit turns on a pin, runs a timer, moves a motor. This is the core of embedded development.

Goal Configure MCU peripherals from the datasheet alone.

  1. 01
    Development environment

    Set up STM32CubeIDE, a compiler and a debugger, and light one LED.

    Read the note KR

  2. 02
    Registers versus HAL

    Driving registers directly or through a HAL, and when to use which.

    Read the note KR

  3. 03
    GPIO

    Input and output, push-pull and open-drain, internal pull-ups, at register level.

    Read the note KR

  4. 04
    Clock tree

    HSE, PLL, prescalers: where the clock comes from and how it is divided.

    Read the note KR

  5. 05
    Timers3D lab

    Periodic interrupts and measuring time with input capture.

    Read the note KR

  6. 06
    PWM3D lab

    Generating PWM with a timer and calculating PSC, ARR and CCR.

    Read the note KR

  7. 07
    Interrupts and the NVIC3D lab

    Priorities, why handlers stay short, and shared variables.

    Read the note KR

  8. 08
    ADC3D lab

    Single conversion, continuous conversion, and timer-triggered sampling.

    Read the note KR

  9. 09
    Using DMA

    Moving ADC values and UART data to memory without the CPU.

    Read the note KR

  10. 10
    Watchdog and low-power modes

    A watchdog that resets a hung program, and sleep modes for battery devices.

    Read the note KR

  11. 11
    Writing Flash and EEPROM

    Keeping settings across power cycles, and write-cycle limits.

    Read the note KR

  12. 12
    Bootloader

    How firmware updates itself, and how memory is partitioned.

    Read the note KR