Forum: Mikrocontroller und Digitale Elektronik Pins zweier µC verbinden


von Carl (Gast)


Lesenswert?

Hallo,

eigentlich ein einfaches Problem:
ich möchte zwei ATMega32 (gleiche Masse / getrennte Festspannungsregler) 
über zwei Port-Pins miteinander verbinden (PC7 -> PB1 und PC6 -> PB0). 
Das Problem ist nun, dass die Kommunikation nicht funktioniert. Ich habe 
es mit den internen Pullups und mit externen Pullups / Pulldowns 
versucht, aber es läuft nicht. Erst wenn ich mit dem Oszi-Tastkopf an 
einen der Pins gehe funktioniert es (nur ohne Pullups oder Pulldowns).
Woran könnte das liegen?

von Timmo H. (masterfx)


Lesenswert?

Du hast auch sichergestellt, dass immer nur einer der beiden Megas den 
Pin auf Output hat und nicht beide gleichzeitig?

von Carl (Gast)


Lesenswert?

Ja, die Pins werden zum Programmstart gesetzt und bleiben die gesamte 
Zeit so (nur zwischen Reset und Initialisierung könnten beliebige 
Kombinationen auftreten)

von Bernd (Gast)


Lesenswert?

Hast du auch sichergestellt, dass beide µCs eine Hauptschleife haben, so 
dass nicht mindestens einer ständig resetet? Wird der Watchdog auch 
immer zurückgesetzt, bzw ist deaktiviert?

von Carl (Gast)


Lesenswert?

Die Pins werden in einer Schleife gesetzt bzw. ausgelesen. Außerdem kann 
ich ja eigentlich ein Software-Problem ausschließen, da es funktioniert 
solange ich mit dem Tastkopf an der Leitung bin.

von Timmo H. (masterfx)


Lesenswert?

Bau mal nen Abblockkondensator an die Leitungen (Kerko z.B. 100n)

von Carl (Gast)


Lesenswert?

Leider keine Wirkung

von Timmo H. (masterfx)


Lesenswert?

Zeig mal her die Schaltung

von Carl (Gast)


Lesenswert?

Die Schaltung verteilt sich auf mehrere Seiten, daher in Textform die 
betroffene Teile:

2x ATMega32 mit gemeinsamen Massepotenzial und jeweils eigener 
5V-Spannungsversorgung über je einen LP2950CDT. Die µC haben die übliche 
externe Beschaltung (VCC-Pins mit 100nF nach GND und Reset mit 100nF 
nach GND und 10K nach VCC). Untereinander sind sie wie oben beschrieben 
verbunden.

von Carl (Gast)


Lesenswert?

Problem gelöst: 10K waren als Pulldown zu wenig, mit 100K Pulldown läuft 
es zuverlässig

von Falk B. (falk)


Lesenswert?

@  Carl (Gast)

>Problem gelöst: 10K waren als Pulldown zu wenig, mit 100K Pulldown läuft
>es zuverlässig

Das bezweifle ich. Du hast wahrscheinlich vergessen, die Pins als 
Ausgang zu schalten (DDRx Register). Damit schaltest du beim Zugriff auf 
den Port nur immer den internen Pullupwiderstand ein- und aus. Gegen 10K 
kann der kein HIGH erreichen (typ. 30k), gegen 100K schon.

MfG
Falk

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.