# 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
- Learn the internals of the STM32L476RGT6 microcontroller and program it on the register level.
- Build embedded applications using the Nucleo L476RG prototyping board and mbed libraries.
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 website (opens new window)
- Lab website (opens new window)
- Code examples on GitHub
- Toledo (opens new window) (requires a VIVES login)
- MBED (opens new window)
- STM32L476RG (opens new window)
- RM0351 Reference Manual
- PM0214 Programming Manual
- STM32 Nucleo Boards (opens new window)
- NUCLEO-L476RG UM1724 User Manual
# Course prerequisites
- Basic knowledge of digital systems
- Binary, hexadecimal
- Basic knowledge of a C-like programming language