© Harry Broeders.
titel: | minor Elektrotechniek: MicroController besturingen en Computer Architectuur. |
code onderwijsdeel: | MCCA1T2 en MCCA1P2 |
studiebelasting: | 112 SBU |
semester / kwartaal: | H3 / 2 of H4 / 2 |
contacturen: | 2 uur/week college en 2 uur/week practicum |
toetsing: | tentamen (cijfer) en practicumbeoordeling (O/V) |
benodigde voorkennis: | Programmeren in C en C++. MCCA1T1. |
verantwoordelijke docent: | Harry Broeders |
Het tweede kwartaal van de minor Elektrotechniek voor studenten Technische Informatica bestaat uit het onderwijsdeel microprocessorbesturingen. Dit onderwijsdeel verschaft je inzicht in de toepassingsmogelijkheden van microcontrollers. Heel veel producten en systemen zijn tegenwoordig uitgerust met een of meerdere microcontrollers die deze producten en systemen besturen. Microcontrollers worden ook wel "embedded controllers" genoemd omdat de controller volledig in het produkt of systeem is opgenomen (je ziet er aan de buitenkant niets van). Het gebruik van een microcontroller in producten en systemen heeft (ten opzichte van een volledig hardwarematige besturing) de volgende voordelen:
Omdat de producten waarin een microcontroller kan worden opgenomen sterk variëren in complexiteit en kostprijs bestaan er een groot aantal verschillende soorten microcontrollers. In dit onderwijsdeel maak je kennis met de 68HC11 microcontroller een populaire 8 bits microcontroller van van Freescale (voorheen de semiconductor devision van Motorola). We doen dit zoveel mogelijk aan de hand van concrete voorbeelden en opdrachten waarbij naast de software ook de hardware een belangrijke rol speelt. Met name de koppeling tussen de controller en zijn omgeving (de interface) krijgt de nodige aandacht. In het bijzonder de timer, de analoge interface en de puls accumulator. Ook het werken met interrupts komt aan de orde.
De embedded programmatuur wordt ontwikkeld in C of C++ met behulp van de GNU toolchain. Je zult leren hoe je C kunt gebruiken zonder onderliggend operating systeem en dus ook zonder run time environment. De programma's worden gedebugged in door de compiler gegenereerde assemblercode met behulp van het simulatieprogramma THRSim11. Natuurlijk zullen we de ontwikkelde programma's ook testen op een echt 68HC11 systeem. We gebruiken daarvoor de EVM (EValuation Module) van Motorola.
Als je deze onderwijseenheid met een voldoende hebt afgesloten ben je in staat om:
Bij dit onderwijsdeel heb je geen boek nodig.
68HC11 Programming Reference Guide. Dit is een klein boekje waarin je alle
details van de 68HC11 microcontroller kunt vinden. In de les wordt een
gratis kopie uitgereikt! Volledige boekje
in pdf formaat.
Inleiding 68HC11 (door Fred Martin).
Broeders, Practicumopdrachten.
Er worden voor deze onderwijseenheid drie deelresultaten vastgesteld. Het eerste resultaat, een cijfer (0..10) voor het tentamen MCCA1T1 heb je als het goed is al behaald. Het tweede resultaat (mondeling tentamen MCCA1T2) is ook een cijfer (1..10) en het derde resultaat (practicum MCCA1P2) is een O(nvoldoende) of V(oldoende). Het eindresultaat wordt dan het gemiddelde van de behaalde cijfers als het derde resultaat een V is en een 1 als het derde resultaat een O is. Bij het mondelinge tentamen MCCA1T2 mag je het studiemateriaal gebruiken. De mondelinge toetsing vindt plaats in week 8 van dit kwartaal (de week van 11 juni t/m 15 juni 2007). Deze toets duurt ongeveer 30 minuten. De vragen zullen betrekking hebben op de door jou ingelevende programma's maar bedenk goed dat er ook algemene theorievragen gesteld kunnen worden.
De mondelinge tentamens zullen worden gehouden in de week van 11 juni t/m 15 juni 2007. Het rooster wordt via de mail verstuurd en zal ook hier worden gepubliceerd.
Het practicum MCCA1P2 wordt beoordeeld met Onvoldoende of Voldoende. Het practicum bestaat uit 4 opdrachten. Alle opdrachten worden afzonderlijk beoordeeld met een voldoende of onvoldoende aan de hand van:
Om het practicum met een voldoende af te sluiten moeten alle opdrachten voldoende zijn. Als je alle opdrachten hebt afgerond, uiterlijk de laatste lesdag van de laatste lesweek om 12:00 uur (vrijdag 8 juni 2007 voor 12:00 uur), moet je de programma's inleveren bij Harry Broeders.
De programma's moeten via email worden ingeleverd: Maak een zip bestand je_eigen_naam.zip. In dit bestand moeten alle programma's en bijgaande bestanden zijn opgenomen. Bij het uitpakken moet elk programma (met bijbehorende bestanden) in een apart directory komen. Voeg ook andere documenten die je hebt gemaakt (plan van aanpak en dergelijke) toe aan de zip file (eventueel ingescand en opgenomen in een Word document). Stuur de mail naar J.Z.M.broeders@hhs.nl.
Let op: Alle ingeleverde opgaven worden met elkaar vergeleken. Het inleveren van een programma van een ander wordt beschouwd als fraude (net zoals het spieken bij tentamens).
Wat gebeurt er als je niet op tijd bent met inleveren?
Als je niet op tijd bent met inleveren kun je niet meedoen met het mondeling tentamen in de week van 11 juni t/m 15 juni 2007. Je kunt dan contact opnemen met Harry Broeders om MCCA1T2/P2 alsnog af te ronden. Je krijgt dan een extra opdracht!
Let op! Deze planning kan tijdens het geven van deze onderwijsmodule nog worden aangepast!
Aanpassing 1-5-2007:
week | lessen MCCA (zie hieronder) | lessen MICB2 (zie hier) |
---|---|---|
9 (vorig kwartaal) | 1, 2, 3, 4 en 5 | |
1 | ongeveer 1 t/m 4 | 1 en 2 |
2 | 8 en 9 | 3 |
3 | 10, 11 en 7 | 4 en 5 |
4 | 6 en 12 en 13 | 6 en 7 |
les | inhoud | sheets |
---|---|---|
1 | Inleiding, toepassingen, blockschema 68HC11, naked C. | sheets les 1 |
2 | Geheugenindeling microcontroller, voorbeeldprogramma (Knight Rider), een introductie Bitn..... in C voor beginners. | sheets les 2 |
3 | Overzicht registerset, addressing modes en instructieset 68HC11, subroutines gebruik van de stack. | sheets les 3 |
4 | Interrupts, voorbeeld met de real-time interrupt. | sheets les 4 |
5 | Analoog digitaal conversie, toepassingen, programmeren van de ADC in de 68HC11. | sheets les 5 |
6 | Debuggen van embedded software, tips voor debuggen van 68HC11 C programma's. | sheets les 6 |
7 | Verschillende alternatieven voor het benaderen van memory mapped I/O ports vanuit C en C++. | sheets les 7 |
8 | Pulsvormige signalen als input, toepassingen, pulsen tellen met de pulse accumulator van de 68HC11. | sheets les 8 |
9 | Pulsduur meten met de input capture timers van de 68HC11. | sheets les 9 |
10 | Pulsvormige signalen als output, toepassingen, pulsvormige signalen genereren met de output compare timers van de 68HC11. | sheets les 10 |
11 | Uitgebreid voorbeeld: het aansturen van een stappenmotor. | sheets les 11 |
12 | Het gebruik van standaard library functies in embedded software. Het gebruik van Newlib library functies voor de 68HC11. | sheets les 12 |
13 | Concurrency problemen bij het gebruik van interrupts, C en/of C++ mixen met 68HC11 assembler. | sheets les 13 |
14 | Uitloop en herhaling. | - |
week | opdracht |
---|---|
1 | In de eerste practicumopdracht maak je kennis met de programmeeromgeving
voor de microcontroller 68HC11. Je begint met het testen van een
voorbeeldprogramma. Daarna moet dit voorbeeldprogramma worden uitgebreid. Opdracht 1: Knight Rider. |
2 | Bij deze practicumopdracht gebruik je de Real-Time Clock (RTC) interrupt
van de 68HC11 om de eerste opgave "op tijd" te laten lopen. Opdracht 2: Real-Time Clock interrupt. |
3 en 4 | In deze practicumopdracht pas je de RTC interrupt nogmaals toe. Je leert
de Analoog naar Digitaal Converter (ADC) van de 68HC11 te gebruiken om je
bier op temperatuur te houden! Opdracht 3: Bierkelder. |
5, 6 en 7 | Bij deze opdracht krijg je te maken met de input capture functie van
de timer, met de output compare functie van de timer of met de puls accumulator.
Met de input capture functie kun je de duur van een digitaal signaal bepalen
. Met behulp van de output compare functie kun je elk gewenst periodiek signaal
opwekken. Met de puls accumulator kun je wisselingen in een digitaal signaal
tellen. De practicumdocent zal je een van de volgende opdrachten toewijzen: |
-
-
-
-
-
-
-
-
-
-