Hallo zusammen, Habe nun schon einige Beiträge zu dem Thema gelesen und komme zum Schluß dass bei korrekter Terminierung (was wohl noch lustig wird...) bis zu 20m möglich sein sollten. Allerdings habe ich noch einige durch die Suchfunktion unbeantworteten Fragen. Oft wird auch davon geschrieben dass Flachbandkabel (GND/Clock/GND/Daten/GND..) das Mittel der Wahl sei. Derzeit habe ich Netzwerkkabel verlegt(TwistedPair aber nur gemeinsame Schirmung also die Paare sind nicht eigens geschirmt), könnte allerdings noch ein 10pol Flachbandkabel dazulegen falls das tatsächlich viel besser wäre. Was ist hier vorzuziehen? Falls Netzwerkkabel, wie sollen die verdrillten Adern dann genutzt werden? Pro Paar einmal GND und Daten und dann beim nächsten Paar GND und Clock? Zum Projekt: Angesteuert wird ein 18m digitaler RGB-Strip an der Wohnzimmerdecke und in der Wohnwand über die Hardware SPI des Atmega32. Es geht um die Verbindungsleitung von AVR zum Beginn des RGB-Strips die ca. 10m lang sein wird. ( Geht nicht anders :( ) Es ist ja im Prinzip mißbrauchtes SPI da ja nur die Daten für die LED`s rausgetaktet werden. Auch habe ich mehrere Teilstrecken die länger sind als für SPI gut ist (ohne Terminierung) AVR->2m->Strip in Vitrine->3m->Strip in zweiter Vitrine->10m->Strip der Decke entlang Wie ist das nun? Die LPD8806-Chips alle 2 LED's des RGB-Strips nehmen das Signal ja entgegen und senden es an den nächsten Chip weiter, funktionieren also quasi wie ein Repeater. Für die Terminierung an sich bräuchte ich dann also eigentlich 3 mal eine Terminierung für jeden längeren Leitungsabschnitt, oder? Würde ich theoretisch alle 30cm so einen Chip dazwischensetzen bräuchte ich dann gar keine Terminierung? (unschön aber Plan B ;) ) Echt ein Buch mit sieben Siegeln für mich... vielen Dank für hilfreiche Tips, vg, avlbger
Du kannst RS422/485-Treiber und -Empfänger verwenden. Die machen aus einem single-ended Signal (Signal,GND) ein differentielles (+Signal,-Signal), so dass Störungen von außen sich ausmitteln. Dafür ist Netzwerkkabel ideal, aber achte darauf, ein verdrilltes Adernpaar für ein differentielle Signal zu verwenden und nicht zwei Adern aus verschiedenen Paaren. Terminierung mit 100Ω am Ende. So sind auch 100m möglich. fchk PS: Beispiele RS-232 Sender: 26LS31 RS-232 Empfänger: 26LS32 Das sind uralte Bausteine, von verschiedenen Herstellern gefertigt und leicht zu bekommen. Es gibt natürlich auch moderneres.
Hallo fchk, Vielen Dank für deine Antwort. An die Umsetzung auf ein differentielles Signal habe ich auch schon gedacht bzw. darüber gelesen, aber ich scheue noch ein wenig den Aufwand da ich das im Prinzip ja dann für jede Teilstrecke machen müsste, also mindestens 3 mal von 5V/GND auf Differentiell von Differentiell wieder auf 5V/GND. Was ich gelesen habe sind ja nicht bzw. erstmal nicht die "Störungen" von außen das Problem sondern eher die schnell ansteigenden Taktflanken und die Reflexionen derselben im Kabel. Und von der Übertragungsgeschwindigkeit her haut eine Umsetzung (vorallem mehrfach) auf differentiell/singleended tadellos hin? Wenns klappt würde ich mit ca. 4 Mhz SPI-Takt ansteuern? Im Notfall halt weniger aber da ich ca. 600 LED`s einzeln anzusteuern habe wäre eine hohe Frequenz schon vorteilhaft vorallem wenn ich dann irgendwelche Lichtspielereien anstarte (die noch auszudenken sind ;) ) Und blöde Frage vermutlich.. aber Terminierung am Ende heißt praktisch am Eingang des RGB-Strips? Bzw. bei Umsetzung am Eingang des Umsetzers von differentiell auf singleended? Und dort dann zwischen die differentiellen Leitungen oder von jeder Leitung gegen GND? Viele Grüße, avlbger
Stefan L. schrieb: > Und blöde Frage vermutlich.. aber Terminierung am Ende heißt praktisch > am Eingang des RGB-Strips? Bzw. bei Umsetzung am Eingang des Umsetzers > von differentiell auf singleended? Und dort dann zwischen die > differentiellen Leitungen oder von jeder Leitung gegen GND? Bei Verwendung von RS-485 Transceivern am besten die Leitung an beiden Enden terminieren, zumindest am Eingang des Receivers. Und zwar differenziell mit dem Wellenwiderstand des Kabels. Bei verdrillter Zweidrahtleitung (wie auch TP-Netzwerkstrippe) ist das etwa 120Ohm. Also je ein 120Ohm Widerling an beiden Enden der Leitung zwischen beide Adern des Paares.
@ Stefan L. (avlbger) >Habe nun schon einige Beiträge zu dem Thema gelesen und komme zum Schluß >dass bei korrekter Terminierung (was wohl noch lustig wird...) bis zu >20m möglich sein sollten. Ja, wenn gleich SPI dafür nicht optimal ist. >Oft wird auch davon geschrieben dass Flachbandkabel >(GND/Clock/GND/Daten/GND..) das Mittel der Wahl sei. Ja, siehe Wellenwiderstand. >Derzeit habe ich Netzwerkkabel verlegt(TwistedPair aber nur gemeinsame >Schirmung also die Paare sind nicht eigens geschirmt), Das reicht. >könnte allerdings >noch ein 10pol Flachbandkabel dazulegen falls das tatsächlich viel >besser wäre. >Was ist hier vorzuziehen? Kommt auf die Anwendung an! Wenn unterwegs viel Abzweigungen sein sollen (LED-Matrix), ist Flchbandkabel besser, weil man einfach Stecker crimpen kann. >Falls Netzwerkkabel, wie sollen die verdrillten Adern dann genutzt >werden? Pro Paar einmal GND und Daten und dann beim nächsten Paar GND >und Clock? Ja. >Angesteuert wird ein 18m digitaler RGB-Strip an der Wohnzimmerdecke und >in der Wohnwand über die Hardware SPI des Atmega32. Es geht um die >Verbindungsleitung von AVR zum Beginn des RGB-Strips die ca. 10m lang >sein wird. ( Geht nicht anders :( ) Also nur ein Empfänger. Dann geht auch Netzwerkkabel. >Auch habe ich mehrere Teilstrecken die länger sind als für SPI gut ist >(ohne Terminierung) >AVR->2m->Strip in Vitrine->3m->Strip in zweiter Vitrine->10m->Strip der >Decke entlang Das sind aber mehrere Empfänger! Was denn nun? >Wie ist das nun? Die LPD8806-Chips alle 2 LED's des RGB-Strips nehmen >das Signal ja entgegen und senden es an den nächsten Chip weiter, >funktionieren also quasi wie ein Repeater. Mach mal eine Skizze, sonst reden wir aneinander vorbei. >Für die Terminierung an sich bräuchte ich dann also eigentlich 3 mal >eine Terminierung für jeden längeren Leitungsabschnitt, oder? Ja. >Würde ich theoretisch alle 30cm so einen Chip dazwischensetzen bräuchte >ich dann gar keine Terminierung? (unschön aber Plan B ;) ) Theoretisch ja, praktisch ist das Unsinn.
@ Thosch (Gast) >Bei Verwendung von RS-485 Transceivern am besten die Leitung an >beiden Enden terminieren, Nein, das ist nur bei bidirektionaler Übertragung nötig.
Stefan L. schrieb: > Hallo fchk, > > Vielen Dank für deine Antwort. > An die Umsetzung auf ein differentielles Signal habe ich auch schon > gedacht bzw. darüber gelesen, aber ich scheue noch ein wenig den Aufwand > da ich das im Prinzip ja dann für jede Teilstrecke machen müsste, also > mindestens 3 mal von 5V/GND auf Differentiell von Differentiell wieder > auf 5V/GND. Ja und? Das ist ein SO08-IC am Eingang (ein ua9637) und ein SO08-IC am Ausgang (ein ua9638). Dazu jeweils ein Abblockkondensator pro Chip und jeweils 120Ω am Empfängerchip jeweils zwischen +Signal und -Signal. > Und von der Übertragungsgeschwindigkeit her haut eine Umsetzung > (vorallem mehrfach) auf differentiell/singleended tadellos hin? Wenns > klappt würde ich mit ca. 4 Mhz SPI-Takt ansteuern? Die ua9637/ua9638 können bis 15 MHz laut Datenblatt, das soll nicht das Problem sein. Und die mehrfache Umsetzung auch nicht - zwei Gatterlaufzeiten mehr oder weniger zwischen den Strips stören nicht, zumal sie ja Clock und Daten gleichermaßen betreffen. > Und blöde Frage vermutlich.. aber Terminierung am Ende heißt praktisch > am Eingang des RGB-Strips? Bzw. bei Umsetzung am Eingang des Umsetzers > von differentiell auf singleended? Und dort dann zwischen die > differentiellen Leitungen oder von jeder Leitung gegen GND? wie oben gesagt immer am Empfänger, und dort zwischen den Signalpaaren. ps: bei TI heißen die Teile ua...., bei National DS..... Werden seit mindestens 20 Jahren produziert. fchk
Habe jetzt mal eine Skizze beigefügt wie das in etwa vom Aufbau her ausschaut :) Blau der Raum und die Wohnwandmöbel, Rot die Position der digitalen RGB-Strips (etwa 18m durchgehend an der Decke und kleinere Abschnitte in den Vitrinen) Schwarz die "Verbindung" zwischen den Strips bzw. dem Atmega32. Die Verbindungsleitungen sind eben ca. 2m Flachbandkabel, dann zum nächsten Teil des RGB-Strips ca. 3m Flachbandkabel und von dort dann (als (1) bezeichnet) eine ca. 10m Strecke mit Netzwerkkabel. Dass SPI für solche Entfernungen nicht das Mittel der Wahl ist ist klar, die RGB-Strips lassen sich aber leider eben nur so ansteuern. Im Grunde ist es ja Ich denke ich werde heute mal mit "freifliegendem" 10m Netzwerk und Flachbandkabel und Serienterminierung experimentieren und sehen was dabei rauskommt. (Die Strips sind ja noch nicht eingebaut) Bauteile für eine differentielle Übertragung habe ich nicht, werde ich dann aber wohl bestellen wenn ich damit heute nicht weiterkomme. Ist vermutlich sicherlich die zuverlässigste Lösung und ich will ja keine wilde gestörte flackernde Weihnachtsbeleuchtung sondern es sollte schon schlussendlich das machen was ich will ;) Vielen Dank für eure Tips
Ich würde jedem Stripe einen kleinen MC vorsetzen. Dann kann man darauf Protokoll und Fehlerkorrektur laufen lassen. So ein ATmega48-MU kostet nur 4*4mm² Platz. Dumme Slaves an langem SPI machen nur Probleme. Die Frau quasselt am Handy oder saugt Staub und alle LEDs flackern wild.
Ja wäre natürlich auch eine Möglichkeit, allerdings muss ich mich auf Hobby-Lötbare Teile beschränken :) Falls das alles gar nicht hinhaut besteht noch die Überlegung die Strips in der Mitte zu teilen also über der Wohnwand quasi und dort dann die linke und rechte Seite jeweils mit einem MC anzusteuern. Würde zumindest die lange 10m Zuleitung einsparen aber halt die Ansteuerung aufwendiger machen. Vor allem wenn man einen Lichtpunkt laufen lassen möchte etc.. Werd da heute nochmal nachgrübeln :)
Stefan L. schrieb: > Wenns > klappt würde ich mit ca. 4 Mhz SPI-Takt ansteuern? 20 m sind mehr als 100 ns Laufzeit Clk/Daten bis zum Kabelende (unkritisch weil für beides gleich), und dann nochmal für Miso zurück zum Master, das wird bei einer Clockperiode von 250 ns nicht klappen. Die Verzögerungen der ICs sind da noch garnicht dabei. Gruss Reinhard
Hmm, gilt das nicht nur für eine zeitgleiche bidirektionale Kommunikation? Ich verwende ja nur die Hardware-SPI um die Daten schnell rauszusenden, es gibt auf der anderen Seite ja kein SPI-Gerät welches darauf antwortet oder gleichzeitig Daten zurücksendet. Die andere Seite besteht ja aus dem Eingang des ersten LPD8806-Chips für die LED`s welches im Prinzip als riesiges Schieberegister gesehen werden kann. Von dem her sollte die Laufzeit eigentlich nicht viel Rolle spielen, da ja wie erwähnt für Clock und Daten gleichermaßen gültig oder unterliege ich da schon wieder einem groben Denkfehler? :) vg, avlbger
@ Stefan L. (avlbger) >Hmm, gilt das nicht nur für eine zeitgleiche bidirektionale >Kommunikation? Ja. >Von dem her sollte die Laufzeit eigentlich nicht viel Rolle spielen, Richtig.
Hmm habe übers WE jetzt ein wenig experimentiert und festgestellt dass meine "Störungen" wohl überhaupt nicht von Reflexionen im Kabel oder Einstrahlungen der Umgebung kommen sondern durch einen Wackelkontakt bei einem der LPD8806-Chips ausgelöst wurden. Nachdem mir auffiel dass erst ab einer bestimmten Stelle im RGB-Strip die Sache aus dem Ruder läuft konnte ich die Stelle lokalisieren und ausmerzen. Somit habe ich jetzt einen funktionierenden Strip der mit 4Mhz SPI angesprochen wird Direkt (Test-Atmega8-MCU)-Ausgang->ca. 13m Netzwerkkabel->erster LPD8806-Chip Scheint recht zuverlässig zu funktionieren, allerdings sollte es das eigentlich nicht, oder? Immerhin schreiben manche in Beiträgen dass SPI bis zu 37cm Kabel problemlos verträgt aber alles über 2m praktisch nicht funktioniert. Tut es eben doch, aber ich vermute mal dass es einfach daran liegt dass ich ja nur eine unidirektionale Kommunikation habe und der Atmega8 vielleicht keine soo schnellen Signalanstiegszeiten hat. Meine bescheidenen Erklärungsversuche dazu.. naja da es erstmal funktioniert belasse ich es nun mal dabei und sehe was passiert wenn ich die LED`s in den Vitrinen noch dazuhänge.. Vielen Dank für eure Hilfe, mit den Infos in diesem Thread kann ich dann losstarten falls sich doch noch Probleme zeigen und ich mich doch noch der Terminierungsaufgabe stellen muss. (Bisherige Versuche haben nur eine verschlechterung bewirkt, lag vielleicht eben aber auch an dem "Wackelkontakt bei einem der RGB-Chips") vg, avlbger
Stefan L. schrieb: > aber ich vermute mal dass es einfach > daran liegt dass ich ja nur eine unidirektionale Kommunikation habe Ja, so könntest du deine LEDs noch auf dem Mars steuern - da kommen deine Signale zwar erst nach 20 min an, aber solange CLK und Daten zugleich eintreffen, gibt es kein Problem. Gruss Reinhard
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.