Universität Koblenz Landau Name:..... Institut für Physik Vorname:..... Hardwarepraktikum für Informatiker Matr. Nr.:..... Analoge Schnittstellen Versuch Nr. 8 Vorkenntnisse: Komponenten eines Mikrocontrollersystems, Architektur und Befehlssatz des Mikrocontrollers AtMega16, Unterprogramme, Stapelzeiger und speicher, Zahlendarstellung, Hardware, AD/DA Wandler, R2R Umsetzer, Verfahren der sukzessiven Approximation.
Versuch 8 2 In den vier folgenden Aufgaben dieses Versuches lernen Sie einfache analoge Schnittstellen zwischen Mikrocomputern und Umwelt kennen. Die hierzu benötigten Schaltungen sind bereits aufgebaut. Sie können alle Aufgabe wahlweise in Assembler oder in C programmieren. Teilweise sind die Aufgabe nach programmiersprache unterschiedlich in der Anforderung. 1. D/A-Wandler Die nachfolgende Schaltung zeigt einen 4 Bit Digital nach Analog Wandler, basierend auf dem R2R Verfahren. 1.1 Aufgabe Berechnen Sie für die Kombinationen (2 3 2 2 2 1 2 0 ˆ= 0000, 0101, 1001 und 1111) der Eingangsvariablen die Ausgangsspannung U A (U H = 5V, U L = 0V ). Stellen Sie Ihr Ergebnis graphisch dar. 1.2 Aufgabe Überprüfen Sie Ihr Ergebnis, indem Sie die Eingänge des Wandlerbausteins mit dem Geberbaustein verbinden. Erstellen Sie die Meßkurve aller Kombinationen der Eingangsvariable und vergleichen Sie das Ergebnis mit den berechneten Werten aus Aufgabe 1.1. 2
Versuch 8 3 2. Funktionsgenerator mit einem Mikrocomputer Schreiben Sie ein Assembler- oder C-Programm, das mit Hilfe eines 4 Bit DA Wandlers folgende Signalformen erzeugen kann: Sinus Sägezahn Dreieck Die Funktionswerte der einzelnen Signale sollten dabei tabelliert im Programm vorliegen. 3
Versuch 8 4 Um das Arbeiten mit negativen Zahlendarstellungen zu vermeiden, sei der Nullpunkt bei dem Wert 08 h, d.h. : Das Minimum der Funktionen ist bei 00 h und das Maximum bei 0F h. Diese Darstellung kann dann auf dem Oszilloskop korrigiert werden, indem die Funktion mittels des Y Pos. Knopfes verschoben wird. Kommentieren Sie alle Anweisungszeilen! Befehl Kommentar 4
Versuch 8 5 3. A/D-Wandler Erweitert man die Schaltung aus Aufgabe 1 wie nachfolgend gezeigt, so erhält man einen Analog nach Digital Wandler mit einem D/A Wandler in der Rückkopplung. Das Dreieck in der Schaltung ist ein Komparator, der zwei analoge Spannungen auf Gleichheit überprüfen kann. Er gibt am Ausgang ein HIGH Signal aus, wenn die Differenzspannung U D positiv ist. Dieser Wert kann dann zum Vergleich verwendet werden. A D DA-Wandler (aus Aufgabe 1) ECB16 U D Komparator (LN358) Messeingang Schreiben Sie ein Programm, das mittels der oben genannten Schaltung die unbekannte Spannung U mess ermittelt. Man kann dazu zwei verschiedene Verfahren anwenden: a.) Man zählt alle Kombinationen der D/A Wandler Eingänge durch und fragt ab, wann sich der Testausgang ändert. Wenn Sie in Assembler programmieren, können Sie dieses Verfahren implementieren. b.) Man benutzt die sukzessive Approximation, d.h. ähnlich wie beim Wiegen mit einer Balkenwaage wird die unbekannte Spannung mit 4 Testschritten eingekreist. Dabei beginnt man mit dem höchstwertigen Bit. Wenn Sie in C programmieren, müssen Sie dieses Verfahren implementieren. Hinweis: Die beteiligten Bauteile weisen eine Signallaufzeit auf. Es ist daher sinnvoll, nach Ausgabe eines Wertes eine Verzögerung vor dem Einlesen des Ergebnisses in das Programm einzubauen. Testen Sie Ihr Programm, indem Sie die obige Schaltung mit dem ECB16 verbinden. Beachten Sie, daß der Komparator (LM358) nicht in den Wandlerbausteinen enthalten ist! 5
Versuch 8 6 Kommentieren Sie alle Anweisungszeilen! Befehl Kommentar 6
Versuch 8 7 4. Nachführung einer Solarpanels Es soll ein Solarpanel in Richtung des maximalen Lichteinfalls gedreht werden. Das Solarpanel ist auf der Achse eines Servomotors montiert. Dazu ist die Spannung, die das Panel erzeugt, vor und nach einer Drehbewegung zu vergleichen. Nimmt die Spannung zu, so muss die nächste Drehbewegung in dieselbe Richtung führen. Nimmt die Spannung abgenommen, so ist die Richtung umzukehren. Wernn Sie eine Assemblerlösung bevorzugen, können Sie auf die Ansteuerung von Servomotoren aus Versuch7 zurückgreifen. Befehl Kommentar 7