B. Kainka:

Lernpaket Mikrocontroller

Franzis-Verlag, 2007

Siehe auch: www.elo-web.de/messen-steuern-und-regeln/mikrocontroller-und-programmierung/avr-grundlagen


Vorwort

Mikrocontroller sind nichts anderes als vollständige kleine Computer mit Recheneinheit, Speicher, Schnittstellen und allem was sonst noch dazu gehört. Die neuere Entwicklung hat dazu geführt, dass immer mehr in einen kleinen Chip gepackt wurde. Ein achtbeiniges IC wie der im Lernpaket enthaltene ATTINY13 enthält bereits so viele Möglichkeiten, dass es praktisch unmöglich ist alle zu nutzen.

Entwickeln Sie Ihre eigenen Anwendungen und damit praktisch Ihr eigenes Spezial-IC. Sei es eine spezielle Alarmanlage, ein Messgerät oder eine Robotersteuerung, mit den entscheidenden Grundkenntnissen können Sie Ihre Ideen umsetzen. Die im Lernpaket enthaltene Hardware ist zugleich Entwicklungsplattform und Programmiergerät. Sie können also weitere Mirkocontroller programmieren und dann in Ihre Schaltungen einbauen.

Vor nicht allzu langer Zeit war die Arbeit mit Mikrocontrollern eine aufwändige Sache. Da musste man für jeden Versuch ein EPROM programmieren und in die Schaltung einsetzen. Jede Programmänderung machte es erforderlich, den Speicher aus dem Sockel zu nehmen, mit UV-Licht zu löschen, in einem Programmiergerät neu zu programmieren und wieder in die Schaltung einzusetzen. Insbesondere durch die Einführung des in den Mikrocontroller integrierten Flash-Speichers ist dagegen die Programmierung sehr bequem geworden. Nun bleibt der Mikrocontroller in der Schaltung und wird in wenigen Sekunden elektrisch gelöscht und neu programmiert. Da macht es richtig Spaß, ein Programm in vielen kleinen Schritten zu entwickeln und zu testen.

Für die erfolgreiche Arbeit mit dem Lernpaket sind Englischkenntnisse sehr hilfreich, wenn auch nicht unverzichtbar. Es ist nicht mehr zu übersehen, dass Englisch die Sprache der Elektronik ist. Datenblätter zu Mikrocontrollern sind selbst dann in Englisch verfasst, wenn sie von deutschen Herstellern stammen. Auch Hilfedateien und Anleitungen für professionelle Programmierwerkzeuge gibt es nur noch in englischer Sprache. In diesem Handbuch werden jedoch die entscheidenden Begriffe so erläutert, dass Sie die wichtigsten Fakten auch ohne Englischkenntnisse nachvollziehen können.

Inhalt des Experimentierhandbuchs:

1 Einleitung 8
1.1 Bauteile 8
1.2 Die Schaltung 10
1.3 Aufbau 12
1.4 Software 14

2 Die ersten Experimente 17
2.1 Überprüfung der Stromversorgung 17
2.2 Initialisierung 20
2.3 Oszillator-Abgleich 23

3 Interface-Funktionen 25
3.1 Nutzung der Ports als Ausgänge 25
3.2 Ports als Eingänge 28
3.3 Spannungsmessung 30
3.4 Lichtmessung mit Fototransistor 35
3.5 Das Oszilloskop 37
3.6 Der PWM-Ausgang 40
3.7 Schaltschwellen 45
3.8 Pullup-Widerstände 46
3.9 Programm-Upload 48

4 Assembler-Grundlagen 52
4.1 Das AVR Studio 52
4.2 Ausgangsports 57
4.3 Bits und Bytes 61
4.4 Ein Blinkprogramm 62
4.5 Unterprogramme 63
4.6 Geschwindigkeitstest 65
4.7 Digitale Eingänge 67
4.8 Die UND-Funktion 70
4.9 Die Oder-Funktion 73
4.10 Das RS-Flipflop 74
4.11 Das D-Flipflop 75
4.12 Das Toggle-Flopflop 76

5 Die serielle Schnittstelle 79
5.1 Übertragungsparameter 79
5.2 Daten-Echo 80
5.3 Empfangen und Senden 82
5.4 RS232-Testprogramm 85
5.5 Automatische Baudratenerkennung 86

6 Der Timer/Counter 91
6.1 Zeitmessung 91
6.2 Impulse zählen 93
6.3 Timer-Interrupt 95
6.4 Minuten-Timer 97
6.5 PWM-Ausgang 99
6.6 Der weiche Blinker 100
6.7 Frequenzmessung 102

7 Der AD-Wandler 105
7.1 10-Bit-Messung 105
7.2 8-Bit-Messung 109
7.3 Interne Referenz 110
7.4 Zweipunktregler 111
7.5 Dämmerungsschalter 112
7.6 Alarmanlage 115

8 Datenspeicher 117
8.1 Das RAM 117
8.2 Speicheroszilloskop 121
8.3 Das EEPROM 123

9 Das Interfaceprogramm 127
9.1 Interpreterschleife 127
9.2 Ein- und Zweikanal-Oszilloskop 129
9.3 Oszillator-Kalibrierung 130
9.4 Der Bootloader 133

10 Bascom-AVR 147
10.1 Blinkprogramm 137
10.2 RS232 und AD-Wandler 140
10.3 Ein Datenlogger 142

11 C-Programmierung 147
11.1 Win-AVR 147
11.2 Das erste C-Projekt 147

12 Ein Programmiertool 153
12.1 ISP-Upload 153
12.2 Fuses 154


Tipp zur Fehlersuche:

Aus zahlreichen Rückmeldungen und erfolgreichen Problemlösungen ergibt sich inzwischen (Jan. 08) folgendes Bild: Der häufigste Fehler scheint in kalten Lötstellen zu liegen. Vor allem im Bereich des DB9-Steckers kann es zu Problemen kommen, wenn man nicht heiß genug lötet. Oft funktioniert dann zuerst alles wunderbar, aber nach einiger Zeit treten Probleme auf. Man hat den Eindruck, jetzt ist der Controller kaputtgegangen. Aber tatsächlich hat sich eine kalte Lötstelle gelöst. Stellvertretend für viele ähnliche Emails sei hier aus der Rückmeldung von T. Schober zitiert:

"Ich hab nun alle 40 Lötstellen aufgeschmolzen und siehe da, es tut! Wahrscheinlich gab's eine kalte Lötstelle, die am Anfang geleitet hat (da ging ja noch alles) und dann eine Unterbrechung  produziert hat!"

Siehe auch:
Beispielanwendungen

Tipps zur Fehlersuche