Detail předmětu

Mikrokontroléry a embedded systémy

FEKT-MKC-MKSAk. rok: 2024/2025

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

čeština

Počet kreditů

6

Vstupní znalosti

Student, který si zapíše předmět, by měl být schopen:
- 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 odevzdání povinných domácích úkolů. 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

Cílem předmětu je prohloubit znalosti studentů v oblasti mikroprocesorové techniky a programování v jazyce C, seznámit je s jádrem ARM Cortex-M a mikrokontroléry STMicroelectronics STM32, naučit je navrhovat hardware a programovat firmware pro v praxi nejčastěji používané periferie.
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

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)

Zařazení předmětu ve studijních plánech

  • Program MKC-EKT magisterský navazující 1 ročník, zimní semestr, povinný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

jazyk C: konstanty a operátory, řídicí struktury, preprocesor, funkce, paměť a třídy, ukazatele, pole, řetězce, struct, union, enum
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í

39 hod., povinná

Vyučující / Lektor

Osnova

F030: STM32CubeIDE, Git, základní funkce
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