Der AD-Wandler
Zu einem System gehört auch die Eingabe und eventuell auch die Ausgabe
von analogen Wert. Dafür benötigt man entsprechende AD bzw. DA-Wandler,
die auf dem DE2.115 Board nicht vorhanden sind. AD-Wandler sind in
vielfältigen Ausstattungen auf dem Markt erhältlich. Dabei
unterscheiden sie sich in der Versorgungsspannung, dem Datenbus und der
Wandlertiefe (Bitbreite). Um die Programmierung möglichst einfach zu
gestalten schieden die über SPI bzw I2C anzusprechende Wandler erst mal
aus, da die Programmierung einer seriellen Schnittstelle umfangreicher
ist. Bei den AD-Wandlern mit paralleler Schnittstelle ist die Auswahl
leider nicht so groß. Ausgewählt wurde der AD7813.
AD7813 Features
- 8 Bit-Datenbus
- Wandlertiefe (Bitbreite) 10Bit
- 400kSPs (also 400.000 Messungen pro Sekunde)
- an externer Beschaltung wird nur ein 10µF und ein 100nF Kondensator benötigt
- Versorgungsspannung von 2,7-5,5V
Bei AD7813 ist der Datenbus nur 8 Bit breit, obwohl der Wandler 10 Bit
aufnehmen kann. Zuerst werden die 8 höherwertigen Bits ausgelesen,
danach die 2 niederwertigen. Wenn 8 Bit Datenbreite ausreichend ist,
vereinfacht sich die Abfrage erheblich.
Der Wandler verfügt über einen Analogeingang, einen Eingang für die
Referenzspannung, 4 Steuerleitungen und 8 Datenleitungen. Als
Referenzspannung wird hier einfach die Versorgungsspannung von 3,3V
gewählt. Diese muss unbedingt mit einem 10µF Tantal-Kondensator und
einem 100nF Keramik-Kondensator gesiebt werden, um Störungen zu
vermeiden.
Die Steuerleitungen (aus dem Datenblatt)
CONVST
|
Geht dieser Eingang mindestens
20ns von Low auf High und dann wieder auf Low, so wird an der fallenden
Flanke die Messung gestartet. Diese dauert maximal 2,3µs. Mit diesem
Signal wird auch der Power-Down Modus gesteuert, dazu später mehr.
|
BUSY
|
Dieses Ausgangssignal geht von Low auf High solange der Messvorgang läuft.
|
CS
|
Chip Select (ist hier immer LOW, da der Chip ständig arbeiten soll)
|
RD
|
Solange der Eingang RD Low ist
werden Daten am Datenbus angezeigt. Ansonsten ist er hochohmig. Mit RD
kann auch die Auswertung der vollen 10 Bit gesteuert werden.
|
Der AD7813 verfügt über einen Power-Down Modus. Zwischen zwei Messungen
schaltet sich der Wandler ab um Strom zu sparen. Geht am Eingang CONVST
das Signal von Low auf High, so braucht der Wandler 1,5µs um messbereit
zu sein. Intern wird daher ein entsprechendes Signal erzeugt und eine
weitere Eingabe von CONVST ignoriert. erfolgen die Messungen schnell
genug hintereinander, so gelangt der Wandler nicht in den Power-Down
Modus. Um Probleme zu vermeiden, wurde deshalb für das Timing folgendes
Signal erzeugt.
Zuerst wird 2µs CONVST auf High gelegt, danach 2,5µs auf LOW. Von
diesen 2,5µs braucht der Wandler maximal 2,3µs für die Messung, in der
Restzeit werden die Daten übernommen. Mit einer ODER-Verknüpfung aus
dem Signal CONVST und BUSY wird das Signal RD erzeugt. Mit diesem
Timing sind immerhin 222kSPs zu erreichen. Mit wenigen Anpassungen am
Programm könnte sogar die volle Messfrequenz ausgenutzt werden.