Montag, 17. Dezember 2012

Der ADC arbeitet

Letzten Donnerstag habe ich mir eine Adapterplaine für den ADC von SOT-23 auf 2,54 mm Rastermaß (DIP) gelötet, um ihn auf einem Steckbrett testen zu können. Hier das nicht sonderlich schöne, aber funktionierende Ergebnis:


Beim ADC handelt es sich um den ADCS7476. Er ist zwar nicht ganz günstig, bietet aber einige Vorteile und hat folgende Daten:
  • Serieles Dateninterface
  • 1MS/sec
  • 12 Bit Auflösung
  • Betriebsspannung 3,3V und 5V
  • CLK bis 20 MHz
Die 6 Anschlüsse sind der Reihe nach: VDD, GND, VIN, SCLK, SDATA, CS

Heute warn wir wieder fleißig. Mein Ziel war es heute erste Analogwerte mit dem ADC einzulesen.

Im FPGA wird im Block "ADC" aus dem 100 MHz Systemtakt mit Hilfe eines Zählers ein 20 MHz Takt für den ADC generiert, wobei dieser zurzeit Asynchron ist: 2 Systemtakte high, 3 Systemakte low.
Zu beginn wird CS auf "0" gesetzt (low active) und dadurch der ADC Vorgang gestartet. Nach 3x "0" an SDATA folgen die 12 Datenbits. Anschließend wird CS wieder auf "1" gesetzt und nach insgesammt 20 Takten beginnt das ganze von neuem.
Nachdem der VHDL Code geschrieben wurde kam ein erster Test im Simulator... nach ein paar Fehlerkorrekturen im ADC Block und Erweiterung der Testbench mit Testdaten an SDATA sah das Ergebnis wie folgt aus:


Da die Simulationsergebnisse wie gewünscht aussahen habe ich gleich einen provisorischen Testaufbau zusammengesteckt. Bit 12 bis Bit 5 sollen an den 8 LEDs angezeigt werden (ganz links sind 4 LEDs zu sehen). Über ein Poti kann ein beliebiger Wert zwischen 0V und 3,3V an VIN gelegt werden.


Mit dem Oszi wurden SCLK (blau), CS (grün) und SDATA (gelb) aufgezeichnet:


Auf dem Oszi hat der ADC wunderbar funktioniert. Evtl. muss noch ein wenig an SCLK gearbeitet werden, damit hier steilere Flanken erziehlt werden.
Die 8 LEDs auf dem Evaboard haben auch fast richtig geleuchtet, nur irgendwo hat sich ein Fehler eingeschlichen und die 8. LED blieb dunkel. Die 7. LED stellte das MSB des ADC Wertes dar. Somit wurden nur Bit 12 - Bit 6 angezeigt. Hier muss ich Morgen nochmal ran und auf Fehlersuche gehen.

Keine Kommentare:

Kommentar veröffentlichen