Forum: Analoge Elektronik und Schaltungstechnik Sinus Referenz 100 kHz


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich werde bald mal einen 16 Bit 1 MSample/s ADC 
verbauen/layouten. Den möchte ich natürlich testen. Dafür habe ich zur 
Verfügung den Signalgenerator im Oszi und der ist naja, nicht so 
sonderlich. Dann habe ich an einem FPGA 14 Bit 125 MHz DACs, da könnte 
ich selber mit DDFS einen Sinus ausgeben, aber auch der rauscht dann 
deutlich mehr als ich möchte.

Gibt es irgendwo günstig zu kaufen oder selber aufbaubar eine 
Hardware/Schaltung die einen sehr sauberen Sinus erzeugt? Als Frequenz 
wäre irgendwas aus dem Bereich 50 bis 200 kHz ganz brauchbar.

: Bearbeitet durch User
von Alexander S. (alesi)


Bewertung
0 lesenswert
nicht lesenswert

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, ist abgespeichert. Ich würde aber irgendwie doch lieber was 
kaufen. Einfach weil ich dann weiß, dass es gut ist. Wenn ich das selber 
aufbaue und dann den ADC teste, wie soll ich feststellen ob meine Quelle 
oder das ADC-Layout schlecht ist?

von Audiomann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Dann habe ich an einem FPGA 14 Bit 125 MHz DACs,
Rauscht er analog oder sind das die Quantisierungen die Du meinst?

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Gute Frage, Quantisierungsrauschen ist ja bei DDFS immer dabei, aber 
auch analog rauscht der vermutlich. Ich hab das vor längerer Zeit einmal 
getestet und da war das Rauschen recht hoch, weiß aber nix genaues mehr. 
Aber wäre denn ein 14 Bit DAC überhaupt geeignet einen 16 Bit ADC zu 
testen?

von vorticon (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Ein einfacher Quarzoszillator duerfte beim Rauschen jeden DDS-Chip in 
den Schatten stellen. 100kHz Quarze gibts auf Ebay (die ganz grossen). 
Kaufen kann man natuerlich alles - aber eher nicht billig.

von Harald W. (wilhelms)


Bewertung
1 lesenswert
nicht lesenswert
Gustl B. schrieb:

> irgendwas aus dem Bereich wäre 50 bis 200 kHz ganz brauchbar.

Wie wärs denn mit 77,5 kHz?

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Wenn es rauschfrei ist. Also mir geht es nicht drum, dass die Frequenz 
nicht driftet oder so, sondern dass das Rauschen sehr leise ist.

von vorticon (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Ja, also einen einfachen rauscharmen Oszillator aus der 
Empfaengertechnik. Natuerich geht auch ein normaler Schwingkreis. Ein 
Quarzoszillator hat demgegenueber ein sehr viel geringeres 
Phasenrauschen, denke ich. Beides ist einfacher und besser als DDS.

von Georg (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Ich würde aber irgendwie doch lieber was
> kaufen. Einfach weil ich dann weiß, dass es gut ist.

Dann schau mal hier:

http://www.helmut-singer.de/stock/x26.html

und wähle links Hewlett Packard 3325B

Ist sicher mehr als du erträumen kannst.

Georg

von Kritiker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
vorticon schrieb:
> Phasenrauschen, denke ich. Beides ist einfacher und besser als DDS.

DDS nimmt man nur, bei VERÄNDERLICHEN Frequenzen.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Dass DDFS nicht geeignet ist ist mir auch klar, ich suche auch keine 
veränderliche Frequenz. Ok, scheint also nicht so einfach zu sein, da 
werde ich die Tage mal an der Uni nachfragen was die so dahaben ...
Der HP http://www.helmut-singer.de/pdf/hp3325b.pdf ist schon nicht 
schlecht, aber nun, etwas teuer und hat auch nicht das Rauschverhalten 
das ich suche.
Ich hätte gerne sowas http://www.ti.com/tool/tsw2110evm, nur in etwas 
besser und mit niedrigerer Frequenz.

von Abdul K. (ehydra) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Für 150 Öhre kannst du es auch mal mit einer EMU0202 probieren. Die 
hätte dann auch noch weitere Anwendungsmöglichkeiten.

von Arduinoquäler (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Hallo, ich werde bald mal einen 16 Bit 1 MSample/s ADC
> verbauen/layouten. Den möchte ich natürlich testen.

Hast du schon dran gedacht dass die Qualität deines ADC
auch davon abhängt wie gut der Takt ist mit dem den
Wandler speist (ich meine den Referenztakt, nicht das
zu messende Objekt)? Sonst hilft das beste Layout nix....
Also die Methode "billiger Digital-Oszillator" funktioniert
hier zum Speisen womöglich nicht.

Eventuell wird dein Wandler deutlich schechter ausfallen
als die Quelle die zu zu vermessen gedenkst.

Gustl B. schrieb:
> Gibt es irgendwo günstig zu kaufen oder selber aufbaubar eine
> Hardware/Schaltung die einen sehr sauberen Sinus erzeugt?

Die meisten stabilen Referenzoszillatoren sind meist keine
sauberen Sinusquellen. Wenn du das haben willst musst du
noch tiefpass-filtern. Ich würde einen QUarzoszillator "guter
Qualität" und niedriger Frequenz nehmen und diesen auf die
gewünschte Frequenz herunterteilen und filtern.

vorticon schrieb:
> Ein
> Quarzoszillator hat demgegenueber ein sehr viel geringeres
> Phasenrauschen,

Yes.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Ähm ich suche die Sinusquelle NICHT um damit den ADC zu takten. Das wird 
ein Wandler mit SPI-Anschluss, da taktet man sowieso nur die Daten raus 
(grob gesagt).

Arduinoquäler schrieb:
> Sonst hilft das beste Layout nix....
> Also die Methode "billiger Digital-Oszillator" funktioniert
> hier zum Speisen womöglich nicht.

Ich will doch gerade mein Layout überprüfen. Und wie sollte ich das 
anders machen als eine sehr saubere Sinusquelle mit dem ADC-Eingang 
verbinden und dann das Spektrum messen. Es geht mir hier nicht um das 
Layout oder wie ich den ADC bespaße, sondern darum wie ich ein fertiges 
Layout teste. Dazu kann ich natürlich selber eine Quelle aufbauen, aber 
wenn das Ergebnis nicht wie gewünscht ist weiß ich nicht ob der Fehler 
an meiner Quelle oder meinem ADC-Layout liegt. Aber gut, es gibt wohl 
nicht Günstiges Einfaches mit dem man einen ADC mit etwas mehr Bits 
testen kann.

@ Abdul K.:
Du meinst so ein USB-Audio-Teil? Davon habe ich selber ein paar ganz 
brauchbare ... naja kann man mal ausprobieren.

: Bearbeitet durch User
von Arduinoquäler (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Ähm ich suche die Sinusquelle NICHT um damit den ADC zu takten. Das wird
> ein Wandler mit SPI-Anschluss, da taktet man sowieso nur die Daten raus
> (grob gesagt).

Ähm .... wenn du mal den Wandler nennen würdest könnten wir ja
mal drüber diskutieren ob du einen guten Referenztakt brauchst
oder nicht. Was ein Referenztakt ist hast du offensichtlich
noch nicht verstanden.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Das ist ein normaler ADC mit SPI Interface, ja der hat auch eine 
Sampleclock (CNV Eingang am Chip). Aber ich habe schon das 
Referenzlayout gesehen und da kommt die auch nur aus einem CPLD. Ich 
werde die Clock in einem FPGA erzeugen.

Mir geht es jetzt auch garnicht um irgendwelche Vorschläge wie ich den 
ADC anschließe oder layoute, sondern nur um die Frage wie ich das dann 
teste. Also generell, klar hab ich schon einen ADC ausgesucht, aber das 
ist noch unklar ob ich den tatsächlich verbauen werde.

In einem anderen Thread habe ich einen 12 Bit 65 MSample/s AD9235 
getestet mit dem hier verlinkten Board von TI. Für einen 16 Bit ADC mit 
niedrigerer Samplerate kann ich das aber leider nichtmehr verwenden und 
bin auf der Suche nach Alternativen.

: Bearbeitet durch User
von Joggel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Vergiss es den Referenztakt eines ADC mit einem FPFA zu erzeugen.

Der ADC is nur so gut wie der Referenztakt.

Da kannst du als Signalquelle auch gleich einen 555 nehmen und messen 
was mit einem Wuerfel auch rauskommen wuerde.

von Arduinoquäler (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Joggel schrieb:
> Vergiss es den Referenztakt eines ADC mit einem FPFA zu erzeugen.
>
> Der ADC is nur so gut wie der Referenztakt.
>
> Da kannst du als Signalquelle auch gleich einen 555 nehmen und messen
> was mit einem Wuerfel auch rauskommen wuerde.

Danke Joggel, gut dass das in anderer Färbung von einem
zweiten Leser kommt. Jetzt fällt mir nur noch das ein:

... denn sie wissen nicht was sie tun.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Joggel schrieb:
> Vergiss es den Referenztakt eines ADC mit einem FPFA zu erzeugen.

Also nochmal: Das wird im Referenzlayout auch gemacht. Und ausserdem: 
Mir geht es darum wie ich den ADC teste, nicht drum wie ich den 
anschließe oder layoute. Bei dem AD9235 den ich schon verwende kommt der 
Takt auch aus einem FPGA und ich bin zufrieden. Aber wie gesagt, darum 
geht es hier nicht.

von Joggel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Naja, dann kann ja nichts schiefgehen. Mach mal. Zeig uns die Werte und 
wir sehen weiter.

von Joggel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Dann wuerd ich das Referenzsignal auch gleich mit diesem FPGA erzeugen.

von Gustl B. (-gb-)


Bewertung
-1 lesenswert
nicht lesenswert
Lol anscheinend hast Du immernoch nicht meine Fragestellung im Thread 
verstanden. Welche Werte? Mit was soll ich das testen? Wenn ich den an 
den Signalgenerator vom Oszi hänge ist das Rauschen bei -60 dB und ihr 
werdet mich auslachen. Meine Frage war ja exakt wie ich das teste, mit 
welcher Quelle. Aber gut.

Hier ist sogar ein 18 Bit ADC bei dem der Takt im Demoboard aus einem 
CPLD kommt:
http://www.linear.com/product/LTC2338-18 und hier das Datenblatt zum 
Demoboard mit Schaltplan: 
http://cds.linear.com/docs/en/demo-board-manual/DC1908AF.PDF
Wieso sollte das bei mir nicht funktionieren wenn es beim Hersteller 
passt?

von Arduinoquäler (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Wieso sollte das bei mir nicht funktionieren wenn es beim Hersteller
> passt?

Weil der Takt nicht aus dem FPGA kommt sondern von einem
Referenzoszillator dessen Takt im FPGA verwendet wird und
auch zum ADC weitergeleitet wird.

Daher kommt der Takt nicht aus dem FPGA. Auch wenn's
so aussieht. Sobald du mit irgendeiner PLL im FPGA eine
neue Frequenz erzeugt ist diese hundsmiserabel verjittert
und taugt für einen ADC nicht mehr.

von Gustl B. (-gb-)


Bewertung
-1 lesenswert
nicht lesenswert
Das glaubst Du doch selber nicht. Wo ist denn dieser Referenzoszillator 
im Schaltplan? So wie ich das sehe kommt ein schneller Takt ins CPLD 
rein und geht eben NICHT direkt wieder raus. Denn raus kommt ein 1 MHz 
Takt (maximal) für den CNV Eingang am ADC. Die SCK ist schnell, aber das 
ist nur die Clock für das SPI Interface, da ist Jitter egal.

von Arduinoquäler (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Gustl B. schrieb:
> So wie ich das sehe kommt ein schneller Takt ins CPLD rein

... und der muss ja irgendwo herkommen ... auch wenn
"der Oszillator" nicht auf dem Board ist. Und du meinst
also das CPLD erzeugt für sich alleine eine Frequenz
von 1 MHz?

Dir ist wirklich nicht zu helfen, du musst es offensichtlich
auf die harte Tour selbst erfahren.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Arduinoquäler schrieb:
> Dir ist wirklich nicht zu helfen, du musst es offensichtlich
> auf die harte Tour selbst erfahren.

Ja das werde ich sowieso und suche in diesem Thread nach einem 
Referenzsignal mit dem ich den ADC dann testen kann.

Arduinoquäler schrieb:
> und der muss ja irgendwo herkommen

Klar, kommt er auch, aber wo? Ich kann den nicht finden, helf mir doch 
den zu finden. Im Schaltplan geht der schnelle Takt auf über BNC auf das 
Board und da sowohl in CPLD als auch in ein D-FF. Aus diesem kommt dann 
das Signal für den CNV Eingang am ADC. Also generiert das CPLD ein 
Signal das zusammen mit der schnellen Clock das CNV Signal aus dem FF 
erzeugt.
Während bei dem LTC im Datenblatt noch was von celan and low Jitter für 
die CNV Clock steht, finde ich bei einem anderen ADC gar nix dazu 
http://www.ti.com/lit/ds/symlink/ads8681.pdf Gut kann wichtig sein oder 
auch nicht, ist mir aber erstmal egal, hier im Thread hatte ich was 
anderes gefragt.

: Bearbeitet durch User
von Arduinoquäler (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Klar, kommt er auch, aber wo?

Du als Benutzer speist den Takt ein, du als Benutzer bist
dafür verantworlich dass der ADC das bekommt was er braucht
bzw was du an Performance von ihm erwartest.

Die Hersteller die solche Eval Boards anbieten bauen bewusst
keine Oszillatoren drauf da diese wegen kleiner Bauart evtl
schlecht sind oder weil sie keine teueren Oszillatoren
draufbauen wollen.

Gustl B. schrieb:
> Also generiert das CPLD ein
> Signal das zusammen mit der schnellen Clock das CNV Signal aus dem FF
> erzeugt.

Ja aber nicht per PLL in einem FPGA sondern durch Herunterteilen,
das verschlechtert die Signaleigenschaften nur unwesentlich (ab-
hängig von den Rauscheigenschaften des CPLD). Das ist was ganz
anderes als wenn ich einen Takt aus einem FPGA generiere.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Arduinoquäler schrieb:
> Du als Benutzer speist den Takt ein

Und wo? Da auch dem Demoboard ist nur ein Takteingang für den schnellen 
Takt.

Arduinoquäler schrieb:
> Ja aber nicht per PLL in einem FPGA sondern durch Herunterteilen,

Das kann man auch in einem FPGA herunterteilen ohne PLL, aber ich 
vermute das hat dann eher mehr Jitter weil das Signal dann nichtmehr 
über die extra dafür optimierten Taktnetzwerke im FPGA geroutet wird.

von Joggel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Das kann man auch in einem FPGA herunterteilen ohne PLL, aber ich
vermute das hat dann eher mehr Jitter weil das Signal dann nichtmehr
über die extra dafür optimierten Taktnetzwerke im FPGA geroutet wird.

Du hast einige Details nicht richtig verstanden. Das Clocknetzwerk in 
einem FPGA stellt den Takt global zur Verfuegung. Dies ist speziell so 
ausgelegt weill das ganze (oder Teile davon) Netzwerk synchron laeuft.
Wenn ich aber nur ein Taktsignal runterteilen will benoetige ich ein 
paar Flip-flops. Man kann deren Ausgang immer noch auf das Taktnetzwerk 
legen, wenn man ihn denn intern benoetigt.

Herunterteilen ist extrem jitterarm, solange man unterhalb der 
Grenzfrequenz bleibt.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Ok, klingt vernünftig, die FFs haben eben immer die gleiche Laufzeit. 
Aber das mit dem Runterteilen kann ich ja auch in meinem FPGA machen, 
also wo ist damit das Problem? Mir geht es hier weiterhin nicht drum wie 
ich den ADC anspreche oder layoute sondern wie ich das teste. Da weiß 
ich bisher nur, dass das schwer ist und vermutlich teuer wenn man das 
fertig kaufen möchte.

von Alexander S. (alesi)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Vielen Dank, ist abgespeichert. Ich würde aber irgendwie doch lieber was
> kaufen. Einfach weil ich dann weiß, dass es gut ist. Wenn ich das selber
> aufbaue und dann den ADC teste, wie soll ich feststellen ob meine Quelle
> oder das ADC-Layout schlecht ist?

Hallo,

auch wenn Du lieber etwas fertiges kaufen möchtest, hier noch ein Link:

  http://www.edn.com/design/analog/4400342/Injection-lock-a-Wien-bridge-oscillator

  http://m.eet.com/media/1173490/injection-lock%20a%20wien-bridge%20oscillator.pdf

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Sieht interessant aus, aber ich finde keinen "Kaufen" Button :-)

Naja noch bin ich in der Planungsphase und hab noch keinen ADC.

von Jürgen S. (engineer) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Joggel schrieb:
> Herunterteilen ist extrem jitterarm, solange man unterhalb der
> Grenzfrequenz bleibt.
Das würde ich etwas anders darstellen: Das Runterteilen selber bringt 
gar keinen Jitter - unterstellt man, dass die Ausgänge getaktet sind. 
Dann zählt in erste Linie der Takt. Darüber hinaus gibt es ein -YSSO 
PRoblem, von daher käme es bei DDS auf den Wandler an. Wenn man das 
richtig anfangt, ist der Jitter der DDS letzlich völlig anabhängig von 
den PLLs im FPGA, was anzustreben ist.

Aber mal was anderes:

Warum nicht einfach einen "digital loop back" und die gerade ausgebenen 
Werte zurücklesen? Wenn Du beides synchronisierst, müsstest Du ohne DDS 
die bits direkt zurücklesen können. Darf hat kein Reko Filter im DAC 
aktiv sein.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Moin, ich suche immer noch.
Aber ich bin auch bereit etwas zu basteln. Hier wurden schon 
Quarzoszillatoren empfohlen, aber wie gut sind die? Meine 
Signalgeneratoren haben die Obertöne bei -60 dB, ich hätte aber gerne 
eine Quelle bei der die noch viel weiter unten liegen. Das Rauschen vom 
16 Bit ADC liegt unter -100 dB.
Vielleicht ist aber auch mein Vorgehen komplett falsch. Wie testet man 
solche ADCs samt Eingangsbeschaltung?

von Dergute W. (derguteweka)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Gustl B. schrieb:
> Meine
> Signalgeneratoren haben die Obertöne bei -60 dB,

Dann bau' halt noch ein LC-Tiefpass/Bandsperre fuer den ersten Oberton 
hinter deinen Generator. Sowas kann man doch prima in eine Blechdose mit 
den entsprechenden Buchsen reinloeten.

Gruss
WK

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Danke, daran hatte ich nicht gedacht. Gibt es so Filter zu kaufen? Gerne 
gleich als Set mit unterschiedlichen Grenzfrequenzen ... 100 kHz, 1 MHz, 
2 MHz, ... mit SMA an beiden Enden.

von xyz (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Gibt es so Filter zu kaufen?

Vielleicht in drei Jahren.

von Wolfgang (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Ähm ich suche die Sinusquelle NICHT um damit den ADC zu takten. Das wird
> ein Wandler mit SPI-Anschluss, da taktet man sowieso nur die Daten raus
> (grob gesagt).

Wenn du den ADC vernünftig testen willst, brauchst du aber einen 
sauberen Takt für die Abtastung deines Referenzsignals. Sonst versaut 
dir der Abtastjitter die effektive Bit-Zahl, d.h. die 16 Bit kannst du 
vergessen.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Genau, das habe ich mittlerweile gelernt. 16 rauschfreie Bits erreiche 
ich mit dem ADC um den es geht LTC2325 
https://www.analog.com/media/en/technical-documentation/data-sheets/232516fa.pdf 
sowieso nicht.
Ich bin auch zufrieden mit dem Resultat, aber ich würde das gerne mal 
richtig angehen und nicht nur auf Verdacht Bauteilwerte ändern.

Ich habe die Schaltung in Multisim, da kann ich mir Frequenzverhalten 
und so schön angucken, aber in der Realität sieht es eben anders aus. 
Bei einem 10 kHz Signal am Eingang liegen die Obertöne noch bei kleiner 
-80 dB. Aber vor allem so ab 200 kHz wachsen diese sehr deutlich an so 
dass der Abstand zwischen gewünschtem Signal und Obertönen deutlich 
kleiner wird.

Wenn ich mir das Diagramm Harmonic Distortion vs. Frequency, G = +1 
angucke, dann ist da alles bis 1 MHz unter -80 dB. Das ist allerdings 
nur der ADA4897 
https://www.analog.com/media/en/technical-documentation/data-sheets/ada4896-2_4897-1_4897-2.pdf 
den ich als Impedanzwandler direkt am Eingang habe.

Dahinter folgt ein LTC6363 
https://www.analog.com/media/en/technical-documentation/data-sheets/LTC6363.pdf 
und der hat im Harmonic Distortion vs Frequency Diagramm ... nun ja, das 
Diagramm endet bei 100 kHz und da geht es steil nach oben.

Ich vermute jetzt also, dass das an diesem Stein liegt. Aber so ganz 
verstehe ich das nicht, der ist ja schnell (500MHz Gain-Bandwidth 
Productn und 35MHz –3dB Bandwidth) und wird als "20-Bit, 18-Bit and 
16-Bit SAR ADC Drivers" beworben. Verzerrt aber schon bei 100 kHz 
deutlich.
Welchen OPV sollte ich dann verwenden wenn ich bis zur halben 
Samplerate, also bis 2,5 MHz, nur geringe Verzerrung haben will? Muss 
der dann noch sehr viel schneller sein? Für mich ist dieser große Zoo 
aus OPVs recht undurchsichtig.

von Lurchi (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Der Verstärker sollte schon schnell sein. Bei den OPs wird die GBW 
angegeben, d.h. das Produkt auf Frequenz und open loop gain. Für eine 
geringe Verzerrung will man (bzw. braucht man) eine deutliche loop 
Verstärkung, um damit die nichtlinearitäten des Verstärkers ohne 
Rückkopplung zu unterdrücken.
Stark vereinfacht werden die Harmonischen um die noch vorhandene Loop 
Verstäkung gedämpft. Viel Verstärkung auch bei 1 MHz heißt dann halt 
eine hohe GBW, ggf. bis in den GHz Bereich.

Ich würde so etwas wie THS4521 oder THS4541 in Betracht ziehen.

In der Regel hat man auch nicht die volle Amplitude nahe der 
Nyquist-grenze. D.h. ganz so dramatisch ist das mit den Verzerrungen bei 
hohen Frequenzen nicht.
Bei viel Amplitude bei hoher Frequenz wird dann auch der Takt Jitter 
sehr wichtig. Wenn das Signal dagegen weniger HF Anteil hat reduzieren 
sich die Anforderungen. Bei einem SAR ADC wird man einen AA filter 
benötgen und daher oft die obere Oktave oder so die der ADC theoretisch 
noch könnte nicht wirklich nutzen, sondern nur als Übergangsbereich für 
das AA-Filter haben.

von Hans-Georg L. (h-g-l)


Bewertung
0 lesenswert
nicht lesenswert

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Lurchi schrieb:
> Viel Verstärkung auch bei 1 MHz heißt dann halt
> eine hohe GBW, ggf. bis in den GHz Bereich.
>
> Ich würde so etwas wie THS4521 oder THS4541 in Betracht ziehen.

Das war mir bisher nicht bekannt und ich hatte auch nicht auf die THD 
geachtet. Danke für die Empfehlungen. Pinkompatibel ist ja der ADA8138, 
den werde ich jetzt erstmal draufsetzen.

Lurchi schrieb:
> Wenn das Signal dagegen weniger HF Anteil hat reduzieren
> sich die Anforderungen. Bei einem SAR ADC wird man einen AA filter
> benötgen und daher oft die obere Oktave oder so die der ADC theoretisch
> noch könnte nicht wirklich nutzen, sondern nur als Übergangsbereich für
> das AA-Filter haben.

Jap, das Filter hat hier den 3 dB Punkt bei unter 1 MHz.

@ Hans-Georg:
Danke, aber die Frequenz ist doch sehr niedrig. Wenn ich mir 2 kHz mit 
dem Signalgenerator erzeuge habe ich auch > 80 dB Abstand zwischen dem 
gewünschten Signal und den lautesten Obertönen. Klar da geht noch mehr, 
aber 80 dB würde mir schon reichen.
Ich werde das aber trotzdem mal als Bastelprojekt auf meine ToDo Liste 
schreiben.

von Gustl B. (-gb-)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal Spektren bei 25 kHz und 200 kHz. Ja wenn das wirklich am 
LTC6363 liegt dann verstehe ich das. Zwischen dem LTC6363 und den ADC 
ist nur ein einfaches RC Filter, das hat keine gute Flankensteilheit.

Edit:
Noch zum Vergleich Bildchen vom Oszi. So wirklich weiß ich nicht ob das 
jetzt meine Hardware oder die Quelle ist ...

: Bearbeitet durch User
von A-Freak (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nimm eine DDS oder was auch immer die 77,5kHz auf besser 0,1Hz genau 
erzeugt und schicke sie durch einen 77,5kHz-Quarz (aus einem 
DCF77-Empfänger).

Der Quarz wirkt als Schwingkreis der nur genau diese Frequenz durchläßt 
so daß ein wirklich sauberer Sinus herauskommt.

Den Pegel vor dem Quarz auf irgendwas 100mV herunterteilen damit der 
Quarz nicht mechanisch überlastet wird.

von Bernd (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Gibt es so Filter zu kaufen? Gerne
> gleich als Set mit unterschiedlichen Grenzfrequenzen ... 100 kHz, 1 MHz,
> 2 MHz, ... mit SMA an beiden Enden.
Bei Minicircuits geht es erst ab 10 MHz los.
Filter für diese Frequenzen kann man sich aus diskreten Bauteilen noch 
gut selber bauen.


Wolfgang schrieb:
> Wenn du den ADC vernünftig testen willst, brauchst du aber einen
> sauberen Takt für die Abtastung deines Referenzsignals. Sonst versaut
> dir der Abtastjitter die effektive Bit-Zahl, d.h. die 16 Bit kannst du
> vergessen.
Der Einfluß des Abtasttaktes wird doch gleich mitgemessen.
Und je nach Anwendung spielt der Jitter u.U. auch keine Rolle, z.B. wenn 
das Meßsignal DC ist.

Neben der FFT kann man auch eine sehr lange Messung über viele Perioden 
machen und anschließend einen Sinusfit durchlegen. Danach ermittelt man 
die Abweichung zwischen Messwert und Sinusfit und mappt alle Perioden 
aufeinander.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Bernd schrieb:
> Filter für diese Frequenzen kann man sich aus diskreten Bauteilen noch
> gut selber bauen.

Klar, aber für ein fertiges Set hätte ich auch etwas ausgegeben. Muss ja 
nicht perfekt sein. Oder auch für ein paar Platinen mit SMA auf beiden 
Seiten und dazwischen genug Pads um verschiedene Filter, vielleicht auch 
aktive, zu bestücken.

Bernd schrieb:
> wenn
> das Meßsignal DC ist.

Gut, dann braucht man es nur einmal abtasten und hat den Wert. Da 
spielen dann auch Obertöne keine Rolle.
Beim Abtasttakt ist für mich immer noch etwas unklar auf welche Weise 
man den erzeugen kann und wie man den nicht erzeugen sollte.

Ich habe am FPGA einen Oszillator mit 100 MHz dran. Einen Si510 
https://www.silabs.com/documents/public/data-sheets/si510-11.pdf und der 
liefert doch eigentlich einen ganz schönen Takt.
Aber der geht in das FPGA rein und dort ... wird mit diesem Takt eine 40 
Bit lange Sequenz über ein ODDR herausgetaktet.
Da ist keine PLL oder so im Spiel und eigentlich sollte dann auch das 
Signal am Ausgang schön jitterfrei sein.

von Naja (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Was sollen die Aussagen zu Verzerrungen. Das ist Audio-Slang. Die werden 
als Harmonische bezeichnet. Und spielen nur bei Erzeugung(Wiedergabe) 
eine Rolle, wenn man mit nichtlinearen Elementen arbeitet. Bei 
Sampling(Aufnahme) gibt es nur den Frequenzgang. Und dort gibt es nur 
eine Frequenz, welche sich auszeichnet, die Sampling Frequenz. Von dort 
gibt es noch Subharmonische, welche von Nichtidealitaeten des Samplings 
herruehren.

von Marek N. (bruderm)


Bewertung
0 lesenswert
nicht lesenswert
Jim Williams hat doch mal so einen ultra-puren Wien-Oszillator gebaut, 
um einen hochauflösenden DAC zu qualifizieren. Irgendwo hab ich die 
AppNote bestimmt noch. Muss mal heute Abend suchen.

von Naja (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mit einem DDS auf einen Quarz als Filter ist eine schlechte Idee. Der 
hat eine Guete von vielleicht 10^5.. 10^6. Wenn der auf Resonanz kommt, 
nimmt die Amplitude zu, er wird warm und laeuft weg. Und kommt wieder, 
eine Schwingung mit der thermischen Zeitkonstanten.
Das einzige, was man bei einem DDS wegmachen muss ist die Hackfrequenz. 
Und die ist idealerweise weit weg. Bedeutet man sollte einen DDS nicht 
mit nur 4 Punkten pro Periode oder so laufen lassen.
Ein Filter mit geringerer Guete sollte genuegen. Vielleicht ein 
LC-Schwingkreis, mit Guete 30, oder so.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Naja schrieb:
> Was sollen die Aussagen zu Verzerrungen. Das ist Audio-Slang. Die werden
> als Harmonische bezeichnet.

Wo ist der Unterschied? Ist das eine Verzerrung oder nicht?

Naja schrieb:
> Bei
> Sampling(Aufnahme) gibt es nur den Frequenzgang. Und dort gibt es nur
> eine Frequenz, welche sich auszeichnet, die Sampling Frequenz. Von dort
> gibt es noch Subharmonische, welche von Nichtidealitaeten des Samplings
> herruehren.

Ist das so? Ber der Aufnahme gibt es aber auch vor dem ADC und selbst in 
dem ADC Bauteile die das Signal am Eingang verzerren können. Z. B. 
Operationsverstärker.
Aber was meinst du mit Frequenzgang und wo zeichnet sich die 
Samplingfrequenz aus?
Natürlich können auch Harmonische entstehen, wenn das Signal z. B. 
clippt.

Naja schrieb:
> Ein Filter mit geringerer Guete sollte genuegen. Vielleicht ein
> LC-Schwingkreis, mit Guete 30, oder so.

Vermutlich wurde das genau so in den Signalgeneratorden gemacht die ich 
hier habe. Und trotzdem schaffen die "nur" ca. 60 dB zwischen 
Grundfrequenz und den Obertönen.

von Naja (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ja, die Harmonischen zum Signal enstehen auch in der Signalkette vor dem 
ADC, durch Nichtidealitaeten, Saettigungserscheinungen. Clipping is 
natuerlich ein grober Fehler, welcher in diesem Kontext nicht passieren 
sollte. Kompression ist weniger dramatisch, fliessender.

Ich waere mit 60dB Spurious Frequenzen sehr zufrieden. Wenn ich nur 
schon an die Nichtidealitaeten von Keramik Kondensatoren denke ... deren 
Kapazitaet nimmt mit zunehmender Spannung ab, bei neueren Materialien, 
Y5R zB -40% bei Nennspannung..

Meist bringen die Transducer, welche mit das physikalische Signal in 
Spannung umwandeln weniger dynamischen Bereich wie diese 60dB.

Ohne jetzt die Anstrengungen schmaelern zu wollen. Interessant wird's 
wenn wir den Pegel des Signals um zB 30dB absenken. Sind dann die 
Harmonischen immer noch 60dB tiefer ?

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Naja schrieb:
> Ich waere mit 60dB Spurious Frequenzen sehr zufrieden.

Naja, bei einem 16 Bit ADC bin ich das aber eher nicht.

Naja schrieb:
> bei neueren Materialien,
> Y5R zB -40% bei Nennspannung..

Ich verwende im Signalpfad nur NP0.

Naja schrieb:
> Interessant wird's
> wenn wir den Pegel des Signals um zB 30dB absenken. Sind dann die
> Harmonischen immer noch 60dB tiefer ?

Werde ich testen.

von Naja (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wir haben auch 16Bit ADCs, unsere Signale sind zum Grossteil im 
Rauschen. Nach 10000 Additionen sehen wir's dann langsam.
Wir hattens schon dass das Signal im 1 bit Rauschen versteckt war. Weil 
der Vorverstaerker fehlte. Es ging aber trotzdem, weil wir einen Brumm 
vom vielfachen des Nutzsignals drauf hatten.

von Elias K. (elik)


Bewertung
1 lesenswert
nicht lesenswert
Ein Design für einen Sinusoszillator, aber wieder Selbstbau und Quelle 
ist vorher zu charakterisieren:
https://www.edn.com/design/analog/4368298/Test-18-bit-ADCs-with-an-ultrapure-sine-wave-oscillator

Aber das hier könnte was sein? (500$)
https://www.analog.com/media/en/dsp-documentation/evaluation-kit-manuals/dc1858af.pdf
Die arbeiten interessanterweise mit der oben genannten Schaltung. 
Scheint als ganz brauchbar zu sein. Die Schaltung wurde auch schon in 
einem älteren Beitrag verlinkt.
https://www.analog.com/media/en/technical-documentation/application-notes/an132f.pdf

Oder einen Audio-DAC zum "Selbstbau", wenn auch so 10 kHz reichen? Muss 
man die Zunge aber auch gerade in den Mund nehmen:
http://www.ti.com/lit/ds/symlink/dsd1792a.pdf

Oder halt als fertiges Gerät. z.B.: (gibt es sicher auch günstiger)
https://www.rme-audio.de/de_adi-2-dac.html

Und hier noch was, bezüglich Messung (schneller) ADCs:
https://www.analog.com/media/en/technical-documentation/application-notes/AN-835.pdf
"Usually, dynamic testing employs a Rohde & Schwarz SMA/ SMHU/SMG/SMGU, 
an Agilent 8644 signal generator, a Wenzel crystal oscillators or a 
Valpey Fisher crystal oscillator. These sources have proven to provide 
exceptional performance (low phase noise, flat frequency response, and 
reasonable harmonic performance) for frequencies of a few kilohertz to 
those of a few gigahertz. Harmonic performance of these generators is 
typically not as good as the intrinsic linearity of a given ADC, 
mandating the need for additional filtering between the signal generator 
and the analog input to the ADC."

Bezüglich Jitterarmer Taktquelle für den ADC:
https://www.analog.com/media/en/training-seminars/tutorials/MT-007.pdf
Walt Kester ist generell eine Empfehlung bezüglich ADCs/DACs.

Viel Spaß beim Lesen! :-)

von Lurchi (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Naja schrieb:
> Ich waere mit 60dB Spurious Frequenzen sehr zufrieden. Wenn ich nur
> schon an die Nichtidealitaeten von Keramik Kondensatoren denke ... deren
> Kapazitaet nimmt mit zunehmender Spannung ab, bei neueren Materialien,
> Y5R zB -40% bei Nennspannung..
>.....
> Ohne jetzt die Anstrengungen schmaelern zu wollen. Interessant wird's
> wenn wir den Pegel des Signals um zB 30dB absenken. Sind dann die
> Harmonischen immer noch 60dB tiefer ?

In dem Frequenzbereich sieht man zu das man NP0 Keramk nimmt und keine 
Klasse 2. Die kommen dem Idealfall schon recht nahe. Da stellt sich die 
Frage nach der Linearität schon fast eher bei den Widerständen.

Die relative Stärke der Harmonischen hängt in der Regel von der 
Amplitude ab. Oft wird es mit kleiner Amplitude besser, es gibt aber 
Grenzen, wenn so etwas wie Übernahmeverzerrungen beteiligt sind.

60 dB Abstand zu den Harmonischen sind noch nicht wirklich gut - das 
wäre etwas um einen 10 Bit Wandler zu testen.

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Lurchi schrieb:
> 60 dB Abstand zu den Harmonischen sind noch nicht wirklich gut - das
> wäre etwas um einen 10 Bit Wandler zu testen.

Nun, dass ist überhaupt nicht gut! Schon eine Schallplatte schafft das! 
Natürlich will ich nicht wirklich eine Schallplatte mit Testsignal 
vorschlagen :-)
Gruß Rainer

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Bernd schrieb:
> Der Einfluß des Abtasttaktes wird doch gleich mitgemessen.
> Und je nach Anwendung spielt der Jitter u.U. auch keine Rolle, z.B. wenn
> das Meßsignal DC ist.

War hier nicht von 100kHz als Referenz die Rede?

Manche Leute bezeichnen das als DC, aber die arbeiten dann selten mit 
16-Bit Wandlern ;-)

Wenn du dir schon durch Abtastjitter über die Signalsteigung 
Amplitudenfehler einfängst, kannst du auf die richtigen Feinheiten bei 
der Erzeugung eines sauberen 100kHz Referenzsinus auch gleich 
verzichten.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Danke Elias, ja ich sehe schon ich muss das mit dem Takt tatsächlich 
anders machen. Und dafür brauche ich eine neue Hardware bzw. muss diese 
erstellen.

Wirklich wichtig ist ja hier der Abtasttakt, also im Beispiel die 5 MHz. 
Aber wenn ich einen Taktgeber mit auf die ADC Platine packe, dann soll 
der auch gleich den SPI SCLK mit machen. Da verwende ich 100 MHz, 105 
MHz wäre etwas besser aber geht beides.

Wie macht man das? Einen guten 100 MHz Oszillator und dann ein 
Gattergrab mit Zähler das die Takte zählt und dann abhängig davon #CNV 
und SCLK bedient? Klingt umständlich.

Von AD gibt es dann noch so Takt ICs mit PLL und Jittercleaner, braucht 
man das oder kann ich darauf gut verzichten wenn ich einen ordentlichen 
Oszillator verwende?

von Elias K. (elik)


Bewertung
0 lesenswert
nicht lesenswert
Hast du einen FPGA? Und der ADC braucht die 5 MHz als stabilen 
Systemtakt? Dann würde ich Jitterarme 5 MHz erzeugen und damit FPGA und 
ADC versorgen. Und im FPGA dann eine PLL nehmen, um von 5 MHz zu 100 
oder 105 MHz zu gehen. Die können ruhig mehr Jitter haben. Ob der SPI 
oder die Logik im FPGA etwas jittert, macht ja an der Auflösung des ADC 
nix mehr. Muss der SPI-Takt eigentlich synchron zum ADC-Takt sein?

Bei einem µC statt FPGA müsstest du wahrscheinlich eine externe PLL 
nehmen. Wenn du einen stabilen 100 MHz Oszillator findest, auch gut. Und 
ja, dann mit Logik runterteilen. (im FPGA, wenn vorhanden?) Aber meines 
Wissens sind Quarze mit so hohen Frequenzen selten, da die mit 
Oberwellen arbeiten müssen. MEMS könnte es was geben.

Der erste 100 MHz Oszillator, den ich gefunden habe: 
https://de.farnell.com/abracon/asdmb-100-000mhz-xy-t/mems-oszillator-100mhz-smd-2-5/dp/2849471
60 ps Cycle-to-Cycle Jitter. Das reicht wahrscheinlich noch nicht ganz. 
Müsstest du konkret nachrechnen.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Elias K. schrieb:
> Muss der SPI-Takt eigentlich synchron zum ADC-Takt sein?

Was meinst du damit? Alle 200 ns ein Sample. Und innerhalb der 200 ns 
muss #CNV eine Zeit lang high sein und dann lese ich die Daten raus, 
also 16 Takte von SCLK während #CNV low ist. Mit 100 MHz geht das gerade 
so.

OK, aber den 5 MHz Takt direkt an #CNV vom ADC anschließen geht nicht, 
da bekomme ich nicht den Durchsatz wenn der Takt 50% Tastverhältnis hat.
Ich gucke mir mal das EVAL Board an, da wurde das ja irgendwie gelöst.

: Bearbeitet durch User
von Lurchi (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Elias K. schrieb:
> Der erste 100 MHz Oszillator, den ich gefunden habe:
> 
https://de.farnell.com/abracon/asdmb-100-000mhz-xy-t/mems-oszillator-100mhz-smd-2-5/dp/2849471
> 60 ps Cycle-to-Cycle Jitter. Das reicht wahrscheinlich noch nicht ganz.
> Müsstest du konkret nachrechnen.

Mems Oszillatoren sind eher nicht so gut. Es sollte schon ein echter 
Quarz oder SAW basierter Oszillator sein.

Wie oben schon von anderen geschrieben entweder mit 100 MHz starten und 
dann teilen (sollte mit 2 Chips (Teiler + sync. zu machen sein) oder 
alternativ mit 5 oder 10 MHz anfangen und dann den Takt für den µC oder 
FPGA per PLL hoch setzen lassen. Je nach Modell ist der PLL da schon 
enthalten. Neben den reinen Chips kommt es auch auf das Layout an, sonst 
macht einem ggf. eine Masseschleife alles kaputt. Entsprechend ist ein 
Teiler rein im FPGA auch mit Vorsicht zu genießen - mit externer 
Synchronisation geht es aber.

von udok (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die Referenz ist Audio Precision www.ap.com
Für 100 kHz brauchst du aber den analogen Generator.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
So, hier das Demoboard vom Hersteller 
https://www.analog.com/media/en/technical-documentation/eval-board-schematic/DC2395ASCH.PDF 
gleich auf der ersten Seite ist die Beschaltung für den Takt. Macht auch 
sinn so, denn gerade die fallende Flanke von #CNV sollte frei von Jitter 
sein.

Bei Schaltung brauche ich aber ein zusätzliches FPGA IO und hier bei dem 
Demoboard ist das FPGA mit auf der gleichen Platine. Bei mir ist das 
nicht so und ich habe Digitalisolatoren dazwischen (die ja auch Jitter 
hinzufügen).

Um damit keine Probleme zu haben würde ich gerne folgendes bauen:

100 MHz oder 105 MHz Oszillator mit zum ADC auf die Platine, und dort 
aus diesem Takt sowohl #CNV als auch SCLK generieren. Ohne dass ich vom 
FPGA ein CNV_EN brauche. Dazu könnte ich einen Zähler verwenden der bei 
den 105 MHz bis 21 zählt und dann resettet wird. Und dann in 
Abhängigkeit des Zählerstandes könnte ich dort lokal ein CNV_EN erzeugen 
und auch entscheiden ob der Takt als SCLK angelegt wird oder nicht.

Macht das Sinn? Das sollte ja eigentlich auch keinen Jitter hinzufügen 
wenn man das ordentlich macht. Zum FPGA geht dann wie jetzt CLKOUT und 
die SDO1 ... SDO4.
SCLK und #CNV vom FPGA zum ADC brauche ich dann nicht mehr. Nachteil: 
Ich habe eine feste Samplerate die ich nicht mehr mit dem FPGA 
verstellen kann. Aber das ist völlig OK für mich.

ap.com kannte ich noch nicht, aber für mein Hobby ist das zu teuer.

von Jürgen S. (engineer) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Zum Testen würde ich eher 50kHz nehmen und mehr Oberwellen betrachten.

udok schrieb:
> Für 100 kHz brauchst du aber den analogen Generator.

Wenn es nur die 100kHz sein sollen, stimme ich dem zu. Einen analogen 
Schaltkreis mit einer sehr trägen Regelung und Filterung kriegt man 
kostengünstig noch so hingestellt, dass der jede digitale Realisation 
toppt, wenn der Aufbau stimmt.

Kommt aber bei industriellen Anwendungen auch auf die geforderte 
Störempfindlichkeit an. In ungünstigen Bereichen ist es besser, einen 
digitalen Aufbau zu wählen. FPGA aber nur mit statischem Teiler und 
starrem OSC mit eng toleriertem Filter, also keine PLL im FPGA. Am 
Besten einen eigenen Takt zum Wandler mit asynchronem Registerausgang 
der DDS aus dem FPGA, dass dessen Jitter keinen Einfluss hat. Die DDS 
voll digital aber mit optimiertem Phasenrauschen für den DAC. Muss man 
eben sehen und messen, was der kann und tut und braucht.

Im DIY Audio-Technik-Bereich gibt es einige, die einen 32BIT-R2R 
verwendet haben. Der ist - eine saubere Kalibrierung und Nachregelung 
für Temperatur, etc vorausgesetzt - genauer, als die gegenwärtigen 
Sigma-Delta-DACs. Auch im variablen Audioband. Lohnt aber i.d.R. nicht. 
50% mehr Qualität, 5-facher Preis :-)

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Nur 100 kHz oder eben eine andere feste Frequenz wäre schon OK. Ich habe 
von TI den http://www.ti.com/tool/TSW2110EVM aber den gibt es leider nur 
mit 10 MHz und 70 MHz. 0,1 MHz oder 0,5 MHz und 1 MHz wäre noch fein. 
Aber vielleicht nehme ich die Schaltung und passe sie für 100 kHz oder 
500 kHz an.

So, jetzt habe ich eine Logikschaltung die aus einem 105 MHz Takt, einem 
Zähler IC, einem D-FF und ein paar einzelnen Gattern sowohl #CNV als 
auch SCLK für den ADC erzeugt.
Der Zähler zählt immer bis 21 und wird dann resettet.
Wenn der Zählerstand kleiner 4 ist, dann ist nCLR vom D-FF auf '1', es 
bleibt als gesetzt und wird nach etwas Zeit (Zählerstand 4 und höher) 
zurückgesetzt.
Dann wird gleichzeitig auch in Abhängigkeit des Zählerstandes ein 
SCLK_EN erzeugt. Und das wird mit dem Takt auf ein AND Gatter gegeben. 
Dadurch kommen dann nur 16 Takte auf SCLK zum ADC.
Ist so eine Konstruktion vom Jitter her OK? Ich würde sagen ja.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Jetzt suche ich gerade nach ICs mit denen ich das bauen könnte, aber ich 
finde nichts. RS Flip Flop gibt es nur in irre langsam. 
Logikkomparatoren gibt es auch, aber auch zu langsam. In einem FPGA geht 
das doch auch mit einem hohen Takt, und hier sind 105 MHz gar nicht so 
irre schnell, oder suche ich nur falsch?

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Jetzt suche ich gerade nach ICs mit denen ich das bauen könnte, aber ich
> finde nichts. RS Flip Flop gibt es nur in irre langsam.

Man, wenn ein RS-FlipFlop  zulangsam ist, dann heilige  Marie!! Es gibt 
immer noch die berühmte HiSpeed-Logik, die alles unter 1nS regelt. 
Kostete damals etwa ein Einfamilienhaus - ECL-Logik -und jetzt???
Gruß Rainer

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Dann zeig mir doch ein schnelles RS FF das ich kaufen kann. Bei Mouser 
finde ich nichts.

von Dergute W. (derguteweka)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Gustl B. schrieb:
> So, jetzt habe ich eine Logikschaltung die aus einem 105 MHz Takt, einem
> Zähler IC, einem D-FF und ein paar einzelnen Gattern sowohl #CNV als
> auch SCLK für den ADC erzeugt.

Hm - haste da mal einen Schaltplan?

Gruss
WK

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Dann zeig mir doch ein schnelles RS FF das ich kaufen kann. Bei Mouser
> finde ich nichts.

Echt, gibts ECL-Logik nicht mehr???  Nicht das ich dafür jemals eine 
anständige Applikation gehabt hatte...aber einer meiner Doktoranden...er 
ist jämmerlich baden gegangen. Unter 1nS wirds sowohl messtechnisch, als 
auch darstellungsäßig (Oskar, mit Speicher?) schwer! Auch heute noch!!! 
Lasse mich gern  korrigieren.
Gruß Rainer

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Ne, noch nicht, habe mir die ICs in VHDL geschrieben.

Jetzt habe ich also den Zählen, den gibt es auch in schnell zu kaufen, 
aber ich muss ja die Ausgänge auswerten. Da kann ich entweder einen 
Logikkomparator verwenden für kleiner/größer, das ginge, aber den kann 
ich nicht kaufen.

Ich könnte aber auch ein RS FF nehmen, das bei genau einem Zählerstand 
setzen, und bei einem anderen Zählerstand löschen.

Die andere Lösung wäre, dass ich die Clock wie im Referenzdesign auch 
zum FPGA führe und dort das CNV_EN Signal und SCLK erzeuge.
Aber bei mir ist da deutlich Latenz dazwischen weil zwischen FPGA und 
ADC Digitalisolatoren sitzen. Bisher ist die Latenz egal denn #CNV und 
SCLK kommen beide vom FPGA, haben beide die gleiche Verzögerung bis zum 
ADC und zurück kommt vom ADC CLKOUT und SDOx. Das passt also wunderbar.

Aber wenn ich den 105 MHz Takt mit Latenz zum FPGA führe, dann dort mit 
diesem Takt CNV_EN und SCLK erzeuge, wieder mit Latenz zum ADC führe, 
dann ist dort noch das retiming FF. Und das wäre doof wenn das retiming 
FF einmal nach 21 und dann nach 20 Takten oder erst nach 22 Takten das 
CNV_EN neu taktet.

Edit:
Gut, auch das kann man ja mit VHDL nachbauen und simulieren. Die 
Digitalisolatoren sind dann ein transport delay mit etwas Jitter. Mal 
gucken^^

Mouser listet ECL, aber auch dort habe ich nichts brauchbares gefunden. 
Wenn du mir ein RS FF zeigst wäre das sehr fein.

: Bearbeitet durch User
von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
So, jetzt habe ich das VHDL so weit, dass ich mit dem Jitter anfange. 
Ich habe da also das D-FF zum retimen, einen Inverter und die 
Digitalisolatoren.
Tja ... und die Datenblätter geben zwar alle Timingdaten an, aber ich 
weiß nicht was davon zutrifft.

Das FF https://www.onsemi.com/pub/Collateral/NL17SZ74-D.PDF hat auf 
Seite 4 die Information. Wenn ich da jetzt mal Propagation Delay, CP to 
Q or notQ nehme, dann gehe ich in die Zeile mit der Versorgungsspannung 
3.3 ± 0.3 und lese dort bei 25 °C: typisch 2,8 ns, maximal 6,5 ns. Nun, 
das ist aber ein großer Unterschied für mich. Ist das jetzt so, dass das 
bei einem einzelnen Bauteil zwischen den Werten schwankt, oder ist das 
so, dass wenn ich viele Bauteile nehme, manche 6,5 ns haben, aber sehr 
viele weniger und im Mittel hat so ein Baustein also 2,8 ns? Sprich ist 
der Wert für einen Stein fest oder schwankt der?

Ähnlich beim Inverter 
https://www.mouser.de/datasheet/2/308/NC7SZ04-1301544.pdf , auf Seite 5. 
Dort steht z. B. Propagation Delay, wieder 3,3 V, minimal 0.5 ns, 
typisch 2.1 ns und maximal 4.5 ns. Auch da wäre es gut zu wissen ob das 
für ein Bauteil ein fester Wert ist oder ob der schwankt.

Beim Isolator 
https://www.silabs.com/documents/public/data-sheets/Si866x.pdf stehen 
die Timings auf Seite 13.

Relativ feste Werte, egal wie groß kann man ja kompensieren, aber wenn 
das schwankt wäre es schlecht. Die Temperatur ist relativ konstant. 
Vielleicht im Sommer um 5 °C wärmer als im Winter. Ich würde die Werte 
jetzt einfach mal als fest annehmen und das ausprobieren.

von Bernd (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Dann zeig mir doch ein schnelles RS FF das ich kaufen kann.
Ich würde ein D-FF nehmen (z.B.: MC100LVEL31).
Das (verjitterte) Datensignal kommt vom FPGA und der (saubere) Takt geht 
auf den Takteingang.

Hast Du eine Möglichkeit Jitter zu bestimmen?

von Gustl B. (gustl_b)


Bewertung
0 lesenswert
nicht lesenswert
Klar, zum retimen von nCNV ein D-FF. Ein RS wollte ich verwenden um in 
Abhängigkeit eines Zählerstandes ein SCK Enable zu erzeugen.

Ne, Jitter kann ich mir hier höchstens auf dem Oszi angucken.

von Lurchi (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die Propagation delay Bereiche geben die Schwankungen zwischen 
Verschiedenen Exemplaren und oft auch über den Temperatur- und 
Spannungsbereich an. Für den Jitter ist der Teil nicht relevant.

Schnelle RS Flip flops findet man schon als 74VHC74 oder ähnlich. Das 
xx74 kann man auch als RS FF nutzen.

von Bernd (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt nicht im Blick, welchen ADC du verwendest.

Gustl B. schrieb:
> Klar, zum retimen von nCNV ein D-FF. Ein RS wollte ich verwenden um in
> Abhängigkeit eines Zählerstandes ein SCK Enable zu erzeugen.

Gustl B. schrieb:
> Denn raus kommt ein 1 MHz
> Takt (maximal) für den CNV Eingang am ADC. Die SCK ist schnell, aber das
> ist nur die Clock für das SPI Interface, da ist Jitter egal.
Dem würde ich zu stimmen.

> Ne, Jitter kann ich mir hier höchstens auf dem Oszi angucken.
Damit kann man nur gegen die Zeitbasis des Oszis messen. Für einen 
ersten Vergleich kann das gehen. Wenn das Oszi keine explizite 
Jittermessoption hat, schaut man sich das Taktsignal ein paar µs oder 
paar ms nach dem Trigger an:
1
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
2
^                                                     |  |
3
Trigger                                             Zoomfenster

Die nächst bessere Messmöglichkeit wäre ein Spektrumanalysator 
(idealerweise mit Phasenrauschmessoption).

von Pandur S. (jetztnicht)


Bewertung
0 lesenswert
nicht lesenswert
Man muss natuerlich nach etwas anderem suchen. Nicht nach RS FlipFlop.
https://www.analog.com/en/products/high-speed-logic/logic-devices/flip-flops.html
https://www.analog.com/en/products/clock-and-timing/clock-generation-distribution/clock-dividers.html

Ich persoenlich verwende gerne auch eingebaute Teiler, zB in einem 
ADF4001, welcher 100MHz durch bis zu 2^14 = 16384 teilen kann. Falls es 
schneller sein muss, gibt es auch schnellere Bausteine.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Lurchi schrieb:
> Die Propagation delay Bereiche geben die Schwankungen zwischen
> Verschiedenen Exemplaren und oft auch über den Temperatur- und
> Spannungsbereich an. Für den Jitter ist der Teil nicht relevant.

Danke!

Lurchi schrieb:
> Schnelle RS Flip flops findet man schon als 74VHC74 oder ähnlich. Das
> xx74 kann man auch als RS FF nutzen.

OK, mal gucken. Dass es schnelle D-FFs gibt habe ich schon gesehen.

@ Bernd: Danke!

@ Joggel E.:
Naja, was bringt mir ein Taktteiler? Klar, ich könnte von 105 MHz durch 
21 Teilen und komme auf 5 MHz. Aber was bringt mir das?
Ich habe einen 105 MHz Takt, muss daraus ein möglichst jitterfreies #CNV 
Signal erzeugen das so um die 40 ns lang high ist, und danach muss ich 
16 Pulse für SCK erzeugen.

Im FPGA würde ich einen Zähler mit den 105 MHz von 0 bis 20 zählen 
lassen und dann zurücksetzen.

#CNV_Enable <= '1' when Zähler < 4 else '0';
SCK_Enable <= '1' when Zähler > 4 else '0';

Und dann wird #CNV durch das retiming FF erzeugt wie im Schaltplan des 
Demoboards, #CNV_Enable geht auf den Clear vom D-FF und der saubere 105 
MHz Takt geht auf den CP Eingang.

SCK wird durch ein AND erzeugt, also
SCK <= SCK_Enable AND CLK105MHz.

Das ginge, aber ich bräuchte zwei Vergleich ICs oder schnelle Gatter. 
Einen schnellen Zähler gibt es, ich könnte also auf < 4 prüfen indem ich 
prüfe ob die höheren Bits alle 0 sind.

Auf größer 4 zu prüfen wird etwas schwieriger. Daher dachte ich für das 
SCK_Enable eben an ein RS FF. Das setze ich wenn der Zähler den Wert 5 
hat und resette es wenn der Zähler zurückgesetzt wird.

Aber es wird wohl darauf rauslaufen, dass ich mal eine Platine baue ohne 
ADC, aber mit mehreren Footprints für die unterschiedlichen Bausteine 
und Oszillator. Und dann kann ich mir da gut angucken ob ich das Timing 
schaffe. #CNV werde ich auf eine SMA Buchse legen um mir dann auch mal 
den Jitter angucken zu können.

: Bearbeitet durch User
von Gustl B. (-gb-)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, hat jetzt etwas gedauert, aber es reichen wohl 4 AND Gates, 3 D-FFs 
und ein Binärzähler um aus einem Takt sowohl nCNV als auch SCK zu 
generieren.

Macht das Sinn das zu dem ADC auf die Platine zu setzen?
Zum FPGA geht dann wirklich nur noch CLKOUT vom ADC und synchron dazu 
die SDO Signale. Und vielleicht noch ein Weiteres Signal, z. B. der 
Reset für den Zähler damit im FPGA dann auch klar ist wann ein Sample 
fertig ist, also die mit CLKOUT hereingeschobenen Daten in die andere 
Clockdomäne im FPGA übernommen werden können.

: Bearbeitet durch User
von udok (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Jürgen S. schrieb:
> Im DIY Audio-Technik-Bereich gibt es einige, die einen 32BIT-R2R
> verwendet haben. Der ist - eine saubere Kalibrierung und Nachregelung
> für Temperatur, etc vorausgesetzt - genauer, als die gegenwärtigen
> Sigma-Delta-DACs. Auch im variablen Audioband. Lohnt aber i.d.R. nicht.
> 50% mehr Qualität, 5-facher Preis :-)

Den möchte ich sehen, der mehr als 100 dB THD+N schafft,
über sagen wir mal +- 5 Grad Temperaturschwankung.

Bei > 120 dB, wo es interessant wird, muss der Teiler mit den Mosfet
Schaltern auf 5 Milloohm genau sein, und dass bei R=10kOhm,
was rauschmässig schon zu viel ist.

Abgesehen sind die R2R DACs berühmt für ihre Glitches beim Umschalten...

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
udok schrieb:
> Den möchte ich sehen

Ich auch!!!

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Es gibt tatsächlich ECL zu kaufen, die sind schon ziemlich schnell. Aber 
die sind auch zu CMOS nicht kompatibel. Macht es Sinn ECL zu verwenden 
und dann für die ADC Eingänge das mit einem zusätzlichen IC nach 2.5 V 
CMOS zu wandeln?
Ich vermute nein und werde jetzt mal die Schaltung in CMOS aufzubauen.

von Dergute W. (derguteweka)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Die Schaltung um U2 und U4A ist schonmal sehr, sehr boese. Nicht so 
machen.

Gruss
WK

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Warum denn? Und wie sollte ich das denn sonst machen? Zu einem 
bestimmten Zählerstand soll der Zähler zurückgesetzt werden. Und hier 
wird geprüft ob der auf 21 steht.

Ja, da werden manche Bits ignoriert, stimmt, aber ... das wären höhere 
Zählerstände. Der wird also zurückgesetzt bevor diese eintreten können. 
Oder habe ich einen Denkfehler?

von Dergute W. (derguteweka)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Warum denn?

Weil du nicht sicher sein kannst, dass der Reset auch alle Flipflops in 
dem Zaehler "erwischt". Wenn jetzt z.b. im 4024 nur Flipflop, das Q1 
treibt, etwas hurtiger im Reset ist als die anderen Flipflops, dann 
kannst passieren, dass nicht alle Flipflops im 4024 den Reset 
mitkriegen. Im FPGA wuerdest du das auch niemals so aufbauen, sondern 
mittels eines Synchronzaehlers. So solltest du das auch mit diskreten 
Bauteilen machen.

Gruss
WK

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Macht Sinn. Ja, ich habe das schon so aufgebaut wie im Bildchen, aber 
bei langsamem Takt und das hat funktioniert. In der Simulation geht das 
auch, aber sicher ist sicher, ich suche mir einen anderen Zähler IC.
Das ist gar nicht so einfach. Die die ich finde sind alle langsamer als 
105 MHz. In ECL gibt es was, ja, aber der ADC hat CMOS Eingänge.

von Dergute W. (derguteweka)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Ja, diese Schaltungen funktionieren meistens. Aber halt nicht immer. Und 
immer dann nicht, wenn man nicht damit rechnet. Daher: Nicht machen ;-)

Gruss
WK

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Tja ... alles nicht so einfach. Vielleicht ist ein kleines CPLD die 
passende Lösung um aus dem Takt das nCNV_Enable und SCLK zu erzeugen.

Der XCR3032XL-5VQ44C ist schön klein und wenn man bei Mouser nach 
Geschwindigkeit filtert der Schnellste von Xilinx. Billig ist der auch.

: Bearbeitet durch User
von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, dass du vielleicht die "höheren" Megaherze etwas 
unterschätzt! Ich durfte mich während meiner HiWi-Zeit ausgiebig mit 
ECL-Logik herumschlagen und denke, das macht man nur, wenn es absolut 
nötig ist! Warum versuchst du dich nicht an den verlinkten 
LT-Applikationen und baust mal so einen Testgenerator auf? Ja, wird ein 
Höllengeld kosten, aber du willst ja auch eine "Höllenpräzision"...mit 
einem passenden Modell für den Optokoppler könnte man auch erst mal 
simulieren...
Bin gespannt, wo du landen wirst!
Gruß Rainer

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Rainer V. schrieb:
> Ich durfte mich während meiner HiWi-Zeit ausgiebig mit
> ECL-Logik herumschlagen und denke, das macht man nur, wenn es absolut
> nötig ist!

OK.

Rainer V. schrieb:
> Warum versuchst du dich nicht an den verlinkten
> LT-Applikationen und baust mal so einen Testgenerator auf?

Naja, offensichtlich habe ich erstmal noch andere Probleme, eben en Takt 
en wohl ordentlich jittert und dann habe ich ja einen OPV vor em ADC er 
bei >100 kHz eutlich nichtlinear wird. Ich werde also zuerst iese beiden 
Baustellen beheben. Vielleicht bin ich ann sowieso schon zufrieden.

Edit:
Ach männo, das Vivado unterstützt keine CPLDs ... also kleinen Spartan7 
oder einen Intel Max 10. Pluspunkt für den Max 10 ist, dass es den im 
EQFP-144 gibt und der keinen externen Konfigurationsspeicher braucht.

: Bearbeitet durch User
von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Naja, offensichtlich habe ich erstmal noch andere Probleme, eben en Takt
> en wohl ordentlich jittert und dann habe ich ja einen OPV vor em ADC er
> bei >100 kHz eutlich nichtlinear wird

Wie mans nimmt. Habe deine Eingangsfrage so verstanden, dass du einen 
Referenzgenerator bauen willst, bzw. suchst! Bei einem klassischen 
Sinusgenerator hast du keine Probleme mit Jitter oder Flankensteilheit 
:-) das kommt von der offensichtlich wichtigeren Erzeugung eines Taktes 
aus großem MHz-Bereich. Und wenn du einen OPV hast, der >100KHz nicht 
mehr mitmacht, dann hast du einfach den Falschen! Schau dir ruhig mal 
die analogen Lösungen an...und wie gesagt, Geld mußt du sicher so oder 
so in die Hand nehmen!!
Gruß Rainer

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
...schau dir doch einfach mal das Beispiel dieses Generators zur 
Ausmessung eines 18-Bit-AD an. Und wenn ich richtig gelesen habe, dann 
ist dir ein Audio-Precision zu schlecht??? Dann jetzt aber mal 
schleunigst weg von dem digitalen Frequenzteilen :-)
Gruß Rainer

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Rainer V. schrieb:
> Wie mans nimmt. Habe deine Eingangsfrage so verstanden, dass du einen
> Referenzgenerator bauen willst, bzw. suchst!

Das stimmt schon, ich wollte damit einen ADC testen.

Mittlerweile ist mir zumindest teilweise klar welche Fehler ich bei der 
Beschaltung des ADCs gemacht habe und möchte diese auf einer neuen 
Platine nicht mehr machen.

Ich habe da auch keine konkrete Anwendung, ich mache das um das einmal 
gelernt zu haben. Auf dem Evalbaord zum ADC ist ein Cyclone3 FPGA drauf. 
Wie ich jetzt weiß nicht ganz ohne Grund.
Für eine Anwendung habe ich das ADC Board bisher galvanisch getrennt vom 
FPGA und USB Teil. Das funktioniert auch gut genug. Aber diese 
galvanische Isolation macht mir vermutlich die Idee mit dem retimen 
kaputt. Das kann ich schlecht abschätzen.

Ich sehe jetzt mehrere Möglichkeiten (jeweils mit retiming FF):

1. Den Takt vom ADC Board zum FPGA Board, dort nCNV_Enable und SCLK 
erzeugen, beides vom FPGA Board zum ADC Board, dort nCNV retimen und zum 
ADC. Das wäre für mich die geringste Änderung am Design, aber ich habe 
da deutlich Latenz durch die Digitalisolatoren. Latenz wäre aber 
schnicht schlimm. Jitter wäre schlecht wenn der bewirkt, dass nCNV mal 
einen ganzen Takt länger und mal einen ganzen Takt kürzer ist.

2. Eine Logikschaltung aus einzelnen Bauteilen mit auf das FPGA Board 
packen die aud dem Takt sowohl nCNV_Enable und SCLK erzeugt. Ob das geht 
weiß ich nicht, da bräuchte ich schnelle Bauteile, vor allem einen 
Zähler. Einen asynchronen Zähler hatte ich gefunden, aber, naja der 
könnte Ärger machen. Vielleicht sollte ich das einfach mal probieren.

3. Einen CPLD oder FPGA mit auf die ADC Platine packen. Aber wenn ich 
das mache, dann brauche ich keine zusätzliche FPGA Platine. Wenn ich 
dann wirklich galvanisch trennen will, dann trenne ich zwischen FPGA und 
den USB Bausteinen.

Rainer V. schrieb:
> ...schau dir doch einfach mal das Beispiel dieses Generators zur
> Ausmessung eines 18-Bit-AD an. Und wenn ich richtig gelesen habe, dann
> ist dir ein Audio-Precision zu schlecht??? Dann jetzt aber mal
> schleunigst weg von dem digitalen Frequenzteilen :-)

Nein. Das muss nicht irre genau sein. Ich will auch keine vollen 16 
Bits, da hat der ADC selbst schon zu viel Rauschen. So 90 dB Signal 
Rauschabstand würden mir schon reichen. Aber eben bis 1 MHz hoch.

: Bearbeitet durch User
von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Danke für die rasche Antwort. Aber jetzt verstehe ich dein Problem 
überhaupt nicht mehr! Um einen ADW zu testen - zumindest wenn du 
Wechselspannung messen willst - brauchst du eine rausch- und klirrarme 
Sinusquelle...danach hattest du auch gefragt...das ganze Drumherum, mit 
deinen CPLD oder FPGA, verstehe ich nicht. Vielleicht hast du dein 
Problem ja nur unglücklich beschrieben und ich habe es wiederum 
unglücklich in den "falschen Hals" gekriegt.
Gruß Rainer

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Rainer V. schrieb:
> brauchst du eine rausch- und klirrarme
> Sinusquelle

Genau. Die hatte ich eingangs auch gesucht, darum dieser Thread.

Aber ich habe festgestellt, dass der ADC mit der jetzigen Beschaltung 
schon das Signal das aus meinem Frequenzgenerator rauskommt verzerrt. 
Der Generator hier hat so zwischen 80 dB und 60 dB Signalrauschabstand, 
und das bekommt der ADC nicht ordentlich hin. Bei niedrigen Frequenzen 
schon, aber so ab 200 kHz nicht mehr. Ausserdem ist der Frequenzpeak im 
FFT recht breit.

Eine der Ursachen ist ein Verstärker vor dem ADC. Der bleibt nur im 
unteren Frequenzbereich schön linear.
Eine weitere Ursache ist der Abtasttakt vom ADC. Wenn dieser Takt einen 
Jitter drauf hat, also die Abtastzeitpunkte nicht äquidistant sind, dann 
sieht das abgetastete Signal ebenfalls verzerrt aus.

Ich werde also auf der nächsten Bastelhardware andere OPVs verwenden und 
auch den Abtasttakt, konkret das Signal #CNV, möglichst jitterfrei 
anliefern. Und das geht mit einem retiming FlipFlip, mal erzeigt also 
ein jitterbehaftetes #CNV_Enable, und das wird mit einem FF und einem 
sehr sauberen Takt dann jitterfrei gemacht.
Tja, und da das ein SPI ADC ist brauche ich auch noch SCLK. Ich überlege 
also ob ich dieses gerne etwas jitterbehaftete #CNV_Enable lokal durch 
eine Logikschaltung erzeugen soll, und gleichzeitig dann auch noch SCLK. 
Oder ob ich das im FPGA erzeuge. Aber dazu muss der Takt erstmal durch 
einen Digitalisolator zum FPGA, und dann das #CNV_enable durch den 
Digitalisolator zuück zum retiming FF.
Da kann ich mich gerade nicht so wirklich entscheiden weil ich nicht 
weiß wie groß der Jitter ist den FPGA und Digitalisolatoren hinzufügen. 
Wenn dieser Jitter nämlich zu groß ist, dann könnte es sein, dass das 
retiming FF mal einen Takt länger und mal einen Takt weniger draus 
macht.

Ich werde das aber wohl einfach ausprobieren. Wenn ich das gemacht habe 
(das dauert), und dann noch nicht zufrieden bin mit dem ADC, dann baue 
ich eine schöne Sinusreferenz. Bei niedrigen Frequenzen bin ich ja schon 
zufrieden. Da ist nur der Frequenzpeak recht breit (siehe weiter oben 
die FFT Bildchen) was gut durch den Jitter kommen kann.

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Da ist nur der Frequenzpeak recht breit (siehe weiter oben
> die FFT Bildchen) was gut durch den Jitter kommen kann.

Kann, aber muß nicht :-)
Viel Spass, Rainer

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
...und wenn du wirklich "nur" Bastler bist, dann mußt du aber bei deinem 
Projekt jetzt trotzdem auch sowas wie Jitter messen können! ANsonsten 
verlierst du dich in den berühmten "Verschlimmbesserungen". Was du 
bisher geschrieben hast, bestärkt mich in meiner Vermutung, dass du ein 
AD-System hast, welches eine Grenzfrequenz hat, die dir zu niedrig 
erscheint. Schon der mehrfach erwähnte OPV scheint ja das ganze System 
sehr zu limitieren. Wie du da ohne gravierendes Neudesign auf deine 
Bandbreite größer 1MHz kommen willst, ist mir erst mal nicht klar!
Gruß Rainer

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Ja, da hast du Recht, aber das kostet eben alles. Bandbreite hat der 
genug. Aber er verzerrt dann eben. Klar wird das ein neues Layout, neue 
Platine.

Derzeit verwende ich diesen OPV 
https://www.analog.com/media/en/technical-documentation/data-sheets/LTC6363.pdf 
auf Seite 15 oben in der Mitte sieht man, dass ab ein paar 10 kHz die 
harmonische Verzerrung deutlich nach oben geht.
Für die nächste Hardware habe ich mir den 
https://www.analog.com/media/en/technical-documentation/data-sheets/ADA4927-1_4927-2.pdf 
rausgesucht.

Rainer V. schrieb:
> ANsonsten
> verlierst du dich in den berühmten "Verschlimmbesserungen".

Exakt! Aber als Anfänger kann ich schlecht abschätzen wann etwas 
ausgereizt ist. So Dinge wie den Vorteil von NP0 gegenüber X7R. Das kann 
man alles irgendwo nachlesen, dann gibt es viele Forenposts und 
Appnotes, aber wie viel was jetzt wirklich bringt ist für mich oft 
unklar bis ich das selber mal probiert habe. Es gibt ja auch immer 
diesen Streit zwischen Layer mit Masse fluten oder nicht. Klar macht das 
einen Unterschied, aber oft ist der eben egal. Daher verschlimmbessere 
ich auch mal und sehe dann was etwas gebracht hat und was nicht.
Ich habe das hier mal an einer FPGA Platine gesehen. Da hatte ich noch 
genau 0 Kondensatoren zwischen Versorgung des FPGAs bestückt. Nur die 
Kondensatoren am Ausgang des Schaltreglers waren natürlich da. Tja und 
das hat auch funktioniert, sogar mit einem recht großen Design im FPGA. 
Aber man konnte an der Versorgung eben sehen, dass da Dinge schalten. 
Nachdem ich weiter bestückt hatte war die Versorgung dauerhaft schön 
sauber.
Das sind eben so Dinge die man mal ausprobieren kann um dann von 
Empfehlungen auch abweichen zu können wenn man weiß, dass es auch so 
geht. Xilinx empfiehlt für jeden Versorgungspin einen Kondensator. Das 
habe ich bisher auch gemacht, bei vielen kaufbaren FPGA Boards ist das 
aber nicht so gemacht, da sitzen wenige sehr große Cs und noch ein paar 
kleine am FPGA. Da wusste der Hersteller vermutlich auch ob er von der 
Empfehlung abweichen darf und hat das gemacht. Ich will also nicht Dinge 
machen weil man sie schon immer so gemacht hat, sondern weil ich 
verstanden habe wie etwas funktioniert. Und dann sehe ich oft ein, dass 
man dann etwas so machen muss wie es schon immer gemacht wurde und mache 
das dann auch so.

: Bearbeitet durch User
von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Du hast recht, dass man auch durch Verschlimmbessern lernen kann. 
Eigentlich oftmals nur so :-) aber du hast da ein Paket, in dem sich 
viele Baustellen verbergen! Da wäre doch erst einmal ein Plan zu 
überlegen, welche "isolierte" Probleme gelöst werden sollten. Im Moment 
hast du dich auf Jitter des Taktsignals eingeschossen. Gut, diverse 
Vorschläge für ein sauberes Signal sind gekommen. Hast du da mal was 
aufgebaut (hoffentlich nicht doch in ECL...) und sehen können, wie die 
Auswirkungen sind? Wäre immerhin ein Anfang...bevor du jetzt schon das 
nächste Problem dazu nimmst. Immerhin bleibt es vorerst doch eine 
Vermutung von dir, dass du ein Jitterproblem hast. Messen kannst du das 
aber nicht und so könnte das Problem doch ganz woanders liegen...
Gruß Rainer

von Gustl B. (-gb-)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Rainer V. schrieb:
> Hast du da mal was
> aufgebaut (hoffentlich nicht doch in ECL...) und sehen können, wie die
> Auswirkungen sind? Wäre immerhin ein Anfang...bevor du jetzt schon das
> nächste Problem dazu nimmst.

Das mache ich gerade.Also ich bin gerade am Layout mit anderen 
Verstärkern und anderer Taktbeschaltung.

Rainer V. schrieb:
> Immerhin bleibt es vorerst doch eine
> Vermutung von dir, dass du ein Jitterproblem hast. Messen kannst du das
> aber nicht und so könnte das Problem doch ganz woanders liegen...

So, ich habe mal gemessen. Ja, das ist in der Tat erstmal nur eine 
Vermutung. Ich nehme die ernst weil ich einsehe/verstanden habe, dass 
der Jitter einen Einfluss hat. Und weil hier im Forum andere Leute mich 
darauf hingewiesen haben. Im der Demoschaltung wird das ja auch mit 
retiming gemacht, also wird das wohl wichtig sein. Wie sehr der Jitter 
bei mir die Ursache ist und in wie weit das ganz andere Probleme sind 
weiß ich nicht. Ich dachte ich sei von dem Jitter nur wenig/kaum 
betroffen, weil der Takt aus einer jitterarmen Quelle kommt (Si510) und 
auch im FPGA nicht durch eine PLL/MMCM geht. Aber gut, jetzt gibt es 
Bildchen.

Getriggert wurde immer auf die steigende Flanke. Und dann habe ich mir 
den Puls angeguckt, mal direkt den getriggerten, dann den 1 us später 
und zuletzt den 10 us später. Und dann gibt es noch die Statistik vom 
Oszi zu Periode und Pulsweite. Die Periode und Pulsweite wackeln also 
grob um 1 ns.

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Auf den ersten Blick sieht das doch nicht schlecht aus! Was braucht denn 
der ADC? Steigende Flanke, Pegel oder fallende. Die steigende Flanke 
sieht für mich brauchbar aus...die fallende zappelt da was. Wie sahen 
denn die "alten" Signale aus?
Gruß Rainer

von Gustl B. (gustl_b)


Bewertung
0 lesenswert
nicht lesenswert
Das sind die aktuellen Signale noch ohne retiming. Naja 1 ns Jitter ist 
schon recht viel bei 200 ns Periodendauer. Die fallende Flanke ist 
wichtig.

von Achim S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Die fallende Flanke ist
> wichtig.

Dann würde ich genau das auch messen. Also auf eine fallende Flanke 
triggern und dann die Stabilität von nachfolgenden fallenden Flanken 
auftragen. Das zeigt dir den Jitter deiner Abtastzeitpunkte.

Hast du die 1ns vor oder nach deinem Digitalisolator gemessen?

Den gemessenen  Jitter dt kannst du mit der Anstiegsgeschwindigkeit 
deines Signals du/dt in einen Spannungsfehler du umrechnen. 1ns 
Abweichung des Abtastzeitpunkts machen bei einem 16 Bit ADC (um welchen 
gehts eigentlich genau) und bei deinem 100kHz full scale Sinus einen 
Fehler von 20 LSB. Da dürfte das Einsynchronisieren mit dem stabilen 
Takt schon sinnvoll sein. Das Ganze mit einem CPLD besser machen zu 
wollen, stelle ich mir dagegen als schwierig vor.

Schnellere Teile gehen dann tendentiell zu differentiellen 
Logiksignalen, auch um den Jitter klein zu halten. Wobei diese 
Anforderungen sich ein Stück weit mit deinen Digitalisolatoren beißen 
dürften.

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Das sind die aktuellen Signale noch ohne retiming

Danke. Na dann warten wir doch mal die "neuen" Signale ab...
Gruß Rainer

von Bernd (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Die fallende Flanke ist wichtig.
Dann schau Dir doch die an.

Wenn dein Signal perfekt wäre, dürfte das Oszi nach 10 µs einen Fehler 
von +/- 100 ps haben, siehe Datenblatt (S. 19):
https://beyondmeasure.rigoltech.com/acton/attachment/1579/f-0907/1/-/-/-/-/MSO5000_datasheet.pdf

Nach 10 µs sieht man einen Peak-Peak-Jitter von 1 ns.
Ich bin aber überfragt, wie man daraus den Cycle-to-Cycle-Jitter 
errechnet.
Einfach durch 50 zu teilen ist vermutlich falsch (10 µs / 200 ns).

Wenn man die ermittelten 270 ps nimmt, müßte sich bei einem 2 Vpp Sinus 
mit 100 kHz ein maximaler Amplitudenfehler von 170 µV ergeben 
(Standardabweichung).
Zum Vergleich: Bei einem (idealen) 16-Bit-Wandler mit 2 Vpp 
Vollaussteuerung hat ein Bit eine Wertigkeit von 30 µV.

Kannst du eine vergleichbare Messung des Taktes am Evaluationboard 
machen?

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Achim S. schrieb:
> Dann würde ich genau das auch messen. Also auf eine fallende Flanke
> triggern und dann die Stabilität von nachfolgenden fallenden Flanken
> auftragen. Das zeigt dir den Jitter deiner Abtastzeitpunkte.

Prinzipiell richtig, aber hier egal. Das Signal kommt aus einem ODDR vom 
FPGA und zwar beide Flanken ohne Retiming. Die Flanken sollten also 
beide ähnlich jittern.

> Hast du die 1ns vor oder nach deinem Digitalisolator gemessen?

Das war zwischen Digitalisolator und ADC.

Achim S. schrieb:
> Den gemessenen  Jitter dt kannst du mit der Anstiegsgeschwindigkeit
> deines Signals du/dt in einen Spannungsfehler du umrechnen. 1ns
> Abweichung des Abtastzeitpunkts machen bei einem 16 Bit ADC (um welchen
> gehts eigentlich genau) und bei deinem 100kHz full scale Sinus einen
> Fehler von 20 LSB. Da dürfte das Einsynchronisieren mit dem stabilen
> Takt schon sinnvoll sein. Das Ganze mit einem CPLD besser machen zu
> wollen, stelle ich mir dagegen als schwierig vor.

Danke!
Mit dem CPLD wollte ich auch nicht #CNV erzeugen, sondern nur ein 
#CNV_Enable das dann mit einem FF retimed wird.
Ich dachte mir eben, dass wenn ich da schon einen Taktgeber zum ADC 
packe, dann kann ich daraus auch gleich das #CNV_Enable und SCLK 
erzeugen. Das ginge mit einem Zähler une ein paar Gattern oder eben 
einem CPLD.

Aber weil der Jitter doch recht gering ist, werde ich den sauberen 
schönen Takt auf der ADC Platine zum retimen verwenden und diesen Takt 
auch zum FPGA führen, dort mit diesem Takt das #CNV_Enable erzeugen und 
das dann wieder zum ADC führen. Ja, das macht etwas Latenz, aber die ist 
mir egal.

Bernd schrieb:
> Dann schau Dir doch die an.

Da das Signal bisher nur Bits sind die aus einem ODDR herausgeschoben 
werden ist das wohl egal welche Flanke.

> Wenn dein Signal perfekt wäre, dürfte das Oszi nach 10 µs einen Fehler
> von +/- 100 ps haben, siehe Datenblatt (S. 19):
> 
https://beyondmeasure.rigoltech.com/acton/attachment/1579/f-0907/1/-/-/-/-/MSO5000_datasheet.pdf

Danke!

> Nach 10 µs sieht man einen Peak-Peak-Jitter von 1 ns.
> Ich bin aber überfragt, wie man daraus den Cycle-to-Cycle-Jitter
> errechnet.
> Einfach durch 50 zu teilen ist vermutlich falsch (10 µs / 200 ns).

Naja, diese 1 ns bleibt recht konstant, auch nach 100 us ist das noch 
nicht mehr weil das vermutlich gleichverteilt ist. Im Schnitt hebt sich 
der Jitter auf. Der Takt ist jetzt gerade ein Si510 Oszillator, der geht 
in das FPGA und damit wird das ODDR getaktet. Aber da ist keine PLL 
dazwischen.

> Wenn man die ermittelten 270 ps nimmt, müßte sich bei einem 2 Vpp Sinus
> mit 100 kHz ein maximaler Amplitudenfehler von 170 µV ergeben
> (Standardabweichung).
> Zum Vergleich: Bei einem (idealen) 16-Bit-Wandler mit 2 Vpp
> Vollaussteuerung hat ein Bit eine Wertigkeit von 30 µV.

Ja, ich habe dieses Problem jetzt auf der Liste, wird bearbeitet, dauert 
aber noch. Weil wenn ich eine Platine baue, dann will ich da mehrere 
Dinge testen, also andere Verstärker, Analogfilter, ...

> Kannst du eine vergleichbare Messung des Taktes am Evaluationboard
> machen?

Das habe ich nicht.

von Gustl B. (-gb-)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, gemessen. Und ja, die Flanke war wirklich egal, auch bei der 
flallenden Flanke ist jetzt grob 1 ns Jitter drauf. Aber eben nur wenn 
das Signal durch den Isolator durch ist. Vor dem Isolator, also am 
Ausgang des FPGAs sieht es sehr viel jitterfreier aus.

Tja, jetzt weiß ich, dass das jittert und werde das so bauen wie schon 
weiter oben beschrieben. Das war jetzt also nur noch eine Bestätigung.

von Achim S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Aber eben nur wenn
> das Signal durch den Isolator durch ist. Vor dem Isolator, also am
> Ausgang des FPGAs sieht es sehr viel jitterfreier aus.

Welchen Digitalisolator verwendest du denn genau? Einen ADUM von Analog 
Devices?

Es gibt in der ADUM-Reihe zwei unterschiedliche Arbeitsweisen. Die eine 
Methode besteht darin, eine RF-Spannung über den isolierenden Übertrager 
zu schicken und auf der Sekundärseite gleichzurichten. Diese RF-Spannung 
wird an- oder ausgeschaltet, je nach gewünschter Schaltflanke. Ein 
Beispiel dafür ist der ADUM1100N (siehe Fig. 10 von 
https://www.analog.com/media/en/technical-documentation/data-sheets/ADuM110N.pdf)

Bei dieser Methode wirst du immer einen gewissen Jitter bekommen, 
zumindest bei der Flanke, bei der die RF abgeschaltet wird (je nachdem 
bei welcher Phaselage das Abschaltsignal die RF gerade erwischt geht sie 
schneller oder langsamer aus, der Jitter sollte mindestens in der 
Größenordnung einer Periode der RF liegen.)

Daneben gibt es ADUM-Isolatoren, die pro Schaltflanke nur einen 
einzelnen 2ns Puls über den Übertrager schicken (aus der Pulspolarität 
ergibt sich dann die Polarität der Schaltflanke). Ein Beispiel dafür ist 
der ADUM1100 (wie oben, nur ohne den Buschstaben N am Ende). Das hat im 
Prinzip den Nachteil, dass eine gewisse Mindestfrequenz der Pulse 
benötigt wird - sonst springt ein Watchdog ein, der zsätzliche Pulse 
anfordert. Aber wenn du in deiner Anwendung diese Mindestfrequenz 
sicherstellst (laut 
https://www.analog.com/media/en/technical-documentation/data-sheets/ADUM1100.pdf 
brauchst du mindestens 1,2Mb/s), dann könnte ich mir vorstellen, dass 
die Flanke eines einzelnen Spannungspuls weniger Jitter in die 
Übertragung einbringt als die An- bzw. ausschwingende RF.

Wenn du weniger Jitter im Digitalisolator willst, lohnt es sich 
vielleicht auch, das mal zu prüfen. Im Fall des ADUM1100 ist nur bei der 
N-Variante der Jitter spezifiziert. Die Spec liegt mit typ. 380ps 
Peak-Peak unter dem, was du in deiner Anwendung siehst.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Achim S. schrieb:
> Welchen Digitalisolator verwendest du denn genau? Einen ADUM von Analog
> Devices?

Die Si866x hier:
https://www.silabs.com/documents/public/data-sheets/Si866x.pdf

ADUM hatte ich mir auch angeguckt, aber die sind nur bei 5 V schnell und 
der ADC hat ein 2,5 VDD. Und auch bei 5 V schaffen die ADUMs "nur" 100 
MBit/IO, ich bräuchte aber idealerweise 105 MBit/s. 100 MBit/s gehen 
natürlich auch, verwende ich derzeit sogar, ist aber nicht ideal für die 
maximale Abtastrate.
Aber ich baue das ja jetzt sowieso mit gutem Taktgeber direkt auf der 
ADC Platine und retiming per FF. Da muss jetzt nur noch das #CNV_Enable 
über den Isolator vom FPGA zum ADC.
Weil aber dieses #CNV_Enable synchron zu dem retiming Takt erzeugt 
werden sollte, führe ich diesen Takt auch von der ADC Platine über den 
Isolator zum FPGA. Mit Retiming sollten wenige ns Jitter egal sein.

Die andere Option wäre, wie oben geschrieben, das #CNV_Enable und sogar 
SCLK direkt auf der ADC Platine zu erzeugen. Entweder mit einem 
Binärzähler und ein paar Gattern oder in einem CPLD. Das werde ich jetzt 
aber nicht machen. Vielleicht werde ich das aber als Bestückungsoption 
vorsehen und erstmal unbestückt lassen. Mal gucken. Das scheitert am 
schnellen Digitalzähler, weil ECL Logik möchte ich nicht verwenden.

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Das scheitert am
> schnellen Digitalzähler, weil ECL Logik möchte ich nicht verwenden

Hast du dir mal die 74xxS angeschaut? Die sind auch verdammt schnell und 
brauchen das ganze "Drumherum" der ECL-Typen nicht. Und vor allem 
verpulfern sie deutlich weniger Leistung/Wärme als die ECL, obwohl sie 
auch schon gehörig Strom brauchen. Von nix kommt nix :-)
Gruß Rainer

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Der hier ist schnell genug:
https://www.onsemi.com/pub/Collateral/MC74AC4040-D.PDF

Aber wenn ich das #CNV_Enable sowieso im FPGA erzeuge brauche ich den 
nicht. Das wäre eben eine zusätzliche Bestückungsoption die ich testen 
könnte. Aber weil das mit dem FPGA ja auch funktionieren sollte brauche 
ich das nicht.

von Jürgen S. (engineer) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
udok schrieb:
> Den möchte ich sehen, der mehr als 100 dB THD+N schafft,
> über sagen wir mal +- 5 Grad Temperaturschwankung.
Ich habe schon mit weniger Bits 100dB geschafft und zwar nicht nur bei 
Messfrequenz 1000Hz wo untenrum alles missachtet wird.

> Bei > 120 dB, wo es interessant wird, muss der Teiler mit den Mosfet
> Schaltern auf 5 Milliohm genau sein, und dass bei R=10kOhm,
Nur, wenn du unkalibriert arbeitest. Es gibt natürlich Spezialisten, die 
sich hinsetzen und Bauteile selektieren und dann die DIY-Leute 
kritisieren, dass es nicht möglich sei.

Es gibt aber auch Leute, die etwas ingenieurwissenschaftlicher denken 
und das Ganze kalibieren. Und so machen es auch die meisten auf 
DIY-Audio: Der FPGA kriegt eine Kalibiertabelle hinterlegt. Gegen den 
Temperaturdrift hilft regelmäßiges Nachkalibrieren und/vor ein 
Kennlinienfeld.

Es ist natürlich auch einsichtig, dass man nicht - wie man naiv meinen 
könnte - mit einem mathematisch perfekten R2R arbeiten kann, sondern man 
muss die Bautteilstreuung mit einbeziehen, d.h. der jeweils geringere 
Widerstand muss größer sein, als 0.5 der Vorstufe, weil man nicht 
garantieren kann, dass deren Summe insgesamt genau 0,5 ergeben wird.
Auf diese Weise bekommt man mit 32 Bit auch niemals 32 Bit hin, auch 
wenn das immer wieder behauptet wird. Da liegen die DIY Leute wiederum 
daneben.

> Abgesehen sind die R2R DACs berühmt für ihre Glitches beim Umschalten...
Wenn man sie falsch baut, ja. Wenn man aber das Analogsignal mit einem 
analogen Setup-Hold-Glied versieht, ist das Thema erledigt.

Was du nicht genannt hast und von anderen gerne eingeworfen wird:

Mr. X schreibt regelmäßig
>Euro DIY DACs haben mehr Jitter, wegen der FPGA-PLL und der
>ungleichmäßigen Ausgänge und Ausgangsbelastungen, weil die Regelung des
>Ausgangs fehlt

Jitter ist kein Problem, weil der DAC-Teil, das Analog-Gate und FPGA 
einen eigenen Takt haben und am Ende nur das Signal nach dem Gate zählt
Ausgangsfehler sind kein Problem, weil man die berechnen und 
vorkompensieren kann, zudem kann man die Ausgänge mit dem DAC-Takt 
registrieren und asynchron auslesen, wobei man die IOs so einstellt, 
dass sie nacheinander schalten und so dass SSO-Problem lindern.
Damit ist man diesbezüglich sogar besser dran, als mit einem synchronen 
parallelen Betrieb zu einem CHIP-DAC. Kein Witz.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Also ... das mag ja alles stimmen, aber für mich ist das was die 
Audioleute da abziehen krass überzogen. Ob mir ein Musikstück gefällt 
hängt von ganz anderen Kriterien ab wie ob da noch ein minimales 
Rauschen zu hören ist. Ich habe hier ganz nochmale billo Audiohardware 
und hatte da nie Probleme. Was tatsächlich ärgerlich sind Störungen die 
kein Rauschen sind. Mein alter Acer Laptop z. B. hat unter last gefiept. 
Aber nicht nur das Gerät, sondern das war auch auf angeschlossenen 
Kopfhörern zu hören. Das war irre nervig.

Aber sonst finde ich das genauso sinnfrei wie 4K Filme, der Film wird 
dadurch nicht besser. Urlaubserinnerungen werden nicht schöner nur weil 
sie heute mit vielen Megapixeln festgehalten wurden.

Ich verstehe natürlich auch die Leute die das trotzdem machen, da geht 
es eben um die Grenze des Machbaren, quasi als Sport.

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Derzeit verwende ich diesen OPV
> https://www.analog.com/media/en/technical-documentation/data-sheets/LTC6363.pdf
> auf Seite 15 oben in der Mitte sieht man, dass ab ein paar 10 kHz die
> harmonische Verzerrung deutlich nach oben geht.

Wieviel dBc muss der Verstärker für deine Messungen denn schaffen?

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Gute Frage. So mit 90 wäre ich zufrieden wenn das bis hoch zu 1 MHz 
geht.

von udok (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Jürgen S. schrieb:
> udok schrieb:
>> Den möchte ich sehen, der mehr als 100 dB THD+N schafft,
>> über sagen wir mal +- 5 Grad Temperaturschwankung.
> Ich habe schon mit weniger Bits 100dB geschafft und zwar nicht nur bei
> Messfrequenz 1000Hz wo untenrum alles missachtet wird.
>
>> Bei > 120 dB, wo es interessant wird, muss der Teiler mit den Mosfet
>> Schaltern auf 5 Milliohm genau sein, und dass bei R=10kOhm,
> Nur, wenn du unkalibriert arbeitest. Es gibt natürlich Spezialisten, die
> sich hinsetzen und Bauteile selektieren und dann die DIY-Leute
> kritisieren, dass es nicht möglich sei.
>
> Es gibt aber auch Leute, die etwas ingenieurwissenschaftlicher denken
> und das Ganze kalibieren. Und so machen es auch die meisten auf
> DIY-Audio: Der FPGA kriegt eine Kalibiertabelle hinterlegt. Gegen den
> Temperaturdrift hilft regelmäßiges Nachkalibrieren und/vor ein
> Kennlinienfeld.
>
> Es ist natürlich auch einsichtig, dass man nicht - wie man naiv meinen
> könnte - mit einem mathematisch perfekten R2R arbeiten kann, sondern man
> muss die Bautteilstreuung mit einbeziehen, d.h. der jeweils geringere
> Widerstand muss größer sein, als 0.5 der Vorstufe, weil man nicht
> garantieren kann, dass deren Summe insgesamt genau 0,5 ergeben wird.
> Auf diese Weise bekommt man mit 32 Bit auch niemals 32 Bit hin, auch
> wenn das immer wieder behauptet wird. Da liegen die DIY Leute wiederum
> daneben.
>
>> Abgesehen sind die R2R DACs berühmt für ihre Glitches beim Umschalten...
> Wenn man sie falsch baut, ja. Wenn man aber das Analogsignal mit einem
> analogen Setup-Hold-Glied versieht, ist das Thema erledigt.
>
> Was du nicht genannt hast und von anderen gerne eingeworfen wird:
>
> Mr. X schreibt regelmäßig
>>Euro DIY DACs haben mehr Jitter, wegen der FPGA-PLL und der
>>ungleichmäßigen Ausgänge und Ausgangsbelastungen, weil die Regelung des
>>Ausgangs fehlt
>
> Jitter ist kein Problem, weil der DAC-Teil, das Analog-Gate und FPGA
> einen eigenen Takt haben und am Ende nur das Signal nach dem Gate zählt
> Ausgangsfehler sind kein Problem, weil man die berechnen und
> vorkompensieren kann, zudem kann man die Ausgänge mit dem DAC-Takt
> registrieren und asynchron auslesen, wobei man die IOs so einstellt,
> dass sie nacheinander schalten und so dass SSO-Problem lindern.
> Damit ist man diesbezüglich sogar besser dran, als mit einem synchronen
> parallelen Betrieb zu einem CHIP-DAC. Kein Witz.


In der Theorie kann man das, und vieles andere machen.
Nur in der Praxis sieht man den Clock trotz Sample-Hold
am Ausgang,
und die lästigen nichtlinearen PN Kapazitäten spielen
eine Rolle, und der Aufwand geht exponentiell hoch.

Es wird gute Gründe geben, warum die Burr-Brown Ingenieure um
die Jahrtausendwende das R2R Konzept (PCM1792 war einer der letzten),
das sie über mehr als 15 Jahre verfeinert, und mit etlichen
Patenten verteidigten, hingeschmissen haben.

Interessanterweise machen ja auch die Sigma-Delta DACs heute ganz
ähnliche Tricks, die haben inzwischen ja auch mehr als 1 Bit,
und damit Probeme mit Toleranzen und Nichtlinearitäten.

von udok (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wolfgang schrieb:
> Gustl B. schrieb:
>> Derzeit verwende ich diesen OPV
>> https://www.analog.com/media/en/technical-documentation/data-sheets/LTC6363.pdf
>> auf Seite 15 oben in der Mitte sieht man, dass ab ein paar 10 kHz die
>> harmonische Verzerrung deutlich nach oben geht.
>
> Wieviel dBc muss der Verstärker für deine Messungen denn schaffen?

Was willst du denn überhaupt messen, da ist doch nichts interessantes 
mehr??

von Gustl B. (gustl_b)


Bewertung
0 lesenswert
nicht lesenswert
Ich will gar nix messen, das ist ein Lernprojekt. Ich versuche mir Stück 
für Stück Dinge beizubringen. Wie man die Beschaltung macht dass sie für 
meine Anwendungen gut genug ist weiß ich bereits. Jetzt möchte ich das 
noch optimieren. Ich werde da jetzt auch andere Analogfilter verbauen 
und nicht nur ein RC vor dem ADC Eingang.
Wenn das nicht wie gewünscht funktioniert ist es nicht schlimm.

von udok (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Na ja, und was ist jetzt die Anwendung? Oder ist das streng geheim?
Was willst denn da lernen, was nicht schon in der Application Note
drinnen steht?

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Jetzt mal ganz lustig reingeworfen : Hubraum kann man nur durch mehr 
Hubraum ersetzen! (oder so ähnlich)
Gruß Rainer

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Das wird eine Hardware und die kommt dann in eine Schublade und bleibt 
dort.

Es ist ein Unterschied zwischen Appnote lesen und das selber mal gemacht 
haben. Hast du keine "Projekte" nur um mal etwas mit noch unbekannter 
Hardware gemacht zu haben?

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Hi, ich wollte damit nur sagen, dass es manchmal einfach reicht, die 
beteiligten Macher mal eine 10er-Potenz höher zu bringen :-) Mal einen 
OP mit 800MHz versuchen? Du bist aber immer noch am Takt oder?! Sorry, 
wenn ich jetzt nicht ganz folgen kann.
Gruß Rainer

von udok (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Das wird eine Hardware und die kommt dann in eine Schublade und
> bleibt
> dort.
>
> Es ist ein Unterschied zwischen Appnote lesen und das selber mal gemacht
> haben. Hast du keine "Projekte" nur um mal etwas mit noch unbekannter
> Hardware gemacht zu haben?

Deine Zeit möchte ich auch haben :-)

von Gustl B. (gustl_b)


Bewertung
0 lesenswert
nicht lesenswert
@ Rainer:
Ja, Schaltung und Layout für den Takt sind fertig. Jetzt kümmere ich 
mich noch um andere OPVs. Wenn dann das ganze Layout fertig ist wird 
bestellt. Ich möchte Platine und Bauteile noch vor den Feiertagen auf 
dem Tisch haben. Mal gucken ...

@ udok:
Die letzten beiden Jahre war ich Referendar und das war ziemlich 
anstrengend. Dieses Schuljahr oder zumindest das erste Halbjahr mache 
ich eine Auszeit um mich mehr mit Hobbys zu beschäftigen. Vielleicht 
mache ich das ja irgendwann mal beruflich oder fange im Herbst eine 
Ausbildung in dem Bereich an.

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Ich möchte Platine und Bauteile noch vor den Feiertagen auf
> dem Tisch haben.

Na dann aber los!! Viel Spass beim Basteln.
Gruß Rainer

von Pessi Mist (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Habe den Informations-Wust von drei jahren jetzt nicht voll
im Überblick und hatte auch keine Lust das im Detail durch-
zuarbeiten, aber irgenwie fehlt mir die Berücksichtigung des
ADC-Taktes.

Der ADC-Takt beeinflusst entscheidend was an Signalgüte am
Ausgang herauskommt. In professionellen Geräten wird erheblicher
Aufwand getrieben um diesen speziellen Takt so sauber wie möglich
zu bekommen. Alles was an Phasenrauschen und Nebenlinien (also
Nichtharmonischen) im ADC-Takt enthalten ist kommt ungeschönt
(unverschlechtert/unverbessert) am Sample-Ergebnis heraus ohne
dass man es jemals wieder herausfiltern könnte.

Ich hoffe das hat sich jemand vor Augen gehalten ....

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
@ Rainer: Danke!
@ Pessi Mist: Ja, genau dieser Punkt wurde diskutiert und wird behoben.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
So, da bin ich wieder. Platine ist da und ich habe jetzt mal mit der 
Bestückung angefangen. Und habe ein Problem:

Bei einem FF NL17SZ74 
https://www.onsemi.com/pub/Collateral/NL17SZ74-D.PDF sehe ich am Ausgang 
#Q ein Signal, aber der Ausgang Q den ich verwenden will liegt nur auf 
der Versorgungsspannung.

Eingang CP und #CLR habe ich angeguckt und sehen aus wie gewünscht.
D liegt auf Versorgungsspannung (gemessen) und #PR liegt auf Masse 
(gemessen).

Versorgung liegt natürlich auch an und Masse ist ebenfalls verbunden. 
Ich finde das sehr seltsam, dass ich an #Q etwas sehe. Habe den Stein 
schon durch einen baugleichen ersetzt. Die Ausgänge sind bisher beide 
unbelastet, also offen und haben auch keinen Kurzschluss nach Masse oder 
Versorgung.

Ist das ein typisches Verhalten bei fehlerhafter Beschaltung?

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Ich ziehe die Frage zurück.

von Gustl B. (-gb-)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Oh ich habe doch eine Frage:

So ein FF funktioniert doch so, wenn Resettet wird hat der nach dem 
Reset den Zustand vom Preset. Wenn dann der nächste Takt kommt, dann ist 
das gespeichert was zum Zeitpunkt der Taktflanke am Dateneingang D 
anliegt. Sehe ich das richtig?

Dann habe ich die Schaltung wie im Anhang. Der Zähler zählt und ab und 
zu geht RESET_COUNTER kurz hoch. Funktioniert. Das ist auf den 
Oszibildchen das gelbe Signal.

Das AND Gatter vor dem FF gibt einen hohen Pegel aus wenn die beiden 
LSBs des Zählers high sind. Also bei 3, 7, 11, 15, ... das funktioniert 
auch. Das ist das blaue Signal.

#Preset vom FF liegt auf Masse. Das bedeutet, dass nach dem Reset eine 1 
gespeichert ist.
Der Dateneingang D liegt ebenfalls auf Masse.

Für mich müsste das also so sein, der Resetpuls (gelb) kommt, die 1 aus 
dem Preset wird geladen und bleibt so lange, bis der erste Takt (blau) 
kommt und dann die 0 von D lädt. Der Ausgang Q müsste also zwischen 
gelben Puls und erstem blauen Puls danach high sein. Und #Q genau 
umgekehrt.

Ich betrachte hier #Q (lila), ja, den Inverter könnte man weglassen, 
aber ich hatte #Preset und D genau invertiert belegt, das ist jetzt aber 
egal.

Die Frage ist:
Warum ist #Q nur für so kurze Zeit low und nicht bis die nächste blaue 
Flanke kommt?

Danke!

Edit:
Männo, ich muss natürlich den Reset invertieren ... mal gucken ob sich 
da was basteln lässt.
Und den #Preset darf ich auch nicht dauerhaft Low lassen, aber das war 
er in der Ursprünglichen Bestückung auch nicht, da war #Preset High und 
D Low. So werde ich das jetzt auch umbasteln aber eben noch einen 
Inverter vor das  #CLR setzen.

Dass die Signale so schlimm aussehen liegt an der Masseanbindung. 3 
Tastköpfe kann ich nicht sinnvoll halten, also hatte ich da Fädeldraht 
dran und somit eine eher große Masseschleife. Mit der Massefeder am 
Taskopf sieht das deutlich besser aus.

Edit:

: Bearbeitet durch User
von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Also schön, wieder was zu hören...aber jetzt galloppierst du irgendwie 
in die Pampa oder?! Nimm mal alles zurück, bis auf einfache, 
nachprüfbare Sachen:-)
Gruß Rainer

von Gustl B. (-gb-)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nene, sieht gut aus. Hab das jetzt umgebaut und bekomme ein schönes 
#CNV_Enable lokal erzeugt ganz ohne FPGA.
Dann habe ich noch dieses Enable retimed mit einem FF und dann hat das 
ja mal richtig hybsche Flanken. Auch dazu ein Bildchen. Eine SPI SCLK 
erzeuge ich auch lokal, aber da fehlt mir am Anfang ein halber Takt ... 
da weiß ich noch nicht ob das a) stört oder b) wie ich das löse.

von Rainer V. (a_zip)


Bewertung
0 lesenswert
nicht lesenswert
Man oh man...scheint gut zu sein! Insgesamt - also in deiner Applikation 
auch??
Gratulation!
Rainer

von Gustl B. (-gb-)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gute Frage, weiß ich noch nicht, ADC ist noch lange nicht bestückt. 
Jetzt versuche ich gerade die Clock am AND Gate für SCLK etwas zu 
verzögern. Habe gerade schon einen Inverter versucht, aber die 
Verzögerung muss doch etwas geringer sein, jetzt setze ich mal ein AND 
Gate dazwischen.

Edit:
Genug für heute. Das SPI das vorher das FPGA gemacht hat wird jetzt 
lokal erzeugt und sieht gut aus. Die Schalung braucht 50 mA bei 5 V 
inklusive der beiden LDOs und Taktgeber aber noch ohne ADC und 
Digitalisolatoren und sonstiges. Ja, im Bildchen sieht das Signal wieder 
nicht so fein aus, aber das sind wieder Masseschleifen beim Messen.
Gibt es eigentlich kleine leichte Tastköpfe? Müssen jetzt nicht irre 
schnell sein, aber gerne so, dass da vorne nur zwei Pads sind an die man 
dann selber dünnen Draht ranlötet. Oder vielleicht auch zwei kleine 
Klemmen vorne. Und eben leicht. Die hier vom Oszi sind zwar handlich 
aber ... wie soll ich das beschreiben. Ich habe nahe an einem IC auf 
eine freigekratzte Leitung (das musste ich sowieso machen) einen kurzen 
Draht gelötet, wenige mm lang und dann habe ich dort die Klemme vom 
Tastkopf angeschlossen. Aber der Taskopf wird ja in der Mitte dicker und 
hinten ist noch Gewicht dank Kabel. Also hatte das eine Hebelkraft und 
hat mir die Leiterbahn weiter von der Platine gezogen. Nicht schön.

: Bearbeitet durch User
von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Ja ich sollte #CNV etwas länger machen. Also so würde es schon 
funktionieren aber längeres #CNV gibt kleineren Fehler.
Nun, jetzt habe ich einen 104 MHz Oszillator und das teile ich durch 20. 
Etwas mehr weil der Reset vom Zähler ja auch Zeit braucht, aber eben 
grob 20. Das gibt eine Samplerate von >5 MSample/s, also mehr als die 
Spezifikation vom ADC.

Ich werden auch noch folgendes testen:
Takt durch 21 teilen (4,952 MSample/s) und dann #CNV um einen Takt 
länger machen. Statt derzeit grob 38 ns wäre #CNV dann 48 ns lang. Wie 
man im Datenblatt 
https://www.analog.com/media/en/technical-documentation/data-sheets/232516fa.pdf 
Seite 9 Mitte links sieht wäre das vorteilhaft. Mal gucken.

von Dieter (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Es gab frueher einen Spannungsteilertastkopf bei dem im Prinzip drei 
Widerstaende in Reihe verbaut waren. Die Messelektroden gingen vom 
mittleren Widerstand weg. Es war damit moeglich ohne dass es knallte an 
Fersehern ohne galvanische Trennung und Trenntrafo zu messen.
Denke, do eteas muesstest Du Dir basteln.

von Franz Xaver Blutwurscht (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Dieter schrieb:
> an Fersehern ohne galvanische Trennung und Trenntrafo zu messen

= Aus Versehen ohne galvanische Trennung durch Trenntrafo gemessen?
Da kam es sicher zu "lustigen" Effekten - magst Du sie aufzählen?

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Aus welchem Material ist denn die Seele von diesen Oszi-Tastkopf-Kabeln? 
Ich habe jetzt einen alten Tastkopf zerlegt und ja, den kann man 
deutlich kleiner bauen, aber die Seele des Kabels lässt sich nicht 
verlöten. Die war auch gequetscht beim Tastkopf.

Oder hier 
https://www.batronix.com/images/generated/rp5600-1200x735-White-b.jpg 
links am Rand oben unter dem Schwarzen Dreieck. Das sieht wie ein 
Aufsteckaufsatz aus. Kann man sowas auch einzeln kaufen? Wie nennt man 
sowas?

: Bearbeitet durch User
von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
So, habe jetzt lange mit dem SPI Timing gespielt. Wenn ich da 16 
halbwegs schöne Takte haben will bleibe ich bei 38 ns für #CNV.

Ich erzeuge mit SCLK mit einem AND Gatter, also #CNV_Enable AND CLK = 
SCLK. Aber damit der erste und der letzte SCLK Puls gut aussieht muss 
ich CLK und #CNV_Enable so hinschieben, dass die sich nicht halb 
überlagern. Wenn in der Mitte von einem CLK High das #CNV_Enable High 
geht, dann bekäme ich nur einen halben Puls auf SCLK. Ich habe mich 
entschieden CLK zu verzögern. Und zwar mit AND Gattern weil ich da etwas 
mehr bestellt habe. Das funktioniert auch wunderbar (nach ein paar 
Stunden Drahtverfädelung) aber ich habe eine Frage dazu:

Ich habe jetzt CLK an beide Eingänge des AND angeschlossen. Am Ausgang 
bekomme ich ein verzögertes CLK.
Macht es einen Unterschied ob ich CLK an beide Eingänge anschließe oder 
es nur an einen Eingang anschließe und den anderen Eingang fest auf VCC 
lege?

Ich vermute nein, aber vielleicht gibt es da ja Eigenheiten die man 
beachten sollte. Jedenfalls habe ich jetzt 3 AND Gatter in Reihe für die 
nötige Verzögerung. Volle 5 MSample/s kommen nicht bei rum, aber 4,9XX. 
Die Tage wird dann weiterbestückt.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
So, ein kleines Update:
Platine ist da wurde in verschiedenen Varianten bestückt.
Zum SPI:
Ich konnte lokal beim ADC mit dem sauberen Takt, einem Zähler IC und ein 
paar Gattern schön #CNV und auch SCK erzeugen. #CNV hat zwar auf der 
fallenden Flanke vermutlich weiterhin etwas Jitter, der ist mit meinem 
Oszi aber nicht mehr messbar. Bzw ich weiß nicht ob ich den Jitter vom 
Oszi oder den von #CNV sehe.
Die Variante nur mit dem retiming FF funktioniert ebenfalls. Da reiche 
ich den sauberen Takt über den Digitalisolator zum FPGA, der erzeugt 
intern mit einem Zähler und DDR-IOs ein #CNV_Enable, dieses geht dann 
wieder über den Digitalisolator zurück zum ADC und wird dort vor dem ADC 
mit dem lokalren sauberen Takt und einem FF eingetaktet. Auch da ist der 
Jitter für mich nicht messbar.
An der Stelle bin ich also sehr zufrieden.

Dann gibt es den OPVs vor den ADC Eingängen und ... nun, "da schwingt 
etwas". Was das genau ist ist noch unklar. Und es ist auch unklar ob das 
nicht das Oszi ist. Und zwar sehe ich eigentlich überall unterschiedlich 
stark ein Signal etwas über 300 MHz. Auf der Versorgung schwach, am 
Ausgang des OPV stärker, aber auch am unbestückten OPV (eben schwächer). 
Tja aber eben nur wenn am Oszi 20 mV/Div einstelle. Bei 10 mV/Div und 5 
mV/Div ist es teilweise sichtbar aber sehr viel geringer. Sehr seltsam.
Ich messe natürlich mit der kurzen Massefeder.

Momentan habe ich die FPGA Platine in Verdacht. Da verwende ich zwar 
keine so hohen Frequenzen, aber da könnte ja auch etwas schwingen. 
Jedenfalls ist das auch dort gut sichtbar. Mal gucken ob ich das 
wegbekomme.

von Bernd (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Da reiche
> ich den sauberen Takt über den Digitalisolator zum FPGA, der erzeugt
> intern mit einem Zähler und DDR-IOs ein #CNV_Enable, dieses geht dann
> wieder über den Digitalisolator zurück zum ADC und wird dort vor dem ADC
> mit dem lokalren sauberen Takt und einem FF eingetaktet. Auch da ist der
> Jitter für mich nicht messbar.
Das klingt doch gut.

> Dann gibt es den OPVs vor den ADC Eingängen und ... nun, "da schwingt
> etwas".
Welchen Typ OPV hast Du genau verwendet und wie ist dieser beschaltet?
Einige OPV mögen es nicht, wenn die Verstärkung zu gering ist.
Stichwort: unity-gain stable

Eine zusätzliche Kapazität (wie z.B. der Tastkopf vom Oszi) kann da 
Wunder wirken.

Lesestoff zum Thema: https://www.ti.com/lit/an/slyt087/slyt087.pdf

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Tja, es liegt sehr wahrscheinlich nicht an den OPVs. Denn auch wenn ich 
von der FPGA Platine die ADC Platine abstecke kann ich an der FPGA 
Platine diese Störung messen.
Jetzt ist die FPGA Hauptplatine selbst erstellt und hat einen DCDC drauf 
und wird über USB versorgt. Darauf sitzt ein FPGA Modul von Trenz. Also 
hatte ich den DCDC in verdacht, aber ich kann das auch an einem älteren 
FPGA Board messen an dem ich noch statt DCDC einen LDO drauf hatte. Tja 
...

Ich werde die Tage mal Fotos machen, darin markieren wo genau ich 
gemessen haben und auch die zu der jeweiligen Messung gehörenden 
Oszibildchen hochladen. Vielleicht jage ich Gespenster.

: Bearbeitet durch User
von Bernd (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Und zwar sehe ich eigentlich überall unterschiedlich
> stark ein Signal etwas über 300 MHz.

Gustl B. schrieb:
> Also hatte ich den DCDC in verdacht
DC/DC-Wandler arbeiten mit Frequenzen in der Größenordnung von 20 kHz 
bis 1 MHz. Das passt nicht, zu niedrig.

Die untere VCO-Frequenz von MMCM und PLL liegt bei 600 bzw. 800 MHz. Das 
ist zu hoch.

Ist irgendwo DDRx-RAM verbaut?

von Gustl B. (gustl_b)


Bewertung
0 lesenswert
nicht lesenswert
Ja, der DCDC ist drunter, dachte vielleicht Obertöne?! Ne, kein RAM, 
keine PLL/MMCM, nur ein 100 MHz Takt für das ganze Design. Ich werde 
noch mit unkonfiguriertem oder einem Design ohne Takt gucken. Und auch 
mal mit einem anderen Oszi.

von Gustl B. (-gb-)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gut, wenn ich im FPGA keinen Takt verwende sehe ich den auch nicht auf 
der Versorgung. Ist eben ein recht fettes Design (>90%). Ich hatte mich 
da eigentlich auf Trenz verlassen, dass das FPGA Modul gut entkoppelt 
ist. Naja, ist es eigentlich auch. Die Störung ist je recht schwach 
sichtbar.

Jetzt habe ich der isolierten Platine vor dem DCDC und auch dahinter 
etwas mehr Kapazität spendiert und sehe auf der isolierten Seite jetzt 
"nurnoch" den Takt, den ich ja jetzt lokal beim ADC habe. Das sind 104 
MHz. Und die sind auf der Versorgung sichtbar mit ca. 20 mV Amplitude. 
Tja ... ist das OK als Versorgung für die OPVs und den ADC?

Wenn ich einen OPV bestücle, dass ist das auch an dessen Ausgang 
sichtbar. Ich erkläre mir das so:
Der fängt das am Eingang ein, verstärkt es und dann sieht man das am 
Ausgang.
Oder es ist ein "Gespenst". Wenn ich die Isolierte Masse gegen den OPV 
Ausgang messe, dann könnte es ja auch sein, dass die isolierte Masse 
schwingt (mit den Versorgungen) und der Ausgang des OPVs eigentlich 
sauber ist. Kann das sein?

Jedenfalls, wenn ich den Eingang des ADCs kurzschließe an der Stelle die 
auf dem Bild zu sehen ist (die OPVs sind nicht betstückt), dann sieht 
das Spektrum gut aus. Also da scheint die Störung keinen oder kaum 
Einfluss zu haben.

Ups, sorry, falsches Bild ohne Markierung. Also nur in einem Layout ist 
die Markierung was ich kurzgeschlossen habe.

: Bearbeitet durch User
von Bernd (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Und die sind auf der Versorgung sichtbar mit ca. 20 mV Amplitude.
Zeig mal bitte einen Screenshot vom Oszi.

Und als Vergleich, statt dem Tastkopf ein 50 Ohm-Widerstand am Eingang 
(Eigenrauschen).

von Gustl B. (-gb-)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, jetzt mal ein paar Bildchen.

Einen Fehler habe ich mittlerweile selbst gemerkt:
Bei Messungen mit dem 50 Ohm Abschluss habe ich nicht auf 1:1 
umgestellt.

Was mich etwas sehr verwirrt ist, dass die Messungen mit 10 mV/Div beim 
Rigol deutlich besser aussehen als die mit 20 mV/Div.

Ich habe den Trigger jeweils so eingestellt, dass ich die Störung 
möglichst gut sehen konnte.

von Gustl B. (-gb-)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Es geht weiter. Ich habe jetzt die Schaltung wie im Anhang, aber nur die 
OPVs und nur Widerstände bestückt. Ausnahme sind die 3x 1 nF zwischen 
OPV und ADC und die Kondensatoren an den OPV Versorgungen.

Ich finde das sieht OK aus, aber ich kann das jetzt mit dem Generator 
aus dem Oszi auch nicht besser testen. Ich habe auch Screenshots vom 
Oszi mit FFT im Anhang. Es war entweder meine ADC Hardware oder ein 
Kanal vom OSzi an den Generator angeschlossen, nicht beides 
gleichzeitig.

Was mir auffällt, ist dass der Peak bei mir recht breit ist. Aber ich 
habe im FPGA auch nur 8 kPunkte Platz (da wäre schon mehr, aber der ist 
anderweitig belegt, ich müsste mal ein Design machen nur für die ADC 
Samples). Wenn ich aber beim Oszi die Anzahl der Samplepunkte auch 
einschränke, z. B. auf 10k was das nächst Mögliche an 8k ist, dann ist 
der Peak dort auch sehr breit.

SMA_Short ist ein Kurzschluss am SMA der ADC Platine. Und bei DC_Gen ist 
die ADC Platine mit dem Generator im Oszi verbunden, der ist auch an, 
aber der ist auf DC und 0 V eingestellt.

Naja, seht selbst.

Edit:
Ja, C2 links ist ein Fehler. Da muss vorher ein R rein zur 
Strombegrenzung weil das ja der Ausgang ist. Aber der ist zur Zeit nicht 
bestückt.

: Bearbeitet durch User
von Gustl B. (-gb-)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mit C8 und C9 jeweils 27p bestückt bekomme ich eine deutliche Störung. 
Wenn ich den Wert auf 5 p verringere, dann wird die Störung stärker, 
also habe ich C6 und C7 auch mal bestückt und zwar C6 und C7 mit 68 p 
und C8 und C9 mit 5 p. Auch da sind deutliche Störungen sichtbar.

Und ich habe jetzt 32k Punkte Samplelänge, wie man in der FFT sieht 
werden die Peaks deutlich schmäler gegenüber der 8k.

Hier im Anhang bei den 100 kHz und 1 MHz waren die Kondensatoren nicht 
bestückt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.