Forum: Mikrocontroller und Digitale Elektronik Kann eine Datenkollision Ports zerstören?


von Joseph N. (Gast)


Lesenswert?

Hallo zusammen!
Was würde passieren wenn ich Ports von 2 Mikrocontrollern miteinander
verbinde und z.B. durch einen Programmfehler eine Kollision auf diesem
"Datenbus" entsteht.. dadurch das der eine Port-Pin als Ausgang
geschaltet ist und auf Low-Pegel liegt während der Port-Pin des anderen
Controllers gleichzeitig ebenfalls als Ausgang geschaltet ist aber auf
High-Pegel steht? Könnte es passieren das der eine Port zerstört wird
da es ja ein Kurzschluss darstellt? Ich denke zwar man kann das aus den
Schemas in den Datenblättern ableiten, die beschreiben wie diese
Port-Pins intern im Controller verschaltet sind, jedoch fehlt mir hier
echt das Wissen über die Funktionsweise um das zu verstehen :(
Mir geht es hier hauptsächlich um Pic16, aber auch AVR Controller.
Danke
Joseph

von Joseph N. (Gast)


Lesenswert?

Ups!

So sollte es korrekt lauten:

"Könnte es passieren das die beiden Ports dabei zerstört werden
da es ja einen Kurzschluss darstellt?"

von Johannes Raschke (Gast)


Lesenswert?

Wenn Du die Portpins über Widerstände auf den "Bus" legst, sollte
alles glattgehen...

von Joseph N. (Gast)


Lesenswert?

Danke Johannes! Das habe ich schon fast befürchtet :( Mal blöd gefragt:
brauche ich denn in diesem Fall dann zusätzlich Pulldown- oder
Pullup-Widerstände, oder genügt es wenn ich von dem einen Port zu dem
anderen einfach einen (z.B. 10k) Widerstand nehme?

von ...HanneS... (Gast)


Lesenswert?

Hi...

Das kommt wieder auf den Bus an. Nutzt du die Ports als Open-Drain,
dann brauchst du Pull-Ups (oder schaltest, falls vorhanden, die
internen ein). Arbeitest du mit Tristate, dann brauchst du keine
Pull-Ups.

Auf Widerstände in den Portleitungen würde ich erst verzichten, wenn im
finalen Aufbau nicht mehr mit Programmierfehlern zu rechnen ist. Schau
dir dazu mal bei Reichelt die BCN16-Serie an...

...HanneS...

von Johannes Raschke (Gast)


Lesenswert?

Hi, Joseph.

Ich weiß ja nicht genau, was Du vor hast... Wenn Du praktisch den
Status des einen Portpins mit Hilfe des zweiten Controllers auslesen
willst, brauchst Du keinen Pullup etc. Der 1. Controller legt den
Ausgang auf entsprechendes Potential (0 bzw. 5 Volt), und der andere
bekommt diesen Pegel an den Eingang, ob über einen Widertand oder nicht
ist egal. Nur im von Dir beschriebenen "Kurzschlussfall", also quasi
einer "Kollision" auf dem Bus, fließt ein Strom, der durch den
Widerstand begrenzt wird.
1K hören sich nach einem vernünftigen Wert an.

Gruß

Johannes

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.