Forum: Mikrocontroller und Digitale Elektronik Frage zu Serienterminierung/ Kurzschlussschutz von Datenleitungen


von Gregory (Gast)


Lesenswert?

Hallo

Ich habe eine spezielle Frage zur Serienterminierung bzw. dem 
Kurzschlussschutz von Datenleitungen.

Die Sache ist die: Möchte mir einen kleinen "PC" mit Embedded Linux 
möglicherweise auch Android bauen. Ich verwende dafür ARM SODIMM Module 
mit einem SAM9G45 Prozessor. Auf den Modulen sind die notwendigen 
Speicher, die Spannungsversrogung und der Ethernet Chip bereits 
integriert. Alle restlichen Pins die nicht durch das Speicherinterface 
belegt sind, sind auf die Kontakte des SODIMM Moduls herausgeführt. Die 
Module sind relativ teuer, deshalb möchte ich etwaige Kurzschlüsse die 
z.B. durch einen Kurzschluss beim Messen (Messspitze verrutscht in einem 
Moment der Unachtsamkeit) verursacht werden können, durch 
schaltungstechnische Maßnamen verhindern.

Es sollten die betreffenden Pins bei Kurschlüssen untereinander aber 
auch mit VCC und GND nicht beschädigt werden. Daher möchte ich im 
Experimentier- und Teststadium in alle zugänglichen Datenleitungen einen 
825Ohm Widerstand in Serie schalten.
825Ohm deswegen, weil der ARM max. 8mA Strom pro Pin verträgt. Zur 
Sicherheit hab ich die Hälfte (4mA) genommen und komme so bei 3.3V auf 
825Ohm.
Ich frage mich nun, welche Auswirkungen das auf die Signalintegrität 
hat. Der Maximale I/o Takt beträgt 66MHz, wegen der hamonischen 
Schwingungen die das Rechtecksignal enthält, wird die effektive 
Frequenz, für die das Leiterplattendesign ausgelegt sein muss, wohl um 
einige Male größer sein. Der Serienwiderstand von 825Ohm ist ja im 
Prinzip eine Serienterminierung, nur halt mit einem falschen Wert :( 
(Ich hab mir den Artikel über Terminierung hier auf der Webseite 
durchgelesen)
http://www.mikrocontroller.net/articles/Wellenwiderstand
* CMOS Signale haben einen Ausgangswiderstände von 15-50Ohm. Die Frage 
die sich mir stellt, wie sollte der ARM 50Ohm Ausgangswiderstand haben, 
wenn er max. 8mA pro Pin verträgt. Bei 50Ohm wären das 66mA. Wenn ich 
den Ausgangswiderstand des ARM mit dem Ohmschen Gesetz ausrechne erhalte 
ich bei 3.3V und 8mA jedoch 412.5Ohm. Ist das wirklich der tatsächliche 
Ausgangswiderstand? Der ist nämlich ziemlich weit von 50Ohm entfernt.
Bei 4mA ist der Ausgangswiderstand dann 825Ohm und würde mit meinem 
Terminierungswiderstand bzw. Wellenwiderstand von 825 übereinstimmen. 
Somit einen Spannungsteiler von 1:2 ergeben. Die Welle würde bis zum 
Ende der Leitung laufen dort reflektiert werden und am Ausgang VCC 
erzeugen.  Hab ich das richtig verstanden?

Schon einmal vielen Dank für eure Antworten!

MfG Gregory

von DNS (Gast)


Lesenswert?

Sieh zu dass du die Leitungen kurz hältst. Die 66 MHz werden nur mit 
maximal 20 pf Last erreicht. Das sind so etwa 10 cm Leiterbahn.

von DNS (Gast)


Lesenswert?

Achso: Vergiss die 825 Ohm. Mit 20pf ergeben die eine Grenzfrequenz von 
etwa 10 MHz.

von Gregory (Gast)


Lesenswert?

DNS schrieb:
> Achso: Vergiss die 825 Ohm. Mit 20pf ergeben die eine Grenzfrequenz von
> etwa 10 MHz.

Ach ja, die Querkapazitäten der Leitung. Auf die hab ich überhaupt nicht 
gedacht. Jaja damit ist das Thema ja wohl abgehackt. Außer es gibt noch 
eine andere Möglichkeit um die Pins vor Kurzschlüssen zu schützen. 
Ansonsten heißt es halt verdammt vorsichtig sein. :(

MfG Gregory

von Gerd E. (robberknight)


Lesenswert?

Du könntest Puffer-ICs verwenden. Z.B. 74xx244. Du musst Dir die zu 
Deinen Pegeln und Geschwindigkeiten passende Serie raussuchen, z.B. LVC 
könnte passen.

Nachteil ist natürlich daß die immer nur in eine Richtung gehen oder Du 
zumindest manuell die Richtung umschalten musst. Busse wie USB oder I2C 
gehen dann nicht so ohne weiteres.

von Gregory (Gast)


Lesenswert?

Gerd E. schrieb:
> Du könntest Puffer-ICs verwenden. Z.B. 74xx244. Du musst Dir die zu
> Deinen Pegeln und Geschwindigkeiten passende Serie raussuchen, z.B. LVC
> könnte passen.
>
> Nachteil ist natürlich daß die immer nur in eine Richtung gehen oder Du
> zumindest manuell die Richtung umschalten musst. Busse wie USB oder I2C
> gehen dann nicht so ohne weiteres.

Gute Idee!

Das geht schon I.O. dass die Seriellen Busse nicht abgesichert sind, 
denn die gehen zumeist sowieso auf deinen weitern Chip der dann weitere 
Verarbeitungsschritte übernimmt. Z.B. bei USB Host einen Hub Chip. Da 
ist die potentielle Fehlerquelle sozusagen nicht mehr direkt mit dem ARM 
verbunden. Es geht mir eher darum die I/O Ports die nicht mit einer 
Hardwareschnittstelle verbunden sind, also "GPIOs" sind mit dieser 
Sicherheitsmaßnahme zu versehen. Denn diese werden dann auf eine 
Stiftleiste herausgeführt, wo man sie dann für zusätzliche Schaltungen 
verwenden kann. Hier ist das Risiko einen Kurzschluss zu erzeugen 
ziemlich hoch.

Natürlich muss ich Abstriche machen, wenn ich Puffer ICs verwende, da 
teuerer und die Platine wird komplexer. Hätten die Widerstände 
funktioniert, wäre es egal gewesen, jeder Leitung einen zu spendieren, 
denn da bekommt 100Stk für gerade mal 1€.

von Gregory (Gast)


Lesenswert?

Somit wäre ein 74ALVC16244 eigentlich passend. Hat eine 
Eingangskapazität Ci von 6pF. Da gibt es noch einigen Spielraum für die 
Leitungskapazität. Propagation Delay max 3ns.

MfG Gregory

von Gregor (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe noch eine Frage:

Gerd E. schrieb:
> Nachteil ist natürlich daß die immer nur in eine Richtung gehen oder Du
> zumindest manuell die Richtung umschalten musst. Busse wie USB oder I2C
> gehen dann nicht so ohne weiteres.

Ich habe mir den Kopf zerbrochen, wie man die GPIO Pins die ja Input 
oder Output sein können, dennoch irgendwie gegen Kurzschlüsse bzw. den 
Anschluss an eine Logikschaltung mit höheren Spannungspegeln schützen 
könnte. Denn die GPIOs sind in dieser Hinsicht besonders gefährdet.
Da ich aber auch gerne z.B. mit 5V Logik etwas an den GPIOs machen 
möchte, führte kein Weg an der Verwendung eines Levelshifterbausteins 
vorbei.
Ich habe dazu relativ lange auf RS und Farnell gesucht bis ich 
letztendlich die folgenden Chips gefunden habe:
http://at.rs-online.com/web/c/?searchTerm=*gtl*&sra=oss
Im Speziellen hab ich mich dabei auf den GTL2000 fixiert, einen 22 Bit 
Level- Shifter Baustein im SSOP48 Gehäuse.
http://www.datasheetcatalog.org/datasheet/philips/GTL2010_2.pdf
Eigentlich schauen diese Chips gerade nach dem aus, was ich gesucht 
habe. Sie sind bidirektional, brauchen jedoch keinen Direction Pin. Im 
Prinzip einfach nur die Datenleitungen anschließen und fertig.
Jedoch frage ich mich jetzt ob dieser Chip die nötige Eigenschaft 
besitzt, dass wenn die Pins an dessen Ausgang kurzgeschlossen werden, 
dies keinen Einfluss auf die Eingänge (= ARM Pins) hat. Denn es wird 
laut dem Schaltbild des Shifters ja eigentlich nur ein MOSFET pro Kanal 
verwendet.

von Gregor (Gast)


Lesenswert?

Der Link im vorigen Post ist falsch. Er verweist auf den GTL2010. Hier 
ist der richtige für den GTL 2000
http://docs-europe.electrocomponents.com/webdocs/0b4c/0900766b80b4c8d8.pdf

MfG Gregor

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Der tatsächliche Ausgangswiderstand wird so bei 15 Ohm sein. Der 
CMOS-Ausgang kann dies aber nicht dauerhaft treiben! 800 Ohm sind für 
eine Terminierung viel zu hochohmig. Ich würde bei dieser Frequenz nicht 
über 33 Ohm gehen.
Es gibt für USB-Schutz kleinkapazitive Überspannungsdioden-Brücken. Die 
haben zwei Bits. Oder eben die Levelshifter-Bausteine.

Terminierung ist ein komplexes Thema. Am besten simulierst du es in 
SPICE mittels einer Transmission Line. PCI benutzt z.B. die Schutzdioden 
der Gegenseite für die harte Terminierung.

Idealerweise hängt man an solche Systeme besser serielle Busse wie i2c 
für den I/O.

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
Noch kein Account? Hier anmelden.