LEARNING OUTCOMES OF THE COURSE UNIT
The graduate is able: (a) describe the structure of ARM Cortex-M core; (b) describe basic blocks of STMicroelectronics STM32; (c) create firmware in C language including GCC specialties; (d) design and use connection of selected microcontroller peripherals; (e) design and assemble own device with microcontroller including firmware.
.
COURSE CURRICULUM
1. C language: constants and operators, control structures, preprocessor, functions, memory classes, pointers.
2. C language: arrays, strings, struct, union, enum, bit operations, inline, volatile, naked, state machines.
3. C language: introduction to libc libraries, arm-none-eabi-gcc compiler, printf and stdout.
4. C language: specialties in libc and gcc, combination with ASM, basic libraries.
5. Source code: Doxygen, Subversion; coding style.
6. Embedded systems design principles, introduction to RTOS, cooperative RTOS.
7. ARM Cortex-M core: architecture, features, NVIC, GPIO.
8. STM32 peripherials: counter/timer (SysTick, tone generator, PWM etc.), RTC, ADC, DAC.
9. STM32 communication: UART (RS232/485), SPI, I2C, 1-wire, DMA.
10. High-level firmware development, middlewares, STM32CubeMX tool.
11. Preemptive operating system FreeRTOS, application debugging over SWD.
12. Peripherals: buttons, normal LED, multiplexed LED, rotary encoder, text display, beeper, shift registers.
13. Peripherals: graphic display (drivers, vector graphics, TV screen); motors (DC motor, bridges, stepper motor, servo, BLDC).
AIMS
The aim of the course is to deepen students' knowledge of microprocessor technology and programming in C, to familiarize them with ARM Cortex-M core, with STMicroelectronics STM32 MCUs, and learn to design the hardware and firmware for the most common peripherals.