Hallo ich bin gerade dabei mir eine Art DSO zu entwerfen. Als ADC verwende ich CDK1308 von Exar mit 80MSps, diese sollen paarweise für 2 Kanäle aufgebaut werden, für Ein-Kanal-Betrieb möchte ich alle 4 ADC zusammenschalten. Ich würde gerne Xilinx CPLD XC9572XL verwenden um die ADCs zu takten und jeweils ein CPLD verwenden um die Daten auf jeweils 2 SRAM aufzuteilen, so bräuchte ich nur SRAMs bis ca. 40 MHz. Kann ich nun mit einem 80MHz Takt an meinem CPLD, dass ich als Taktgeber benutze, das Signal irgendwie intern dreimal um ca 3ns verzögern und dann jeweils die ADCs damit takten? Die Verzögerungszeiten im Datenblatt lassen sich für mich nur schwer interpretieren? Weiterhin möchte ich Analog- und Digitalteil der Schaltung trennen um den schwierigen Analogteil separat zu designen. Kann ich beide Platinen problemlos per SMC bzw. BNC-Verbinder verbinden?? Kann auf dem Digitalteil das Signal direkt von den SMC-Verbindern an 2 zusammengeschaltete ADCs?? Ich hoffe ihr könnt mir etwas helfen und bedanke mich schonmal
Der XC9572 sollte für sowas grad noch schnell genug sein. Trotzdem rate ich dir eher zu einem Coolrunner, da du vermutlich nicht wirklich die 5 Volt Kompatibilität der 95er brauchst. Ansonsten sind die Herstellerangaben zumeist so zu verstehen, daß es die durchschnittliche Verzögerungszeit von Pin zu Pin ist. Aber Vorsicht, lieber die Manuals durchlesen. Da du ja sowieso die Eingangssignale intern erstmal zwischenspeichern willst/mußt, ist die Pin zu Pin Zeit für dich eher nicht relevant - eher schon die schiere Anzahl von MC, denn du wirst doppelt zwischenspeichern müssen und vermutlich mit 200 MHz CPLD-Takt arbeiten, um für den anschließenden RAM ein sauberes Signalbild hinzukriegen. Aber mal ne Frage: Warum gerade 10 Bit Wandler? Entweder du nimmst davon bloß 8 Bit oder du vergeigst ne Menge. Von TI gibt's doch schon seit gefühlten 100 Jahren Wandler im gleichen Speed-Segment, aber mit 13 oder 14 Bit. W.S.
Vielen Dank für deine Antwort ich hatte zuerst überlegt, einen Takt von 80 MHz z.B. dreimal durch ein Flipflop o.ä. intern zu verzögern und dann jeweils auszugeben um meine 4x 80 MHz zu bekommen, aber wie ich gerade sehe kosten CPLDs bis 400 MHz kaum etwas und 320MHz benötige ich ja (4x 80 MSps)...das wäre geklärt. Kann mir jemand sagen ob ich die Eingänge zweier ADCs direkt miteinander verbinden kann und an eine BNC-Buchse hängen kann?? Wie gesagt, ich würde gerne Analog- und Digitalteil getrennt aufbauen. Ein Designfehler im Analogteil würde somit nicht die komplette Arbeit vernichten und dieser Teil soll ja bekanntlich seine Tücken haben. Wie werden normalerweise im Einkanalbetrieb die ADCs des zweiten Kanal auf den ersten geschalten? Analog-Multiplexer? Haben diese eine genügend hohe Signaltreue? Ich möchte genau diese ADCs verwenden, da ich diese sehr günstig erhalten habe. Im differentiellen Betrieb lassen sich damit auch negative Spannungen messen, somit entfällt schonmal ein Bit auf das Vorzeichen der Spannung. Ob letztendlich die volle Auflösung gültig ist, hängt ja eher vom Analogteil ab
ich mache mal in meinem alten Thread weiter Kann ich bei Write Cycle 1 /CE durchgängig auf Low lassen und /WE gleichzeitig mit dem Hochzählen meines Adresszählers auf High ziehen? Da ich mit einem 80 Mhz Takt meinen 80 Msps ADC takten will, wird das ganze etwas haarig. Hat jemand eine Idee wie ich /WE direkt nach dem Hochzählen der Adresse wieder auf Low bekomme? Ich dachte daran /WE durch ein FlipFlop des CPLD zu schicken und den Ausgang für einen Reset zurückzuführen um einen kurzen Impuls zu bekommen.
Weshalb soll Analog und Digital auf der Analogseite getrennt werden? Mach die Wandler auf die Analogplatine. Der Wandler ist ja per LVDS angeschlossen und kann daher ein paar mV Gleichtakt Spannung aufnehmen. Man darf einfach die Analog- und Digitalsignale nicht kreuzen lassen.
Ich meinte das anders. Ich möchte gerne alles was vor dem AD-Wandler kommt auf eine extra Platine auslagern (Opamp, Tiefpass etc.) Kann mir jemand etwas zu meinen SRAM Timing-Problemen sagen?
Ich wuerd das mal mit den ueblichen FPGA Simulatoren simulieren. Die externen Teile dabei mitsimulieren. Das Ganze ist ein sehr anspruchsvolles Projekt.
Ist der /CE controlled writecycle nicht besser geeignet? Wenn ich das richtig verstehe, kann es sein, dass der Chip nachdem /WE auf low geht, Twhz braucht, bis er auf Datainput umgeschaltet hat. Siehe Fußnote 4 auf der ersten Seite. Wenn /WE dauerhaft low ist, must du nur anfangs einmal Twhz abwarten. Sonst ist wohl nur entscheidend, dass /CE und /WE nicht gleichzeitig geschaltet werden sollen und dass Adresse und Daten stabil sind, bevor /CE low geht.
hmm... aber Twhz gibt es in beiden write cycles, aber bei "CE controlled" bleibt Dout auf "High-Z". Bedeutet das, dass der Chip auf Eingang geschaltet bleibt? Das wäre natürlich von Vorteil. Mit welcher Frequenz kann ich die Daten eintakten? Mit der Doppelten? Oder gibt es eine Möglichkeit meine 80 MHz ADC Daten mit einem 80 Mhz Takt reinzuschreiben? Wenn ich den 160 oder 240 MHz dafür bräuchte, bringt das vermutlich nur mehr Probleme mit sich, oder? Die Platine wird zweilagig.
Udo Meinz schrieb: > bei "CE > controlled" bleibt Dout auf "High-Z". Bedeutet das, dass der Chip auf > Eingang geschaltet bleibt? genau das. Bei 80MHz wirds mit dem Timing sehr haarig. Die Addresse ist der Teil, der am längsten stabil am SRAM anliegen muss (write cycle time Twc). Und die wird ja berechnet. Mit dem schnellsten Variante des SRAM hast du aber nur 4.5 ns bei 80MHz (12.5ns periode) für die Berechnung. Da must du schon genau die Durchlaufzeiten des längsten Pfades beachten. Wenn die Zeit zu lang ist brauchts dann Ausgangsregister für Daten und Adresse und ne "mini pipeline". Vorne samplen und addresse berechnen und ans register anlegen, hinten Register in SRAM schreiben. Und bei 80MHz muss dein Clock Manager wohl auch die /CE signale erzeugen, denn Tcw is minimal 6.5ns (chip enable to end of write) was etwas mehr als die halbe Taktperiode ist.
Aus 2x 80MHz wird außerdem nicht 1x 160MHz! * In diesem Fall. Grüße Löti ...320MHz schon gleich überhaupt nicht!
> die Platine wird zweilagig....
So wird das nichts. Unter sechs lagen wuerd ich gar nichtberst beginnen.
Die beim layouten gesparte Zeit uebersteigt die Kosten schon alleine.
Dann kommn noch die EMV probleme hinzu, und dass man bei diesen
Frequenzen mit Impedanzkontrollierten Leitungen arbeitn muss.
Lass es sein, das wird so nichts.
Von der Umsetzung mit (evtl. sogar mehreren) CPLDs würde ich auch dringend abraten! Dafür nimmt man einen einzelnen FPGA, der muss für die Erfassung garnicht mal besonders groß sein. Von Vorteil ist hier auf jeden Fall auf dem Chip verfügbare, schnelle SRAM. Als großen Sample-Speicher hängt man dann externen Speicher dran. Je nach Geschwindigkeit synchronen SRAM, oder eine DDR-DRAM-Variante.
Das stimmt. 320 MHz war zu schnell gedacht. Ich bin von einem Vielfachen von 80 MHz ausgegangen, da ich den Takt intern ja durch Zähler wieder teilen müsste, also durch 2, 4 usw. deshalb die 160. Ja an FPGA, hatte ich auch schon gedacht. Z.B. könnte dann mit dem Xilinx MIG ein SDRAM angesprochen werden. Zweilagig sollte doch noch ok sein, für ein Hobbyprojekt, im Forum gibts sogar ähnliches auf Lochraster. Die Funktion sollte demnach gegeben sein. Das ganze soll kein DSO werden....nennen wir es Messwerterfassung mit möglichst großem Lerneffekt. Ich orientiere mich stark hieran, ein Hantek DSO 2090: http://fabiobaltieri.com/2013/07/10/inside-a-hantek-dso-2090-usb-oscilloscope/ CPLD und SRAM liegen bei mir genügend rum. Ok, nur bei 1 Kanal gibts die volle Abtastrate mit zwei parallelen SRAM, ansonsten wirds teuer. Ich hab verstanden ;)
>Das stimmt. 320 MHz war zu schnell gedacht. Ich bin von einem Vielfachen >von 80 MHz ausgegangen, da ich den Takt intern ja durch Zähler wieder >teilen müsste, also durch 2, 4 usw. deshalb die 160. >Ja an FPGA, hatte ich auch schon gedacht. Z.B. könnte dann mit dem >Xilinx MIG ein SDRAM angesprochen werden. >Zweilagig sollte doch noch ok sein, für ein Hobbyprojekt, im Forum gibts >sogar ähnliches auf Lochraster. Die Funktion sollte demnach gegeben Dafür nimmt man eine DCM im fpga und erzeugt phasenverschobene Signale die die ADC's takten. Wenn du mit dem vielfachen taktest, samplen die ADC's doch gleichzeitig und nicht leicht versetzt. Im ürbigen >Aus 2x 80MHz wird außerdem nicht 1x 160MHz! * In diesem Fall. Du musst die Bandbreite deiner ADC's beachten... Gruß Jonas
80, oder 160MHz auf Lochraster ist voellig illusorisch. Zudem sind die FPGA gerne BGA. Und falls TQFP, dann 144 und hoeher. Falls das RAM intern sein soll, hat das FPGA mehr pins, und wenn das RAM extern sein soll benoetigt man auch viel mehr pins. Mit Hobby Projekt ist da leider nichts mehr.
es war ja nur eine Überlegung den doppelten Takt zu nehmen und dann mit Zählern herunterzuteilen. Wenn diese zu Beginn unterschiedliche Zählerstände haben, sehe ich da kein Problem zwei um 180° versetzte Takte zu bekommen. Aber eigentlich will ich gar keine FPGA benutzen. Wie gesagt, ich orientiere mich am obigen Link vom DSO 2090. Das Problem ist ja eigentlich nur, genügend schnelle SRAM zu verwenden oder eben zwei parallel zu schalten. @nochwas Beitrag "8 Kanal 50Ms/s AVR Logic-Analyzer" hier zum Beispiel mit 50 MHz. Also 80 MHz sollten doch zweilagig gehen. Oben meinte ich nur, dass wenn es jemand auf Lochraster sogar geschafft hat, die Chancen gut stehen, es mit einer vernünftigen Platine zu schaffen.
@Udo Meinz Geht's eigentlich ums Basteln oder um Geld zu sparen? Du wirst es nicht schaffen das preiswerter hinzukriegen als das DSO 2090. Soweit das ungefähr das wäre was angestrebt wird; wobei ich nicht weiss ob dieses DSO 2090 ordentlich funktioniert -- kenne es nicht. Lochraster oder 2 Lagen? Haha. Habe mal vor langer Zeit (>10J) was mit 2x ADC08100 gebaut, und mit schnellem Fifo Ram SN74V263, auf 6-Lagen Multilayer. Takt 100 MHz, erster ADC auf steigende der zweite auf fallende Taktflanke. Gruss
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.