Izdelava in programiranje mikrokrmilnika
Visokošolski učitelji: Vidmar Matjaž
Število kreditnih točk: 4
Opis predmeta
Pogoji za vključitev v delo oz. za opravljanje študijskih obveznosti:
Opravljene vse študijske obveznosti prvega letnika univerzitetnega študija katerekoli smeri znanosti oziroma tehnike, ki vključujejo matematiko. Znanje, pridobljeno v tečaju “Praktična izdelava prototipov elektronskih vezij” ali podobnim.
Vsebina:
Groba razčlenitev vsebine:
- Pregled jeder mikro-krmilnikov PIC, AVR, ARM, CORTEX, MIPS,
- Lastnosti in ukazi preprostega 8-bitnega jedra PIC in 32-bitnega jedra ARM,
- Programiranje mikro-krmilnikov v zbirniku, pripadajoča programska orodja,
- Notranji pomnilniki mikro-krmilnikov RAM in FLASH, programiranje FLASH pomnilnika,
- Vhodno/izhodne enote mikrokrmilnikov: splošni I/O, časovniki, zaporedna komunikacija, A/D in D/A pretvorniki, Ethernet,
- Praktično delo: izdelava PIC oziroma ARM mikrokrmilnika (prenos teorije v prakso),
- Individualno delo: Samostojna izdelava naprave z mikrokrmilnikom in pripadajoče programiranje po lastni izbiri v obliki seminarja.
Podrobna razčlenitev vsebine:
Teoretični del:
- Primerjava lastnosti in zmogljivosti različnih jeder: 8-bitni PIC in AVR, 32-bitni ARM, CORTEX in MIPS,
- Nabor ukazov preprostega 8-bitnega jedra PIC, izkoriščanje zmogljivosti in programski triki, klicanje podprogramov in prekinitve,
- Programiranje mikrokrmdilnikov PIC, uporaba zbirnika MPASM, dostop do programskega FLASH, do podatkovnega FLASH in do zastavic, uporabljani programatorji in programska podpora,
- Registri jedra ARM, ukazi ARM, Thumb in Jazelle, izjeme jedra ARM, napake in prekinitve, nabor ukazov ARM4, pogojno izvajanje in lastnosti jedra ARM7TDMI z zgodovino,
- Zbirnik ARM, način zapisa ukazov, ARM shifter operand, klic podprogramov in povratek v ARM, link register, psevdo ukazi zbirnika ARM: LDR=, LTORG, ALIGN, SPACE, DCD,
- Prevajanje ARM zbirnika: uporaba ARMASM, ARMLINK in FROMELF,
- Uporaba GNU prevajalnikov AS, LD in OBJCOPY, razlike ukazov zbirnika,
- Bootloader dostop do vgrajenega FLASH: JTAG, USB, UART (FlashMagic in lpc21isp),
- Preproste vhodno-izhodne enote, vrste vhodov z/brez histereze, vrste izhodov push-pull in open-drain, pull-up in pull-down upori, nadzor hitrosti, dušilni upori,
- Hardverski števci, časovniki in PWM (Pulse-Width Modulator) kot vhodno/izhodne enote,
- Asinhrona zaporedna komunikacija preko UART, registri in nastavitve UART, programiranje in prekinitve, uporaba FIFO, druge različice zaporedne komunikacije AART, USART, HDLC, izračun CRC, protokol SLIP,
- Zaporedne vhodno-izhodne enote SPI, I2C, JTAG, hardverska in programska izvedba,
- A/D pretvornik z zaporednim približevanjem, vzorčenje vhodnega signala, čas pretvorbe, programska uporaba A/D pretvornika in prekinitve, različne izvedbe D/A pretvornikov: R2R, PWM itd,
- Trajni pomnilnik, EEPROM in baterijsko napajan statični RAM,
- Ethernet vmesniki, MAC in PHY, signali vodila RMII,
- Prikazovalniki na tekoče kristale (LCD), alfa-numerični in grafični moduli, priklop na mikrokrmilnik, programiranje LCD modulov,
- Vgradnja mikrokrmilnika, zahteve za tiskano vezje, uporaba podnožij, uporaba ISP (In-System Programming), zahteve napajanja, takta, resetiranja, zaznavanje mrka napajanja, zahteve vhodno-izhodnih enot,
- Zahteve ciljne naprave z mikrokrmilnikom, izbira primerne strojne opreme, delitev nalog med analogna vezja, programirljivo logiko in mikrokrmilnik,
- Zasnova programa v mikrokrmilniku, inicializacija podpore (takt, kuža-pazi itd.), inicializacija vhodno-izhodnih enot, glavna zanka programa, preklapljanje med opravili, izbira in smiselna uporaba prekinitev.
Praktični del:
- Izdelava tiskanega vezja PIC oziroma ARM mikrokrmilnika,
- Praktično spajkanje gradnikov PIC oziroma ARM mikrokrmilnika,
- Oživljanje in preizkus vezij mikrokrmilnika s testnimi programi,
- Popravljanje napak pri spajkanju, zamenjava napačno vgrajenih in poškodovanih gradnikov.
- Inštalacija zbirnika in drugih prevajalnikov v okoljih Windows, Linux in MAC-OS,
- Inštalacija FLASH programatorja oziroma ISP programske opreme v okoljih Windows, Linux in MAC-OS,
- Osnovno programiranje podpore mikrokrmilnika: takt, PLL, podpora FLASH, kuža-pazi, detekcija mrka napajanja,
- Osnovno programiranje vhodno-izhodnih enot, preprost I/O, UART, časovnik, SPI, A/D pretovrnik,
- Osnovno programiranje LCD modula, vhod ukazov s preproste tipkovnice.
Seminar:
- Izbira teme,
- Načrtovanje naprave z mikrokrmilnikom,
- Osnovno načrtovanje programa,
- Praktično programiranje mikrokrmilnika,
- Popravljanje napak v programu,
- Predstavitev dela ostalim udeležencem.
Cilji in kompetence:
Cilji:
Sposobnost samostojne izdelave mikrokrmilnika, učinkovite uporabe vgrajenih vhodno-izhodnih enot in pisanje programske opreme v cilju reševanja konkretne naloge v napravi, ki potrebuje podporo mikrokrmilnika. Preizkušanje končnega izdelka, odkrivanje in odpravljanje napak v strojni in programski opremi.
Kompetence (poklicno specifične):
- Poznavanje mikrokrmilnikov različnih tehnologij in zmogljivosti,
- Poznavanje načina programiranja in pripadajočih programskih orodij za mikrokrmilnike,
- Reševanje naloge v napravi, ki zahteva podporo mikrokrmilnika.
Metode dela:
Predavanja, praktične vaje ter praktična gradnja in programiranje prototipne naprave v laboratoriju. Udeleženci lahko del praktične izdelave opravijo tudi samostojno izven okvira laboratorijskih vaj, končni izdelek pa prinesejo v pregled in oceno na zadnje vaje. Udeleženci po pedagoškem delu samostojno načrtujejo, izdelajo in preizkusijo napravo po lastnih zamislih.
Gradiva
Priročnik v obliki učbenika, prosto dostopno udeležencem 1
Digitalno gradivo (programi, podpora), prosto dostopno udeležencem 2
Literatura je udeležencem dostopna prek spletne učilnice ali prek spletne strani.
- http://antena.fe.uni-lj.si/literatura/VajeOK/USB2138/prirocnik/Mikrokrmilnik.pdf
- http://antena.fe.uni-lj.si/literatura/VajeOK/USB2138/
(eng.) The literature is available only in Slovenian language
Študiji na katerih se predmet izvaja
- 0 letnik – stopnja – Obštudijska dejavnost