Hallo zusammen, ich habe einen SPI Bus am STM32F4 mit 21Mhz am laufen. Der Slave ist über ein ca 40cm langes Flachbandkabel angebunden. Die ganzen SPI Signale habe ich jeweils zwischen zwei Massebahnen im Flachbandkabel gelegt. Für die Terminierung habe ich eine AC-Terminierung vorgesehen. Aktuell mit 100Ohm und 22pf. Eine Messung an der Clock-Leitung findet sich im Anhang. Nun die Frage: Bekommt man diese Überschwinger mit einem kleineren Widerstand weg, oder größerer C? Tendenziell würde ich auf einen kleineren Widerstand gehen, da R's in feineren und präziseren Schritten als C's verfügbar sind? Danke und Gruß
@Jay Kay (deeplyembedded) >Der Slave ist über ein ca 40cm langes Flachbandkabel angebunden. Die >ganzen SPI Signale habe ich jeweils zwischen zwei Massebahnen im >Flachbandkabel gelegt. Sehr gut. Sind die Masse auch an beiden Steckern angeschlossen? >Für die Terminierung habe ich eine AC-Terminierung vorgesehen. >Aktuell mit 100Ohm und 22pf. >Eine Messung an der Clock-Leitung findet sich im Anhang. Hmm. >Nun die Frage: Bekommt man diese Überschwinger mit einem kleineren >Widerstand weg, oder größerer C? Wie hast du GENAU gemessen? Hast du eine KURZE Masseverbidung am Tastkopf gehabt? Damit meine ich <20mm. >Tendenziell würde ich auf einen kleineren Widerstand gehen, da R's in >feineren und präziseren Schritten als C's verfügbar sind? Das ist nicht das Problem. Welche Bandbreite hat dein Oszi und dein Tastkopf? Mit der 10:1 Dämpfung gemessen? Wenn es exakt nur EINEN SPI-Empfänger gibt, ist Serienterminierung meist besser.
Jay K. schrieb: > Nun die Frage: Bekommt man diese Überschwinger Zeig mal den Messaufbau, das sieht nach Artefakt aus... Falk B. schrieb: >> Nun die Frage: Bekommt man diese Überschwinger mit einem kleineren >>>Widerstand weg, oder größerer C? > Wie hast du GENAU gemessen? Und Wo? Falk B. schrieb: > nur EINEN SPI-Empfänger gibt, ist Serienterminierung meist besser. Und einfacher... Siehe dazu auch den Beitrag "Re: Signalproblem bei langem Kabel"
Hallo Falk und Lothar, vielen Dank für das Feedback. Den Messaufbau bzw. das Equipment hätte ich etwas genauer beschreiben sollen, sorry dafür. Gemessen wurde mit einem Rigol DS1054Z, mit 100Mhz Hack. Tastköpfe waren beim Oszi dabei, die Bezeichung lautet RP2200. Gemessen habe ich mit dem 10:1 Teiler, da haben sie 16 oder 17pF..das ist schon ziemlich viel kapazitive Last, die da bei einer Messung zusätzlich zum 22pF Kondensator dazu kommt. Für die Masseanbindung wurde die Groundspring verwendet. Abgegriffen wurde an den roten Markierungen im Bild. Für den Aufbau hab ich mal ein Bild vom Display und der Platine angehägt. Masse ist auf beiden Steckerseiten angeschlossen. Die Display-Platine ist bereits gelayoutet, das STM Board noch provisorisch aufgebaut. Dort einen Serien-R im späteren Layout einzufügen sollte also kein Problem sein. Das Display wird der einzige Slave an diesem SPI- Port sein. @ Lothar: Das Bild in den Beitrag ist sehr interessant. Dort ist ein deutliches Schwingen zu erkennen. Das ist bei mir so nicht zu sehen? Ich tippe langsam auf das Oszi/den Tastkopf als Quelle des Übels...
@Jay Kay (deeplyembedded) >Gemessen wurde mit einem Rigol DS1054Z, mit 100Mhz Hack. Ohje ;-) >Tastköpfe waren beim Oszi dabei, die Bezeichung lautet RP2200. Gemessen >habe ich mit dem 10:1 Teiler, da haben sie 16 oder 17pF..das ist schon >ziemlich viel kapazitive Last, die da bei einer Messung zusätzlich zum >22pF Kondensator dazu kommt. Eben. >Schwingen zu erkennen. Das ist bei mir so nicht zu sehen? Ich tippe >langsam auf das Oszi/den Tastkopf als Quelle des Übels... Miss doch einfach mal mit deinem Oszi an einem normalen Prozessorpin ohne Leitung. Dort muss ein sauberer Puls mit sauberen Flanken rauskommen. Wenn nicht, hast du ein Meßproblem.
Hi Falk, hab eben mal drei Messungen gemacht: 1. Direkt am µC Pin mit angeschlossenem Display (mc_direct_with_disp) 2. Direkt am µC Pin ohne Display aber mit angeschlossenem Flachbandkabel (mc_direct_wo_disp) 3. Direkt am µC Pin ohne Display und ohne Kabel (mc_direct_wo_cable) Nummer 3 sieht so schlecht gar nicht aus, oder? Bevor ich jetzt wild das C und R tauschen anfange, wäre vielleicht ein kapazitätsärmerer Tastkopf angebracht? Danke und Gruß
@Jay Kay (deeplyembedded) >Nummer 3 sieht so schlecht gar nicht aus, oder? Für so eine Billiggurke mit 100MHz Hack ist es OK. >Bevor ich jetzt wild das C und R tauschen anfange, wäre vielleicht ein >kapazitätsärmerer Tastkopf angebracht? Kann man machen. Ein Z0 Tastkopf mit 1K Eingangswiderstand ist schnell gebaut. Man nehme 1m RG174 mit BNC-Stecker und löte 1k Vorwiderstand an. Am Oszi braucht man eine 50 Ohm Terminierung, es reicht ein T-Stück + 50 Ohm Terminator. http://signalintegrity.com/Pubs/straight/probes.htm Der Klassiker.
Falk B. schrieb: > Für so eine Billiggurke mit 100MHz Hack ist es OK. ^^ Okay dann werd ich so einen z0 Kopf mal bauen. Vielen Dank für den Hinweis, kannte ich bisher noch nicht. Variiert man dann tendenziell eher den C oder den R bei einer AC-Terminierung? Danke und Gruß
@Jay Kay (deeplyembedded) >Variiert man dann tendenziell eher den C oder den R bei einer >AC-Terminierung? Beides. Der Widerstand muss gut zum Wellenwiderstand passen. Der C muss je nach Signaltyp eher klein sein. https://www.mikrocontroller.net/articles/Wellenwiderstand#AC-Terminierung
Viel besser wäre es direkt am Sender (oder wenigstens) an der Übergangsstelle zum Kabel) einen Serienwiderstand von z.B. 33Ohm vorzusehen. Damit kommt man zusammen mit dem Innewiderstand des Senders auf den Wellenwiderstand der Leitung im Kabel. Damit verschwinden die Überschwinger am Leitungsende komplett.
:
Bearbeitet durch User
Jay K. schrieb: > Variiert man dann tendenziell eher den C oder den R bei einer > AC-Terminierung? Na in deinem Fall wird der C schon von der Flanke "zu stark aufgeladen" und nicht erst vom "DC-Anteil des Signals". Aber mit einer Verschiebung des Bezugspotentials während der Bitzeit musst du bei AC-Terminierung immer rechnen (außer bei Sonderfällen wie gleichanteilsfrei codierten Signalen, bei denen du dir riesige Terminierungskondensatoren erlauben kannst, die sich auf die mittlere Signalspannung einstellen). Deshalb wirst du das "schönere Rechteck" in dieser Anwendung mit der Serienterminierung erhalten, die schon mehrfach empfohlen wurde. Jay K. schrieb: > Okay dann werd ich so einen z0 Kopf mal bauen. Ist zwar ok, aber mit dem 100MHz-Oszi wirst du "echte" Reflektionen bei der Leitungslänge trotzdem nicht vernünftig messen können (die Anstiegszeit des Oszis ist >3ns, die Laufzeit auf dem Kabel liegt darunter). Als Ergänzung, die mit diesen Beschränkungen nicht zu kämpfen hat, bietet sich eine Simu an (siehe Anhang).
Okay dann nehm ich die Serienterminierung mal als Option für das Layout der Hauptplatine mit. Ich dachte eigentlich dass eine AC Terminierung "sauberer" wäre, da sie nicht bewusst mit Reflexionen arbeitet, so wie die Serienterminierung. Das mit der Simulation ist auch ein guter Hinweis, Danke dafür! Ich werde mal einen z0 Kopf aufbauen (schon allein um das Ergebnis nicht durch parasitäre Kapazität zu verfälschen) und ein bisschen mit den C's und R's rumspielen...wenn mir das nicht taugt, kommt eben eine Serienterminierung. Danke an alle Beteiligten :)
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.