MICPRG opdracht 5.

© Harry Broeders.

Deze pagina is bestemd voor studenten van de Haagse Hogeschool - Academie voor Technology, Innovation & Society Delft groep EQ1.2.

Periode-tijd-meter.

De AVR STK500 systemen van de opleiding Elektrotechniek aan de Academie voor Technology, Innovation & Society Delft zijn uitgerust met een timer-IC NE555 dat een blokgolf opgewekt op pin PD6 = ICP1 van de ATmega32. Door het aansluiten van een capaciteit tussen de zwarte en de blauwe connector kun je de frequentie variëren. Op pagina 10 en 11 van de NE555 datasheets De voorgaande link verwijst naar een PDF bestand. staat uitgelegd hoe de onderstaande schakeling werkt en hoe je de periodetijd van de opgewekte blokgolf kunt berekenen.

Maak een periodetijd-meter gebaseerd op de input capture unit van Timer/Counter1 van de ATmega32. De periodetijd moet op zo nauwkeurig mogelijk gemeten worden. De gemeten periodetijd moet op het LC-Display worden zichtbaar gemaakt met de tekst: "De periodetijd is: ........µs". Laat alleen significante cijfers zien.

Uitleg en tips.

Als er geen Cx wordt aangesloten (Cx = 0) is de periodetijd ongeveer 250 µs. Je mag ervan uitgaan dat Cx maximaal 0,5 µF is (de periodetijd is dan ongeveer 13000 µs). De klokfrequentie van de ATmega32 op het STK500 practciumbord is ingesteld op exact 3.686400 MHz.

Je kunt het programma p.hex gebruiken om te kijken wat de periodetijd bij een bepaalde C is. Je kunt dit programma in het flash van de ATmega32a krijgen door in Atmel Studio naar Tools->Device Programming te gaan. Selecteer de juiste Tool (JTAG) en device (ATmega32A) en druk op Apply. Ga naar het tabblad Memories en selecteer bij Flash de p.hex die je gedownload hebt. Druk daarna op Program.

Het programma p.hex bepaalt de exacte periodetijd in µs (± 1 µs) van het signaal op PD6 en geeft dit continue weer. Telkens als ledje PB7 knippert wordt het display opnieuw beschreven. Waarom komt de waarde die getoond wordt door het programma p.hex niet overeen met de theoretische waarde? Als jouw periodetijd-meter een andere waarde meet dan het programma p.hex dan moet je dat kunnen verklaren!

Geen probleem: Bereken het aantal ticks van Timer/Counter1 die voorbijgaan tijdens een periodetijd van het signaal op PD6 als Cx = 0,5 µF. Past dit in 16 bits?

Aanpak.

Maak een stappenplan en maak voordat je een (deel)programma gaat coderen eerst een ontwerp op papier. De practicumdocent zal naar dit stappenplan en ontwerp vragen bij het aftekenen van je opdracht.