Forum: Mikrocontroller und Digitale Elektronik Pinzustand während/nach Programmierung ATmega16


von Matthias R. (matsch)


Angehängte Dateien:

Lesenswert?

Hallo, anbei ein kleiner Ausschnitt einer Schaltung. Wenn ich über einen 
AVRISPmkII ein neues Programm in den Mega16 lade, leuchten beide LED's 
und das Relais zieht an.
Die Pins des Mega16 haben somit während der Programmierung den Zustand 
"high".
Gibt es eine Möglichkeit dies zu ändern? Die LEDs sind nicht das 
Problem, aber das Relais sollte nur schalten, wenn es schalten darf.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Benutze einen anderen Portpin für das Relais oder trenne die Leitung 
während dem Programmieren ab z.B. mit Jumper.

von Johannes M. (johnny-m)


Lesenswert?

Matthias R. wrote:
> Hallo, anbei ein kleiner Ausschnitt einer Schaltung. Wenn ich über einen
> AVRISPmkII ein neues Programm in den Mega16 lade, leuchten beide LED's
> und das Relais zieht an.
> Die Pins des Mega16 haben somit während der Programmierung den Zustand
> "high".
Das kann lt. Spezifikationen eigentlich nicht sein. Der Reset-Zustand 
aller I/O-Pins (bis auf die Pins der ISP-Schnittstelle) ist "Eingang 
ohne Pull-Up"...

von Johannes M. (johnny-m)


Lesenswert?

Stefan B. wrote:
> Benutze einen anderen Portpin für das Relais oder trenne die Leitung
> während dem Programmieren ab z.B. mit Jumper.
PC0 sollte sich aber im Reset wie ein normaler I/O-Pin verhalten (wie 
auch die beiden anderen genannten), es sei denn, ich übersehe da 
etwas...

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Stimmt. In dem Fall würde ich es zuerst mit einem Pulldown-Widerstand an 
der PC0 Leitung vor dem ULN2003-Eingang probieren, um den schwebenden 
Eingang am µC auf sicheres LOW zu ziehen.

von Falk B. (falk)


Lesenswert?

@Stefan B. (stefan)

>Stimmt. In dem Fall würde ich es zuerst mit einem Pulldown-Widerstand an
>der PC0 Leitung vor dem ULN2003-Eingang probieren,

Braucht man nicht, hat der ULN2003 schon eingebaut, siehe Datenblatt.

MFG
Falk

von Matthias R. (matsch)


Lesenswert?

Warum in der Software suchen, wenn die Hardware Lösung liegt so nah.
Mit 10k und 4k7 Pulldown am uln Eingang hatte ich schon probiert.
Habe den Wert jetzt auf 1k verkleinert. Nun klappt's auch mit dem 
Relais.
Die Frage bleibt aber, warum die Pinns beim prog'n auf high gehen.
wie johnny-m bemerkte:
>Das kann lt. Spezifikationen eigentlich nicht sein. Der Reset-Zustand
>aller I/O-Pins (bis auf die Pins der ISP-Schnittstelle) ist "Eingang
>ohne Pull-Up"...

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Als Eingang ohne interne Pullups sind die Pins auf "irgendeinem" Pegel. 
Stichwort Tristate. Zufällig ist das anscheinend noch ausreichend, um 
den ULN2003 durchzusteuern.

Kannst du das Verhalten eigentlich nur beim Programmieren sehen, oder 
auch, wenn du einen RESET ohne Programmieren auslöst (Resettaster)?

von Matthias R. (matsch)


Lesenswert?

Stefan B. wrote:
> Kannst du das Verhalten eigentlich nur beim Programmieren sehen, oder
> auch, wenn du einen RESET ohne Programmieren auslöst (Resettaster)?

Ja, das gleiche Verhalten ist auch da, wenn Reset (Mega16 pin9) auf 
Masse gezogen wird.
(Habe den Pulldown jetzt auf 2k2 - reicht auch, bei 3k3 ist das 
Verhalten wie mit ohne Pulldown)

von Falk B. (falk)


Lesenswert?

@Matthias R. (matsch)

>(Habe den Pulldown jetzt auf 2k2 - reicht auch, bei 3k3 ist das
>Verhalten wie mit ohne Pulldown)

Dann ist da was faul. GND vom ULN WIRKLICH angesschlossen?

MFG
Falk

von Matthias R. (matsch)


Lesenswert?

@Falk
> Dann ist da was faul. GND vom ULN WIRKLICH angesschlossen?
Wenn ich es "durchpiepe" ist die Masse am uln vorhanden.

Kann es an der Spannungsversorgung liegen?
Der uln, Relais, LEDs werden von einem 7812 versorgt.
Der ATMega16 bekommt seine 5V aus einem anderen 7812 (+ 7805).
Die Masse ist aber überall gleich.

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.