Ponedeljek 9.7.2018 10h-14h (8 študentov, pomagata Aljaž in Simon) ------------------------------------------------------------------ 1. Uvod v mikroprocesorje, Harvard in von Neumann, sklad, I/O. 2. Kratka zgodovina razvoja mikroprocesorjev 8/16/32bit. 3. Vodila, pomnilniki in vmesniki mikrokrmilnikov PIC. 4. Struktura 8bitnega mikroprocesorja PIC 16F88. 5. Načini pisanja programov za mikrokrmilnike PIC. 6. Struktura pisanja programa v zbirniku, osnovni ukazi. 7. Orevajanje zbirnika v strojno kodo z MPASMWIN. 8. Različni programatorji za FLASH mikrokrmilnikov PIC. 9. Zgled: preprost program za dvojiški števec z LEDikami na PORTB. Četrtek 12.7.2018 10h-14h (8 študentov, pomagata Aljaž in Simon) ---------------------------------------------------------------- 1. Klicanje podprogramov in delovanje sklada v jedru PIC. 2. Maksimalna zaporedja iz deljenja polinomov z dvojiškimi koeficienti. 3. Programiranje polinomskega delitelja v jedru PIC. 4. Programiranje zakasnitve kot podprograma za jedro PIC. 5. Izpis polinomsjkega generatorja na svetleče diode. 6. Iskanje različnih povratnih vezav za maksimalna zaporedja. 7. Izvedba AD pretovrmikov z zaporednim približevanjem v mikrokrmilnikih. 8. Izvedba AD pretovrnika v mikrokrmilnikih PIC. 9. Programiranje AD pretvornika v mikrokrmilniku 16F88. Ponedeljek 16.8.2017 10h-16h (8študentov, pomagata Aljaž in Simon, dokončal Aljaž) ---------------------------------------------------------------------------------- 1. Krmiljenje naprav z zaporednimi vodili: SPI, JTAG, MIIM(MDC,MDIO), I2C. 2. Signali vodila SPI: MOSI, MISO, SCLK, STROBE. 3. SPI slave sprejemnik: pomikalni register in večbitni zapah, podatki MSB prvi. 4. Programska izvedba SPI vodila v mikrokrmilniku PIC. 5. Praktična vezava 16F88+4094 in programiranje vodila SPI. 6. Asinhrono zaporedno vodilo, start bit, podatki prvi LSB, stop bit. 7. Logični nivoji asinhronih vmesnikov: TTL, tokovna zanka, RS-232. 8. Asinhroni vmesnik UART v mikrokrmilniku PIC16F88. 9. Nastavitev hitrosti v BRG, takt x16 ali x64. 10. Vklop asinhronega vmesnika, čakanje na konec oddaje. 11. Praktična povezava PC16F88 na osebni računalnik. Četrtek 19.7.2018 10h-14h (8 študentov, Aljaž in Simon) ------------------------------------------------------- 1. Jedkanje tiskanih vezij za mikrokrmilnik z LPC2138. 2. Spajkanje SMD gradnikov za mikrokrmilnik z LPC2138. Ponedeljek 23.7.2018 10h-15h (8 študentov, pomagata Aljaž in Simon) ------------------------------------------------------------------- 1. 32-bitna procesorska jedra, arhitekture RISC in CISC z zgledi ukazov. 2. Arhitektira jedra ARM, registri R0-R15, posebnosti PC, LR, SP. 3. 32-bitni ukazi jedra ARM7TDMI, rezultat in dva operanda. 4. Zamiki operandov LSL, LSR, ASR, ROL, ROR, ROXL. 5. Shifter operannd v jedru ARM z delujočimi in nedelujočimi zgledi. 6. Vstavljanje 32-bitne konstante, uporaba LTORG ukaza za zbirnik. 7. Klicanje podprogramo v uporabo LR. 8. Verižno klicanje podprogramov z reševanjem LR na sklad. 9. Zahteve prekinitev in drugih izjem, dodatni LR. 10. Statusni register ARM7TDMI, stanja jedra ARM in nadomestni registri. 11. Dokončali spajanje mikrokrmilnikov. 12. Preizkus izdelanih mikrokrmilnikov. Četrtek 26.7.2018 10h-15h (8 študentov, pomagata Aljaž in Simon) ---------------------------------------------------------------- 1. Povezava LCD prikavovalnika s kontrolerjem HD44780. 2. Organizacija dokumentov in programov za mikrokrmilnike družine LPC2xxx. 3. Izjeme jedra ARM, položaj za bootloader, izvajanje in RAM. 4. Povezava in dostop do različnih enot v mikrokrmilniku LPC2138. 5. Predpomnilnik MAM za FLASH. 6. PLL množilnik takta, delilinik takta preriferije. 7. Povezava in vloga zunanjih priključkov LPC2138. 8. Vhodno/izhodne enote legacy IO in FIO. 9. Struktura programa v zbirniku ARM: komentarji, equ, čarobna glava, inicializacija enot. 10. Prevajanje z zbirnikom ARM. 11. Programiranje LPC2138 s programom FlashMagic. 12. Preverjanje delovanja mikrokrmilnika s testnim programom. 13. Delovanje LCD kontrolerja HD44780 z zgledom programiranja. Ponedeljek 30.7.2018 10h-15h (8 študentov, pomaga Aljaž) -------------------------------------------------------- 1. Spajkanje povezovalnih kabelčkov za LCD module. 2. Tipi podatkov v ARM 8/16/32bi, nepredznačeni in predznačeni. 3. Delovanje ukazov LDR, LDRB, LDRH, LDRSB, LDRSH, STR, STRB in STRH. 4. Delovanje skladov pre- in post- increment in decrement, zgled reševanje LR. 5. Računski ukazi med registri ADD, SUM, RSB in CMP. 6. Zamik vsebine registrov z MOV in MVN. 7. Logični ukazi med registri AND, TST, IOR, XOR in BIC. 8. Zgled: primerjava naslova in domene v IPv4 z XOR in TST. 9. Ukazi za množenje MUL, UMULL in SMULL. 10. Proženje prekinitev v LPC2xxx: izvor, VIC in jedro ARM. 11. Primeri prekinitev INT in FIQ v jedru ARM s povratkom SUBS PC,LR,#4. 12. Zgled: povezava preproste matrične tipkovnice na mikrokrmilnik. 13. Program za odčitavanje matrične tipkovnice. 14. Dokončanje povezav LCD modulov. Četrtek 2.8.2018 10h-15h (6 študentov, pomaga Aljaž) ---------------------------------------------------- 1. Zahteve tečaja, pojasnila okoli kreditnih točk. 2. Zbirniki in prevajalniki C za ARM7. 3. Razlike med zbirnikoma ARM (licenčni) in GNU (odprtokodni). 4. Zgled preprostega programa: risanje rastočega stolpca na LCD. 5. Zgled zahtevnejšega programa: govoreči voltmeter. 6. Snemanje govora z WaveStudio v zapise .WAV 8bit/8kHz, vstavljanje v zbirnik. 7. Struktura programa govorečega voltmetra. 8. Inicializacija prerifernih enot in prekinitev govorečega voltmetra. 9. Naloge glavnega programa govorečega voltmetra. 10. Uporaba in povprečenje meritev A/D pretvornika. 11. Pretvorba dvojiškega rezultata v desetiško obliko. 12. Izpis rezultata na LCD, UART in kot rastoči stolpec. 13. Prekinitvena rutina za predvajanje govora. 14. Komunikacija med prekinitveno rutino in glavnim programom. 15. Struktura programa za izgovarjanje izmerjene veličine.