Hallo!
Ich benötige Informationen zu den maximalen Leitungslängen (Leiterbahnen
auf Platinen und Leitungen (Geschirmt, ungeschirmt, Verdrillt, nicht
verdrillt)) von den Standard Mikrocontroller-Schnittstellen UART, SPI
und I²C.
Ich hoffe einer von euch kann mir hier weiterhelfen!
Vielen Dank schon mal im Voraus.
Viele Grüße
Jochen
Karl Kuhl schrieb:> Wie verdrillst Du Leiterbahnen auf Platinen?
Ja klar! - Ich wechsle alle paar Millimeter über Vias die Laysers und
kreuze die Leiterbahnen...
Was ist das für eine doofe Gegenfrage?
Ich schrieb
Jochen schrieb:> Leiterbahnen auf Platinen> und Leitungen (Geschirmt, ungeschirmt, Verdrillt, nicht verdrillt)
Ich denke mal, das man mit verdrillten Leitungen, die ich im übrigen
nicht auf der Platine verlege, sondern über Anschlussklemmen auf der
Platine mit dieser verbinde, ein besser Störunempfindlichkeit erzielt
und so evtl. ein paar (Zenti-)Meter rausholt.
Magnus Müller schrieb:> Karl Kuhl schrieb:>> Wie verdrillst Du Leiterbahnen auf Platinen?>> Jochen schrieb:>> und Leitungen (Geschirmt, ungeschirmt, Verdrillt, nicht verdrillt)
Ah gut, dann habe ich doch nicht so unverständlich geschrieben... ;)
Jochen schrieb:> Ah gut, dann habe ich doch nicht so unverständlich geschrieben... ;)
Die Antwort lautet: 3,47m. Leitungsführung und Übertragungsrate ist
entsprechend anzupassen :-)
Okay. Den Wink mit dem Zaunpfahl habe ich verstanden.
Dann suche ich eben Graphen, die die Datenrate über die Leitungslänge
und Leitungstyp aufzeigen und/oder die maximale Leitungslänge einer
bestimmten Leitung über die Datenrate....
Bei RS232 wird man die Leitungslänge noch gut abschätzen können, bei I²C
und SPI wird es schon schwieriger da hier die Randbedingungen einen
großen Einfluss haben.
@ Jochen (Gast)
>Ich benötige Informationen zu den maximalen Leitungslängen (Leiterbahnen>auf Platinen und Leitungen (Geschirmt, ungeschirmt, Verdrillt, nicht>verdrillt)) von den Standard Mikrocontroller-Schnittstellen UART, SPI>und I²C.
Wozu?
Wie bereits geschrieben kann man das so allgemein nicht sagen. Pi mal
Daumen gilt.
Platine Leitung
UART 1m 10-1000m
SPI 1m 1-10m
I2C 1m 1-100m
natürlich kann jetzt ein Oberschlauber kommen und sagen, dass er I2C
auch schon über 200m gemacht hat, siehe die Hausbus-Fraktion. Ist aber
nicht wirklich im Sinne des Erfinders. SPI und I2C sind normalerweise
nur auf einer Platine, über Kabel geht man da nicht wirklich weiter als
1m, eher deutlich drunter. UART ist für längere Kabel gedacht, wenn
gleich es da auch viele Unterschiede gibt, welchen physikalischen Träger
man nutzt (RS232, RS485, etc.).
verdrillt oder unverdrillt ist bei den genannten Verbindungen kack egal,
da es sich nicht um differenzielle Signale handelt, somit ist auch egal
ob die Störungen gleichmäßig verteilt werden auf 2 Leitungen.
Bei den meisten Bussystemen ergeben sich die maximalen Leitungslängen
durch eine maximal erlaubte Laufzeit, im Frame oft Guardtime genannt.
Dies ist bei den genannten System nicht der Fall. Bei Uart interessiert
nur ob das Signal noch halbwegs brauchbar am Empfänger ankommt. Somit
interessieren hier nur die Last bezogen auf das was der Sender an
Leistung liefern kann und die Störstrahlung. Natürlich unter
Berücksichtigung der Baudrate.
Bei SPI kommt dazu dass es eine Clock-Leitung gibt, deren Pegelwechel in
der mitte des Signal sein muss. Hier kannst du die maximale
Leitungslänge in abhängigkeit der Übertragungsrate berechnen aufgrund
des Laufzeitunterschiedes, zwischen Clock und Datenleitungen. Musst nur
schaun welche Phasenverschiebung zwischen Clock und Daten noch erlaubt
ist.
Immer schön solche Anfragen.
Ich will alles wissen. Was ich wirklich brauch sag ich nicht. Was ich
brauch such ich mir dann aus den Antworten zusammen.
Schau doch mal in die Datenblätter der verschieden Bausteine.
UART ist keine physikalische Schnittstelle, sondern die Bezeichnung
eines Bausteins oder eines Teils eines Bausteins.
Nur physikalische Schnittstellen haben Pegel, Leitungslängen,
Störabstand , und und und ..
Es geht einfach darum herauszufinden, welche Standardschnittstelle
(explizit: UART, SPI, I²C) eines MCUs ohne(!) zusätzliche
Treiberbausteine, oder Umsetzer auf eine andere Physik wie RS232,RS485,
o.ä., über eine elektrische Leitung von einer zu einer anderen Platine
über eine möglichst weite Distanz übertragen lässt.
Mehr Infos hab' ich nicht und diese habe ich auch genannt.
und warum soll UART, SPI und I²C keine physikalischen Schnittstellen
sein!?
Auch diese haben einen Pegel (in der Regel die Prozessorspannung; bei
uns 3,3V). Eine physikalische Schnittstelle hat keine Leitungslängen.
Sie funktioniert nur bis zu einer gewissen Leitungslänge.
> und warum soll UART, SPI und I²C keine physikalischen Schnittstellen> sein!?
Im Schichtenmodell unterscheidet man zwischen der physikalischen
Umsetzung und der logischen Funktionsweise. Wie weit die physikalischen
Signale kommen, hängt von der Datenrate, der Leitungsimpedanzanpassung,
vom Kapazitätsbelag und anderen Parametern ab. Diese Parameter sind aber
nicht durch die Begriffe UART, SPI usw definiert.
Jochen schrieb:> über eine möglichst weite Distanz übertragen lässt.
"Möglichst weit" ist ein sehr dehnbarer Begriff. Manche verstehen
darunter einige zig Meter, manche einige Kilometer, manche meinen damit
Voyager 1.
A. K. schrieb:> manche meinen damit> Voyager 1.
Warum nicht. Wollte schon immer mal mit den Lebewesen auf dem Pluto
telefonieren ...
Scherz beiseite: 20m sollten reichen.
Maximale Leitungslänge bei I²C wird unter anderen durch eine maximale
Kabelkapazität limitiert, da es sich bei I²C um einen
Opendrain/Opencollektor mit Slewrate begrenzten Treibern (Spannungs als
auch Strom) handelt.
Wird deine Leitung zu lang, sehen die Treiber eine zu große Kapazität
und deine Signale werden mit einer Phasenverschiebung versehen, welche
bei steigender Datenrate irgendwann so groß wird das entsprechende
Zeitinervalle laut I²C Spezifikation nicht mehr eingehalten werden
können. - Dies könnte man mit einer verringerten Datenrate wieder
kompensieren... .
Man kann deine Frage nicht so einfach und pauschal beantworten. Die
maximale Leitungslänge ist z.B ein Kompromiss aus Datenrate und externen
Störgrößen abhängig. Störgrößen sind z.B wieder von den mechanischen
Aufbau und der Einsatzumgebung abhängig.
@ Jochen (Gast)
>Es geht einfach darum herauszufinden, welche Standardschnittstelle>(explizit: UART, SPI, I²C) eines MCUs ohne(!) zusätzliche>Treiberbausteine, oder Umsetzer auf eine andere Physik wie RS232,RS485,>o.ä., über eine elektrische Leitung von einer zu einer anderen Platine>über eine möglichst weite Distanz übertragen lässt.>Scherz beiseite: 20m sollten reichen.
Da sind UART und I2C in etwa gleich gut bzw. schlecht. SPI macht da
schon orgendlich Probleme mit Reflektionen, siehe Wellenwiderstand.
>und warum soll UART, SPI und I²C keine physikalischen Schnittstellen>sein!?
Weil UART nur das logische Datenformat beschreibt, keine Physik
(Spannung, Strom, whatever). SPI ist ein mittelding, aber streng auch
nur Logik. Einzig I2C beschreib Logik und Physik vollständig.
>Auch diese haben einen Pegel (in der Regel die Prozessorspannung; bei>uns 3,3V).
Das ist ein Sonderfall, der in UART und SPI nirgendwo definiert ist.
> Eine physikalische Schnittstelle hat keine Leitungslängen.
Aber sicher.
>Sie funktioniert nur bis zu einer gewissen Leitungslänge.
Apfelmus ist Mus aus Äpfeln.
MFG
Falk
>Es geht einfach darum herauszufinden, welche Standardschnittstelle>(explizit: UART, SPI, I²C) eines MCUs ohne(!) zusätzliche>Treiberbausteine, oder Umsetzer auf eine andere Physik wie RS232,RS485,>o.ä., über eine elektrische Leitung von einer zu einer anderen Platine>über eine möglichst weite Distanz übertragen lässt.
Der Sinn dieser zusätzlichen Treiberbausteine ist ja unter anderem die
Erhöhung der Störfestigkeit bzw. die Erhöhung der maximalen Baudrate.
D.h. Du wirst in Deinem abgeschirmten Atomschutzkeller eine weitere
Distanz erreichen als neben einem AppleII-Computer.
Insofern ist "weite Distanz" eine Funkte von von Parametern wie
angestrebter Baudrate, EMV, Verfügbarkeitsanforderung usw.
Ich neme mal an, daß Du mindestens 10kbit/sec über eine Strecke von 20
Meter seriell übertragen möchtest.
Dann rate ich zu UART Protokoll mit RS485 Treibern. Wahlweise half- oder
voll-duplex, je nach Anwendungsfall.
SPI und I2C nicht nicht für Kabel gedacht, die das Gehäuse eines Gerätes
verlassen. Ich schätze, daß Leitungslängen über 1 Meter ohne aufwändige
Entstörung gar nicht funktionieren, egal bei welcher Bitrate.
Stefan schrieb:> Ich schätze, daß Leitungslängen über 1 Meter ohne aufwändige> Entstörung gar nicht funktionieren, egal bei welcher Bitrate.
Da verlierst du aber haushoch. In jedem HDMI/DVI/VGA Kabel ist I²C drin
:)
Falk Brunner schrieb:> UART 1m 10-1000m
Zu den Hochzeiten des Fernschreibers ging es mit UART durch die ganz
Republik, also kann man da vor der Einheit fast noch ein ganzes "k"
setzen.
Mit UART kannst du einmal rund um dem Globus oder schon nach 10m
scheitern. Das ist ein Baustein, keine Leitungsdefinition. Das wäre
beispielsweise V.24 aka RS232 - aber damit kamen die Fernschreiber über
keinen km, sondern nur die paar Meter bis zum Modem.
um mal ein Beispiel zu I²C zu nennen:
Ein Temperaturfühler DS18B20 läuft bei mir an einer 10m langen Leitung
ohne erkennbare Fehler. (größere Leitungslängen nicht getestet -->
könnte evtl auch mit längerer Leitung funktionieren)
MfG
da hast du recht und ich korrigiere meine Falschmeldung
tatsächlich verwende ich den Brückenschaltkreis DS2482, welcher I²C auf
1-Wire-Bus wandelt,
die 10m beziehen sich dann auf den 1-Wire-Bus
MfG
Jochen schrieb:> Es geht einfach darum herauszufinden, welche Standardschnittstelle> (explizit: UART, SPI, I²C) eines MCUs ohne(!) zusätzliche> Treiberbausteine, oder Umsetzer auf eine andere Physik wie RS232,RS485,> o.ä., über eine elektrische Leitung von einer zu einer anderen Platine> über eine möglichst weite Distanz übertragen lässt.
Das ist keine gute Strategie. Die Treiberbausteine dienen auch immer dem
Schutz der Schaltung gegen ESD. Da sie in einem viel gröberen Prozess
gefertigt sind, sind sie viel unempfindlicher gegen Misshandlungen.
Und klar: Im Falle eines Falles ist es einfacher, ein SO-08 zu tauschen
als ein BGA mit 473 Balls. Und ja, es gibt Spezialisten, die das anders
sehen und sich dann wundern, warum sie (a) bei der EMV-Prüfung krachend
durchfallen und (b) das mit einem Freescale iMXirgendwas (ARM9)
bestückte Board nach dem 4kV Burst-Test nicht mehr lief.
Die Strafe folgte auf dem Fuße.
Also gewöhne Dir diesen Mist gar nicht erst an!
fchk
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang