Microcontrollers for Advanced Applications
FEKT-MMIAAcad. year: 2019/2020
Students learn the advanced features of the C language, its use in microcontrollers programming, and the details of ARM Cortex-M architecture and peripherals of STMicroelectronics STM32 MCUs. They learn to design and program drivers for the most common peripherals such as button inputs, multiplex displays, graphic displays, shift registers, temperature sensors, etc. The course shows the procedures necessary for the design of complex applications with STM32 microcontrollers, including the topics of source code management and documentation.
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.
Attendant should be able to:
- describe main microcontroller blocks and their function
- design simple C program
- design program for setup of basic peripherals, interrupt control and separate functions and function calls
- analyze simple electronics circuits with passive parts and transistors and choose corresponding way of connecting to the microprocessor.
The subject knowledge on the Bachelor's degree level is requested.
Recommended optional programme components
Recommended or required reading
HEROUT, P. Učebnice jazyka C. České Budějovice: KOPP, 1994 (CS)
MARTIN, T. The Insider's Guide To The STM32 ARM Based Microcontroller. Hitex Ltd., UK, 2008. (EN)
BROWN, G. Discovering the STM32 Microcontroller [online]. 2016 [cit. 2018-08-13]. Available: https://www.cs.indiana.edu/~geobrown/book.pdf (EN)
Planned learning activities and teaching methods
Teaching methods depend on the type of course unit as specified in the article 7 of BUT Rules for Studies and Examinations.
Assesment methods and criteria linked to learning outcomes
Students obtain points for the activity in computer labs during the semester. The final exam is composed of written, practical and oral part.
Language of instruction
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).
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.
Specification of controlled education, way of implementation and compensation for absences
The content and forms of instruction in the evaluated course are specified by a regulation issued by the lecturer responsible for the course and updated for every academic year.
Classification of course in study plans
- Programme AUDIO-P Master's
branch P-AUD , 1. year of study, summer semester, 6 credits, optional interdisciplinary
- Programme EEKR-M1 Master's
branch M1-EST , 1. year of study, summer semester, 6 credits, optional specialized
- Programme EEKR-CZV lifelong learning
branch ET-CZV , 1. year of study, summer semester, 6 credits, optional specialized