# Microcontrollers

This is the microcontrollers course for the devbit curriculum based on the ARM Cortex M4 microcontroller architecture & mbed development platform, applied at the Nucleo L476RG.

This course is available under the Creative Commons Attribution-ShareAlike license. Contributions to this course are accepted on GitHub (opens new window).

# Course goals

Upon completion of this course one should be able to:

  • Build microcontroller-based embedded systems & applications.
  • Apply theoretical & practical knowledge of the microprocessor internal operation.
  • Apply theoretical & practical knowledge of microcontroller peripherals, such as Timers, ADC, DAC, PWM.
  • Apply theoretical & practical knowledge of common microcontroller interfaces, i.e. UART, SPI, I²C.
  • Apply theoretical & practical knowledge of writing embedded software

# Course approach

  1. Learn the internals of the STM32L476RGT6 microcontroller and program it on the register level.
  2. Build embedded applications using the Nucleo L476RG prototyping board and mbed libraries.

Nucleo L476RG prototyping board

Figure 1: The Nucleo L476RG prototyping board

# Course overview

  • ARM Cortex M4 architecture
  • C++, a very basic introduction
  • GPIO, Timers, interrupts
  • Analog interfacing
    • ADC
    • DAC
    • PWM
  • Serial communication
    • UART
    • SPI
    • I²C

# Course materials

# Course prerequisites

  • Basic knowledge of digital systems
  • Binary, hexadecimal
  • Basic knowledge of a C-like programming language