Studiewijzer MCCA1T2 en MCCA1P2.

© 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

Inleiding

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.

Globale leerdoelen

Als je deze onderwijseenheid met een voldoende hebt afgesloten ben je in staat om:

Literatuur

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, Sheets

Broeders, Practicumopdrachten.

Toetsing en beoordeling.

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!

Weekplanning theorie.

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

Weekplanning practicum.

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:

-

-

-

-

-

-

-

-

-

-