Vsebina predmeta | 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.
|