Forum: FPGA, VHDL & Co. AD Wandler mit Spartan3 FPGA


von Julian N. (huhn)


Lesenswert?

Huhu zusammen

Ich hab da mal einige Fragen an die schlauen Leute hier im Forum.
Meine Diplomarbeit steht ins Haus. Das Theman kommt mir schon sehr 
schwer vor im Anspruch daher dachte ich mir das ich vielleicht hier ein 
paar Tips bekommen kann.

Aufgabe besteht darin...

Ich habe einen Spartan3 und die tolle Software Altium Designer. Damit 
sollen 8 AD-Wandler angesteuert und ausgelesen werden. Die AD-Wandler 
sollen 7401er von der Firma AD sein

http://www.analog.com/en/prod/0,2877,AD7401,00.html

später soll das ganze noch über eine Schnittstelle an einen PC zur 
Darstellung weitergeleitet werden.
Ich habe hier schon viel im Forum gelesen das wohl bei 8AD Wandlern die 
mit 20 Mhz getaktet werden und 16Bit Sampling fahren, wohl viele Daten 
anfallen. Da frage ich mich doch ob diese Datenmenge von der Hardware zu 
bewältigen ist.

Ferner ist noch nicht ganz klar wie die Daten zum PC gelangen sollen. Es 
steht ja wohl nur USB20 oder Ethernet zur Auswahl. Einen geigneten ext. 
USB20 Controller hab ich z.B. auch noch nicht gefunden. Ethernetmässig 
ist wohl beim Altium der EMAC8 dabei.

Eigentlich hätte ich ganz schön viele Fragen. Aber die jetzt alle hier 
hin zu schreiben, naja.

Vielleicht haben hier einige Forenuser etwas Erfahrung mit solch einer 
Realisierung und können ein paar wertvolle Tips geben zur Starthilfe 
oder einfach sagen "hey da hast du dir aber ein ekliges Thema 
ausgesucht" ;)

Leider habe ich in diesem Thema wenig Erfahrung gerade was VHDL 
Programmierung betrifft. Das war leider nur ein inhaltlicher Bruchteil 
eines Semesters.

danke im voraus

Julian

von Xilinxuser (Gast)


Lesenswert?

Super, das Internet. Dann kann man seine DA von anderen machen lassen. 
Blöd, dass es das zu meiner Zeit nicht gab und ich mir jeden Krümel 
selber erarbeiten und austesten musste.

Ich will aber nicht so sein: Die 20Mhz sagen ja nur, daß damit 
ausgetaktet wird, nicht wie lange integriert wird. Es fallen also 
maximal etwa 1,2MHz x 8 = 10Mhz Daten an. Geht gerade noch übers LAN, 
würde ich sagen.

von Mark (Gast)


Lesenswert?

Huhu Julian,

also wenn ich das Datenblatt des ADCs richtig verstehe liefert
so ein Teil einen 1-Bit Strom kontinuierlich, ohne Anfang und Ende,
und zwar mit 5 - 20 MHz.
Also max. 20 MBits/s * 8 = 160 MBits / s. Für ein FPGA ein Klacks,
das ärgert sich nur über so wenig Arbeit.
Bei 20 MHz kannst Du ganz gemütlich den Takt vom FPGA vorgeben lassen,
diesen an die 8 ADCs führen und die Daten mit selbigem auch synchron
wieder eintakten. Das war der einfache Teil.

Wie Du 160 MBits/s zum PC bekommst steht auf einem anderen Blatt ;-)
Ich würde bei einschlägigen Embedded-Computer Herstellern nach einem
mögl. einfachen Modul fragen wo ein Controller mitsamt Betriebssystem
fertig drauf läuft, an Peripherie brauchts nur einen externen Bus
(möglichst breit) und einen GigaBit Ethernet Port.
Die Daten machst Du schön parallel, z.B. 32Bit und lässt sie
vom Controller abholen. (Bei 32bit wären das 5 MWorte/s).
Dieser schickt sie dann über TCP/IP zum PC.
Wenn Du die Daten im FPGA vorverarbeitest (Dig. Filter) wirds
wahrscheinlich noch langsamer und es geht mit 100MBit Ethernet.
Den Treiber muss natürlich jemand schreiben, aber das sollte sich
machen lassen.

Wenn Du Hardcore willst implementierst Du den TCP/IP im FPGA und hängst
außen einen PHY dran, davon würde ich Dir aber abraten.

Oder Du findest einen schönen USB2.0 Baustein der sich einfach 
ansprechen
lässt...



von Julian N. (huhn)


Lesenswert?

hmmm.

also ist meine rechnung nicht richtig?

ich hatte 20Mhz angenommen bei 16 bit. da komme ich auch 80khz 
samplefreq und  wegen aliaseffekt usw nochmal halbieren so 40 khz.
dabei ging ich davon aus das ich also 40000 messung pro sekunde bekomme 
die 16bit lang sind.

ist das nicht richtig oder wie?
ich komme halt nicht so ganz klar mit dem blöden Datasheet von AD.

naja und das es wohl ein Delta-Sigma Wandler ist und ich nachher noch 
die werte, mit einem der dem unten aufgeführten algorithmus sehr ähnlich 
ist, aufbereiten muss ist ja dann nochmal ne andere baustelle.
da wird ja auch beschrieben das man wohl nen dsp besser dafür nehmen 
sollte oder einen andern fpga.
da fehlen mir halt die erfahrungswerte zu sagen:" hey das kann mein 
spartan 3 noch"

gruss

Julian

von Mark (Gast)


Lesenswert?

Hallo nochmal,

so genau hatte ich mir das Datenblatt gar nicht angeschaut,
im Verilog-Bsp. ist der Word-Clock MCLK/256, also bekommst
Du 16bit Datenworte mit 80 kHz. Das ganze 8 mal, also sind
1,28 MBytes/sek zum PC zu schaufeln wenn Du dieses Filter
im FPGA realisierst -> nicht wirklich viel !
Zeig doch mal etwas Action und mach eine Ressourcenabschätzung
für die Implementierung dieses Filters im FPGA! Da wirst Du
ja sehen, ob 8 solche Filter reinpassen.
Die Logik zum Bits einlesen kostet praktisch nichts, bleibt nur
nur das Interface zur Datenübergabe übrig.

von Gast123 (Gast)


Lesenswert?

Ich würde da evtl. einfach nen Microblaze draufmachen. Den kannst ja mit 
50 oder 100 MHz takten, das ist evtl. sogar genug um die digitalen 
Filter in Software umzusetzen.

Ne Soft-MAC ist beim Microblaze auch schon dabei, brauchst also nur noch 
ne Ethernet-PHY und was dazugehört in Hardware.

Musst halt dann einen OPB-Core für deinen AD-Wandler schreiben. Ist aber 
nicht der große Aufwand.

Das ganze gibts natürlich dann auch in kostenlos: den OpenRisc + 
Wishbone-Bus + entsprechende MAC.

Und was ich grad noch sehe ist, dass es wohl beim Altium eine ähnliche 
Plattform gibt. Die kannst du dann natürlich nutzen.

Übrigens: die 20 MHz sind die maximale Rate. Du kannst vermutlich auch 
weniger nehmen, je nachdem was deine Anwendung können muss.

So schwer vom Anspruch klingt das alles nicht ehrlich gesagt. Aber 
anscheinend werden FPGA an den Hochschulen nicht wirklich gelehrt (war 
bei uns ja nicht anders...)

von Xilinxuser (Gast)


Lesenswert?

>anscheinend werden FPGA

Da kommts wohl weniger auf die konkrte Umsetzung in eine FPGA , denn 
mehr auf allgemeine Digitalelektronik an. So arg viel Zait hat man an 
den Uni auch wieder nicht und dort geht es ja um die Grundlagen,

von Hexman (Gast)


Lesenswert?

Hallo Julian,

schreibst Du auch was allgemeines in Deine Arbeit vom Altium Designer ?
Weil ich mache gerade so etwas ähnliches.
Antworte doch bitte auf m.j.wandschura@web.de

Grüsse

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.