Hallo erstmal. Ich wollte die Wandlungen des AD-Wandlers AD7266 (http://www.analog.com/en/prod/0,,AD7266,00.html) mit einem FPGA einlesen. Leider habe ich dabei ein kleines Problem: Um die 2MS/s Abtastrate zu erreichen, benötigt der ADC einen Takt von 32MHz (31,25ns). Laut Datenblatt ist aber die Zeit, die der ADC benötigt um gültige Datem am Ausgang zu garantieren max. 27ns@5Vdd (gerechnet ab der fallenden Taktflanke des SCLK). Das heißt aber nicht, dass nicht früher gültige Daten anliegen könnten. Ca. 5ns Stabilisierungszeit für das Datensignal ist mir ein wenig zu kurz. Das Datum des vorigen Taktes an der steigenden Taktflanke einzulesen ist auch nicht möglich, denn es könnte ja sein, dass es das gültig Datum des aktuellen Taktes ist (wenn es keine 27ns gedauert hat, das Datum anzulegen). Kann mir jemand einen Tip geben, wie ich sicherstellen kann, dass die Daten zum richtigen Zeitpunkt eingelesen werden? Danke.
@ Gast >Ich wollte die Wandlungen des AD-Wandlers AD7266 >Um die 2MS/s Abtastrate zu erreichen, benötigt der ADC einen Takt von >32MHz (31,25ns). Laut Datenblatt ist aber die Zeit, die der ADC benötigt >um gültige Datem am Ausgang zu garantieren max. 27ns@5Vdd (gerechnet ab >der fallenden Taktflanke des SCLK). Das heißt aber nicht, dass nicht >früher gültige Daten anliegen könnten. Könnten, aber nicht garantiert. >Ca. 5ns Stabilisierungszeit für das Datensignal ist mir ein wenig zu Der Fachmann nennt das Setup-Zeit. Für ein FPGA von heute sind 5ns Setup-Zeit mehr als ausreichend.Allerdings sind die meisten FPGAs nicht 5V tolerant. Da brauchst du ggf. ein Levelshifter. Dann wirds eng. Vielleicht musst du ein FlipFlop der LVC Baureihe nehmen. >kurz. Das Datum des vorigen Taktes an der steigenden Taktflanke >einzulesen ist auch nicht möglich, Doch, genauso funktioniert synchrone Schaltungstechnik. Z.B. der PCI-Bus in jedem PC. Und der läuft auch mit 33 MHz. Jeder Zähler, jede State Machine im FPGA läuft so. > denn es könnte ja sein, dass es das >gültig Datum des aktuellen Taktes ist (wenn es keine 27ns gedauert hat, >das Datum anzulegen). Nein, definitiv nicht. Es gibt auch eine minimale Zeit, die die Daten brauchen um aus dem AD-Wandler ausgegeben zu werden (Minimum Hold Time), und die ist hier 5ns@5V. Deine Daten liegen als min. 5ns vor und 5ns nach der Flanke stabil an. Das reicht dicke. Der "Trick" ist, dass du im FPGA die FLipFolp der IO-Zellen benutzen musst, dann sind diese Zeiten kein Problem. >Kann mir jemand einen Tip geben, wie ich sicherstellen kann, dass die >Daten zum richtigen Zeitpunkt eingelesen werden? Siehe oben. MFg Falk
@Falk Erstmal vielen Dank für deine Antworten. > Der Fachmann nennt das Setup-Zeit. Dann habe ich mich wohl durch die Unterlassung der Nutzung des Fachwortes aufs Fürchterlichste blamiert ;o) > Allerdings sind die meisten FPGAs nicht > 5V tolerant. Ich weiß. > Da brauchst du ggf. ein Levelshifter. Glücklicherweise nicht, denn der AD-Wandler hat noch eine extra Versorgung für das serielle Interface. > Doch, genauso funktioniert synchrone Schaltungstechnik. Z.B. der PCI-Bus > in jedem PC. Und der läuft auch mit 33 MHz. Jeder Zähler, jede State > Machine im FPGA läuft so. Das ist mir wohl bewusst! Allerdings erschienen mir 5ns als zu kurz, als dass das Signal bereits sauber anliegen könnte. Unter diesem Gesichtspunkt, und unter der Annahme, dass das Signal praktisch an jedem Zeitpunkt der Zykluszeit angelegt werden konnte, empfand ich es als schwierig, den richtigen Abtastpunkt zu finden. Wenn allerdings ~ 4-5ns Setup-Zeit ausreichen, ist die Sache deutlich entschärft. > Deine Daten liegen als min. 5ns vor und 5ns > nach der Flanke stabil an. Das reicht dicke. Der "Trick" ist, dass du im > FPGA die FLipFolp der IO-Zellen benutzen musst, dann sind diese Zeiten > kein Problem. Ah, ok. Dann werd ich mich mal in der Richtung schlau machen. Basiert die Aussage, dass 5ns setup- und 5ns hold-zeit dicke reichen auf Erfahrung? Im Datenblatt (CycloneII) habe (noch) nichts genaueres zu diesem Punkt gefunden. Danke.
@ Gast >> Da brauchst du ggf. ein Levelshifter. >Glücklicherweise nicht, denn der AD-Wandler hat noch eine extra >Versorgung für das serielle Interface. Jaja, aber bei 3,3V ist es langsamer als bei 5V Betrieb! Möglicherweise kannst du einen "Ultra-Low-Cost" Levelshifter benutzten, einen 100 OHm Vorwiderstand. >> Doch, genauso funktioniert synchrone Schaltungstechnik. Z.B. der PCI-Bus >> in jedem PC. Und der läuft auch mit 33 MHz. Jeder Zähler, jede State >> Machine im FPGA läuft so. >Das ist mir wohl bewusst! Allerdings erschienen mir 5ns als zu kurz, als >dass das Signal bereits sauber anliegen könnte. Unter diesem Doch, das Datenblatt sagt es ja. Maximale "Data access time" ist 27ns@5V, d.h. nach 27ns liegen gültige Daten GARANTIERT an. >Ah, ok. Dann werd ich mich mal in der Richtung schlau machen. >Basiert die Aussage, dass 5ns setup- und 5ns hold-zeit dicke reichen auf >Erfahrung? Im Datenblatt (CycloneII) habe (noch) nichts genaueres zu >diesem Punkt gefunden. Sowohl als auch. http://www.altera.com/literature/hb/cyc2/cyc2_cii51005.pdf Seite 19, Tabelle 5-17. TSU (Setup Time) und TH (Hold Time). Allerdings ist das nicht alles. Man muss ncoh die Verzögerung des Taktes berücksichtigen. Das kann ich auf die Schnelle aber nicht ausrechnen. Die Altera-Datenblätter sind ein wenig, ähhh, gewöhnungsbedürftig. Zum Vergleich. Beim Spartan3 von Xilinx, welcher mit Cyclone-II vergleichbar ist, liegen die Setup-Zeiten bei 2-3ns (mit DLL) bzw. 2,5-6ns (ohne DLL, wobei die grossen Zeiten nur für die SEHR grossen Typen mit 1M++ Gates gelten). Hold-Zeiten sind Null oder sogar negativ. Fakt ist, dass es zwar machbar, aber nicht ganz trivial ist. Die Taktverteilung will solide und RICHTIG gemacht sein, sonst läuft das Ganze nicht sonderlich zuverlässig. MFG Falk
@Falk Danke für die geduldige Beantwortung meiner Fragen. :o) Allerdings hätte ich da noch welche: > Jaja, aber bei 3,3V ist es langsamer als bei 5V Betrieb! Im Datenblatt steht max. Datenzugriffszeit: 27ns max @ Vdd = 5V . Die Spannung des Seriellen Interfaces wird jedoch nicht durch Vdd sondern durch Vdrive festgelegt. Demnach hinge die Geschwindigkeit doch von der Versorgungsspannung des Digitalteils ab, und nicht von der des Interfaces, oder? > Doch, das Datenblatt sagt es ja. Maximale "Data access time" ist > 27ns@5V, d.h. nach 27ns liegen gültige Daten GARANTIERT an. Dass zu diesem Zeitpunkt gültige Daten anliegen, davon war ich ausgegangen. Meine Gedanken gingen in die Richtung, ob sich bis dahin die Pegel beruhigt haben (Überschwinger etc.). Gruß
@ Gast >> Jaja, aber bei 3,3V ist es langsamer als bei 5V Betrieb! >Im Datenblatt steht max. Datenzugriffszeit: 27ns max @ Vdd = 5V . >Die Spannung des Seriellen Interfaces wird jedoch nicht durch Vdd >sondern durch Vdrive festgelegt. Demnach hinge die Geschwindigkeit doch >von der Versorgungsspannung des Digitalteils ab, und nicht von der des >Interfaces, oder? Ja, stimmt. Ist zwar etwas merkwürdig, dass die hier mit 3 Spannungen hantieren, aber laut Datenblat ist es wohl so. Glück gehabt, damit kannst direkt mit einem 3,3V FPGA bei maximaler Geschwindigkeit kommunizieren. >ausgegangen. Meine Gedanken gingen in die Richtung, ob sich bis dahin >die Pegel beruhigt haben (Überschwinger etc.). Das ist bei richtiger Schaltung/Layout so. Eine Serienterminierung der Datenleitung kann nicht schaden. MfG Falk
Es gibt auch den AD7274. Der kann max 3MBits/s und läuft mit 3,3V Er benötigt nur eine externe Referenzspannung z.b. 2,5V oder 1,5V. Grüsse Sebastian.
Es gibt Leute, die klemmen 80..140MSample Wandler an ein FPGA an. Der Ausleseclock ist dort dann 80..140MHz, mit einem Parallelinterface. Das geht auch sehr gut.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.