|
Bitte beachte die Copyrighthinweise.
AD-Wandler 1
1 Aufgabenstellung
· Aufbau eines AD-DA Wandlers mittels 80C537 (AD) und eines PM 7528 (DA) Bausteins
· Erstellung eines Microcontrollerprogramms, Aufnahme des Signalverlaufs, Abtasttheorem
2 Schaltung
Die Schaltung gesteht aus folgenden Teilen:
- Eine Microcontrollerplatine A1 mit einem 80C537 Baustein. Am Port 7.0 (Analog IN 0) wird das Analogsignal eingespeist. Die analoge Masse sowie die Referenzspannung sind mit eigenen Leitungen realisiert.
- Einer DA-Wandlerplatine
A2, vgl. Laborprotokoll 8 DA-Wandler.
Anstelle des EEPROMS 2764 wurde ein Flachbandkabel eingesetzt und mit
Port 1 der Microcontrollerplatine verbunden. Somit wird der PM-7528
nicht mehr von der Zähler/EEPROM-Kombination, sondern vom Port 1
angesteuert.
Verbindungsliste:
Port |
Bus auf Platine |
(Pin Flachbandkabel) |
statt Pin x von 2764 |
1.0 |
a2 |
22 |
11 (D1) |
1.1 |
a3 |
23 |
12 (D2) |
1.2 |
a4 |
24 |
13 (D3) |
1.3 |
a5 |
1 |
14 (D4) |
1.4 |
a6 |
2 |
15 (D5) |
1.5 |
a7 |
3 |
16 (D6) |
1.6 |
a8 |
4 |
17 (D7) |
1.7 |
a9 |
5 |
18 (D8) |
3 Programm
Als Dokumentation wurde die Beschreibung des AD-Wandlers im 80C517 verwendet.
Funktionsweise:
- Zuerst wird mit ADCON1 der Analogeingang 0 (P7.0) gewählt (MX3 bis MX0 auf 00h)
- Mit ADCON0 wird keine ext.Triggerung und Einzelwandlung eingestellt.
- Durch einen Schreibzugriff auf DAPR wird die Wandlung gestartet (hier 0V bis 5V).
- Danach wird in einer Schleife 500 Zyklen (500ms = 2kHz) gewartet. Dies gibt dem Microcontroller ausreichen Zeit für die Wandlung (13 Zyklen) und ergibt eine definierte Ausgabefrequenz.
- Am Ende wird das Ergebnis der Wandlung auf Port 1 geschreiben und vom PM-7528 wieder in ein Analogsignal umgewandelt.
;*********************************************************************
; Editor: Florian Rosenauer @ HTBLA Karlstein, Austria-3830 Waidhofen
; Datum: 06/Mär/1997 Klasse/Gruppe/Kat.Nr : IV-EA/-/--
;*********************************************************************
; Sprache : ASM für 80C537
; Programm Nr. : Labor 16 AD-Wandler PRG1
; Version : 1.00
; Kurzbeschreibung : Liest P7.0 (analog) ein und gibt auf P1 den
; Digitalwert aus.
;*********************************************************************
#include 537.inc
.org $0000
ljmp $0100 ;Sprung über Interupts
.org $0100
start: ; INIT
mov $DC,#$00 ;ADCON1 (MX3 bis MX0) auf 0 ->Port P7.0
mov $D8,#$00 ;ADCON0 ->kein ext.Trig, Einzelwandlung
; WANDLUNG
wandl: mov DAPR,#$00 ;DAPR ->Spannung 0-5V, Start der Wandlung
mov r0,#250
T500: djnz r0,T500 ;500 Zyklen vergehen (500us = 2kHz)
;oder Busy-Bit mit "jb bsy,T500" abfragen
mov P1,ADDAT ;ADDAT enthält Ergebnis
ljmp wandl
.end
La16a.asm
4 Messungen
Aus Zeitgründen waren keine genauen Messungen möglich, deshalb können z.T. nur qualitative Aussagen getroffen werden.
Die Abstufungen betrugen wie erwartet 500ms, die Auflösung betrug jedoch nur etwa 8 bis 12 Stufen und nicht wie erwartet 256 (28). Die Fehlerquelle konnte aus Zeitgründen nicht gefunden werden.
Danach wurde die Frequenz des Eingangssignals in den Bereich der Abtastfrequenz erhöht, so dass sich eine Schwebung mit der Differenzfrequenz ergab. Theoretisch ergebe sich bei gleicher Frequenz ein DC-Ausgangswert (vgl. Abtasttheorem):
Bei der Wandlung treten verschieden Fehler auf:
- Ein Abtastrauschen, das durch eine nicht konstante Abtastperiode Tabtast entsteht. Erkennbar ist dieser Fehler an der schwankenden Triggerung des Oszilloskops.
- Ein Quantisierungsrauschen, welches durch einige bei jeder Periode längere Stufen erkennbar ist. Dies ist beim Microcontroller nicht aufgetreten, jedoch bei den anderen Laborgruppen beim Arbeiten mit den PC-Steckkarten.
5 Interpretation der Messergebnisse
Der Microcontroller bietet leicht nutzbare Möglichkeiten zur AD-Wandlung. Besonders zu beachten ist hierbei jedoch das Abtasttheorem (max. Eingangsfrequenz = halbe Abtastfrequenz).