Hallo Forum, es geht um AD7177 ADC und SPI-Kommunikation durch Schleifringe. Ich habe einen Atmega 1284, der mittels Flachbandkabel mit einer Platine verbunden ist, auf der ein 7177 sitzt. Das Flachbandkabel kann getrennt (DSUB-15) und beide Platinen dann an einem Rotationstisch betrieben werden. Der uC-Teil ist stationär, der 7177 dreht sich. Wenn ich die Platinen direkt miteinander verbinde, dann funktioniert die Kommunikation ohne Probleme. Wenn Schleifringe dazwischen sind, dann funktioniert es nicht, obwohl das Signal (gemessen am ADC, ohne Drehung) eigentlich super aussieht. Genauer gesagt - manchmal funktioniert es. Nach einem Reset kriege ich 0-10 mal die Konversion ausgelesen, danach nur Nullen oder anderen Quatch. Ich habe schon ins AD-Forum geschrieben, aber ohne Erfolg. Hier der Link, da kann man sich weitere Bilder anschauen: https://ez.analog.com/data_converters/precision_adcs/f/q-a/542349/ad7177-spi-communication-through-sliprings Bilder: Gelb-SCLK, Rot-MOSI, Blau-MISO Direkt1: Direkte Anbindung, Schreiben eines Registers Direkt2: Direkte Anbindung, Lesen dieses Registers Schleifringe1: Anbindung über Schleifringe, Schreiben eines Registers Schleifringe2: Anbindung über Schleifringe, Lesen dieses Registers Bis auf die etwas verschliffenen Flanken sehen die Signale eigentlich super aus. Kein Ringing, sehr wenig crosstalk. Der ADC empfängt auch die Befehle, ich sehe es indirekt wenn ich die SamplePerSecond in einem Register ändere. Dann ändert sich auch die Frequenz am DRDY-Pin. Aber Auslesen klappt nicht. Ich verstehe es nicht.
Nachtrag: ich habe die Bilder 1 und 3 übereinander/transparent gelegt um Timing-Probleme auszuschließen. Bis auf kleine Glättung der Kanten sieht es identisch aus.
Eigentlich sieht die Hauptstraße ganz gut aus, aber hast Du Dir mal die Nebenstraßen angeschaut? Sprich die Spannungsversorgung. Üblicherweise wird die auch "geschleift". Hast Du mal versucht die Geschwindigkeit zu reduzieren?
Tycho B. schrieb: > Wenn Schleifringe dazwischen sind, dann funktioniert es nicht, obwohl das > Signal (gemessen am ADC, ohne Drehung) eigentlich super aussieht. > Aber Auslesen klappt nicht. Ich verstehe es nicht. In >90% der Fälle kommt das durch einen falschen SPI-Mode. Lies mal dauernd nur das ID-Register aus. Dann weiß man, was man an Daten erwarten muss. Und dann probier einfach mal die 3 anderen SPI-Mode-Möglichkeiten auch aus... ;-)
:
Bearbeitet durch Moderator
Lothar M. schrieb: > In >90% der Fälle kommt das durch einen falschen SPI-Mode. Ich verdächtige das "Rauschen" auf den Taktflanken, dieses könnte Doppel- oder Mehrfach-Triggerung beim Empfänger auslösen.
@Sebastian S. Hi, im AD-Forum habe ich dazu ein Paar Bilder. Man sieht Spikes auf den 5V. Ich frage mich, ob die Ferrite da gar nicht hingehören, weil der ADC zu kräftig saugt und 100n nicht ausreichen. Ja, ich habe alle SPI-Geschwindigkeiten ausprobiert. Bei 2MBaud war es noch am Besten. Also 2-3 mal Auslesen war möglich, dann wieder tot.
Lothar M. schrieb: > Tycho B. schrieb: >> Wenn Schleifringe dazwischen sind, dann funktioniert es nicht, obwohl das >> Signal (gemessen am ADC, ohne Drehung) eigentlich super aussieht. >> Aber Auslesen klappt nicht. Ich verstehe es nicht. > In >90% der Fälle kommt das durch einen falschen SPI-Mode. > > Lies mal dauernd nur das ID-Register aus. Dann weiß man, was man an > Daten erwarten muss. Und dann probier einfach mal die 3 anderen > SPI-Mode-Möglichkeiten auch aus... ;-) Ja, habe ganz am Anfang der Fehlersuche feststellen müssen, dass der ADC SPI mode 3 benutzt. Ich habe nämich zuerst Mode 0 gehabt. Lustigerweise funktioniert die direkte Verindung auch mit Mode0. Aber auch mit Mode 1,2 und 3 funktioniert es nicht bei der Übertragung durch Schleifenringe.
jo mei schrieb: > Lothar M. schrieb: >> In >90% der Fälle kommt das durch einen falschen SPI-Mode. > > Ich verdächtige das "Rauschen" auf den Taktflanken, dieses > könnte Doppel- oder Mehrfach-Triggerung beim Empfänger auslösen. Hm, also auf den Bildern sehe ich kein Rauschen. Was meinst du? Ich habe ein Test gemacht und die Terminierungen überbrückt, um die Parasitkapazitäten schneller zu laden, siehe Anhang. Das nenne ich Rauschen) Naja, eher Ringing) Damit ging auch das direkte Kommunizieren nicht.
foobar schrieb: > CS wird aber schon benutzt, oder? Ja, CS is low die ganze Zeit. Ich schaffe es ja manchmal, etwas auszulesen.
:
Bearbeitet durch User
Tycho B. schrieb: > Ja, CS is low die ganze Zeit. Aber zwischen den Paketen doch high? Der maximale SCK darf 20MHz sein, bei Deinen Bildern kann man aber nicht sehen, ob da 25ns breite Störungen drauf sind. Man kann versuchen mit 74HC14 und RC-Gliedern solche kurzen Störungen zu filtern. Ich würde aber am ADC nen kleinen MC (ATtiny2313) setzen und dann über RS-485 differentiell die Daten zum Haupt-MC senden.
>> CS wird aber schon benutzt, oder? > > Ja, CS is low die ganze Zeit. Also nicht benutzt. Ein einziger falscher Clock-Impuls (bei Schleifkontakten nicht unwahrscheinlich) bringt die beiden Geräte außer Takt und es geht nichts mehr. Löst du dann denn wenigsten mal einen Reset aus (64+ Clocks with DIN high)?
Peter D. schrieb: > Tycho B. schrieb: >> Ja, CS is low die ganze Zeit. > > Aber zwischen den Paketen doch high? > > Der maximale SCK darf 20MHz sein, bei Deinen Bildern kann man aber nicht > sehen, ob da 25ns breite Störungen drauf sind. > Man kann versuchen mit 74HC14 und RC-Gliedern solche kurzen Störungen zu > filtern. > > Ich würde aber am ADC nen kleinen MC (ATtiny2313) setzen und dann über > RS-485 differentiell die Daten zum Haupt-MC senden. Nein, immer low. So wie ich es verstanden habe, darf CS auch nicht high gehen: "However on the AD717x CS will reset the serial interface when it is pulled high." Naja... Ich habe jetzt nicht explizit danach untersucht, aber bei all den Aufnahmen, die ich gemacht habe, war da nichts, was für schnelle Spikes sprechen würde. Außerdem sieht man die Bandbreite an den verschliffenen Flanken. Die Serienwiderstände von 420 Ohm an den Signalquellen sind auch Tiefpassfilter.
foobar schrieb: >>> CS wird aber schon benutzt, oder? >> >> Ja, CS is low die ganze Zeit. > > Also nicht benutzt. Ein einziger falscher Clock-Impuls (bei > Schleifkontakten nicht unwahrscheinlich) bringt die beiden Geräte außer > Takt und es geht nichts mehr. Löst du dann denn wenigsten mal einen > Reset aus (64+ Clocks with DIN high)? Wie gesagt, CS darf nicht high gehen. Getestet habe ich das ganze bei stehendem Drehtisch. Und: Ein anderer SPI-Sensor hat schon alle Messungen auch mit aktivem Drehtisch überstanden, also an den slip rings kann es nicht liegen. Im Rahmen einer Anfangsinitialisierung, bevor ich irgendetwas messe, führe ich auch einen soft reset durch.
Tycho B. schrieb: > So wie ich es verstanden habe, darf CS auch nicht high > gehen: "However on the AD717x CS will reset the serial interface when it > is pulled high." Nö, das bedeutet, falls sich das SPI mal verrannt hat, ist das die einzige Möglichkeit, es wieder zu synchronisieren.
> Nein, immer low. So wie ich es verstanden habe, darf CS auch nicht high > gehen: "However on the AD717x CS will reset the serial interface when it > is pulled high." Ja, der resettet den Bit-Counter - das will man! Der Chip muß doch wissen, wo ein Datenwort anfängt. SPI ohne CS ist Pfusch - kann man mal machen, wenn beide Chips nebeneinander auf der Platine stecken und man eine alternative Möglichkeit hat, sie zu synchronisieren (Power-Cycle etc). Ansonsten gehört CS mit zum Busprotokoll.
Peter D. schrieb: > Ich würde aber am ADC nen kleinen MC (ATtiny2313) setzen und dann über > RS-485 differentiell die Daten zum Haupt-MC senden. Es gibt dedizierte ICs, die SPI zu differentiell übersetzen und wieder zurück, habe schon gefunden als letzten Ausweg.) Ich würde aber gern die Ursache verstehen. Der Punkt ist auch, dass es mit einem anderen SPI-Device problemlos funktioniert.
Lothar M. schrieb: > Lies mal dauernd nur das ID-Register aus. Dann weiß man, was man an > Daten erwarten muss. Und dann probier einfach mal die 3 anderen > SPI-Mode-Möglichkeiten auch aus... ;-) Wozu macht sich der Hersteller eigentlich die Mühe, ein Datenblatt zu schreiben. Bist du schon mal auf die Idee gekommen, dass man soetwas nachlesen kann? Mit dem Auto fährst du doch auch nicht mit Höchstgeschwindigkeit auf eine Wand zu und probierst dann, welches vielleicht das Bremspedal ist. :-(
foobar schrieb: >> Nein, immer low. So wie ich es verstanden habe, darf CS auch nicht high >> gehen: "However on the AD717x CS will reset the serial interface when it >> is pulled high." > > Ja, der resettet den Bit-Counter - das will man! Der Chip muß doch > wissen, wo ein Datenwort anfängt. SPI ohne CS ist Pfusch - kann man mal > machen, wenn beide Chips nebeneinander auf der Platine stecken und man > eine alternative Möglichkeit hat, sie zu synchronisieren (Power-Cycle > etc). Ansonsten gehört CS mit zum Busprotokoll. Das Problem dabei ist, dass DOUT/RDY den Zeitpunkt einer Konversion anzeigt. Wenn ich CS auf high setze, dann ist DOUT/RDY tristated. Also muss ich irgendne Art Timer wieder einbauen, um kurz vor Konversion CS zu aktivieren und auf RDY-Übergang zu warten. Ich denke nicht, dass es so gedacht war.
Peter D. schrieb: > Tycho B. schrieb: >> So wie ich es verstanden habe, darf CS auch nicht high >> gehen: "However on the AD717x CS will reset the serial interface when it >> is pulled high." > > Nö, das bedeutet, falls sich das SPI mal verrannt hat, ist das die > einzige Möglichkeit, es wieder zu synchronisieren. Nein. On the AD719x CS does not reset the serial interface so it can frame each 8 bit transaction as can be seen from the scope plot. So this works fine for the AD719x. However on the AD717x CS will reset the serial interface when it is pulled high. So when CS is pulled high the read transaction is being aborted and returns to expecting a write to the Comms register.
Hi >> Nö, das bedeutet, falls sich das SPI mal verrannt hat, ist das die >> einzige Möglichkeit, es wieder zu synchronisieren. >Nein. Wieso geht dann in Figure 42/43 erst CS von H nach L, dann folgen Command schreiben Datenbytes lesen oder schreiben und danach CS wieder auf H? MfG Spess
Wolfgang schrieb: > und probierst dann, welches vielleicht das Bremspedal ist. :-( Um diesen recht holprigen Vergleich zu verlängern: er hängt ja schon auf der Mauer und überlegt sich, wie es in der nächsten Runde besser gehen könnte. Und augenscheinlich ist das gerade eben verwendete Pedal nicht zum Anhalten geeignet. Da darf man schon mal ein anderes ausprobieren. Tycho B. schrieb: > Ja, CS is low die ganze Zeit. Das ist der Fehler. Denn ohne SS# als Framesync reicht ein einziger Spike auf dem SCK dass die gesamte Kommunikation fürderhin ausser Schritt kommt. Spess53 schrieb: > Wieso geht dann in Figure 42/43 Sehe ich auch so... Ich käme nie auf die Idee, einen SPI Slave ohne SS# anzusteuern.
:
Bearbeitet durch Moderator
Tycho B. schrieb: > es geht um AD7177 ADC und SPI-Kommunikation durch Schleifringe. Ob DAS so ein gute Idee ist? Schleifringe sind auch bei guter oder sehr guter Qualität nicht mal ansatzweise so störarm wie eine normale Leitung. D.h. Störungen sind NORMAL! Allerdings sind diese besonders bei einem SPI-Taktsignal alles andere als gesund. Das MINIMUM ist ein RC-Filter am SCK-Eingang des ADC + Schmitt-Trigger, damit die Störpulse definitiv nicht dort rein kommen. > Ich habe einen Atmega 1284, der mittels Flachbandkabel mit einer Platine > verbunden ist, auf der ein 7177 sitzt. Das Flachbandkabel kann getrennt > (DSUB-15) und beide Platinen dann an einem Rotationstisch betrieben > werden. Der uC-Teil ist stationär, der 7177 dreht sich. Ist der Tisch endlos drehbar oder nur einen bestimmten Winkel, z.B. 1x360°? Bei letzterem braucht man keine Schleifkontakte, nur einen Wickel mit dem Kabel. Das funktioniert auch mit mehreren Umdrehungen. Alles in Allem würde ich kein SPI über Schleifringe führen wollen. Bestenfalls UART mit eine Datensicherung per CRC. Damit spart man auch Schleifringe ein. Oder gleich per Funk ala Bluetooth etc.
Spess53 schrieb: > Wieso geht dann in Figure 42/43 erst CS von H nach L, dann folgen > Command schreiben Datenbytes lesen oder schreiben und danach CS wieder > auf H? Warum tut es das bei Figure 66, 67 und 68 nicht? Ich weiss es nicht. Es sind abstrakte Darstellungen, die einen speziellen Sachverhalt darstellen sollen, der gerade erklärt wird. Hingegen ist der von mir zitierte Text von einer AD-Mitarbeiterin und sie bezieht sich genau auf die Verwendung von CS.
Hi
>Warum tut es das bei Figure 66, 67 und 68 nicht?
Bei Figure 68 für meine Begriffe schon.
MfG Spess
Falk B. schrieb: > Ob DAS so ein gute Idee ist? Schleifringe sind auch bei guter oder sehr > guter Qualität nicht mal ansatzweise so störarm wie eine normale > Leitung. D.h. Störungen sind NORMAL! Allerdings sind diese besonders bei > einem SPI-Taktsignal alles andere als gesund. Bei einem anderen Sensor funktioniert SPI bei sich drehendem Tisch ohne Probleme. Die Kommunikation mit dem AD7177 funktioniert nicht bei einem feststehenden Tisch, er wird nicht gedreht. Des Weiteren sieht man ein komplettes Auslesen auf den Oszi-Bildern. Ich habe ja ziemlich viel getestet und jetzt nicht die besten Bilder zum Zeigen ausgesucht oder so. Da sind keine Störungen. Alle Aufnahmen waren so. Wenn du willst, kann ich hier 20 Bilder reinstellen, dann können wir Spikes gemeinsam suchen. Achso, das Oszi war nicht bandbreitenbegrenzt, 10:1 abgeglichene 350 MHZ Tastköpfe und Samplerate war 2.5 GS/s. Falk B. schrieb: > Ist der Tisch endlos drehbar Ja, deswegen die Schleifringe.
Spess53 schrieb: > Hi > >>Warum tut es das bei Figure 66, 67 und 68 nicht? > > Bei Figure 68 für meine Begriffe schon. > > MfG Spess Nein, weil dort in einem Zug zuerst ein Register beschrieben wird und dann eine Konversion ausgelesen. Ich meine, ich kann natürlich immer wieder zwischendurch CS auf high setzen. Ich habe es auch getestet... Der uC ist per VCP am PC und über die Schnittstelle kann ich Kommandos ausführen. Ich habe extra ein Kommando programmiert, um CS manuell ändern zu können. Dann habe ich zuerst soft reset gemacht, dann manuell CS high gesetzt, dann low und dann 0x68 00 00 gesendet, also auslesen eines Registers. Hat auch nicht geklappt.
Tycho B. schrieb: > Hat auch nicht geklappt. Was bedeutet hier "nicht geklappt"? Du hast als Antwort nur 00000... bekommen? Tycho B. schrieb: > Warum tut es das bei Figure 66, 67 und 68 nicht? Weil es da nicht "gebraucht" wird. Aber ist doch egal, wer Recht hat. Den auch wenn du evtl. in vollem Umfang Recht hast: es läuft trotzdem nicht! Ich würde wie gesagt mal das "einfache" Bild 43 mit dem definierten und unveränderlichen ID-Register hernehmen und erst mal auf die Nanosekunde genau untersuchen, wie das Timing der 4 beteiligten Signale zu den Vorgaben der Seiten 7 und 8 und den Pegeln auf den Seiten davor passt. Im Besonderen auch, ob die Flanken stetig und ohne "Zacken" sind. Denn auch im Datenblatt auf Seite 21 links oben steht:
1 | Reading the ID register is the recommended method for verifying |
2 | correct communication with the device. The ID register is a |
3 | read only register and contains the value 0x4FDX |
Tycho B. schrieb: > Wenn ich die Platinen direkt miteinander verbinde, dann funktioniert die > Kommunikation ohne Probleme. Wenn Schleifringe dazwischen sind, dann > funktioniert es nicht Um wieviel länger ist dann der Signalpfad? Ändert sich was, wenn du ahnlich lange Leitungen, aber keine Schleifringe verwendest? Oder wenn du die Schleifringe zwar einbaust, aber brückst? > obwohl das Signal (gemessen am ADC, ohne Drehung) > eigentlich super aussieht. Die Messpunkte sind direkt am ADC und die Masse vom Oszi ist auch direkt am ADC angeschlossen? Kleine Anekdote zu einem ähnlichen Fall: Ich hatte schon mal einen AD7490, der lief einige Jahre unauffällig in Serie. Dann wurde ein Elko im Netzteil gesickt statt flach montiert und der AD-Wandler brachte Blödsinn und Nullen. Letztlich war es dann so, dass allein die geänderte Montage des Elkos im Schaltregler ns-Spikes auf der Masse erzeugte, die den SPI-Teil im AD-Wandler durcheinander brachten. Bei diesen Messungen war es deshalb wichtig, die Masse vom Oszi direkt am ADC anzuschließen. Denn nur dann sieht man auf dem Oszi das, was auch der ADC sieht. Das Ergebnis dieses "Übertragunsproblems" waren letztendlich dann die Betrachtungen dort: http://www.lothar-miller.de/s9y/categories/40-Layout-Schaltregler
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Du hast als Antwort nur 00000... bekommen? Ja. Lothar M. schrieb: > Um wieviel länger ist dann der Signalpfad? Ändert sich was, wenn du > ahnlich lange Leitungen, aber keine Schlifringe verwendest? Oder wenn du > die Schleifringe zwar einbaust, aber brückst? Um ca. 1m länger. Vom DSUB15-Stecker bis zu den Schleifringen wird das Signal durch geschirmte single-ended Leitungen geführt. Nach den Schleifringen genauso. Das mit längeren Leitungen habe ich mir auch überlegt, aber ich habe nirgends 1 m Flachbandkabel auf die Schnelle. Überbrücken geht auch nicht wirklich, weil der Drehteil des Drehtisches in einem Klimaschrank eingebaut ist. Lothar M. schrieb: > Ich würde wie gesagt mal das "einfache" Bild 43 mit dem definierten und > unveränderlichen ID-Register hernehmen und erst mal auf die Nanosekunde > genau untersuchen, wie das Timing der 4 beteiligten Signale zu den > Vorgaben der Seiten 7 und 8 und den Pegeln auf den Seiten davor passt. > Im Besonderen auch, ob die Flanken stetig und ohne "Zacken" sind. Das versuche ich heute mal.
Tycho B. schrieb: > Lothar M. schrieb: >> Um wieviel länger ist dann der Signalpfad? Ändert sich was, wenn du >> ahnlich lange Leitungen, aber keine Schlifringe verwendest? Oder wenn du >> die Schleifringe zwar einbaust, aber brückst? > > Um ca. 1m länger. Das ist bei den meisten SPI-ICs schon kritisch, siehe Wellenwiderstand. > Vom DSUB15-Stecker bis zu den Schleifringen wird das > Signal durch geschirmte single-ended Leitungen geführt. Nach den > Schleifringen genauso. Schön. Aber wie sieht es an den Schleifringen aus? Wie wird die Masse und Stromversorgung geführt? Wieviele Signale gehen über die Schleifringe? > Das mit längeren Leitungen habe ich mir auch überlegt, aber ich habe > nirgends 1 m Flachbandkabel auf die Schnelle. Überbrücken geht auch > nicht wirklich, weil der Drehteil des Drehtisches in einem Klimaschrank > eingebaut ist.
Falk B. schrieb: > Das ist bei den meisten SPI-ICs schon kritisch, siehe > Wellenwiderstand. Kannst du das bitte etwas erläutern? Ich dachte, dass während einer Flanke der Level sich ändert, während der anderen wird er eingelesen. Solange der Zeitversatz oder parasitäre Tiefpässe MOSI nicht um die halbe Clock gegenüber SCLK verschieben/dämpfen, sollte es funktionieren. An den Oszi-Bildern sieht man, dass zeitlich eigentlich alles passt. Falk B. schrieb: > Schön. Aber wie sieht es an den Schleifringen aus? Wie wird die Masse > und Stromversorgung geführt? Wieviele Signale gehen über die > Schleifringe? Jeweils ein Kontakt für Masse, 5V, CLK, MISO, MOSI und SC. Wie die Schleifringe intern aufgebaut sind weiss ich nicht.
Ich habe die Masse nun direkt an einen Pin des ADC angelötet. Testsequenz: power cycle, cs high, SPI mode 3, send 0x470000. Bild1: Komplette Aufnahme mit CS-Signal in grün. Weitere Bilder: T-Parameter aus dem Datenblatt und die schlimmsten Flanken, die ich finden konnte.
Tycho B. schrieb: >> Das ist bei den meisten SPI-ICs schon kritisch, siehe >> Wellenwiderstand. > > Kannst du das bitte etwas erläutern? Ich dachte, dass während einer > Flanke der Level sich ändert, während der anderen wird er eingelesen. Stimmt. Aber die Flanke muss "porentief" sauber sein. Da dürfen KEINERLEI kleine zacken oder so drauf sein. Bei 1m Kabellänge und den üblichen, kurzen Anstiegszeiten moderner ICs bzw. uCs. braucht man dafür eine Terminirung, hier meist Serienterminierung und halbswegs HF-taugliche Leitungs- und Masseführung. Siehe Wellenwiderstand. > Solange der Zeitversatz oder parasitäre Tiefpässe MOSI nicht um die > halbe Clock gegenüber SCLK verschieben/dämpfen, sollte es funktionieren. Nö. Lies mal das und erschreck dich ;-) Beitrag "Probleme mit SPI" > An den Oszi-Bildern sieht man, dass zeitlich eigentlich alles passt. Das reicht nicht. Die SCK Flanken müssen ASTREIN sein. Dazu muss man auch hf-tauglich messen. https://www.mikrocontroller.net/articles/Oszilloskop#Tastk.C3.B6pfe_richtig_benutzen Und wenn das Ganze schon im Stillstand Probleme macht, stimmt was nicht mit der Verdrahtung. Da ist was eben nicht HF-tauglich.
Falk B. schrieb: > Das reicht nicht. Die SCK Flanken müssen ASTREIN sein. Dazu muss man > auch hf-tauglich messen. Danke Falk. Ich hab es zwar nicht so gesagt aber so gemeint als ich schrub: jo mei schrieb: > Ich verdächtige das "Rauschen" auf den Taktflanken, dieses > könnte Doppel- oder Mehrfach-Triggerung beim Empfänger auslösen. Dann allerdings zu antworten Tycho B. schrieb: > Hm, also auf den Bildern sehe ich kein Rauschen. Was meinst du? ist schon etwas blau-äugig. Ich sah solche "Schwinger" an den Flanken schon in den ersten Oszillogrammen. Deswegen schrieb ich auch "Rauschen" und nicht Rauschen.
Tycho B. schrieb: > Ich habe die Masse nun direkt an einen Pin des ADC angelötet. > Testsequenz: power cycle, cs high, SPI mode 3, send 0x470000. > Bild1: Komplette Aufnahme mit CS-Signal in grün. > Weitere Bilder: T-Parameter aus dem Datenblatt und die schlimmsten > Flanken, die ich finden konnte. https://www.mikrocontroller.net/attachment/497314/CLK_rise.png Was ist denn DAS? Ist das eine Taktflanke in Zeitlupe? 50ns/DIV? Hää? So eine Taktflanke sollte um die 10-20ns haben, mehr nicht. Was hast du denn für Treiber? Ein AVR ist das nicht. Wie sehen die Flanken bei direkter Verbindung mit kurzem Kabel aus? Möglicherweise sind deine Schleifringe arg induktiv und verschleifen deine Flanke ;-)
Falk B. schrieb: > Wie sehen die Flanken bei direkter Verbindung mit kurzem Kabel aus? Anbei direkte Verindung. Ich habe Serienterminierungen an allen Leitungen, an der jeweiligen Senderseite. Sie waren zuerst 47 Ohm, da hat's doch etwas geklingelt, also habe ich sie auf 420 erhöht. Treiber ist Atmega 1284. Ic dachte es funktioniert wie ein Schmitt-Trigger. Müssen die Flanken eine Mindeststeilheit besitzen?
:
Bearbeitet durch User
Tycho B. schrieb: > Müssen die Flanken eine Mindeststeilheit besitzen? Das spezifiert das Datenblatt des Bausteins den du steuern willst. Oft gibt es da grössere Reserven an die Flankensteilheit. Ich betrachte das nicht-stetige Ansteigen oder Abfallen der Flanke als das Problem.
Tycho B. schrieb: > Ich habe Serienterminierungen an allen Leitungen, an der jeweiligen > Senderseite. Sie waren zuerst 47 Ohm, da hat's doch etwas geklingelt, > also habe ich sie auf 420 erhöht. Viel zuviel! Bestenfalls 100 Ohm. Wenn es dann immer noch klingelt, hast du einen Meßfehler oder schlechte Leitungsführung. > Ic dachte es funktioniert wie ein Schmitt-Trigger. Was sagt dein Datenblatt des ADC? > Müssen die Flanken > eine Mindeststeilheit besitzen? Meistens schon.
Falk B. schrieb: > Wenn es dann immer noch klingelt, hast > du einen Meßfehler oder schlechte Leitungsführung. Will heissen dass mehrfache Impedanz-Sprünge auf dem Gesamtverlauf der Leitung ein ganz komplexes Klingelverhalten produzieren kann.
Tycho B. schrieb: > Ic dachte es funktioniert wie ein Schmitt-Trigger. Wenn man einen zur Verfügung hat vielleicht. Schmitt Trigger machen aber nicht allgemein glücklich. Sie sind gut zu gebrauchen wenn man sehr langsame Flanken digital verarbeiten muss oder eine Hysterese braucht. Leider kann die Hysterese nicht von Null bis 3.3V oder Null bis 5V gehen, daher kann ein Klingeln auf der Leitung trotz Schmitt-Trigger zum Doppel- bzw. Mehrfachtriggern führen. Übrigens: sobald man einen Tastkopf anschliesst um Klingeln zu beobachten hat man dieses durch die zusätzlich anliegende Lastkapazität schon verringert. In Wirklichkeit ist es stärker als dargestellt.
jo mei schrieb: > Übrigens: sobald man einen Tastkopf anschliesst um Klingeln > zu beobachten hat man dieses durch die zusätzlich anliegende > Lastkapazität schon verringert. Das ist richtig. Üblicherweise hat ein 1:10 Tastkopf ca. 10 pF. Wenn man den falschen Tastkopf nimmt (1:1) liegt man irgendwo bei 100 pF. Wenn man hat oder es sich leisten kann, nimmt man aktive Tastköpfe (active probe) und belastet das Messsignal nur noch mit 1 bis 2 pF.
jo mei schrieb: > Das spezifiert das Datenblatt des Bausteins den du steuern willst. Ich habe im Datenblatt keine Angaben zur Flankensteilheit gefunden. Falk B. schrieb: > Was sagt dein Datenblatt des ADC? Hysteresis LOGIC INPUTS (IOVDD ≥ 2.7 V) min 0.08V max 0.25V Relative Angabe, und dazu noch ziemlich kleine Werte. Quasi gar kein Schmitt-Trigger. Klingt nach ==> jo mei schrieb: > Ich > betrachte das nicht-stetige Ansteigen oder Abfallen der Flanke > als das Problem. jo mei schrieb: > Will heissen dass mehrfache Impedanz-Sprünge auf dem Gesamtverlauf > der Leitung ein ganz komplexes Klingelverhalten produzieren kann. Das befürchte ich auch, habe aber keine Ahnung wie man das beseitigt. Ich meine, die Schleifringe haben Koax-Kabel, wahrscheinlich 50 Ohm. Flachbandkabel hat 120-130 Ohm. Wenn ich jetzt alle Leitungen auf Koax wechsle, dann sieht der Aufbau aus wie Spaghetti. Ich habe das mal simuliert, siehe Anhang(Abgegriffen am R2). Sieht halbwegs ähnlich aus zu https://www.mikrocontroller.net/attachment/497314/CLK_rise.png jo mei schrieb: > Schmitt Trigger > machen aber nicht allgemein glücklich. Wie löst man aber im Allgemeinen so ein Problem? Wenn also die Leitungsführung mehrere Strecken mit unterschiedlichen Wellenwiderständen aufweist? Es kommt zu Mehrfachreflexionen und damit zu solch unschönen Signalverläufen. Ist das die Lösung? ==> Falk B. schrieb: > Das MINIMUM ist ein RC-Filter am SCK-Eingang des ADC + > Schmitt-Trigger, damit die Störpulse definitiv nicht dort rein > kommen.
:
Bearbeitet durch User
Tycho B. schrieb: > Ist das die Lösung? Wußtest Du eigentlich daß die maximale Geschwindigkeit die ein Schiff erreichen kann allein von seiner Länge ahängt? Da kannst Du Gas geben soviel Du willst, damit vergrößert Du nur die Bugwelle.
Tycho B. schrieb: > Das befürchte ich auch, habe aber keine Ahnung wie man das beseitigt. > Ich meine, die Schleifringe haben Koax-Kabel, wahrscheinlich 50 Ohm. Dann zeigt mal ein Bild und eine Bezeichnung, am besten einen Link auf ein Datenblatt. Wenn das professionelle Schleifringe sind, wird man sich bei deren Konstruktion was gedacht haben. > Flachbandkabel hat 120-130 Ohm. Wenn ich jetzt alle Leitungen auf Koax > wechsle, dann sieht der Aufbau aus wie Spaghetti. Muss man nicht. Man muss erstmal nachdenken. Dazu braucht man aber Informationen.
spiderman schrieb: > Wußtest Du eigentlich daß die maximale Geschwindigkeit die ein Schiff > erreichen kann allein von seiner Länge ahängt? Ja. Oder du gleitest. Und wustest du, dass im Inertialsystem eines Raumschiffs du scheinbar überlichtschnell fliegen kannst, wegen Längenkontraktion des Raumes in die Bewegungsrichtung? Falk B. schrieb: > Dann zeigt mal ein Bild und eine Bezeichnung, am besten einen Link auf > ein Datenblatt. Das ist schwierig. Es ist eine Spezialanfertigung von Acuitas, auf dem Gehäuse der Sliprings steht Slipring AIS-36. Im Netz findet man dazu nichts.
:
Bearbeitet durch User
Tycho B. schrieb: > Das ist schwierig. Es ist eine Spezialanfertigung von Aquitas, auf dem > Gehäuse der Sliprings steht Slipring AIS-36. Im Netz findet man dazu > nichts. Wenn ich das richtig verstanden habe, werden Schleifringe aus unterschiedlichen Komponenten (Leistung, HV, analog, digital) je nach Kundenwunsch zusammengesetzt. Vielleicht finden sich die Bestellunterlagen oder das Angebot an, wo man solche Details finden sollte. Trotzdem solltest du zum Debuggen endlich mal eine Software schreiben, die permanent (unter Verwendung von /CS!) die ID ausliest und bei Fehlern eine LED leuchten läßt. Dort kannst du mit dem Oszi drauf triggern und dir dann die fehlerhafte Übertragung genau anschauen.
Falk B. schrieb: > Aber die Flanke muss "porentief" sauber sein. Da dürfen > KEINERLEI kleine zacken oder so drauf sein. Sie muss auf jeden Fall stetig sein und kein Auf- und Ab aufweisen. Tycho B. schrieb: > jo mei schrieb: >> Das spezifiert das Datenblatt des Bausteins den du steuern willst. > Ich habe im Datenblatt keine Angaben zur Flankensteilheit gefunden. Ja, die Angaben sind erstaunlich spärlich. Da drin steht nicht mal was zur maximalen Taktfrequenz vom SCLK. Man könnte sich bestenfalls ausdenken, dass die maximale Taktfrequenz bei 0ns Flankensteilheit und je min. 25ns high/low schon mal 20MHz sein könnte. Ich halte das bei einem internen Takt von 16MHz aber für arg gewagt. Und zum SCLK Eingang ist auch nur lobhudelnd erwähnt, dass ein Schmitttrigger drin ist, aber es wird kein Wort zu dessen Schaltschwellen verloren. Gruselig :-/ Die einzige angegebene Hysterese von min. 0,08V bis max. 0,25V wäre jetzt für einen Schmitttrigger auf jeden Fall nicht so der Brüller. Trotzdem zeigen die 25ns natürlich an, dass bei einer unsauberen Flanke schon eine "Delle" von 25ns reich, um einen vermeintlichen Taktimpuls zu erkennen. Und diese Werte mit 25ns und 0,25V sind nicht allzu weit von den Wellen im Bild CLK_fall.png weg...
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Und augenscheinlich ist das gerade eben verwendete Pedal nicht > zum Anhalten geeignet. Da darf man schon mal ein anderes ausprobieren. Man könnte die Nichtfunktion auch als Anlass nehmen, die diesbezüglichen Abschnitte in den Datenblättern von Controller und ADC noch einmal genau zu lesen, statt in blindes Probieren zu verfallen. Mit dem Vergleich wollte ich nur andeuten, dass es Dinge gibt, bei denen wildes Rumprobieren durchaus problematisch sein kann. Auch um das beurteilen zu können, muss man hinreichend Verständnis für das Problem entwickeln oder man lässt es drauf ankommen - das Glück ist mit ...
Bernd schrieb: > Wenn ich das richtig verstanden habe, werden Schleifringe aus > unterschiedlichen Komponenten (Leistung, HV, analog, digital) je nach > Kundenwunsch zusammengesetzt. Vielleicht finden sich die > Bestellunterlagen oder das Angebot an, wo man solche Details finden > sollte. Ich habe da was angehängt. Mehr habe ich zu Schleifringen nicht. Der Drehtisch ist in eine Klimakammer eingebaut. Das Ganze gebaut von Acuitas. Die Doku lässt sich über alles aus, nur nicht über die Impedanzen von Schleifringen:) Bernd schrieb: > Trotzdem solltest du zum Debuggen endlich mal eine Software schreiben, > die permanent (unter Verwendung von /CS!) die ID ausliest und bei > Fehlern eine LED leuchten läßt. Dort kannst du mit dem Oszi drauf > triggern und dir dann die fehlerhafte Übertragung genau anschauen. Ich kann nicht ein einziges mal auslesen. Bei allen Aufnahmen die ich hier gepostet habe (außer die, die ich mit "direkte Verbindung" gekennzeichnet habe, da funktioniert es) konnte ich nichts auslesen. Mein Trigger ist die CLK-Leitung:) Lothar M. schrieb: > Sie muss auf jeden Fall stetig sein und kein Auf- und Ab aufweisen. Sorry, da ich gerade bei der Rumpfgeschwindigkeit klug geschissen habe:)) - Es gibt in der realen Welt keine unstetigen Signale, das ist unmöglich. Du meinst monoton bzw. streng monoton. Sorry nochmal) Lothar M. schrieb: > Trotzdem zeigen die 25ns natürlich an, dass bei einer unsauberen Flanke > schon eine "Delle" von 25ns reich, um einen vermeintlichen Taktimpuls zu > erkennen. Und diese Werte mit 25ns und 0,25V sind nicht allzu weit von > den Wellen im Bild CLK_fall.png weg... Es ist auch so, dass die Periode der Schwingungen in der selben Größenordnung wie die Flankenanstiegszeit liegt. Wenn ich einen Tiefpass verwende, dann werden auch die Flanken noch länger. Und vom Schmitt-Trigger wurde mir schon abgerate. Deswegen weiss ich nicht was ich tun soll.
:
Bearbeitet durch User
Man kann /CS fest auf GND legen. Um dann das SPI zu synchronisieren muß man 64 oder mehr Takte lang ein 1-Bit einschieben. Danach erfolgt der Start des 1. Bytes mit einem 0-Bit (/WEN in Table 25). In den Diagrammen wird allerdings immer die Synchronisation mit /CS benutzt, d.h. jedes Paket beginnt mit einer 1->0 Flanke des /CS und endet mit einer 0->1 Flanke.
Der ADC wird zwischen -40°C und 85°C betrieben, dabei soll er kontinuierlich über Stunden mit 2500 SPS senden, ohne dass auch nur ein Sample verloren geht. Allein CS toggeln oder FFFF senden wird das nicht bringen. Ich habe schon mehrere SPI-Sensoren in diesem Setup und im selben Temperaturfenster/SPS-Bereich kontinuierlich über Stunden ohne Probleme ausgemessen. Der AD7177-SPI ist wohl etwas zu empfindlich.
:
Bearbeitet durch User
Tycho B. schrieb: > Bernd schrieb: >> Wenn ich das richtig verstanden habe, werden Schleifringe aus >> unterschiedlichen Komponenten (Leistung, HV, analog, digital) je nach >> Kundenwunsch zusammengesetzt. Vielleicht finden sich die >> Bestellunterlagen oder das Angebot an, wo man solche Details finden >> sollte. > > Ich habe da was angehängt. Mehr habe ich zu Schleifringen nicht. Der > Drehtisch ist in eine Klimakammer eingebaut. Das Ganze gebaut von > Acuitas. Die Doku lässt sich über alles aus, nur nicht über die > Impedanzen von Schleifringen:) Naja, diese Angaben deuten auf Leistungskontakte hin. Die sind nicht unbedingt auf HF-Signale ausgelegt. Das KANN funktionieren, muss aber nicht. > Mein Trigger ist die CLK-Leitung:) Fail. Selbst wenn man das CS Signal nicht an den ADC anlegt, würde man es im Controller ausgeben und als Trigger für das Oszi nutzen. Denn dann sieht man, wie sich die Signale während der Übertragung verhalten. > Es ist auch so, dass die Periode der Schwingungen in der selben > Größenordnung wie die Flankenanstiegszeit liegt. Wenn ich einen Tiefpass > verwende, dann werden auch die Flanken noch länger. Und vom > Schmitt-Trigger wurde mir schon abgerate. Wo denn? Von wem denn?
Tycho B. schrieb: > Der AD7177-SPI ist wohl etwas zu empfindlich. Oder du hattest einfach nur Glück, dass die anderen ICs deutlich robuster waren.
Bernd schrieb: > Trotzdem solltest du zum Debuggen endlich mal eine Software schreiben, > die permanent (unter Verwendung von /CS!) die ID ausliest und bei > Fehlern eine LED leuchten läßt. Dort kannst du mit dem Oszi drauf > triggern und dir dann die fehlerhafte Übertragung genau anschauen. Falk B. schrieb: > Fail. Selbst wenn man das CS Signal nicht an den ADC anlegt, würde man > es im Controller ausgeben und als Trigger für das Oszi nutzen. Denn dann > sieht man, wie sich die Signale während der Übertragung verhalten. Du hast mich falsch verstanden, siehe Zitat Bernd. Ich meine, dass ich kein Programm brauche, welches bei falschem Auslesen des ID-Registers dann über einen Pin die Aufnahme genau dieser Übertragung am Oszi triggert. Jede Übertragung ist fehlerhaft, also kann ich einfach auf CLK triggern. Falk B. schrieb: > Wo denn? Von wem denn? jo mei schrieb: > Schmitt Trigger > machen aber nicht allgemein glücklich. Sie sind gut zu > gebrauchen wenn man sehr langsame Flanken digital verarbeiten > muss oder eine Hysterese braucht. Leider kann die Hysterese > nicht von Null bis 3.3V oder Null bis 5V gehen, daher kann ein > Klingeln auf der Leitung trotz Schmitt-Trigger zum Doppel- bzw. > Mehrfachtriggern führen.
Der AD7177 hat ein recht cooles Feature, man kann mit einer CRC überprüfen, ob die Daten korrekt sind. Also kann man ihn nach jedem CRC-Fehler mit 64 1-Bits neu synchronisieren. Und mit dem Bit CRC_ERROR kann man überprüfen, ob er selber alles richtig verstanden hat und die Befehle nach der Synchronisation nochmal senden. Man kann dann mitzählen, wie oft eine Neusynchronisation nötig war, d.h. wie zuverlässig die Verbindung ist.
Peter D. schrieb: > Der AD7177 hat ein recht cooles Feature, man kann mit einer CRC > überprüfen, ob die Daten korrekt sind. Also kann man ihn nach jedem > CRC-Fehler mit 64 1-Bits neu synchronisieren. > Und mit dem Bit CRC_ERROR kann man überprüfen, ob er selber alles > richtig verstanden hat und die Befehle nach der Synchronisation nochmal > senden. > Man kann dann mitzählen, wie oft eine Neusynchronisation nötig war, d.h. > wie zuverlässig die Verbindung ist. Peter, ich verstehe dich ja. Aber es funktioniert gar nicht. Auch mit soft reset nicht. Auch mit power cycle nicht. Auch mit /CS nicht, ich habe doch ein Bild hier reingestellt, wo CLK, MISO, MOSI und /CS drauf waren. https://www.mikrocontroller.net/attachment/497308/ID_Register.png Wenn ich ein mal pro 50.000 Samples resetten müsste, ok, zähneknirschend. Aber es geht gar nicht.
:
Bearbeitet durch User
Falk B. schrieb: > Naja, diese Angaben deuten auf Leistungskontakte hin. Die sind nicht > unbedingt auf HF-Signale ausgelegt. Das KANN funktionieren, muss aber > nicht. Naja, twisted pair für Leistungskontakte? Ich musste mal LAN-Signale über die twisted pairs übertragen. Ein Machbarkeitstest mit zwei Laptops (einer hat sich langsam gedreht)hat 80 MByte/s [sic] ergeben.
Tycho B. schrieb: > Du meinst monoton bzw. streng monoton. Ja, dann nehmen wir streng monoton als gewünschten Verlauf, also einfach den Verlauf, bei dem ugs. kein Gezappel und auch kein beliebig langer Stillstand mitten im Verlauf der Taktflanken auftritt. Den hat dein Takt aber trotz des stetigen Verlaufs auch nicht... ;-) Tycho B. schrieb: > mit 2500 SPS senden Alle 4 Kanäle? Also in der Summe 10kS/s? Oder nur 1 Kanal? Bei einem Kanal wären das ja grade mal 32 Bits/Sample * 2500 Samples/s = 80kBit/s und damit würde eine Tatkfrequenz von 100 eigentlich ausreichen. Also deutlich langsamer als derzeit. Und dann könntest du für den Takteingang ein wenig Shaping mit einem Schnittrigger betreiben. Tycho B. schrieb: > Aber es geht gar nicht. Auch nicht, wenn du die SCLK Leitung "aussen rum" führst? > ich habe doch ein Bild hier reingestellt, wo CLK, MISO, MOSI und /CS > drauf waren. Miss doch auch mal "Masse gegen Masse", also Masseklemme am ADC an Masse und Messspitze an einen anderen "Massepunkt" des Aufbaus. Dann siehst man, ob da suf der Masse noch was rumkrebst. Tycho B. schrieb: > Jede Übertragung ist fehlerhaft Aber du weißt nicht, ob es genau bei diesem Taktimpuls schief ging und auf welche Weise. Und es ist halt einfach so, dass das Auslesen des ID-Registers vom Hersteller als probates Mittel angepriesen wird.
Lothar M. schrieb: > Alle 4 Kanäle? Also in der Summe 10kS/s? Oder nur 1 Kanal? > > Bei einem Kanal wären das ja grade mal 32 Bits/Sample * 2500 Samples/s = > 80kBit/s und damit würde eine Tatkfrequenz von 100 eigentlich > ausreichen. Also deutlich langsamer als derzeit. Und dann könntest du > für den Takteingang ein wenig Shaping mit einem Schnittrigger betreiben. 1 Kanal. Ich bin mit 500kBaud gestartet, aktuelle Untersuchung mache ich bei 250k. 100k kann man nicht einstellen, der kleinste Wert ist 125k, uC clock/128. Ich hab's damit auch probiert mit demselben Resultat. Es ist nur so, dass ich demnächst Sensoren auf mich zukommen sehe, die 100kSPS können. Da ist Schluss mit lustig. Lothar M. schrieb: > Auch nicht, wenn du die SCLK Leitung "aussen rum" führst? Noch nicht probiert... Lothar M. schrieb: > Miss doch auch mal "Masse gegen Masse", also Masseklemme am ADC an Masse > und Messspitze an einen anderen "Massepunkt" des Aufbaus. Dann siehst > man, ob da suf der Masse noch was rumkrebst. Habe ich bereits gemacht. Da war irgendetwas um 10-20 mV. Ich habe allerdings keine Massefeder, sondern Krokodil benutzt. Insofern vielleicht nur Radio empfangen. Lothar M. schrieb: > Aber du weißt nicht, ob es genau bei diesem Taktimpuls schief ging und > auf welche Weise. Und es ist halt einfach so, dass das Auslesen des > ID-Registers vom Hersteller als probates Mittel angepriesen wird. Das Bild ID_Register.png ist das Auslesen des ID-Registers.
Tycho B. schrieb: > Das Bild ID_Register.png ist das Auslesen des ID-Registers. Ja, das sieht mitten im 2. Byte schon arg kurios aus. Und dann wäre jetz mal interessant, ob immer die selbe falsche Antwort kommt oder beliebige Variationen davon. Tycho B. schrieb: > Es gibt dedizierte ICs, die SPI zu differentiell übersetzen und wieder > zurück, habe schon gefunden als letzten Ausweg.) Es reicht aus, wenn du das für den Takt machst. Die anderen Signale brauchen nur "ausreichend Zeit", dass sie bei der aktiven Takflanke einen gültigen Pegel haben.
Lothar M. schrieb: > Und dann wäre jetz mal interessant, ob immer die selbe falsche Antwort > kommt oder beliebige Variationen davon. Immer dieselbe oder 0. Bei 0 denke ich, das der SPI-core da aussteigt. Lothar M. schrieb: > Es reicht aus, wenn du das für den Takt machst. Ja, muss man schauen, ob kumulativer Zeitversatz von MISO gegen CLK am uC nicht zu groß wird.
Wie schon gesagt: Ich würde am ADC nen kleinen MC (ATtiny2313) setzen und dann über RS-485 differentiell die Daten zum Haupt-MC senden. Die UART benutzt eine Mehrfachabtastung zur Störunterdrückung. Ein andere Möglichkeite wäre noch der LTC6820: https://www.analog.com/en/products/ltc6820.html#product-overview SPI ist nunmal nicht für gestörte Umgebungen gedacht.
Darf man fragen welches Scope das ist? Lecroy sieht man aber welches Modell? Die Screenshots sehen sehr angenehm aus. mfg
Beitrag #6626617 wurde von einem Moderator gelöscht.
A. K. schrieb: > Darf man fragen welches Scope das ist? > Lecroy sieht man aber welches Modell? > Die Screenshots sehen sehr angenehm aus. Das ist HDO6034-MS.
:
Bearbeitet durch User
Tycho B. schrieb: > Ja. Oder du gleitest. Dann wußtest Du sicher auch daß man den Wellenwiderstand nicht immer ignorieren kann, auch wenn es "nur" um die die Flanken geht. Da kannst Du kompensieren soviel Du willst, er schlägt Dir immer ein Schnippchen... Tycho B. schrieb: > Falk B. schrieb: > >> Das MINIMUM ist ein RC-Filter ...entweder die Flanken sind zu flach oder unsauber. Da machst Du garnichts.
spiderman schrieb: > Dann wußtest Du sicher auch daß man den Wellenwiderstand nicht immer > ignorieren kann, auch wenn es "nur" um die die Flanken geht. Da kannst > Du kompensieren soviel Du willst, er schlägt Dir immer ein > Schnippchen... Wieso ignorieren? Ich habe doch serielle Widerstände von Anfang an als Terminierung eingebaut. Es ist aber ein gekoppeltes System mit zwei verschiedenen Wellenwiderständen, da tauchen Mehrfachreflektionen auf. Was man dagegen macht und ob es überhaupt möglich ist, ist hier die Frage. Also für mich) spiderman schrieb: > entweder die Flanken sind zu flach oder unsauber. Da machst Du > garnichts. Mit Schmitt-Trigger könnte man die Steilhet und Unsauberkeit verbessern.
Tycho B. schrieb: > Es ist aber ein gekoppeltes System mit zwei > verschiedenen Wellenwiderständen, da tauchen Mehrfachreflektionen auf. > Was man dagegen macht und ob es überhaupt möglich ist, ist hier die > Frage. Wenn du es dir leisten kannst (Clock Flanke vs Setup Time) füge in die Leitung an den Stellen wo ein Impedanz-Sprung stattfindet, einen schnellen Buffer mit Längsterminierung ein. Vielleicht genügt es schon, eine, die "schlimmste" Stossstelle zu puffern, damit die effektive Leitungslänge (gilt ja nur vom Buffer bis zum Signal-Empfänger) zu verkürzen und damit die Reflexionen zu mindern. Mit diesem Vorgehen schafft man es natürlich nicht das von mir vermutete Störsignal durch Kratzen des Schleifers auszumerzen. Hier könnte versuchshalber je ein 74xx14 Schmitt-Trigger) vor und hinter dem Schleifer dienen falls die Verzögerungszeiten nicht zu gross werden. Ausprobieren würde ich das auf jeden Fall, auch wenn ich in einem vorangegangenen Beitrag eher nicht begeistert darüber gesprochen habe.
Tycho B. schrieb: > Mit Schmitt-Trigger könnte man die Steilhet und Unsauberkeit verbessern. Dann TU ES! Schalte einen 74HC14 vor deinen Takteingang und teste! Aber mach die 470 Ohm Serienwidertstände raus. Teste erstmal mit 33 Ohm oder so. Entkoppelkondensator für den 74HC14 nicht vergessen! Ach so, der 74HC14 invertiert, also musst du im AVR einen anderen SPI-Mode einstellen (SCK invertieren). Wenn das nicht reicht, dann vielleicht noch einen RC-Tiefpass vor den 74HC14 mit vielleicht 100Ohm + 220pF.
Falk B. schrieb: > Ach so, der > 74HC14 invertiert, also musst du im AVR einen anderen SPI-Mode > einstellen Oder eben zwei hintereinander verwenden. Üblicherweise hat man ja bei SPI etwa eine knappe halbe Periode des Clock Zyklus Zeit für Delays.
jo mei schrieb: > Wenn du es dir leisten kannst (Clock Flanke vs Setup Time) füge > in die Leitung an den Stellen wo ein Impedanz-Sprung stattfindet, > einen schnellen Buffer mit Längsterminierung ein. Das ist echt eine gute Idee! Anstelle DSUB-15-Stecker aufs Flachbandkabel zu crimpen, mache ich eine kleine Platine mit DSUB-Stecker fest verlötet und etwas Elektronik. Damit hab ich an der Stelle des Impedanzsprunges die Möglichkeit, die Impedanzunterschiede jeweils unterschiedlich zu behandeln, mit der Möglichkeit, noch 74HC14 o.Ä. einzusetzen. Falk B. schrieb: > Dann TU ES! Schalte einen 74HC14 vor deinen Takteingang und teste! Die Lösung von jo mei ist ähnlich dem, was du vorschlägst, für mich aber eleganter, weil ich platzmäßig auf der ADC-Platine sehr eingeschränkt bin. Außerdem adressiert sie meiner Meinung nach genau das Problem - den Impedanzsprung zwischendrin. Danke an Alle. Ich versuche das nun umzusetzen.
jo mei schrieb: > Falk B. schrieb: > >> Ach so, der >> 74HC14 invertiert, also musst du im AVR einen anderen SPI-Mode >> einstellen > > Oder eben zwei hintereinander verwenden. Üblicherweise hat man > ja bei SPI etwa eine knappe halbe Periode des Clock Zyklus > Zeit für Delays. Und genau deswegen funktionieren viele Schaltungen auch anscheinend. Eben wegen der garantierten Datenhaltezeit auch im falschen SPI-Mode. Ich hab interessiert mitgelesen und auch mitbekommen, das das schon weiter oben ein Thema war. Man sollte sich das unbedingt noch mal ansehen. RC-Filter und schmitt-trigger wurden auch schon genannt. Auch hier kann man mit geeignet unterschiedlichen Zeitkonstanten den Takt evtl. ein wenig dorthin "schieben", dass eine sichere Datenübernahme gewährleistet ist. Ich würde wahrscheinlich am Atmega an den Clk und Mosi pins npn/pnp emitterfolger oder andere Treiber "zwischenbasteln" und die Leitungen brutal parallel und seriell terminieren. Und am anderen Ende wieder entsprechend aufbereiten. Einen tiny am ADC und differentielle Übetragung via UART wurde ja auch schon vorgeschlagen, das wäre für mich im jetztigen Projektstatus schon zu spät.
Äxl schrieb: > Ich würde wahrscheinlich am Atmega an den Clk und Mosi pins npn/pnp > emitterfolger oder andere Treiber "zwischenbasteln" Du hast schon das richtige Wort verwendet, die Gänsefüsschen sind nicht nötig. NPN/PNP Emitterfolger sind Mumpitz, ein normales CMOS-Gatter ist deutlich besser, weil von Profis gebaut. Aber das braucht man nicht, denn der AVR als Sender ist das auch, und der hat kräftige Ausgänge. > und die Leitungen > brutal parallel und seriell terminieren. Jaja, immer feste druffff! Mann O Mann! Schon mal von einer angemessenen Reaktion auf ein Problem gehört? (Aber das ist ja anscheinend out, wie man landauf landab täglich beobachten "darf"); > Und am anderen Ende wieder > entsprechend aufbereiten. Beitrag "Re: Skurriles Problem mit BS170 Mosfets" Wenn man es richtig macht (tm), ist das gar nicht so "brutal", eher CLEVER und elegant!
Falk B. schrieb: > Jaja, immer feste druffff! Mann O Mann! Schon mal von einer angemessenen > Reaktion auf ein Problem gehört? (Aber das ist ja anscheinend out, wie > man landauf landab täglich beobachten "darf"); Prinzipiell pflichte Ich Dir natürlich bei. Ich hab das setup aber nicht hier am Platz und mit "feste Druff" ist die Chance in der jetzigen Situation hoch, rechtzeitig fertig zu werden. Ich kann ja schlecht hinfahren, und mir das ansehen und selbst eine Lösung erarbeiten. Zum Atmega und seinen Ausgängen: die taugen sicher, ne LED mit 20mA ein oder auszuschalten, aber lange nicht, um ne leitungskapazität in vorliegender Größenordnung normgerecht zu schalten. Wie auch immer: weitermachen, wollte nur meine Gedanken zum Thema darlegen.
Tycho B. schrieb: > Danke an Alle. Ich versuche das nun umzusetzen. Da sind wir aber auch gespannt was rauskommt. Heisst für dich: verpflichtender Bericht! ;-) Darfst auch gerne mal ein Bildchen zeigen damit wir uns besser vorstellen können wie das physikalisch aussieht.
Tycho B. schrieb: > Wieso ignorieren? Ich habe doch serielle Widerstände von Anfang an als > Terminierung eingebaut. Also verdrängt. Tycho B. schrieb: > Danke an Alle. Ich versuche das nun umzusetzen. Das erschlagen des Wellenwiderstands mit möglichst viel Hardware erzeugt oft einen Rattenschwanz anderer, noch undurchsichtigerer Probleme. Tycho B. schrieb: > die Schleifringe haben Koax-Kabel, wahrscheinlich 50 Ohm. Flachbandkabel > hat 120-130 Ohm Du schaltest einen 75 Ohm und einen 50 Ohm Widerstand in Reihe und daran kommt die 125 Ohm Leitung. An den 50 Ohm Widerstand kommt die 50 Ohm Leitung. Das gibt natürlich einen Amplitudenverlust. Der läßt sich aber leichter in den Griff kriegen als Reflektionen.
spiderman schrieb: > Das erschlagen des Wellenwiderstands mit möglichst viel Hardware erzeugt > oft einen Rattenschwanz anderer, noch undurchsichtigerer Probleme. Ich sehe da keine "möglichst viel Hardware" wenn man hier zwei Schmitt-Trigger Buffer mit Längsterminierung einführt. Dann führe das doch mal aus mit dem Rattenschwanz und den undurch- sichtigen Problemen. Einfach mal paar Schlagworte hinklatschen die alles bedeuten können hilft da nichts. spiderman schrieb: > Das gibt natürlich einen Amplitudenverlust. Der läßt sich aber > leichter in den Griff kriegen als Reflektionen. Erzeugt oft einen Rattenschwanz an Hardware um den Pegel wieder zu gewinnen. Ganz zu schweigen vom Delay das zusätzlich ein- geführt wird.
"Idealerweise sollte man bei Flachbandkabeln jede 2. Ader auf Masse legen und auf BEIDEN Seiten der Verbindung am Stecker mit der Masse der Platine verbunden werden." Es existiert auch die Meinung, dass dadurch mehrere Ground loops geschaffen werden. Deswegen sollte man nur auf einer Seite auf Masse legen. Hat das jemand mal untersucht?
Tycho B. schrieb: > Es existiert auch die Meinung, dass dadurch mehrere Ground loops > geschaffen werden. Nö. > Deswegen sollte man nur auf einer Seite auf Masse > legen. Funktioniert das aber mit dem Wellenwiderstand und den Rückstrompfaden nicht. > Hat das jemand mal untersucht? Ausreichend viele Leute.
jo mei schrieb: > Dann führe das doch mal aus mit dem Rattenschwanz und den undurch- > sichtigen Problemen. Ich sehe das so, daß die unsauberen Flanken die Ursache der Probleme sind, die wahrscheinlich durch Reflektionen "verrauscht" werden, wenn unser Proband keinen Fehler beim Anschluß des Me§geräts gemacht hat. Er hat dann versucht, das durch filtern zu beheben, wobei zu flache Flanken herausgekommen sind. Mit einem Schmtt-Trigger hast du zwar steile Flanken, läufst aber wieder in das Reflektionsproblem. Der erste logische Schritt ist also die Leitungen anständig zu terminieren, oder wie siehst Du das?
spiderman schrieb: > Mit einem Schmtt-Trigger hast du zwar steile > Flanken, läufst aber wieder in das Reflektionsproblem. Der erste > logische Schritt ist also die Leitungen anständig zu terminieren, oder > wie siehst Du das? Wenn du meinen Vorschlag (der durch den TO aufgegriffen wurde und wahrscheinlich umgesetzt wird) gelesen und verstanden hättest würdest du vielleicht nicht so einen unqualifizierten Mist daherreden.
jo mei schrieb: > Mist daherreden. Mit dem Schmtt-Trigger ist das wie mit der Bugwelle. Ich hab zwar schon Pferde zum kotzen gebracht, aber bisher konnte ich noch keiner Leitung das gleiten beibringen.
Reflexionen kriegt man auch gut mit den langsamen 4000-er Schmitt-Triggern unterdrückt, z.B. CD4093, CD40106.
Falk B. schrieb: > Nö. :) Falk B. schrieb: > Ausreichend viele Leute. Hier was dazu: https://www.emcstandards.co.uk/cable-shield-grounded-at-one-end-only Unten sieht man viele Referenzen, die nur eine Masseanbindung vorschlagen. Vielleicht sollte man diesen Punkt im Wellenwiderstand-Artikel adressieren.
spiderman schrieb: > Laß mich raten: Du bist ein Scherzkeks. Warum sind bei stackexchange die Umgangsformen ganz anders? Frage mich jedes mal. Peter D. schrieb: > Reflexionen kriegt man auch gut mit den langsamen 4000-er > Schmitt-Triggern unterdrückt, z.B. CD4093, CD40106. Hallo Peter, ich hab's hier simuliert. Trotz sehr langsamer Flanke, der Ausgang schwingt. Langsamer Anstieg hilft, die Amplitude der Schwingung zu verringern, aber Reflexionen sind trotzdem da.
Tycho B. schrieb: > Falk B. schrieb: >> Nö. > > :) > > Falk B. schrieb: >> Ausreichend viele Leute. > > Hier was dazu: > https://www.emcstandards.co.uk/cable-shield-grounded-at-one-end-only > > Unten sieht man viele Referenzen, die nur eine Masseanbindung > vorschlagen. Vielleicht sollte man diesen Punkt im > Wellenwiderstand-Artikel adressieren. Hast DU den Arttikel mal gelesen? Und WIRKLICH verstanden? Eher nicht. Im dem Artikel geht es um eine SCHIRMUNG und wo und wie diese mit Masse (GND) verbunden wird. " The SPG shield is therefore not a shield at all. Shielding effects are orders of magnitude below these curves." SPG = Single point ground (shields) "The following is litany of very bad advice from otherwise reputable sources:" Der Artikel sagt, das man den Schirm beidseitig mit GND verbinden MUSS, um gute Ergebnisse zu erzielen. Das Thema Masseführung und Wellenwiderstand ist davon in 1. Näherung unabhängig. Einfaches Beispiel aus der schon älteren Comuptergeschichte. IDE-Kabel haben 40 Adern, davon sind 7 Masse. Für höhere Übertragungsraten nimmt man 80pol Kabel mit halben Rastermaß und legt jede 2. auf Masse, an BEIDEN Steckern. https://de.wikipedia.org/wiki/ATA/ATAPI#Steckerbelegung
Genau das meine ich. DAS sollte man im Artikel auch irgendwo unterbringen. U.A. den Unterschied zw. Schirmung und Impedanz. Auf einer homogenen, konstanten Impedanz kann sich die EM-Mode ungestört zwischen Signal- und Rückpfad ausbilden. Flächen/Abstände/Material zwischen den Beiden ergeben den Impedanzwert. Wenn allerdings der Rückpfad eine Unterbrechung hat, dann nimmt der Rückstrom einen anderen Verlauf und die Impedanz ist eine ganz andere und auch inhomogen dazu. Wobei für richtig hochfrequente Signale (100GHz oder so) ist so eine Unterbrechung nicht wirklich relevant m.M.n. Es ist aber auch so, dass der Rückpfad auf einem Flachbandkabel auch eine Schirmung ist) Deswegen hast du in Näherung unabhängig geschrieben.
:
Bearbeitet durch User
Tycho B. schrieb: > Trotz sehr langsamer Flanke, der > Ausgang schwingt. Der Schmitt-Trigger gehört natürlich hinter die Leitung, d.h. direkt an den Eingangspin des ICs. Die Schmitt-Trigger sind nicht nur langsam, sie haben auch eine hohe Hysterese (~1V), die die Reflexionen erstmal übersteigen müssen. Dein Bild zeigt nur ~100mV, also kein Problem.
Tycho B. schrieb: > Es ist aber auch so, dass der Rückpfad auf einem Flachbandkabel auch > eine Schirmung ist) Deswegen hast du in Näherung unabhängig geschrieben. Hmm, mal ne dumme Frage. Wenn deine Schleifringe Koaxialanschlüsse am Eingang haben (welche? BNC? SMB?), sollten die dann nicht auch Koaxialanschlüsse am Ausgang haben? Wenn ja, sollte dann nicht auch die Masse dieser Koaxialanschlüsse hf-gerecht über diese geführt sein? Sind die Masse der Eingänge miteinander verbunden? Und die der Ausgänge? Zeig mal ein Bild. Ich vermute, daß du einen Fehler gemacht hast, indem du Masse als einzelnens Signal über einen Schleifkontakt geführt hast.
Falk B. schrieb: > Hmm, mal ne dumme Frage. Wenn deine Schleifringe Koaxialanschlüsse am > Eingang haben (welche? BNC? SMB?), sollten die dann nicht auch > Koaxialanschlüsse am Ausgang haben? Wenn ja, sollte dann nicht auch die > Masse dieser Koaxialanschlüsse hf-gerecht über diese geführt sein? SMB. Die Shields werden auf den Pin 8 geführt und gehen dann dort durch die Schleifringe. https://www.mikrocontroller.net/attachment/497387/Schleifringe.png Falk B. schrieb: > Ich vermute, daß du einen Fehler gemacht hast, indem du Masse als > einzelnens Signal über einen Schleifkontakt geführt hast. Genau das habe ich gemacht, siehe Anhänge. Auf der Rotationsseite ist jede zweite Leitung mit GND verbunden, auch die Shield-Verbinung (Pin 8, an den sind alle shields intern angelötet und er wird über die Ringe geführt) ist an GND angeschlossen. Die dedizierte GND-Verbindung ist aber Pin 9. Auf der Gehäuseseite ist keine davon mit GND verbunden. Die einzige GND-Verbindung ist Pin 9
:
Bearbeitet durch User
Tycho B. schrieb: > Auf der Gehäuseseite ist keine davon mit GND verbunden. Die einzige > GND-Verbindung ist Pin 9 Hmm. Ich fragt aber auch nach eine echten Bild vom realen Aufbau. Kann es sein, daß dieser Schleifring 15polig ist? Wenn ja, sollte (muss?) man auch auf der festen Seite die entprechendend Pins auf Masse legen. Und wie ist das mit deinem S-DUB15 Stecker zu verstehen? Hast du den selber ergänzt oder ist der fest mit dem Schleifring verbunden? Wie kommen da SMB-Stecker ins Spiel. Verwirrend . . .
Ahhhhh, jetzt verstehe ich auch die Darstellung der Schleifringsignale! Der HAT 15 Pole! und die unteren 10 sind auch geschirmt! Und vor allem Pin 8 muss auf deiner Gehäuseseite mit GND verbunden werden, das ist die Schirmung! Das hatten wir ja oben! Beidseitiger Anschluß an GND!
Ja, geschirmt sind sie alle. Das sind diese kleinen schwarzen Ovale. Schwarze Kreise sind die eigentlichen Schleifringe. Im unteren Bereich sind 7 twisted pairs geschirmt. Es sind zwei DSUB15, also 30-polig. Ich benutze aber nur einen, den ohne twisted pairs.
:
Bearbeitet durch User
Falk B. schrieb: > Und wie ist das mit deinem S-DUB15 Stecker zu verstehen? Hast du den > selber ergänzt oder ist der fest mit dem Schleifring verbunden? Wie > kommen da SMB-Stecker ins Spiel. Verwirrend . . . Wenn man die Drehplatte abnimmt, dann sieht man einige dünne Koax-Leitungen. Sie verschwinden im Inneren in einer dicken Thermoisolierung. Sie sind am diesseitigen Ende abisoliert und mit zwei DSUB15-Buchsen verlötet. Beide Buchsen sind auf der Drehplatte montiert und können für Signalführung verwendet werden. Schirme sind zusammengefasst und gehen auch an den DSUB auf Pin 8 und einen Koax, der sie zum Schleifring führt.(Ich kann aktuell kein Bild machen, sorry) Von außen sind es also zwei DSUB15-Buchsen auf einem Drehteller. Ich stecke da aktuell einen DSUB15-Stecker mit gecrimpten Flachbandkabel ein. Auf der anderen Seite des Flachbandkabels sind die Adern kurz abisoliert und direkt mit Landepads auf einem PCB verlötet.
So habe ich mir das vorgestellt. Wobei ich die Tiefpässe ersmal nicht bestücke und die Rs der Tiefpässe überbrücken werde. Die Platte liegt an der Stelle des Impedanzsprunges, also zwischen Koax und Flachbandkabel. Das Flachbandkabel löte ich auf dieser Seite auch direkt aufs PCB. In Richtung Schleifringe gibt es einen DSUB15-Stecker fest verlötet.
Tycho B. schrieb: > So habe ich mir das vorgestellt. Kann was bringen, muß aber nicht. Wie gesagt, die Schmitt-Trigger gehören direkt an alle Eingänge des ADC.
Tycho B. schrieb: Tycho B. schrieb: > Von außen sind es also zwei DSUB15-Buchsen auf einem Drehteller. Ich > stecke da aktuell einen DSUB15-Stecker mit gecrimpten Flachbandkabel > ein. Auf der anderen Seite des Flachbandkabels sind die Adern kurz > abisoliert und direkt mit Landepads auf einem PCB verlötet. Warum nicht einen gescheiten Stecker verwenden? Genau dafür sind Flachbandkabel erfunden worden.
Peter D. schrieb: > Kann was bringen, muß aber nicht. > Wie gesagt, die Schmitt-Trigger gehören direkt an alle Eingänge des ADC. Die ADC-Platine ist schon fertig und ziemlich dicht bestückt. Die nochmal zu bestellen, den Prototypen, den ich eigentlich untersuchen möchte, auslöten und wieder verlöten... Ich versuche es erstmal so. Wenn's nicht klappt, dann nehme ich die Impedanzanpassung von Spiderman (überbrückbar) und am ADC kommt dann der Schmitt-Trigger, der die Spannungspegel wieder höher macht. Dazu müssten die on/off-Level des Triggers relativ klein sein. Keine Ahnung, ob es derartige ICs fertig gibt. spiderman schrieb: > Du schaltest einen 75 Ohm und einen 50 Ohm Widerstand in Reihe und daran > kommt die 125 Ohm Leitung. An den 50 Ohm Widerstand kommt die 50 Ohm > Leitung. Das gibt natürlich einen Amplitudenverlust. Der läßt sich aber > leichter in den Griff kriegen als Reflektionen. Wobei die Signale unidirektional sind. In die Richtung steigender Impedanz ist die passive Anpassung relativ einfach ohne diesen Spannungsteiler möglich. Simulation zeigt auch gute Ergebnisse ohne Reflexionen. Aber ich habe es nicht geschafft in die andere Richtung irgendetwas passives gescheit zu simulieren.
Tycho B. schrieb: Tycho B. schrieb: > Von außen sind es also zwei DSUB15-Buchsen auf einem Drehteller. Ich > stecke da aktuell einen DSUB15-Stecker mit gecrimpten Flachbandkabel > ein. Auf der anderen Seite des Flachbandkabels sind die Adern kurz > abisoliert und direkt mit Landepads auf einem PCB verlötet. Warum nicht einen gescheiten Stecker verwenden? Genau dafür sind Flachbandkabel erfunden worden. Und auch bei dieser Beschreibung ist es wieder klar, daß deine Masseführung eher schlecht ist, eben weil nur eine einzige Ader zwischen DSUB und Flachbandkabel die Masse führt! ÄNDERN!
Falk B. schrieb: > Warum nicht einen gescheiten Stecker verwenden? Genau dafür sind > Flachbandkabel erfunden worden. Er nimmt viel Platz weg, Buchse ist through hole und es ist eine zusätzliche Fehlerquelle, weil in der Klimakammer viel Feuchtigkeit anfällt. Wenn die Pins nicht vergoldet sind, dann sind sie schnell korrodiert. Falk B. schrieb: > Und auch bei dieser Beschreibung ist es > wieder klar, daß deine Masseführung eher schlecht ist, eben weil nur > eine einzige Ader zwischen DSUB und Flachbandkabel die Masse führt! > ÄNDERN! Ja, das ist mir jetzt klar. Deswegen nochmal mein Hinweis an den Wellenwiderstand-Artikel. Beim designen der Schaltung habe ich beide Möglichkeiten gefunden, einseitige oder zweiseitige Massenanbindung. Beide haben ihre Argumente. Ich konnte nicht wirklich feststellen, was nun für meinen Fall richtig ist und habe mich für die einseitige Anbindung entschieden.
:
Bearbeitet durch User
spiderman schrieb: > Du schaltest einen 75 Ohm und einen 50 Ohm Widerstand in Reihe und daran > kommt die 125 Ohm Leitung. An den 50 Ohm Widerstand kommt die 50 Ohm > Leitung. Das gibt natürlich einen Amplitudenverlust. Der läßt sich aber > leichter in den Griff kriegen als Reflektionen. @spiderman Ich bekomme bei dieser Impedanzanpassung Reflexionen am 500k-Ausgang.
Tycho B. schrieb: > Er nimmt viel Platz weg, Buchse ist through hole und es ist eine > zusätzliche Fehlerquelle, weil in der Klimakammer viel Feuchtigkeit > anfällt. Wenn die Pins nicht vergoldet sind, dann sind sie schnell > korrodiert. Es gibt Micromatch, die sind sehr kompakt. Und die gibt es AFAIK auch vergoldet.
Falk B. schrieb: > Es gibt Micromatch, die sind sehr kompakt. Und die gibt es AFAIK auch > vergoldet. Ok, aber was ist der Vorteil gegenüber fester Verlötung? Nur die Handhabung wahrscheinlich?
:
Bearbeitet durch User
Tycho B. schrieb: > Ich konnte nicht wirklich feststellen, was > nun für meinen Fall richtig ist und habe mich für die einseitige > Anbindung entschieden. FAIL! 8-(
Tycho B. schrieb: > Ok, aber was ist der Vorteil gegenüber fester Verlötung? Nur die > Handhabung wahrscheinlich? Es ist professionell, im Extremfall auch besser in Bezug auf HF-Eigenschaften. Und vor allem ist es EINFACHER und schneller!
:
Bearbeitet durch User
Gibt es spezielle "Bauteile" in Eagle, die man später für Oszi+Massefeder benutzt? Ich habe schon spezielle Buchsen für Tastköpfe gesehen, die meine ich nicht. Man könnte z.B. in eine Signalleitung ein Via mit 0.5mm drill hole einsetzen und in 5mm Abstand ein weiteres Via zur Massefläche. Ist sowas praktikabel? Wie macht man das typischerweise?
Tycho B. schrieb: > Gibt es spezielle "Bauteile" in Eagle, die man später für > Oszi+Massefeder benutzt? Ich kenne keine. > Man könnte z.B. in eine Signalleitung ein Via mit 0.5mm drill hole > einsetzen und in 5mm Abstand ein weiteres Via zur Massefläche. Ist sowas > praktikabel? Ja, so mach ich das auch. Kann man ja selber schnell als Bauteil anlegen.
Allerlei interessante Vorschläge für das Problem gibt es hier. Die einfachste Sache wurde aber noch nicht erwähnt, zumindest hab ich es beim überfliegen des treads nicht gelesen. Würde die Signalleitungen alle einmal mit einem Kondensator direkt am Eingang des jeweiligen Signals gegen GND schließen. Wert so um 100pF. Damit sollte sich noch etwa 1Mbit/s ausgehen. Wenn man ängstlich ist, kann man die Flanken noch mit einem HC14 aufpäppeln, aber bitte den ganz nah am SPI device. Grüsse
Tycho B. schrieb: > @spiderman > Ich bekomme bei dieser Impedanzanpassung Reflexionen am 500k-Ausgang. Natürlich. 500k sind weder 50 noch 120-130.
P.S.: spiderman schrieb: > Pferde zum kotzen gebracht Bei einer ganzen Herde ist mir das bisher noch nicht gelungen.
P.P.S.: Das muß wohl an den einschneidenden Wissenslücken liegen, die übers Internet verbreitet werden.
P.P.P.S.: Dagegen ist Corona ein leichter Heuschnupfen
spiderman schrieb: > Natürlich. 500k sind weder 50 noch 120-130. 50 oder 130 Ohm parallel am Ausgang dämpfen die Schwingung nur, in der Simulation ist sie aber trotzdem da. Hast du vielleich irgendeine Quelle zu deiner Lösung? Sie klingt plausibel, aber die Simulation zeigt eine Fehlanpassung. geb schrieb: > Allerlei interessante Vorschläge für das Problem gibt es hier. > Die einfachste Sache wurde aber noch nicht erwähnt, zumindest hab ich es > beim überfliegen des treads nicht gelesen. > Würde die Signalleitungen alle einmal mit einem Kondensator direkt am > Eingang des jeweiligen Signals gegen GND schließen. Wert so um 100pF. > Damit sollte sich noch etwa 1Mbit/s ausgehen. Wenn man ängstlich ist, > kann man die Flanken noch mit einem HC14 aufpäppeln, aber bitte den ganz > nah am SPI device. > > Grüsse Doch, wurde schon erwähnt.
:
Bearbeitet durch User
Spricht eigentlich etwas dagegen, den 74HC14 gegen 74LVC1G17 auszutauschen? Ein Trigger in einem IC, nichtinvertierend, stärker und schneller.
Tycho B. schrieb: > 50 oder 130 Ohm parallel am Ausgang dämpfen die Schwingung nur, in der > Simulation ist sie aber trotzdem da. Jede Leitung muß an BEIDEN Enden ihren Wellenwiderstand "sehen". Tycho B. schrieb: > Hast du vielleich irgendeine Quelle zu deiner Lösung? Sie klingt > plausibel, aber die Simulation zeigt eine Fehlanpassung. Schau Dich mal bei den Funkern um.
spiderman schrieb: > Jede Leitung muß an BEIDEN Enden ihren Wellenwiderstand "sehen". Nö, das ist nur der optimale Fall. Bei Serienterminierung hat der Eingang keine Terminierung.
spiderman schrieb: > Jede Leitung muß an BEIDEN Enden ihren Wellenwiderstand "sehen". Immer noch nicht angepasst. Auch ohne 500k und 50 Ohm ganz links springt die Flanke. Und was soll man mit 0,65 V als Pegel machen?
:
Bearbeitet durch User
Spannungsquellen werden HF-mäßig als Kurzschluss betrachtet.
Falk B. schrieb: > Nö, das ist nur der optimale Fall. Bei Serienterminierung hat der > Eingang keine Terminierung. Ja gut, da hat jo mei doch Recht gehabt. Ich hab mich auch schon gefragt wieso der sich nich mehr meldet. (Aber das muß doch irgendwie einfacher gehen 🐽)
P.S.: Trotz Alledem haben wir eines aus meinem Malör gelernt: Durch einfaches optimieren der Terminierung kann man den Störspannungsabstand (das Fasenrauschen =:>) vergrößern (bzw. verringern). Was auch auffällt ist daß man für eine optimale Performance auf eine astreine Spannungsversorgung achten sollte.🐽
spiderman schrieb: > Spannungsquellen werden HF-mäßig als Kurzschluss betrachtet. Auch ohne 50 Ohm Innenwiderstand kommt dasselbe raus.
:
Bearbeitet durch User
@spiderman Beteiligung an einer Diskussion unter verschiedenen Namen ist nicht erlaubt. Bitte beachten.
Hallo Allerseits, ich habe das PCB zwischen Schleifringen und Flachbandkabel mit nichtinvertierenden Schmitt-Triggern aufgebaut, quasi identisch wie hier: https://www.mikrocontroller.net/attachment/497849/Impedanzanpassung.png Tiefpässe sind nicht bestückt, die entsprechenden Widerstnde sind überbrückt. Nun läuft die Datenübertragung ohne Probleme, auch ohne CS toggling. Getestet über 10 minuten bei 100 dps Rotationsgeschwindigkeit, kontinuierlich 2.5 kSPS (x4 Bytes), SPI 250kBaud. Die Ursachen sind wohl - durch den Aufbau bedingt verschliffene Flanken mit geringer slew rate. (Dazu gibt es Application Notes, die dieses Problem explizit benennen und angehen) - der im ADC eingebaute miserable Schmitt-Trigger - die Highspeed-SPI-Fähigkeit moderner ICs. Dadurch werden kleine Schwankungen auf der langsam steigenden Flanke als Pulse interpretiert. - impedance mismatch, Reflexionen können eben diese kleine Schwankungen verursachen Vielen Dank an alle und explizit an Falk und jo mei, die mich auf die zu langen Flanken/Impedanzsprung aufmerksam gemacht haben.
Tycho B. schrieb: > ich habe das PCB zwischen Schleifringen und Flachbandkabel mit > nichtinvertierenden Schmitt-Triggern aufgebaut, quasi identisch wie > hier: Die sind aber invertierend. > Nun läuft die Datenübertragung ohne Probleme, auch ohne CS toggling. Herzlichen Glückwunsch. Ich würde aber dennoch dringend empfehlen, das CS zu benutzen. > Getestet über 10 minuten bei 100 dps Rotationsgeschwindigkeit, dps?
Falk B. schrieb: > Die sind aber invertierend. Ich habe 74LVC1G17Q benutzt. Falk B. schrieb: > dps? Degrees Per Second
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.