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.