Forum: Mikrocontroller und Digitale Elektronik zwei Controller verbinden, Logikpegel übergeben?


von Stefan (Gast)


Lesenswert?

Hallo zusammen.

Ich habe eine Frage bezüglich der Zusammenschaltung von Ein- und Ausgang 
zweier Mikrocontroller.

Auf der einen Seite ist ein Atmega168 mit einem PIN als Output 
konfiguriert und aktiviertem internen Pullup.
Dieser Ausgang soll mit dem Digital PIN eines Cypress CY7c63413-PC Chips 
verbunden werden(als Eingang konfiguriert).

Das Programm in Cypress stammt nicht von mir, ich möchte aber den Status 
des Atmega168 mittels dieses PINS an den Cypress übergeben.

Bei dem Cypress scheinen auch die internen Pullups aktivert zu sein. 
(laut Datenblatt 7kOhm). Zumindest liegen alle Eingänge in 
unbeschaltetem Zustand auf 5V.


Meine herangehensweise ist bisher also so, dass ich direkt Ausgang und 
Eingang sowie die Masse miteinander verbinde.
Ich habe aber bedenken ob mir dort irgendwelche Ausgleichströme die 
Ports zerstören oder ob ich generell einen Denkfehler bei dieser 
Beschaltung mache.

Es müßte ja so sein, wenn am Atmega-Ausgang eine logische 0 anliegt, 
dass von den 5V Betriebsspannung des Cypress über dessen Pullup ein 
Strom nach Masse fließt.
Ist am Atmega-Ausgang eine logische 1, liegen beide Seiten durch ihre 
Pullups auf 5V, es besteht kein Potentialunterschied und es fließt auch 
kein Strom. Stimmt mir da jemand zu?

Über ein wenig Hilfe wäre ich sehr dankbar.

von oha (Gast)


Lesenswert?

Man koennte sich ueberlegen 1k Seriewiderstaende fuer die signale zu 
haben, und den GND direkt zu verbinden.

von Ralph (Gast)


Lesenswert?

Wenn beide mit 5 Volt laufen, kannst du die Pins direkt 
zusammenschalten.
Nur bei unterschiedlichen Betriebsspannungn müssen Pegelanpassungen 
durchgeführt werden.


Stell dir mal vor in einem PC wären alle IC mit gleichen Pegel über 
Serienwiederstände gekoppelt.
Dann müsste das Mainboard 5 -6 mal so groß sein nur um die Wiederstände 
unterzubringen.

von ajax (Gast)


Lesenswert?

Ich würde die Pins trotzdem mit 1K Verbinden, falls doch ein leichter 
Potentialunterschied auftritt und mit einem Widerstand vergrößert sich 
das Board auch nicht.

ajax

von Michael U. (amiga)


Lesenswert?

Hallo,

die Erfindung der Logikpegel, TTL, CMOS-Pegel, deren Definitionen von H 
und L sowohl auf Ausgangsseite als auch auf Eingangsseite wurde nicht 
aus Langeweile gemacht, sondern genau deshalb, damit man den Kram ohne 
zusätzliche Bauteile verbinden kann...

Die Ausgangsseite muß minimal H-Pegel und maximal L-Pegel ausgeben 
können, die im zulässigen Bereich für L und H des Einganges liegen.
Der Ausgang muß bei L bzw. H den Strom treiben bzw. aufnehmen können, 
den der Eingang als Last erfordert.
Bei TTL war das noch einfach: Fan-Out ist die Anzahl Gattereingänge, die 
ein TTL-Ausgang treiben kann, Fan-In ist die Last, die der Eingang 
darstellt.
Normale Gatter hatten ein Fan-In von 1, einige Eingänge von Zählern o.ä. 
hatten auch ein Fan-In von 2.
Ein  7400 mit Fan-Out 10 konnte also direkt 10 7400 Eingänge mit je 
Fan-In von 1 treiben.

Heute sieht es aus 2 Gründen etwas komplexer aus: CMOS-ICs haben kaum 
Eingangsstrom, dafür spielt die Eingangskapazität eine größere Rolle.
CMOS-ICs laufen mit allen möglichen Betriebsspannungen, die auch 
Auswirkung auf die L und H Pegel als Ausgang bzw. die Schwellwerte als 
Eingang haben.

Da hilft also nur der Blick ins Datenblatt und Pegelwandler wenn nötig.

Wenn aber beide Kandidaten CMOS-kompatibel sind und mit der gleichen 
Betriebsspannung betrieben werden, gibt es keinerlei Grund, die nicht 
direkt zu verbinden. Ausnahme wären da nur Leitungsanpassungen bei hohen 
Frequenzen und/oder langen Leitungen.

Gruß aus Berlin
Michael

von oha (Gast)


Lesenswert?

Im Falle von konfigurierbaren Pins, wie bei Controllern, kann es 
aufgrund irgendwelcher Umstaende passieren, dass ploetzlich zwei 
Ausgaenge aufeinandertreffen. Dann hat man besser einen Seriewiderstand 
dazwischen. Die Umstaende koennen vielfaeltig sein, zB die 
Richtungsumschaltung geraet ausser Tritt. Programmierfehler. 
Zwischenschritt beim Debuggen. usw.

von Eddy C. (chrisi)


Lesenswert?

Falls die beiden Controller aus verschiedenen Quellen mit Strom versorgt 
werden und diese auch unabhängig voneinander ein-/ausgeschaltet werden 
können, ist dennoch ein Serienwiderstand empfehlenswert. Da würde ich 
sogar auf 10kOhm erhöhen, um eine Fremdspeisung über den anderen 
Prozessor zu vermeiden. Man kann sich hier sehr schöne Effekte 
einhandeln. Aber es kommt natürlich auch sehr auf die Details an.

von Stefan (Gast)


Lesenswert?

aja vielen Dank soweit.

Die beiden Controller hängen an der gleichen Betriebsspannung (5V via 
USB)
Beide sind auch CMOS Controller. Von daher gehe ich jetzt also davon 
aus, die Schaltung ohne Serienwiderstand beizubehalten.
Über die Leitung wird auch keine hohe Frequenz laufen - eher Impulse in 
minimal vielleicht halbsekundentakt. Während der Programmierung kann ich 
die Leitungen auch sicherheitshalber trennen, um zu vermeiden dass ggfs. 
der Atmega-Pin meint auch ein Eingang zu sein.

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.