AVR ATtiny84A Folgendes Problem: PA7 und PA6 sind über einen externen 1k Pull-Up auf HIGH gezogen. Leite ich jetzt den Strom des PA7 über den AVR ab (DDRA Bit 7 = 1, PORTA Bit 7 = 0), stürzt die Spannung von PA7 wie erwartet ab, aber die Spannung von PA6 bricht auch um 1V ein und es dauert knapp 150ns, bis sie durch den PullUp wieder auf 5V stabil ist. Mit einem Kondensator würde das Problem natürlich erledigt sein, jedoch sind das HF Datenleitungen, die sowas nicht mögen. Hat jemand eine Ahnung, woran das liegt? Danke. PS: Tippfehler bei DDRA und PORTA korrigiert.
:
Bearbeitet durch User
Christian S. schrieb: > PA7 und PA6 sind über einen externen 1k Pull-Up auf HIGH gezogen. > Leite > ich jetzt den Strom des PA7 über den AVR ab (DDRA Bit 7 = 0, PORTA > Bit 7 > = 1) Da leitet gar nichts ab, das konfiguriert Pin7 auf Eingang und schaltet den internen Pullup ein.
Christian S. schrieb: > aber die Spannung von > PA6 bricht auch um 1V ein 1V? Glaub ich nicht. Zumindest nicht nach der Rekonstruktion Deiner (übrigens widersprüchlichen¹ und wahrscheinlich unvollständigen) Beschreibung vor meinem geistigen Auge (denn ein Bild oder Pläne hast Du ja leider nicht gepostet²) Also: * Schaltplan * Relevante Orginalcodezeilen mit denen Du DDR und PORT schaltest. * Foto(s) des Aufbaus von allen relevanten Seiten * Oszillogramm des Phänomens * Beschreibung (oder Foto) wo und wie Du das gemessen hast. __ ¹ Siehe hierzu auch die Erläuterung meines Vorposters ² Bisschen Mithilfe Deinerseits ist schon angebracht. Vielleicht findest Du den Fehler ja bei der systematischen Zusammenstellung und Sichtung der oben geforderten Unterlagen schon selbst, aber auch dann wäre es immer noch nett die Auflösung zu posten.
:
Bearbeitet durch User
verwende doch für jeden Pin einen eigenen Pullup-Widerstand anstatt eines gemeinsamen.
Es ist einfach ein 1 Meter Kabel, welches frei in der Luft hängt. Die beiden Adern laufen da drin natürlich sehr enganliegend, von daher tippe ich auf Übersprechen? Ich weiss es aber nicht. Da habe ich zu wenig Ahnung. Beide Pins haben einen getrennten PullUp. Anbei auch das Oszillogramm. Gemessen habe ich direkt 2mm neben den AVR Pins. OSC Masse ist direkt am Massepin des AVR angeschlossen. Blau wird vom AVR auf Masse gezogen. 2ns später sinkt die Nachbarader ab und nach 40ns ist sie wieder normal. PS: Der SINN eines frei hängenden Kabels ist natürlich nicht gegeben und dient in diesem Fall auch nur der Fehlersuche.
:
Bearbeitet durch User
Christian S. schrieb: > Es ist einfach ein 1 Meter Kabel, welches frei in der Luft hängt. Die > beiden Adern laufen da drin natürlich sehr enganliegend Gratuliere, Du hast einen Kondensator gebaut.
Peter D. schrieb: > Christian S. schrieb: >> Es ist einfach ein 1 Meter Kabel, welches frei in der Luft hängt. Die >> beiden Adern laufen da drin natürlich sehr enganliegend > > Gratuliere, Du hast einen Kondensator gebaut. Danke. Und jetzt sag mir bitte auch, wie ich bei angeschlossenen Kabel (am Ende sind zwei hochohmige Eingänge) dieses Problem beseitigen kann, ohne den 1k PullUp zu verändern. Und bist du sicher, dass es nicht eher ein induktiver Effekt ist? Wenn das Problem nicht beim ATtiny zu suchen ist, dann sollte dieses Thema in den Bereich Analogtechnik verschoben werden.
:
Bearbeitet durch User
Nimm ein Kabel mit einzeln geschirmten Adern. Oder nimm ein Kabel mit paarig verdrilleten Adern und übertrage differentiell (RS-485-Transceiver-ICs).
Ach, ist das schön! Heutzutage hat ein unbedarfter Bastler tolle Messinstrumente, verdrahtet irgendwas gegen alle Regeln der Technik und kann die restliche Welt per Internet mit WARUM KOMMT DABEI SOWAS RAUS nerven... Ob damit der Lernerfolg steigt, wage ich zu bezweifeln. Da das Hirn noch genau so, wie vor 1000 Jahren funktioniert, treten Lernerfolge auch heute nur ein, wenn man was Vorgegebenes VERSTANDEN hat, oder was Ausgedachtes AUSPROBIERT hat. => TROLL
"Unbedarft", also ohne Bedarf, z.B. für 500MS/s, wenn man rätselt, warum eine 1m lange, nicht abgeschlossene Leitung einen 40MHz Burst einfängt, wenn daneben eine ebensolche 2. Leitung mit einem Puls beaufschlagt wird, dessen Anstieggeschwindigkeit zu den 40MHz paßt. Ich hab's da leichter. Mein 20MHz Hameg, in den frühen 80ern gekauft, würde mir das kaum anzeigen. Nur wüsste ich, was ich nur fast sehe. Lustig dann auch: dieser HF-Trafo soll nur zur Fehlersuche dienen. Er ist der Fehler!
Genau - jetzt muss die Analogwelt endlich mal ran, um das WARUM-FÜHRT-SCHLECHTER-SCHALTUNGSAUFBAU-BESONDERS-IM-100-NS- BEREICH-ZU-SCH...-ERGEBNISSEN-PROBLEM zu lösen. Die µC-und-Elektronik-Pappnasen wissen überhaupt nix und hangeln sich nur an Design-Regeln durch ihr kümmerliches Leben!
Wie gesagt, ist der Impuls auch vorhanden, wenn ein ATtiny Eingang an der anderen Seite existiert und ein Abschlusswiderstand ist wegen der Pullups nicht möglich. Auf die kindische Klugscheisserei gehe ich mal nicht ein.
:
Bearbeitet durch User
Christian S. schrieb: > und ein Abschlusswiderstand ist wegen der > Pullups nicht möglich. Da stimmt was an deinem Konzept aber wirklich nicht. Entweder machst du die Eingangsleitung so niederohmig wie möglich und fängst dir damit keine Störungen mehr ein oder du bereitest das Signal für den Eingang schon auf, bevor du es auf das Kabel schickst, oder du nimmst zwei getrennte oder wenigstens einzeln geschirmte Kabel. Niederohmig kann übrigens auch niederohmige Pullups bedeuten.
@Oldie Schön das Du dieses Forum gefunden hast, hier gibt es viele Menschen die Deine Erfahrung sicher schätzen würden wenn Du sie teilst und die Einsamkeit in Deinem Leben hätte mit einem Schlag ein Ende :)
> Wie gesagt, ist der Impuls auch vorhanden, wenn ein ATtiny Eingang an > der anderen Seite existiert Du kommst nicht trocken durch den überfluteten Uferweg, egal ob am anderen Ende eine Sackgasse oder eine Autobahnauffahrt ist. > und ein Abschlusswiderstand ist wegen der > Pullups nicht möglich. Warum willst du mit dem Kopf durch die Wand einen miesen Aufbau durch weitere Flickereien gerade biegen? Warum verwirfst du alle Vorschläge zu geschirmten Leitungen oder differenzieller Übertragung?
:
Bearbeitet durch User
Du musst das Thema der Frage ändern. Statt "AVR Beeinflussung der Nachbarpins" beschäftigt Dich eher: "Kabel Beeinflussung der Nachbaradern" Denk doch mal nach: Du hast 2 parallele Adern im langen Kabel, es ist kein Geheimnis daß das eine nicht unerhebliche Kapazität zwischen zwei Leitern in einem Kabel gibt, was bringt Dich nun also dazu anzunehmen die winzige Kapazität zwischen den Pins des AVR würde die doch recht beachtliche Kapazität zwischen den Adern im Kabel bei weitem überwiegen so daß Du noch nicht mal ansatzweise auf die Idee kommst das Kabel könnte einen Einfluss haben? Du musst mit der Zeit eine gewisse Intuition entwickeln was die ungefähren Größenordnungen von Kapazitäten, Induktivitäten, Widerständen, Strömen angeht mit denen Du es zu tun hast oder die durch einen bestimmten Aufbau zustande kommen würden um spontan wenigstens grob abschätzen zu können (ohne zu messen) welche davon vermutlich eine Rolle spielen könnten und welche man vernachlässigen kann. Das kommt mit der Zeit. Bis dahin versuche mal zu messen (oder zu errechnen) mit was für Kapazitäten Du es überhaupt zu tun hast (sind es nur wenige pF oder sind es hunderte pF), vergleich das mal mit anderen Kapazitäten die Du bereits kennst um das im Kopf richtig einzuordnen, rechne auch mal ein paar Zeitkonstanten von daraus resultierenden RC-Gliedern aus (z.B. mit deinem 1k Pullup) um auch hier mal ne grobe Idee zu bekommen (und irgendwann später auch einfach spontan abschätzen zu können) in welchem Hausnummernbereich Du dich da überhaut bewegst.
:
Bearbeitet durch User
Was stört Dich überhaupt an diesem (nebenbei: angesichts des geschilderten Aufbaus erstaunlich kleinen) Spannungseinbruch? Bekommst Du echte Übertragungsfehler in Deiner Applikation (was das auch immer werden soll...) oder stört Dich nur optisch, was Du auf dem Schirm siehst? Wenn's um digitale Pegel geht, ist ein Einbruch um 1V hier schließlich immer noch weit weg vom minimalen High-Pegel, also alles im grünen Bereich! Also, wo ist das Problem?
Christian S. schrieb: > AVR ATtiny84A Unabhängig von der schon genannten und wahrscheinlichen Ursache "Übersprechen im Kabel": - Hast Du auch Stützkondensator(en) nahe am µC? Wenn das nicht der Fall ist, kann zumindest ein Teil des Spannungseinbruchs daher kommen. - War die Messung "ordentlich" (ordentliches GND-System, Tastkopf mit kurzen Leitung am naheliegenden GND angeschlossen)? Denn das kann "Geister-"Spikes auf dem Bildschirm erzeugen. Gruß Dietrich
Wenn PA6 nur über den 1k Pullup auf High-Pegel gehalten wird, dann muss die kapazitive Kopplung im Kabel (Flachbandkabel?) zu einem Signaleinbruch von einigen 100ns Dauer führen. Da wundert mich schon eher, wieso der Einbruch nur 1V tief sein soll. Hast du die Messung evtl. mit einen 1:1 Tastkopf aufgenommen? Dann sei dir bewusst, dass ohne Tastkopf (geringere Kapazität gegen GND) bzw. mit einem 10:1 Tastkopf der Einbruch noch tiefer wäre. Was für mich nicht so ganz zusammenpasst sind die Aussagen, dass einerseits ein Kabel mit min. einigen 10pF Kapazität über einen lahmen 1kOhm Widerstand getrieben wird, andererseits aber von "HF Datenleitungen" die Rede ist. Das passt nicht zusammen, die steigende Flanke des Signals wird lahm sein. Wenn die lahmen Flanken dich nicht stören, kannst du jeder Leitung noch einen Längswiderstand von z.B 200Ohm verpassen. Bei der steigenden Flanke macht das keinen Unterschied, die fallende Flanke wird um eine Größenordnung gestreckt und damit der Einbruch durch das kapazitive Übersprechen um eine Größenordnung geringer. Wenn die Leitungen wirklich schnelle Signale sehen sollen, dann muss der High-Pegel nicht durch den Pullup sondern durch den Highside-Treiber des µC getrieben werden. Dann sind beide Flanken schnell, dann nimmt aber der aktive Treiber den Strom der Koppelkapazität auf und der Einbruch wird wesentlich kleiner. Wirklich schnelle Signale über 1m Leitung ohne rechtes Konzept für Wellenwiderstand und Terminierung sind aber auch nicht ohne. Ansonsten wäre die einfachste (und trotzdem wirkungsvolle) Schirmmaßnahme, zwischen die beiden Signaladern eine Ader mit GND zu legen.
Achim S. schrieb: > Wenn PA6 nur über den 1k Pullup auf High-Pegel gehalten wird, dann muss > die kapazitive Kopplung im Kabel (Flachbandkabel?) zu einem > Signaleinbruch von einigen 100ns Dauer führen. Da wundert mich schon > eher, wieso der Einbruch nur 1V tief sein soll. Hast du die Messung > evtl. mit einen 1:1 Tastkopf aufgenommen? Dann sei dir bewusst, dass > ohne Tastkopf (geringere Kapazität gegen GND) bzw. mit einem 10:1 > Tastkopf der Einbruch noch tiefer wäre. Ich habe nochmal nachgeschaut und gesehen, dass ich im Rahmen der Fehlersuche schon den Pullup auf 330 Ohm abgesenkt habe. Leider habe ich das wohl beim verfassen des Posts vergessen gehabt. Ich verwende einen 10:1 Tastkopf. > Was für mich nicht so ganz zusammenpasst sind die Aussagen, dass > einerseits ein Kabel mit min. einigen 10pF Kapazität über einen lahmen > 1kOhm Widerstand getrieben wird, andererseits aber von "HF > Datenleitungen" die Rede ist. Das passt nicht zusammen, die steigende > Flanke des Signals wird lahm sein. Naja, gibts denn eine feste Definiton, ab wann etwas HF ist? Ich versuche einen i2c-Bus über ein maximal 3 Meter langes Kabel zu leiten. Ich weiss, dass der Bus dafür nicht gemacht ist, aber der Empfängerchip hat leider nur einen i2c Eingang. Ich möchte gerne 1us pro Bit erreichen, also 500ns Flankenabstand. Ich muss sagen, dass es derzeit ja auch funktioniert, aber es ist halt sehr grenzwertig und ich versuche es halt so sauber wie möglich hinzubekommen, bevor ich anfange, Kabel mit einzeln geschirmten Adern zu verwenden. Es ist für mich als Hobbybastler auch ein guter Lerneffekt und zugegeben habe ich mich bisher nie mit Leitungsparametern beschäftigt. > Wenn die lahmen Flanken dich nicht stören, kannst du jeder Leitung noch > einen Längswiderstand von z.B 200Ohm verpassen. Bei der steigenden > Flanke macht das keinen Unterschied, die fallende Flanke wird um eine > Größenordnung gestreckt und damit der Einbruch durch das kapazitive > Übersprechen um eine Größenordnung geringer. Hmm probier ich mal aus. > Ansonsten wäre die einfachste (und trotzdem wirkungsvolle) > Schirmmaßnahme, zwischen die beiden Signaladern eine Ader mit GND zu > legen. Muss es zwingend Masse sein, oder würde auch 5V gehen? Das habe ich nämlich schon probiert, jedoch ohne wirkliche Unterschiede festzustellen. PS: Ein Stützkondensator mit 220nF ist vorhanden und direkt am AVR VCC Pin und dem AVR GND Pin angeschlossen.
:
Bearbeitet durch User
Thomas E. schrieb: > Was stört Dich überhaupt an diesem (nebenbei: angesichts des > geschilderten Aufbaus erstaunlich kleinen) Spannungseinbruch? Bekommst > Du echte Übertragungsfehler in Deiner Applikation (was das auch immer > werden soll...) oder stört Dich nur optisch, was Du auf dem Schirm > siehst? > Wenn's um digitale Pegel geht, ist ein Einbruch um 1V hier schließlich > immer noch weit weg vom minimalen High-Pegel, also alles im grünen > Bereich! Also, wo ist das Problem? Das Problem ist, dass ich nicht verstanden habe, woher der Einbruch kommt und das hat mich genervt. So langsam lichtet sich jedoch der Schleier der Unwissenheit ;)
:
Bearbeitet durch User
Christian S. schrieb: > Thomas E. schrieb: >> Was stört Dich überhaupt an diesem (nebenbei: angesichts des >> geschilderten Aufbaus erstaunlich kleinen) Spannungseinbruch? Bekommst > > Das Problem ist, dass ich nicht verstanden habe, woher der Einbruch > kommt und das hat mich genervt. So langsam lichtet sich jedoch der > Schleier der Unwissenheit ;) Du kannst leicht feststellen obs die Kabelkapazität ist oder eine andere Ursachen, klemm die Leiung einfach mal weg und erzeuge den Puls. Dann ists gleich sichtbar obs die Koppelkapazität der Leitung ist oder was anderes. Kurt
Hi
>Ich möchte gerne 1us pro Bit erreichen, also 500ns Flankenabstand.
Bist du sicher, das der Empfängerchip dafür ausgelegt ist?
MfG spess
spess53 schrieb: > Hi > >>Ich möchte gerne 1us pro Bit erreichen, also 500ns Flankenabstand. > > Bist du sicher, das der Empfängerchip dafür ausgelegt ist? > > MfG spess Ja. Funktioniert auch. Es ist der MCP23008. Ich habe mal versucht ein bissl zu rechnen, obwohl ich Bastler bin ;) Ob ich wirklich richtig lieg, sagt mir wenn ein Licht angeht? Also wenn ich ein C mit 1k Ohm lade, ist die Ladekurve identisch mit dem Ladevorgang eines C mit der 1000fachen Kapazität bei 1 Ohm. Da ein Ethernetkabel im Schnitt laut Google 100 pF/m hat, der PullUp aber sagen wir 1k hat, entspricht das einer Ladekurve eines Kabels von 100nF/m bei einer 1 Ohm Verbindung. Ist es also korrekt, dass ich hier quasi einen 100nF Kondensator sehe, der nur durch einzeln geschirmte Kabel wegzukriegen ist?
Über welche Sorte Kabel reden wir hier eigentlich? Muss das Kabel flexibel sein oder darf es starr sein? Nur mal überschlägig: Der Kapazitätsbelag sei 50pF/m (Sternvierer, UTP). Das sind dann 150pF für die 3m, die umgeladen werden müssen. 1kOhm Pullup ist schon sportlich, das kann nicht jeder I2C Chip. Aber dann sind wir schon bei 150ns Zeitkonstante und kollidieren fast mit den verlangten 500ns zwischen den Bits. Also: Passendes Kabel aussuchen und die Geschwindigkeit anpassen.
Christian S. schrieb: > Danke. Und jetzt sag mir bitte auch, wie ich bei angeschlossenen Kabel > (am Ende sind zwei hochohmige Eingänge) dieses Problem beseitigen kann, > ohne den 1k PullUp zu verändern. wer baut den pullups bei I2C an den Anfang? die I2C pullup gehören IMMER ans Kabelende. http://www.roboternetz.de/bilder/i2cbeitrag1.gif ich hoffe das hilft Christian S. schrieb: > Das Problem ist, dass ich nicht verstanden habe, woher der Einbruch > kommt und das hat mich genervt. da musst du noch lernen: http://www.vias.org/mikroelektronik/line_termination.html http://www.elektronik-kompendium.de/sites/kom/1303261.htm
:
Bearbeitet durch User
>die I2C pullup gehören IMMER ans Kabelende.
Ach, wo ist denn bei der bidirektionalen Datenleitung
das Kabelende?
Joachim B. schrieb: > wer baut den pullups bei I2C an den Anfang? > > die I2C pullup gehören IMMER ans Kabelende. > http://www.roboternetz.de/bilder/i2cbeitrag1.gif > ich hoffe das hilft Wie unterscheidet man bei einer bidirektionalen Leitung zwischen Kabelanfang und Kabelende? Christian S. schrieb: > Da ein Ethernetkabel im Schnitt laut Google 100 pF/m hat, der PullUp > aber sagen wir 1k hat, entspricht das einer Ladekurve eines Kabels von > 100nF/m bei einer 1 Ohm Verbindung. Ist es also korrekt, dass ich hier > quasi einen 100nF Kondensator sehe, der nur durch einzeln geschirmte > Kabel wegzukriegen ist? Hä? Ich kapiere die Rumrechnerei nicht. Das Kabel hat die Kapazität, die es hat (z.B. 100pF). Wenn du es mit 1kOhm umlädst, bekommst du eine Ladekurve mit 100ns Zeitkonstante. Wenn du es mit einem anderen Widerstand umlädst, dann ändert sich deswegen nicht die Kapazität des Kabels sondern die Zeitkonstante, mit der es geladen wird. Christian S. schrieb: > Naja, gibts denn eine feste Definiton, ab wann etwas HF ist? Ich > versuche einen i2c-Bus über ein maximal 3 Meter langes Kabel zu leiten. > Ich weiss, dass der Bus dafür nicht gemacht ist, aber der Empfängerchip > hat leider nur einen i2c Eingang. Ich möchte gerne 1us pro Bit > erreichen, also 500ns Flankenabstand. Wahrscheinlich gibt es sogar mehrere Definitionen, ab wann etwas als HF gilt. Aber I2C zählt bei meinen Definitionen nicht zu HF. Wenn du I2C über 3m schicken willst, dann fang mit etwas bescheideneren Taktraten an um es sicher zum Laufen zu kriegen. Christian S. schrieb: > Muss es zwingend Masse sein, oder würde auch 5V gehen? Jedes niederohmige stabile Potential ist gleich gut als Schirm. Wenn es keinen Unterschied, ob du eine "Schirmader" zwischen deinen beiden Signalen hast oder nicht, dann ist das in der Tat seltsam. Da würde ich anfangen zu hinterfragen, wie der konkrete Messaufbau ausschaut. Und eine Klarstellung wäre nett, um welches Kabel es sich konkret handelt. Falls Ethernet: Welche Anschlüsse hast du verwendet, was ist mit den Schirmen der twisted pairs passiert?
holger schrieb: > Ach, wo ist denn bei der bidirektionalen Datenleitung > das Kabelende? vielleicht überlegst du mal wo der Master sitzt der z.B. den Clock VORGIBT, dann kommst du darauf.
Hi >vielleicht überlegst du mal wo der Master sitzt der z.B. den Clock >VORGIBT, dann kommst du darauf. Das ist Sch..egal. Zeig mir mal in der UM10204 (I2C-bus specification and user manual) wo das so festgelegt ist. MfG Spess
Joachim B. schrieb: > vielleicht überlegst du mal Schau dir doch mal Timing Diagramme des I2C Bus an. Dann wirst du sehen, dass sowohl Master als auch Slave an SDA und SCL zupfen. Insofern gibt es wirklich keinen Anfang und kein Ende des Busses. Deshalb sind Stern Topologien durchaus üblich. Wenn du es besonders hübsch machen willst, kannst du jedem Teilnehmer einen (hochohmigeren) Pullup spendieren. Das ist aber eine Maßnahme für die Galerie und hilft elektrisch weniger.
Kann es sein, daß es darum geht den MCP23008 in Highspeed I2C anzubinden? Wegen der 1μs pro Bit. Ich denke das geht nicht, denn die TWI Hardware des AVR kann max den 400kBit Mode und BitBanging mit 1MBit ist falls überhaupt möglich, nicht trivial. Eventuell kann man bei den diversen USB-Libs für AVR was abschauen, aber da werden viele Eigenheiten von USB bis an und über die Grenze des erlaubten ausgereizt.
Nicht Highspeed, sondern FastMode+, d.h. Protokoll wie 100k-/400k-Mode, aber bis 1MBit.
Hi >Ich denke das geht nicht, denn die >TWI Hardware des AVR kann max den 400kBit Mode Wo steht das? Sieh dir die Formel im Datenblatt an. In alten ATMEL-Dokumenten gab es mal die Einschränkung, das TWBR nicht nicht kleiner als 10 sein soll/darf. Das stammt aber aus dem letzten Jahrtausend und ist obsolet. MfG Spess
Bastler schrieb: > Kann es sein, daß es darum geht den MCP23008 in Highspeed I2C > anzubinden? Wegen der 1μs pro Bit. Ich denke das geht nicht, denn die > TWI Hardware des AVR kann max den 400kBit Mode und BitBanging mit 1MBit > ist falls überhaupt möglich, nicht trivial. Eventuell kann man bei den > diversen USB-Libs für AVR was abschauen, aber da werden viele > Eigenheiten von USB bis an und über die Grenze des erlaubten ausgereizt. Tja, so hat jeder seine Stärken und Schwächen. 1 MBit via Bitbanging war für mich kein Problem. Ich musste sogar noch ein bissl noppen, um auf die 500ns zu kommen. Der Systemtakt liegt bei 10 MHz. Externe Libs sind doch langweilig. Da schreib ich das in ASM schneller als ich durch die C-Libs steige. Verstehen muss man das ganze nämlich so oder so, wenn mal was nicht so läuft, wie es soll. Nur bin ich halt seit 20 Jahren Programmierer, aber Elektronik mache ich hobbymäßig erst seit einem halben Jahr.
Achim S. schrieb: > Jedes niederohmige stabile Potential ist gleich gut als Schirm. Wenn es > keinen Unterschied, ob du eine "Schirmader" zwischen deinen beiden > Signalen hast oder nicht, dann ist das in der Tat seltsam. Da würde ich > anfangen zu hinterfragen, wie der konkrete Messaufbau ausschaut. Und > eine > Klarstellung wäre nett, um welches Kabel es sich konkret handelt. Falls > Ethernet: Welche Anschlüsse hast du verwendet, was ist mit den Schirmen > der twisted pairs passiert? Es liegt nicht am Messaufbau. Wenn ich das Ethernetkabel abziehe, ist der Fehler nämlich weg. Also muss es am Kabel liegen. Es ist dieses Kabel: https://www.brack.ch/wirewin-cat-6-utp-2m-schwarz-114269 (davon teste ich mit der 1, 2 und 10 Meter Version rum und schaue, was passiert) Ich habe die Pins so belegt: 1 und 2: CLOCK 3 und 4: 5V 5 und 6: DATA 7 und 8: GND Einen Schirm hat das Dingen also nichtmal.
:
Bearbeitet durch User
Christian S. schrieb: > Ich habe die Pins so belegt: > 1 und 2: CLOCK > 3 und 4: 5V > 5 und 6: DATA > 7 und 8: GND > > Einen Schirm hat das Dingen also nichtmal. Mit Schirm hätte es noch mehr Kapazität gegen irgendwas. Sind die Drähte einzeln geschirmt dann fällt zwar das Übersprechen auf einen anderen Draht weg, die Kapazität ist aber trotzdem noch da und wirksam. Und zwar nicht gegenüber dem Nachbarpin, sondern gegenüber dem Pin der da treibt. Ob das Parr-schalten von Leitungen gut ist!? Ich meine eher nicht. Denn du hast mehr Kapazität und ausserdem erzwingst du geradezu ein Übersprechen zwischen den einzelnen Aderpärchen. Und das ist nicht gut!! Besser wäre es wenn jedes Pärchen ein Signal und einen Bezug dazu führen würde. Ob der Bezug nun Masse heisst oder 5V das wiederum dürfte ziemlich egal sein. Versuche mal festzustellen, oder schau nach, welche Pinnummern zu einem Aderpärchen gehören, ev. wirst du dann deine Belegung ändern. Kurt
Christian S. schrieb: > https://www.brack.ch/wirewin-cat-6-utp-2m-schwarz-114269 (davon teste > ich mit der 1, 2 und 10 Meter Version rum und schaue, was passiert) > > Ich habe die Pins so belegt: > 1 und 2: CLOCK > 3 und 4: 5V > 5 und 6: DATA > 7 und 8: GND > > Einen Schirm hat das Dingen also nichtmal. Allein die Bezeichnung im Link lies das bereits erahnen. Das u in "cat-6-utp" steht nämlich für "unshielded", also ungeschirmt. Das mit diesem Kabel bestmögliche Ergebnis für dein Problem sollte sich ergeben, wenn du es folgendermaßen belegst (die Variante, die der Ausgangssituation am nächsten kommt): 1: Clock
c-hater schrieb:
...verdammt, verklickt.
So sollte es eigentlich weiter gehen:
1: Clock
3 und 6: 5V
5: Data
Alles andere: GND.
c-hater schrieb: > > Das mit diesem Kabel bestmögliche Ergebnis für dein Problem sollte sich > ergeben, wenn du es folgendermaßen belegst (die Variante, die der > Ausgangssituation am nächsten kommt): > > 1: Clock Sein Problem dürfte nicht die Kapazität der Leitungen zueinander sein/werden, sondern Übersprechen, denn er verwendet keine Pärchen die einen definierten Scheinwiderstand haben, sondern hat einfach nur "Drähte im Kabel. Und das geht für Gleichspannung, nicht für eine Leitung in der Signale schnell sein sollen. Er produziert "Stehwellen" an mass. Kurt
Christian S. schrieb: > Es liegt nicht am Messaufbau. Wenn ich das Ethernetkabel abziehe, ist > der Fehler nämlich weg. Also muss es am Kabel liegen. Das heißt, dass sich durch das Kabel ein Effekt ergibt. Wenn man aber verstehen will, was genau das Oszibild sagt, ist der Messaufbau trotzdem relevant. Christian S. schrieb: > Einen Schirm hat das Dingen also nichtmal. ok, mit UTP-Kabel geht schirmen tatsächlich nicht. Und mit single ended Signalen nutzen auch die verdrillten Adernpaar nichts, da würde meines Erachtens Flachbandkabel noch mehr Möglichkeiten bieten. Wenn es dir wichtig genug ist, kannst du ja auf STP umsteigen. Damit solltest du die kapazitive Kopplung zwischen den Signalen deutlich reduzieren können.
Achim S. schrieb: > ok, mit UTP-Kabel geht schirmen tatsächlich nicht. Und mit single ended > Signalen nutzen auch die verdrillten Adernpaar nichts, da würde meines > Erachtens Flachbandkabel noch mehr Möglichkeiten bieten. > > Wenn es dir wichtig genug ist, kannst du ja auf STP umsteigen. Damit > solltest du die kapazitive Kopplung zwischen den Signalen deutlich > reduzieren können. Sein "kapazitives" Problem ist wohl eher ein "Stehwellenproblem", also ein nicht abgeschlossene Signaltransport. Kurt
Kurt B. schrieb: > Sein "kapazitives" Problem ist wohl eher ein "Stehwellenproblem", also > ein nicht abgeschlossene Signaltransport. sehe ich auch so, trotz vieler Kritiker. Ich würde die Pullup trotzdem am letzten Slave hängen oder an jeden Slave aber den Strom (R || min nicht unterschreiten) nicht übertreiben, der richtet sich nach dem schwächsten I2C Teilnehmer Georg G. schrieb: > Dann wirst du sehen, > dass sowohl Master als auch Slave an SDA und SCL zupfen. Achim S. schrieb: > Wie unterscheidet man bei einer bidirektionalen Leitung zwischen > Kabelanfang und Kabelende?
Treten Stehwellen nicht nur bei Reflexionen auf? Es ist doch der Nachbarpin betroffen und ausserdem tritt das Phänomen schon nach 2ns auf. In der Zeit kann gar nichts zurück gekommen sein.... ?
Christian S. schrieb: > Treten Stehwellen nicht nur bei Reflexionen auf? ja, und am Ende vom Kabel ohne nennswerte Last, R bzw. Abschluß, was denkst du? Christian S. schrieb: > ausserdem tritt das Phänomen schon nach 2ns > auf. 3,33ns für 1m bei c scheint zu passen https://de.wikipedia.org/wiki/Lichtgeschwindigkeit
Christian S. schrieb: > Treten Stehwellen nicht nur bei Reflexionen auf? Selbstverständlich! (es sind dann keine Stehwellen!), denn das Sendesignal ist ja quasi erstmal direkt am zweiten Pin, bzw. erst wenige cm in der Leitung, da wirkt die Kapazität des (kurzen) Kabelstückes. Kommt es zu Reflektion am Kabelende dann kommt das auch noch dazu und wirkt sich aus. Je nach Leitungslänge ergibt das mehrere Spannungszustände am betroffenem Pin. Soll es eine schnelle Übertragung werden dann muss er die Reflektion abstellen, die Nahbeeinflussung (wenige cm des Kabels) kann er nicht, das ist mit und ohne Kabelabschluss vorhanden. Kurt
Kurt B. schrieb: > Sein "kapazitives" Problem ist wohl eher ein "Stehwellenproblem", also > ein nicht abgeschlossene Signaltransport. er hat das "Problem" auf einer Leitung, die mit konstanten Pegel getrieben wird. Wie soll sich das ein "Stehwellenproblem" aufbauen? Und wie soll auf einer Leitungslänge von 1m nach 100ns noch etwas von einer Reflektion übrig sein? 20 mal hin und her gelaufen und dann plötzlich verschwunden? Mag sein, dass auf der schnell fallenden Flanke ein Reflektionseffekt erkennbar ist (um es wirklich bewerten zu können müsste man aber den Messaufbau genau kennen, schneller abtasten und z.B. die sin(x)/x-Interpolation ausschalten). Auch dagegen würde ein Serienwiderstand helfen, den ich oben empfohlen habe. Aber das, was Christian eigentlich stört, ist simples kapazitives Übersprechen, das sich bei seinem Aufbau zwangsläufig ergeben muss.
Achim S. schrieb: > > Aber das, was Christian eigentlich stört, ist simples kapazitives > Übersprechen, das sich bei seinem Aufbau zwangsläufig ergeben muss. Eben, und darum muss er verstehen wie ein Kondensator funktioniert und wie eine Reflektion. Erst dann kann er das was er am Schirm sieht richtig einordnen und dann auch schnell übertragen (auch über längere Strecken, denn da ist die Signalamplitude am Kabelende das Kriterium). Kurt
Joachim B. schrieb: > Christian S. schrieb: >> Treten Stehwellen nicht nur bei Reflexionen auf? > > ja, und am Ende vom Kabel ohne nennswerte Last, R bzw. Abschluß, was > denkst du? > > Christian S. schrieb: >> ausserdem tritt das Phänomen schon nach 2ns >> auf. > > 3,33ns für 1m bei c scheint zu passen > https://de.wikipedia.org/wiki/Lichtgeschwindigkeit Leider stimmt das so nicht. Im Kupfer ist die Signalgeschwindigkeit nämlich nicht c, sondern ca. 5ns/s. Nur im Vakuum gilt v = c. Ausserdem brauchst du auch noch den Rückweg. Macht 10 ns. Wenn ich da also nichts übersehen habe, KANN es keine Reflexion sein, da die erst nach 10ns zu sehen wäre. Also MUSS es was anderes sein. Was ist eigentlich mit der Impedanz? Die wurde ja getrost ignoriert. Wenn ich ein Pin auf Masse ziehe, zerstöre ich damit ja brutal das Magnetfeld. Habe ich damit nicht eine Art Minitrafo? Es wurde ja auch öfter nach dem Messaufbau gefragt. Ich weiss ehrlich gesagt nicht, was damit genau gemeint ist. Ich habe ein Osc (Rigol MSO1074), die beiden mitgelieferten 10:1 Standardtaster genommen, 10 cm Schaltdraht dran, damit ich ein Drahtende für das Breadboard habe und das dann direkt neben die ATtiny Pins reingesteckt. GND der Messfühler ist nach dem gleichen Prinzip direkt neben dem GND Pin des ATtiny eingesteckt.
:
Bearbeitet durch User
Christian S. schrieb: > Also MUSS es was anderes sein. Was ist eigentlich mit der Impedanz? Die > wurde ja getrost ignoriert. Wenn ich ein Pin auf Masse ziehe, zerstöre > ich damit ja brutal das Magnetfeld. Habe ich damit nicht eine Art > Minitrafo? Ach komm, jetzt fängts an wehzutun. Du siehst eine simple kapazitive Kopplung und es wurde dir auch schon beschrieben, was du dagegen tun kannst, wenn es dich stört. Alternativ kannst du natürlich auch noch darüber spekulieren, ob Außerirdische an dem Signal schuld sind.
Es wäre nett, wenn du mir noch sagen würdest, warum das hier nichts mit dem Magnetfeld zu tun haben kann, anstatt meine These mit "Ausserirdischen" ins Lächerliche zu ziehen.
Christian S. schrieb: > Wenn ich ein Pin auf Masse ziehe, zerstöre > ich damit ja brutal das Magnetfeld. Etwas Gedachtes das nicht existiert lässt sich nicht zerstören. Kurt
Kurt B. schrieb: > Christian S. schrieb: > >> Wenn ich ein Pin auf Masse ziehe, zerstöre >> ich damit ja brutal das Magnetfeld. > > Etwas Gedachtes das nicht existiert lässt sich nicht zerstören. > > Kurt Hmmm existieren Magnetfelder nur bei stromDURCHFLOSSENEN Leitern und nicht.... äääh ok alles klar... Danke :)
wenn ich eine These gesehen hätte, hätte ich die gerne kommentiert. Ich kann aber nur eine Aneinandereihung von Begriffen erkennen, die meinem Eindruck nach bestenfalls halbverstanden sind. Vielleicht erklärst du mal konkret, was du vermutest. Falls du von induktiver Kopplung redest: in dem Fall würde die Spannung am hochohmigen Ende der Leitung abfallen, an dem deutlich niederohmigeren 1kOhm Widerstand siehst du davon nichts. Warum suchst du zwanghaft nach anderen Eklärungen, wenn du die richtige Erklärung schon lange bekommen hast?
Achim S. schrieb: > Warum suchst du zwanghaft nach anderen Eklärungen, wenn du die richtige > Erklärung schon lange bekommen hast? Ich akzeptiere ja die Erklärung, dass es sehr wahrscheinlich die Kapazität ist. Ist es deshalb denn verboten, zu fragen, warum es die Induktion NICHT sein kann? Ja, ich habe mit euren Fachbegriffen so meine Probleme. Ich lerns schon noch.
Christian S. schrieb: > Ich akzeptiere ja die Erklärung, dass es sehr wahrscheinlich die > Kapazität ist. Es ist nicht wahrscheinlich die Kapazität, es ist bestimmt die Kapazität, ganz gewöhnliches Übersprechen. Nimm einfach Vcc und SDA in ein Paar und GND und SCL in ein anderes Paar (oder auch umgekehrt) und schon gehts. 1 Meter und falsche Kabelbelegung geht nicht, gleiche Schaltung aber richtige Belegung geht auch mit 5 Meter. BTDT Und mit den mikrigen mA von I2C bekommst du irgendeine messbare Indukdion nicht gebacken. MfG Klaus
So, ich habe jetzt nochmal verschiedene Kombinationen ausprobiert und den Effekt gemessen. Am meisten hat es gebracht, nur eine Ader für die Daten zu nehmen. Ist mir jetzt auch klar, dass das Umladen von zwei Adern doppelt so lange braucht wie von nur einer Ader. Wegen der Abschirmung habe ich verschiedene Positionen durch, aber nur zwei gefunden, die sich signifikant unterscheiden. Variante 1: 1 DATA 2 5V 3 NC 4 NC 5 NC 6 NC 7 GND 8 CLOCK Das bricht mir den Vorteil, das die DATA nicht einbricht, wenn CLOCK auf Masse geht. Allerdings ist die Anstiegszeit beider Datenleitungen gestiegen. Das liegt dann wohl daran, das ich jetzt einen Kondensator gebaut habe ;) Variante 2: 1 DATA 2 NC 3 NC 4 5V 5 GND 6 NC 7 NC 8 CLOCK Hier habe ich zwar steile Flanken, aber dafür immernoch den Einbruch. Meine Erklärung ist, dass ich den Kondensator quasi "in sich isoliere" und er keine Ladungen abgeben kann. Eine Pinbelegung, wie ich gleichzeitig den Einbruch vermeide und dennoch starke Flanken habe, habe ich noch nicht gefunden. Ist damit das Potential der Pinbelegungen ausgereizt? Mehrere Adern auf GND oder 5V parallel zu beschalten zeigte keinen signifikanten Effekt.
Christian S. schrieb: > > Hier habe ich zwar steile Flanken, aber dafür immernoch den Einbruch. > Meine Erklärung ist, dass ich den Kondensator quasi "in sich isoliere" > und er keine Ladungen abgeben kann. > Versuchs mal mit Kabel das einzeln abgeschirmte Pärchen hat, eins nimmst du für den Takt, eins für Daten. Eine Ader eines Pärchens wird auf Masse gelegt, der Schirm kommt ebenfalls an Masse. Somit hast du kein Übersprechen zwischen den einzelnen Signalen mehr und zugleich einen sauberen Wellenwiderstand, heisst du bekommst eine hohe Datenrate hin (wenn der Abschluss am Kabelende (und Kabelanfang) passt). Für die 5V ist es egal was du nimmst. Kurt (sag und bitte mal was du unter "Pärchen" verstehst, was das bewirkt, da scheint noch eine Lücke zu sein) .
Die beiden Leitungen bilden einen Kondensator. Das Signal der einen Ader beeinflusst auch die andere. Abschirmung ist nur die halbe Lösung. Dann beeinflussen sie sich nicht mehr, aber die Signale sind immer noch verzerrt. Du musst die Leitungen an beiden Enden richtig abschließen, damit das Signal weitgehend unverändert hinten raus kommt. Außerdem musst du die Signal-Flanken abflachen. Denn Rechtecksignale haben unendlich viele Oberwellen. Normale Kabel können keine Rechteckigen Signale übertragen. Die Frequenz deiner Signale spielt dabei nur eine untergeordnete Rolle. Jedes Rechtecksignal hat unendlich viele Oberwellen, auch wenn es nur ein 1Hz Frequenz hat. Und sobald eine Leitung länger als 15cm ist, sollte man sich darüber gedanken machen. Bei niedrigen Frequenzen (unter 1Mhz) genügt es meistens, zwischen Sender und Kabel einen Tiefpass zu schalten (100 Ohm + 1nF), und dem Empfänger einen Schmitt-Trigger vorzusetzen, um die Signalflanken wieder steil zu machen. Siehe: http://www.elektronik-kompendium.de/sites/grd/0212261.htm http://www.vias.org/mikroelektronik/line_termination.html
Hmmm bei der AC-Terminierung braucht es ja auch einen Widerstand. Spielt es eine Rolle, ob erst der Kondensator und dann der Widerstand kommt, oder kann man auch die Sache umdrehen, also erst R und dann C? Ist eine Verständnisfrage. o-----------------------o | R | C | = o-----------------------o | C | R | =
:
Bearbeitet durch User
Christian S. schrieb: > Hmmm bei der AC-Terminierung braucht es ja auch einen Widerstand. Spielt > es eine Rolle, ob erst der Kondensator und dann der Widerstand kommt, > oder kann man auch die Sache umdrehen, also erst R und dann C? Ist eine > Verständnisfrage. > > o-----------------------o > | > R > | > C > | > = > > o-----------------------o > | > C > | > R > | > = Das spielt keine Rolle, es ist ja eine Reihenschaltung (der Strom der durch beide durchgeht ist in jedem Bauteil, egal welches es ist, gleich). Das Entscheidende ist dass die Leistung die ankommt komplett vernichtet wird, das macht der Widerstand, an ihm fällt die Spannung ab. Wird sie komplett vernichtet ist keine mehr da die zurücklaufen könnte. Kurt
Hallo Kurt, du wolltest ja noch wissen, was es mit den Pärchen auf sich hat. Ich habe darunter die einzeln verdrillten Aderpärchen verstanden und ich hoffe einfach mal, dass die Reihenfolge des RJ-45 Steckers auch intuitiv auf die Adern übertragen werden kann, also das jeweils Pin 1 und 2 ein Pärchen bilden und Pin 3 und 4 ein zweites Pärchen etc. Was damit bewirkt werden soll, ist mir in der Tat nicht klar, denn laut Wikipedia dient das zur Reduzierung der INDUZIERTEN Störspannung. Jedoch wurde mir ja gesagt, dass bei diesen kleinen Strömen eh keine Induktion statt findet. Ich habe mal den Spannungsverlauf von CLOCK an beiden Enden des Kabels gemessen, wenn der AVR die Spannung auf Masse zieht. Gelb=AVR Ausgang Blau=MCP Eingang nach knapp 3 Meter Kabel. Warum sinkt die Spannung da in den negativen Bereich? Ich hätte jetzt ja auf Selbstinduktion getippt, aber das kann es ja angeblich nicht sein....
:
Bearbeitet durch User
Christian S. schrieb: > ich hoffe einfach mal, dass die Reihenfolge des RJ-45 Steckers auch intuitiv > auf die Adern übertragen werden kann, also das jeweils Pin 1 und 2 ein > Pärchen bilden und Pin 3 und 4 ein zweites Pärchen etc. Ohne mir alles durchgelesen zu haben: Bei Belegung nach EIA/TIA-568 ("Netzwerkkabel") ist das zumindest NICHT der Fall. Für (Fast) Ethernet waren die Pärchen 1-2 und 3-6; ab Gigabit dann auch 4-5 und 7-8.
Kurt B. schrieb: > Das Entscheidende ist dass die Leistung die ankommt komplett vernichtet > wird, wirklich entscheidend wäre, dass der IIC-Bus funktioniert. Das wird er mit einer AC-Terminierung aus 100Ohm und 1nF sicher nicht bei 1MHz, weil die steigende Flanke damit mehrere µs lang sein wird - der Pullup braucht viel zu lange, um den Kondensator zu laden. Parallelterminierung hat bei IIC generell nichts zu suchen. Die einzige Möglichkeit für Parallelterminierung wäre, den Bus zu quälen und den Pullup entsprechend der Leitungsimpedanz zu wählen. Das macht niemand, der funktionierende I2C-Verbindungen bauen will. Selbst bei Ultrafast I2C arbeitet man nicht mit terminierten Bussen sondern nutzt Treiber, deren Flankenzeit nicht zu kurz ist. Wenn man keinen solchen Treiber zur Verfügung hat (weil man z.B. direkt aus einem schnelleren µC-Pin treibt), dann schaltet man dem einen Serienwiderstand nach (wie schon vorgeschlagen). Wenn man unbedingt Termnierung eingesetzt haben mag, kann man den als Serienterminierung betrachten. Christian S. schrieb: > Warum sinkt die Spannung da > in den negativen Bereich? das ist die Reflektion der negativen Flanke am offenen Ende. Nochmal 20ns später kommt die Reflektion wieder am Treiber an und die gelbe Kurve macht einen Sprung nach unten. Hänge einen 200 Ohm Serienwiderstand hinter den Treiber und die Reflexion ist weg. Christian S. schrieb: > also das jeweils Pin 1 und 2 ein > Pärchen bilden und Pin 3 und 4 ein zweites Pärchen etc. > > Was damit bewirkt werden soll, ist mir in der Tat nicht klar, Die Adernpärchen reduzieren Störungen bei differentieller Datenübertragung. Signale werden dort als Differenzsignale übertragen, Störungen machen sich als Gleichtaktstörungen bemerkbar, die fürs Differenzsignal keine Rolle spielen. Für deine nicht-differentielle Datenübertragung spielen die Pärchen fast keine Rolle und das UTP-Kabel (unshielded twisted pair) ist so ziemlich die ungünstigste Kabelvariante, um saubere Signale zu erreichen. Aber mit dem vorgeschlagenen Serienwiderstand hinter dem Treiber wird auch das funktionieren.
Christian S. schrieb: > Hallo Kurt, > > du wolltest ja noch wissen, was es mit den Pärchen auf sich hat. Ja, ich wollte wissen ob du Bescheid weisst warum in der Telephontechnik (und deren Nachfolgern) immer ein Adernpaar (hier Pärchen genannt) verwendet wird. > Ich > habe darunter die einzeln verdrillten Aderpärchen verstanden und ich > hoffe einfach mal, dass die Reihenfolge des RJ-45 Steckers auch intuitiv > auf die Adern übertragen werden kann, also das jeweils Pin 1 und 2 ein > Pärchen bilden und Pin 3 und 4 ein zweites Pärchen etc. > Gehen wir mal davon aus dass es so ist. > Was damit bewirkt werden soll, ist mir in der Tat nicht klar, Das ist ganz einfach, "jedem sein Pärchen, jedem seine Leitung, jedem seine Telephonverbindung", und zwar möglichst unabhängig. Es geht um das unabhängig, also darum dass der andere Teilnehmen nicht hört was er eine gerade über seine Schwiegermutter erzählt. > denn laut > Wikipedia dient das zur Reduzierung der INDUZIERTEN Störspannung. Jedoch > wurde mir ja gesagt, dass bei diesen kleinen Strömen eh keine Induktion > statt findet. > INDUZIERT heisst ja nicht dass es induktiv ist, es steht für jede Art der Beeinflussung/Übertragung (Hineinbringen/hineininduzieren)zum Nachbarpärchen. Es kann induktiv, es kann kapazitiv, es kann xy sein, hier ist mehreres möglich. Das was dir hier gesagt wurde bezieht sich einzig auf die kapazitive Kopplung zwischen den einzelnen Pins ala Kondensator. Induktive Kopplung bedarf des Trafos (dabei ist auch eine Kabel ev.! ein Trafo). > Ich habe mal den Spannungsverlauf von CLOCK an beiden Enden des Kabels > gemessen, wenn der AVR die Spannung auf Masse zieht. Gelb=AVR Ausgang > Blau=MCP Eingang nach knapp 3 Meter Kabel. Warum sinkt die Spannung da > in den negativen Bereich? Ich hätte jetzt ja auf Selbstinduktion > getippt, aber das kann es ja angeblich nicht sein.... Was nach dem Kabel sein kann ist eine ganz andere Baustelle als vor dem Kabel, vor dem Kabel hast du keine induktive Kopplung vorliegen, nach dem Kabel sehr wohl, denn das Kabel kann ja der Transformator sein. Einer der Sinne des Pärchens ist es die vom Stromfluss im Leiter a erzeugte "Magnetfeld" durch den Stromfluss im Leiter b zu kompensieren. (a und b sind die beiden Drähte des Pärchens) Sin beide "Felder" gleich gross, aber entgegengesetzt (ein "Strom" läuft hin, einer entgegen) kompensieren sie sich aus, es wird also nicht an die Umgebung, und damit ins Nachbarpärchen eingestreut. Hier gilt 1+ (-1) = 0 Wenn also aus irgendeinem Grund der hinfliessende Strom nicht dem zurückfliessendem entspricht dann bleibt ein Ungleichgewicht bestehen und es kommt zum sog. "Übersprechen", das ist die Beeinflussung der Nachbarleitungen. Am leichteten kann man das eben durch "Pärchen" erlangen. Kurt
Ich habe jetzt mal wie vorgeschlagen einen Serienwiderstand eingefügt. Anbei 3 Oszillogramme. Einmal ohne, einmal mit 67 Ohm und einmal mit 100 Ohm. Der 100 Ohm Widerstand scheint genau richtig zu sein. Um da den richtigen Widerstand zu nehmen, reicht es, den Wellenwiderstand zu verwenden, oder hängt es auch stark von der Frequenz, also der Flankensteilheit ab? Und auch vielen Dank für all die konstruktiven Antworten. Das hat mir alles sehr geholfen und hat mir eine ganze Menge an Wissen vermittelt. :)
Die Anschlüsse von I²C Chips sind nicht symmetrisch. Du hast nur drei wirksame Anschlüsse: GND, Clock und Data. Für eine Symmetrische Übertragung bräuchtest du (wie Ethernet und USB) Clock A, Clock B, Data A, Data B und optional GND. Solange du keine symmetrischen Bustreiber einsetzt, kannst Dir das mit den verdrillten Adern sparen. Und bei Ethernet Kabeln sind die Paare: 1+2, 3+6, 4+5, 7+8. Ich empfahl oben einen Tiefpass aus 100 Ohm und 100nF. Diese Bauteile hast du jedoch als Serienterminierung verwendet. Ich glaube ich muss mal erklären, wie man einen Tiefpass aufbaut:
1 | Clk o-----[===]---+------Kabel----+---[===]-----o CLK |
2 | | | |
3 | === === |
4 | | | |
5 | GND o-------------+------Kabel----+-------------o GND |
6 | | | |
7 | === === |
8 | | | |
9 | Clk o-----[===]---+------Kabel----+---[===]-----o CLK |
10 | |
11 | 4x 100 Ohm, 4x 1nF |
Diese Tiefpässe bewirken, dass die Signale nicht mehr Recheckige Form haben, ihre Flanken werden abgeflacht. Du brauchst vier Stück davon, weil beide Leitungen bidirektional sind. Aus diesem Signal:
1 | ________ ________ |
2 | | | | | |
3 | _____| |________| |_______ |
Wird ungefähr dieses:
1 | _______ _________ |
2 | / \ / \ |
3 | _____/ \_____/ \________ |
Nun ist noch die Frage, ob deine IC's solche abgeflachten Signale empfangen können. Normalerweise würde man ihnen Schmitt-Trigger vorschalten, aber das geht nicht bei bidirektionalen Leitungen. I²C ist einfach nicht für so lange Leitungen gedacht. Mit SPI oder UART wäre es wesentlich simpler, passende Leitungstreiber zu bauen. Die gibt's sogar für wenige Cent fertig als IC.
Christian S. schrieb: > Um da den > richtigen Widerstand zu nehmen, reicht es, den Wellenwiderstand zu > verwenden, oder hängt es auch stark von der Frequenz, also der > Flankensteilheit ab? Wenn man wirklich terminieren wollte, dann müsste der Widerstand zum Wellenwiderstand der Leitung passen. Aber I2C arbeitet nicht mit terminierten Leitungen sondern mit langsamen Flanken. Deshalb muss der Serienwiderstand nur groß genug sein, um ein zu schnelles Ansteigen des Signals zu verhindern. Ob 100 Ohm oder 200 Ohm ist da egal - für eine Terminierung wäre es nicht egal. Stefan U. schrieb: > Diese Bauteile > hast du jedoch als Serienterminierung verwendet. aus guten Grund: mit den 2x1nF (oder 2x100nF) am Kabel bekäme er nie die gewünschte Bitrate hin. Denn der Highside-Treiber bei I2C ist ein simpler Widerstand. 1,1kOhm*2nF ergibt 2,2µs - die steigende Flanke würde viel zu langsam.
> Um da den richtigen Widerstand zu nehmen, reicht es, den > Wellenwiderstand zu verwenden Ja. Typische Werte liegen im Bereich zwischen 50 und 200 Ohm. Aber deine Pull-Up Widerstände machen die Rechnung zunichte. Die Leitung muss über 100 Ohm nach Low und nach High gezogen werden. Und die Last am Ende muss auch für beide Richtungen 100 Ohm sein. Das ist bei I²C gar nicht korrekt realisierbar. Deswegen würde ich es mal mit Tiefpässen versuchen in kombination mit niedrigen Übertragungsraten (unter 1Mhz) versuchen. Denn wenn die Signalflanken flach genug sind, wirken sich Reflexionen und Kapazitives Übersprechen viel geringer aus, als bei Rechteckigen Signalen.
Und der MCP23S08 würde oberhalb der Bits das gleiche Protokoll verstehen. Aber wie war oben zu lesen "... Ich programmiere schon seit 20 Jahren ..." und ich ergänze: deshalb weiß der TO Bescheid. PS: als SPI-Variant kann der Baustein bis zu 10MBit.
> mit den 2x1nF (oder 2x100nF) am Kabel bekäme er nie die > gewünschte Bitrate hin Ganz richtig. I²C in Kombination mit langen Leitungen ist von Grundsatz her schon Käse. Der Zwang, mit Pull-ups arbeiten zu müssen steht allen vernünftigen Lösungen entgegen. Ich würd's ja aus der Not heruas gerne so empfehlen:
1 | VCC |
2 | o |
3 | | |
4 | |~| 100 Ohm |
5 | |_| |
6 | | 100 Ohm |
7 | IC o-----+------[====]--+----- Kabel |
8 | | | |
9 | +------|<|-----+ |
Aber das wird wohl an den nicht idealen Eigenschaften der Diode scheitern, sowie unzureichende Strom-Fähigkeit der IC's.
Stefan U. schrieb: > Ganz richtig. I²C in Kombination mit langen Leitungen ist von Grundsatz > her schon Käse. Der Zwang, mit Pull-ups arbeiten zu müssen steht allen > vernünftigen Lösungen entgegen. Wobei ein entsprechend betriebenes 1-Wire Netz auch mit 100m zurecht kommt. Elektrisch ist der Unterschied zu I2C nicht arg gross. Übersprechen freilich ist da weniger relevant.
Hallo Stefan, ich hab auch die Sache mit dem Tiefpass ausprobiert, aber der Kondensator entlädt sich ja erst schnell und dann langsam. Deshalb habe ich ja dennoch eine starken Absturz, der sich dann langsam abflacht. Gibt es keine Möglichkeit, einen perfekten "Halbkreis" zu erzeugen? Die Ladekurve ist ja kein Problem, die ist ja schon ein schneller Anstieg, der sich langsam abflacht. Nur die andere Seite, als die Entladeseite bekomme ich nicht hin.
Für ungewöhnliche IIC-Lösungen kann man die PullUps verbessern. Ich setze hierbei Stromspiegel mit BCV62 ein. Eingestellt auf 2 - 2.5 mA bügeln die einiges glatt, schnelleres Umladen der Leitungskapazitäten inklusive. Die Nachrichtentechniker wissen: Frequenz ist nichts, Flankensteilheit alles. Darum benutze, wenn es geht die TWI-Peripherie. Die starken Flanken des AVR werden so von <20ns auf 200ns ausgedehnt. Habe damit schon aus nichtfunktional funktional gemacht.
Tja Christian, da beschreibt du genau den Haken. Das ist ja gerade das Problem, dass man ohne komplexere Treiber nicht gelöst bekommt. Mit so einfachen passiven Bauteilen (Widerstände, Kondensatoren) kommst du da nicht weiter. Schau Dir mal die oben genannte Application Note von NXP an, da wird ein Chip vorgestellt, der zur Lösung deines Problems geschaffen wurde.
Ach das ist eine wichtige Information, dass es nicht EINFACH möglich ist. Es hätte ja sein können, dass ich einen Tiefpassfilter 2. Ordnung bauen hätte können. Da wäre halt noch eine Induktivität verbaut worden. Ich möchte nochmals betonen, das es nicht darum geht, I2C zum Laufen zu bekommen. Das tut es nämlich bereits mehr als genug. Das Problem war zuletzt, ob es möglich ist, es mit einfachen Bauteilen (also Diode, R, C, L, etc) zu verschönern. Schöner heisst ja auch, dass längere Kabel möglich sind. Andere Chips zu nehmen heisst das Problem zu umgehen. Ich will ja auch was lernen ;)
Christian S. schrieb: > Andere Chips zu nehmen heisst das Problem zu umgehen. Ich > will ja auch was lernen ;) Die Leute beim Hersteller NXP sind wahrscheinlich auf das gleiche Problem wie Du gestossen und haben daraufhin den o.g. Schaltkreis entwickelt. Damit wollten sie sicher das Problem nicht umgehen, sondern lösen. Manchmal ist es einfacher, einen fertigen Schaltkreis zu kaufen, als das ganze Wochende damit zu verbringen, LAN-Kabel auseinanderzudröseln und alle Kombinationen der Adern auszuprobieren. Mit der gewonnenen Zeit könnte man mit Kurt baden gehen und auf dem Teich Stehwellen erzeugen. ;-) MfG Paul
Euch ist aber schon allen klar dass I²C nicht dafür designed ist irgendwelche Entfernungen zu überbrücken (auf Übertragungsleitungen übertragen) zu werden? Sowohl im Protokoll als auch im Design der physikalischen Schicht wurde davon ausgegangen daß niemals jemand auf so eine Idee kommen würde. Und als man sich dann sicher war daß das auch garantiert nicht vorkommen wird konnte man es so entwerfen wie es nun ist. Was soll also der Unfug mit Kabeln und Terminierungen der hier diskutiert wird?
Bernd K. schrieb: > > Was soll also der Unfug mit Kabeln und Terminierungen der hier > diskutiert wird? Was soll denn das für eine Antwort sein? Ich bin echt dankbar für diesen Faden hier, er ist sehr lehrreich/hilfreich. Kurt
Bernd K. schrieb: > Euch ist aber schon allen klar dass I²C nicht dafür designed ist > irgendwelche Entfernungen zu überbrücken (auf Übertragungsleitungen > übertragen) zu werden? Es ist aber auch klar, daß in jedem DVI/HDMI Kabel ein I2C Bus werkelt, um den Typ des Monitors zu erkennen. Und das funktioniert auch millionenfach über 5m lange Kabel ohne irgendwelche Tricks. > Was soll also der Unfug mit Kabeln und Terminierungen der hier > diskutiert wird? Cross Talk in einem Kabel zu vermeiden gehört doch wohl zum kleinen 1 mal 1 der Elektronikentwicklung. MfG Klaus
> Und das funktioniert auch millionenfach über 5m lange Kabel ohne > irgendwelche Tricks. Ja, mit niedrigen Bitraten und Chips, deren Empfänger höher frequente Signale raus filtern. Das Problem in diesem Thread war, I²C mit hoher Bitrate über Kabel zu betrieben.
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.