Detail předmětu
Mikrokontroléry a embedded systémy
FEKT-MPC-MKSAk. rok: 2025/2026
Studenti se seznámí s pokročilými vlastnostmi jazyka C, s jeho využitím při programování mikrokontrolérů a s detaily architektury ARM Cortex-M a periferií mikrokontrolérů STMicroelectronics STM32. Naučí se zapojovat a programovat ovladače pro nejběžnější periferie, jako jsou tlačítkové vstupy, multiplexní displeje, grafické displeje, posuvné registry, teplotní čidla apod. Kurz seznamuje s postupy potřebnými pro návrh komplexních aplikací s mikrokontroléry STM32, včetně tematiky správy zdrojových kódů a dokumentace.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Vstupní znalosti
- popsat základní bloky mikroprocesoru a jejich funkci
- sestavit jednoduchý program v jazyce C
- sestavit program pro nastavení základních periferií, obsluhu přerušení a obsahující samostatné funkce a jejich volání
- analyzovat jednoduché elektronické obvody s pasivními součástkami a tranzistory a zvolit odpovídající způsob připojení k mikrokontroleru.
Obecně jsou požadovány znalosti na úrovni bakalářského studia.
Pravidla hodnocení a ukončení předmětu
Studenti jsou hodnoceni průběžně během semestru za aktivní práci v počítačových cvičeních a průběžný test. Zápočet je udělen po absolvování výuky s povinnou účastí. Povinná závěrečná zkouška se skládá z písemné, praktické a ústní části.
Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.
Učební cíle
Absolvent předmětu je schopen: (a) ppopsat strukturu jádra ARM Cortex-M; (b) popsat základní bloky mikrokontrolérů STMicroelectronics STM32; (c) vytvářet firmware v jazyce C včetně specifik jazyka pro GCC; (d) navrhnout a obsluhovat vybrané periferie připojené k mikrokontroléru; (e) navrhnout a sestavit vlastní zařízení s mikrokontrolerem včetně firmwaru.
Základní literatura
MARTIN, T. The Insider's Guide To The STM32 ARM Based Microcontroller. Hitex Ltd., UK, 2008. (EN)
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
jazyk C: bitové operace, inline, volatile, naked, stavový automat, Makefile a oddělený překlad
jazyk C: úvod do knihoven libc, kompilátor arm-none-eabi-gcc, printf a stdout
jazyk C: speciality v libc a gcc, kombinace s ASM, základní knihovny
zdrojový kód a styl: Subversion, Doxygen; styl psaní kódu
jádro ARM Cortex-M: architektura, možnosti, NVIC, GPIO
high-level vývoj firmwaru, middlewares, nástroj STM32CubeMX
STM32 periferie: čítače/časovače (SysTick, generování tónu, PWM apod.), RTC, ADC, DAC
STM32 komunikace: UART (RS232/485), SPI, I2C, 1-wire, DMA
periferie: tlačítka, LED normální, LED multiplexní, rotační enkodér, textový displej, pípák, posuvné registry
periferie: grafický displej (drivery, vektorová grafika, TV displeje); motory (DC motor, můstky, krokový motor, servo, BLDC)
zásady návrhu embedded systémů, úvod do RTOS, kooperativní RTOS se supersmyčkou
preemptivní operační systém FreeRTOS, ladění aplikací přes SWD
Laboratorní cvičení
Vyučující / Lektor
Osnova
F030: ISR, tlačítka se zákmity, časovač SysTick
F030: LED displej na posuvném registru
F030: A/D převodník a bargraf
F030: UART komunikace s DMA, EEPROM na I2C
F030: Teplotní čidla DS18B20 a NTC
F030: FreeRTOS a obsluha akcelerometru
LPC55: externí NXP
LPC55: externí NXP
F429: Maticová klávesnice a kódový zámek
F429: USB myš standardu HID
F429: Ethernet, TCP klient a server