Forum: FPGA, VHDL & Co. (X)ADC daten an UART schicken


von Renate (Gast)


Lesenswert?

Hallo,

ich stehe ganz am Anfang eines Projekts und möchte gerne mit einem FPGA 
Daten von einem AD-Wandler abholen und über UART an den PC schicken.
Jetzt überlege ich was ich alles brauche um diese Kette zu realisieren, 
hab vorhe rnoch nie mit einem AD-Wandler gearbeitet.

Auf meinem Board ist ein Xilinx chip der über einen integrierten (X)ADC 
(Xilinx AD-Wandler) verfügt.
Die Beispiele die ich für diesen AD-Wandler finde sind eigentlich alle 
mit der einer Serie vom Hersteller gebaut, die eine CPU mit auf dem Chip 
hat.
Ich habe bei mir "nur" einen FPGA, ohne CPU und dachte erst auch nicht, 
dass ich für diese Kette ADW->...->UART->PC eine CPU brauche..

Ich könnte natürlich eine Softcore CPU implementieren. Ist das wirklich 
nötig/sinnvoll/"macht man das so?"

Danke!

von Gustl B. (-gb-)


Lesenswert?

Kann man machen, muss man aber nicht. Ist ohne CPU auch nicht sehr 
schwer sobald man weiß wie man den XADC verwendet. Ich habe das mit dem 
DRP gemacht, das ist deutlich einfacher als AXI.

Aber der ADC liefert schneller Daten als der UART senden kann. Es ist 
also sinnvoll Speicher im Fpga zu verwenden um samples 
zwischenzuspeichern.

Also mit dem ADC schnell messen und samples in den schnellen RAM 
schreiben, dann die Daten langsam über UART raussenden. Und wieder neue 
samples aufnehmen. Geht natürlich nur wenn man nicht durchgehend 
Messwerte braucht. Sonst müsste man die samplerate runtersetzen.

von Martin O. (ossi-2)


Lesenswert?

Vermutlich musst Du pro ADC -Sample mehrere Bytes seriell senden. 
Eventuell willst Du sogar lesbare Dezimalwerte senden, dann must Du noch 
ne Binaer->Dezimal_>ASCII Conversion implementieren. Das alles ist 
eventuell mit einem Softcore am einfachsten zu machen.

von Renate (Gast)


Lesenswert?

Vielen Dank für die Antworten! Das ist sehr richtungsweisend und sagt 
mir schonmal worauf ich besonders achten muss :)

Gustl B. schrieb:
> sobald man weiß wie man den XADC verwendet. Ich habe das mit dem
> DRP gemacht, das ist deutlich einfacher als AXI.

Ich hab mir das angeschaut und stehe mit der Eingabe für daddr_in[6:0] 
auf dem Schlauch.
In der Doku heißt es da nur "Address bus for the dynamic reconfiguration 
port."
Woher weiß ich jetzt welche Adresse ich da übergeben soll bzw welche 
Adresse mein Channel hat?

von Gustl B. (-gb-)


Lesenswert?

Das steht ebenfalls im Datenblatt. Hier 
https://www.xilinx.com/support/documentation/user_guides/ug480_7Series_XADC.pdf 
auf Seite 36 ist die Übersicht. Welche Adresse du braucht hängt davon ab 
wie du den XADC konfigurierst.

von Renate (Gast)


Lesenswert?

vielen Dank!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.