Ich möchte eine Schaltkarte an einen AVR anschliessen. Da diese Schaltkarte etwa 2 Meter entfernt vom AVR angebracht werden muss, suche ich eine einfache Art der Anbindung... also ein serielles Interface, um nicht dutzende Leitungen zwischen beiden Verlegen zu müssen. Der AVR ist ein Mega8. Gibt es da bei SPI, TWI oder uart irgendwelche Probleme? Welches wäre das zu bevorzugende? SPI hätte den Vorteil das ich dort einfach seriell ladende Schieberegister einsetzen könnte. Danke für eure Hilfen, frohe Weihnachten schonmal Grüsse Thomas
Was soll denn an Daten über die Verbindung gehen? Ist mit Potentialdifferenzen zu rechnen? MfG Falk
Normalerweise hätte ich I2C vorgeschlagen, da es dort ohne großen Aufwand schon IO-expander gibt über die man Ports setzen und lesen kann. Nur 2 Meter ist natürlich schon recht viel, man müsste mal in die Spezifikationen schauen, mit welchen Taktraten man I2C bei solchen Kabellängen betreiben darf. Sonst ist villeicht CAN auch eine Alternative. Marc
RS232 (UART) wäre m.E. die einfachste Lösung: transparent und kompatibel zu anderen Geräten.
Datenrate ist schwer zu sagen...ich schätze so etwa auf 1-10kBit/s. Tendenziell eher weniger als mehr. Zu den Potentialdifferenzen: naja es werden beide Karten seperat versorgt. Beide werden jedoch mit 5V agieren, also sollten diese Differenzen vernachlässigbar sein. Beide 5V Spannungen werden über Konstant-Spannungsregler aus 230V generiert. Ich schwanke derzeit zwischen SPI und TWI. Die UART wäre eher zweite Wahl, da zusätzliche Komponenten benötigt würden und auf die Baudrate wieder stimmen muss.
Was spricht denn gegen eine "langsame" SPI? Ob nun asynchrone Schnittstelle oder synchron. Das sollte ziemlich egal sein. Wenn mit EMV-Schnutz zu rechnen ist, symmetriert man das Signal einfach. Man kann dem Ding dann auch noch eine Rückleitung verpassen, auf der die gesendeten Signale zurückkommen. Oder gibt es da ein Problem, das ich nicht sehe? Das Schieberegister wurde vom Threadstarter ja selber schon vorgeschlagen.
> Die UART wäre eher zweite Wahl, da zusätzliche Komponenten benötigt würden Wenn ich zwischen den Zeilen richtig gelesen habe, stammt die Schaltkarte ebenfalls von Dir (zu der hast Du wenig geschrieben) - das folgere ich mal aus der Tatsache, daß Du zwischen verschiedenen Schnittstellen wählen kannst... Wenn dem so ist, kannst Du die UART ohne weitere Bauteile benutzen. Die MAX232-Konverter werden meist nur benutzt, damit die UART zu den PC-RS232-Spannungswerten kompatibel ist (höhere Spannung, auch negativ). Tatsächlich kannst Du aber bei zwei Mikrocontrollern die UART direkt verbinden. ...my 2cent: Natürlich hast Du bei der UART und der SPI den Vorteil des unidirektionalen Betriebs - kannst also die jeweiligen Leitungen z.B. niederohmig auslegen und so mit wenigen (Treiber-)Transistoren die Reichweite einfach erhöhen. Bei der TWI/I2C ginge das nicht so einfach.
@fieser Rahul (auch Oskar genannt) (Gast) > Was spricht denn gegen eine "langsame" SPI? Du8 kannst zwar die TaktFREQUENZ runtersetzten, nciht aber die ANSTIEGSZEIT der IO Pins. Und das ist es, was EMV und andere Problem macht. > Oder gibt es da ein Problem, das ich nicht sehe? Ja, siehe oben. > Das Schieberegister wurde vom Threadstarter ja selber schon > vorgeschlagen.Antwort Das geht schon, wenn man ein paar Kleinigkeiten beachtet. Beitrag "8 MHz SPI über 75cm Flachbandkabel?" @antworter > Wenn dem so ist, kannst Du die UART ohne weitere Bauteile benutzen. Die > MAX232-Konverter werden meist nur benutzt, damit die UART zu den > PC-RS232-Spannungswerten kompatibel ist (höhere Spannung, auch negativ). Dann isses aber elektrisch gesehen das gleiche wie SPI, nit nahezu den gleichen Problemen. > Tatsächlich kannst Du aber bei zwei Mikrocontrollern die UART direkt > verbinden. Yep. > unidirektionalen Betriebs - kannst also die jeweiligen Leitungen z.B. > niederohmig auslegen und so mit wenigen (Treiber-)Transistoren die > Reichweite einfach erhöhen. AHHH!!!! STOP. Die normalen IO Pins haben mehr als genug Power, um locker 10m Kabel zu überbrücken. Eigentlich haben sie für sowas viel zu viel Anstiegsgeschwindigkeit, das macht eher Probleme als dass es sie verhindert. MfG Falk
@falk 10m kabel direkt an einen uC-Pin hängen ? würde ich nicht machen (stattliche antenne, beträchtliche kapazität...)
@antworter Kleines Mädchen? ;-) Bis du EMV-Fachnman? Reden wir hier über ein professionelles Massenprodukt, das härteste EMV-Normen erfüllen muss? Die Kapazität bring den uC nicht um. Serienterminierung dran und gut. Dan sinds fast astreine Signale. Wers nicht glaubt solls ausprobieren. Aber bitte entweder mit Flachbandkabel mit Masseader oder Twisted Pair mit halbwegs 100 Ohm. Das passt schon. MfG Falk
@falk: Keulenschwingender Höhlenbewohner ? ;-) >...solls ausprobieren. Aber bitte entweder > Flachbandkabel mit Masseader oder > Twisted Pair mit halbwegs 100 Ohm... Erst allgemein zu sagen, daß es geht, um dann die Anwendung/Realisierung drastisch einzuschränken hilft Thomas Winkelmann sicher nicht weiter. Meine Lösung kommt auch mit Klingeldraht klar, kostet ca 30cent mehr und sorgt für eine entspanntere Anwendung. ....man muß kein EMV-Profi sein (was ich nicht bin), um den Sinn eines kleinen Leitungstreibers bei 10m Kabellänge einzusehen
> Zu den Potentialdifferenzen: naja es > werden beide Karten seperat versorgt. Beide werden jedoch mit 5V > agieren, also sollten diese Differenzen vernachlässigbar sein. Beide 5V > Spannungen werden über Konstant-Spannungsregler aus 230V generiert. In dem Falle hast du gute Chancen das du Potentialdifferenzen hast. Je nach Qualtaet deines Trafos oder Schaltnetzteil. Wenn du eine Steckverbindung zwischen beiden Geraeten hast waere es von Vorteil wenn Masse sich zuerst verbindet. Vielleicht kannst du ja ein USB oder SATA Kabel nehmen. > Ich > schwanke derzeit zwischen SPI und TWI. Die UART wäre eher zweite Wahl, > da zusätzliche Komponenten benötigt würden und auf die Baudrate wieder > stimmen muss. Die Wahl des Busprotokolls ist nicht so entscheidend. Wichtig sind die Bustreiber. Ich wuerde dir mindestens einen MAX232 empfehlen. Den kannst du aber natuerlich auch fuer SPI verwenden wenn du den Takt niedrig genug haelst. Lediglich I2C/TWI ist schlecht weil das Protokoll bidirectional ist. Da du aber auf beiden Seiten sowieso eine eigene Stromversorgung hast ist es vermutlich einfacher und billiger eine Stromschleife mit Optokoppler zu trennen. Alles andere kann lange funktionieren, muss es aber nicht. Olaf
Also bevor ich den Überblick verliere: Falk was wäre dein Vorschlag? Sorry wenn ich das so sage, aber du hast jetzt irgendwie sowohl SPI als auch UART kritisiert...demnach würdest du TWI nehmen? Oder wie darf ich das verstehen? Soweit mir bekannt ist sendet TWI mit 100,400 kBit/s oder noch irgendwie nem höheren Wert, was viel zu hoch wäre auch wenn ich für Adressierung und Ack dort etwas mehr veranschlagen müsste. Sind die Anstiegszeiten bei einem SPI im kHz Bereich wirklich so gravierend? rein Theoretisch könnte ich diese in einem uC auf der Slaveplatine doch auch x-fach überabtasten. Das Kabel sollte übrigens kein Flachbandkabel sein...irgendwas rundes 2,4 oder x adriges halt, je nach Bus. Ich habe nur keine Vorstellung was man sich mit soeiner "2m-Antenne" einfängt.
@ antworter > Keulenschwingender Höhlenbewohner ? ;-) Manchmal. ;-) > Erst allgemein zu sagen, daß es geht, um dann die Anwendung/Realisierung > drastisch einzuschränken hilft Thomas Winkelmann sicher nicht weiter. Was heiss denn hier drastisch? Nur weils nicht mit ner rostigen Kette funktioniert? > Meine Lösung kommt auch mit Klingeldraht klar, kostet ca 30cent mehr und > sorgt für eine entspanntere Anwendung. Warum wenns auch ohne geht? > ....man muß kein EMV-Profi sein (was ich nicht bin), um den Sinn eines > kleinen Leitungstreibers bei 10m Kabellänge einzusehen Was willst du denn mit nochmehr Leistung? MFG Falk
@ Thomas Winkelmann > Also bevor ich den Überblick verliere: Falk was wäre dein Vorschlag? > Sorry wenn ich das so sage, aber du hast jetzt irgendwie sowohl SPI als > auch UART kritisiert...demnach würdest du TWI nehmen? Oder wie darf ich Nein, ich habe mich zu UART (also RS232 mit MAX232) gar nicht geäussert. ;-) Nun, diese Variante geht auf jeden Fall. SPI kann auch gehen, wenn man ein paar kleine Randbedingungen beachtet. > das verstehen? Soweit mir bekannt ist sendet TWI mit 100,400 kBit/s oder > noch irgendwie nem höheren Wert, was viel zu hoch wäre auch wenn ich für > Adressierung und Ack dort etwas mehr veranschlagen müsste. Sind die > Anstiegszeiten bei einem SPI im kHz Bereich wirklich so gravierend? rein Sie sind genausoschnell wie bei 1 MHz, die IOs werden deshalb nicht langsamer. Und wie bereits in anderen Threads vorgerechnet habe, gibt es bei ca. 10ns Anstiegszeit (und das machen die IOs) bei ab. ca. 30cm Probleme mit Reflexionen. Also braucht man ne Serienterminierung. > Theoretisch könnte ich diese in einem uC auf der Slaveplatine doch auch > x-fach überabtasten. Das Kabel sollte übrigens kein Flachbandkabel Du brauchst das Fahrrad nicht neu zu erfinden. Das Überabtasten macht bereits der UART. Nimm MAX232 und alles ist in Butter. MFG Falk P.S. I2C/TWI geht auch, ist aber vom Protokoll aufwendiger.
okey...dann werd ich die uart wohl mal nehmen :) i2c hätte dann doch ab 30cm die gleichen reflektionen oder nicht?
> i2c hätte dann doch ab 30cm die gleichen reflektionen oder nicht?
Jain. Die LOW-HIGH Flanke wird ja durch den Pull-up Widerstand
vollzogen, das ist recht langsam. Die HIGH-LOW Flanke machen die Open
Drain/Collecor Ausgänge der Teilnehmer. Idealerweise sind die auch nicht
superschnell. Allerdings ist I2C (wenn es spezifikationsgemäss aufgebaut
ist) relativ tolerant gegenüber kurzen Pulsen (50ns), die sollte der
Eingangsfilter schlucken.
MFG
Falk
Nimm doch das UART, dessen TXD-Signal Du über eine pnp-npn Transistorserie pufferst und auf der Karte baust Du einen PullUp-Widerstand nach 5V, sagen wir 270 Ohm. Somit hast Du kaum Bauelementeaufwand, Deine Leitung drückt entsprechend Strom, ist niederohmig und schnell. Du hast 1 Leitung + Masse, kann Klingeldraht sein. An den PullUp hängst Du noch einen Serienwiderstand von 2-4 kOhm Richtung RXD des empfangenden UARTs, um vor Spannungsspitzen geschützt zu sein, die eventuell in das Kabel induziert werden. Auf die Weise überbrücken wir hier 30 Meter fehlerfrei mit 19200 Baud. Mit 56 kBaud haben wir das Ganze getestet, ebenfalls keine Probleme.
Laßt Thomas doch ganz stinknormale RS232-Treiber nehmen, vielleicht noch mit ESD-festem Aufpreis, aber ohne 10ns hier, 2k-Pullup dort, Klingeldraht und Fahrradkette. Wozu das ganze Gemurkse ? Und wenn dann bei 2m Übertragungsstrecke all die Fehlerquellen auftauchen, die hier an die Wand gemalt wurden, kann er immer noch auf WLAN, Glasfiber oder Richtfunk ausweichen: für 2m wohlgemerkt !
Gemurkse? Hängt wohl vom Aufbau ab. Aber Glasfiber ist gar nicht soo dumm, TOSLINK wäre noch ´ne Möglichkeit: TOTX173 -> LWL -> TORX173.
> , TOSLINK wäre noch ´ne Möglichkeit: TOTX173 -> LWL -> TORX173.
Obwohl damit ja noch nicht da gravierende Problem des Netzanschlusses
gelöst wäre. Da empfehle ich dreifach geschirmte Netzleitung, wobei der
mittlere Schirm an die Fundamenterde angeschlossen wird :-)
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.