Forum: Mikrocontroller und Digitale Elektronik Eigenbau DSO Dimensionierung Digitalteil


von Udo Meinz (Gast)


Angehängte Dateien:

Lesenswert?

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

von W.S. (Gast)


Lesenswert?

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.

von Udo Meinz (Gast)


Angehängte Dateien:

Lesenswert?

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

von Udo Meinz (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Udo Meinz (Gast)


Lesenswert?

push

von nochwas (Gast)


Lesenswert?

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.

von Udo Meinz (Gast)


Lesenswert?

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?

von nochwas (Gast)


Lesenswert?

Ich wuerd das mal mit den ueblichen FPGA Simulatoren simulieren. Die 
externen Teile dabei mitsimulieren.
Das Ganze ist ein sehr anspruchsvolles Projekt.

von Softwareverwickler (Gast)


Lesenswert?

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.

von Udo Meinz (Gast)


Lesenswert?

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.

von Softwareverwickler (Gast)


Lesenswert?

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.

von Lothar S. (loeti)


Lesenswert?

Aus 2x 80MHz wird außerdem nicht 1x 160MHz! * In diesem Fall.

Grüße Löti

...320MHz schon gleich überhaupt nicht!

von nun (Gast)


Lesenswert?

> 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 Felix (Gast)


Lesenswert?

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.

von Udo Meinz (Gast)


Lesenswert?

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 ;)

von jibi (Gast)


Lesenswert?

>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

von nochwas (Gast)


Lesenswert?

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.

von Udo Meinz (Gast)


Lesenswert?

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.

von Erich (Gast)


Lesenswert?

@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
Noch kein Account? Hier anmelden.