Forum: Mikrocontroller und Digitale Elektronik ATMEL ATtiny84, Pin4, Reset-Problem


von __Son´s B. (bersison)


Lesenswert?

Hallo.

Sobald ich den ATMEL ATtiny84 programmiere und im Anschluss Pin4(PB3) 
als Eingang mit einem 10k-PullDown belege, funktioniert das Programm/die 
Schaltung nicht.
Wenn statt BP3, PB1 als Eingang verwendet wird, funktioniert alles 
prima.

Ich nutze den ISP-Programmer mit einer Kontakt-Klammer (on-the-fly), 
innerhalb der aufgebauten Schaltung.  Während der Programmierung wird 
Pin4 als "/Reset" genutzt und lässt jetzt keinen PullDown-Wid zu 
(Programmierabbruch, Fehlermeldung).

PS: Bitte keine Debatte über den Sinn von "aktiv-high".

von Michael U. (amiga)


Lesenswert?

Hallo,

PB3 ist im Lieferzustand der Reset-Pin. Wenn da 10k gegen GND dran sind 
ist der AVR eben im Reset.
Man kann PB3 als PortPin, Reset-pin oder debugWire-Pin benutzen. Das 
wird mit den Fusebits festgelegt.

Wenn PB3 nicht mehr als Reset programmiert ist kann man den Tiny84 nur 
mit HV-Serial-Programming neu programmieren, der normale ISP-Programmer 
geht wegen fehlendem Reset-Pin NICHT mehr.

Gruß aus Berlin
Michael

von __Son´s B. (bersison)


Lesenswert?

Michael U. schrieb:
> Man kann PB3 als PortPin, Reset-pin oder debugWire-Pin benutzen. Das
> wird mit den Fusebits festgelegt.

Die definition von PB3, als I/O-Eingang/Ausgang bestimme ich z.B. über
DDRB &= ~(1<<PB3);
Wesshalb reicht das nicht?

Mit "Fusebit" habe ich mich noch nicht beschäftigt.
Bis dahin werde ich erst einmal Pin4/PB3 unbenutz lassen.

von Stefan F. (Gast)


Lesenswert?

> Wesshalb reicht das nicht?

Weil PB3 per default kein I/O Pin ist, sondern ein Reset Pin. Stelle Dir 
die Wirkung der Fuse wie einen Jumper vor:
1
            Fuse
2
3
              o------------- Reset
4
              | 
5
Pin 4 o-------o
6
              
7
              o------------- PB4

von Michael U. (amiga)


Lesenswert?

Hallo,

__Son´s B. schrieb:
> Die definition von PB3, als I/O-Eingang/Ausgang bestimme ich z.B. über
> DDRB &= ~(1<<PB3);
> Wesshalb reicht das nicht?

Da sollstest Du Dich doch etwas intensiver mit dem Datenblatt, spzeille 
den Portfunktionen, befassen.

Solange der Pin PB3 per Fusebit als Reset festgelegt ist, isr er Reset.
Die Verbindung wird sozusagen intern umgeschaltet und er ist nicht mit 
den Portregistern verbunden.
Man kann ihn nicht per Programm sozusagen wahlweise als Reset oder als 
I/O benutzen.
Das ist bei den kleinen AVR nur eine Option ein I/O-Pin mehr zur 
Verfügung zu haben, wenn man entweder nie mehr was am Programm ändern 
will oder eben einen HV-fähigen Programmieradapter hat.
Man kann die Umstellung mit einem üblichen ISP-Programmer NICHT mehr 
rückgängig machen.

Gruß aus Berlin
Michael

von Kilo K. (kilo81)


Lesenswert?

Du musst in das Datenblatt schauen.
Direkt zu Beginn bei der Pin Konfiguration.
Auszug:
1
1.1.3 Port B (PB3:PB0)
2
Port B is a 4-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The
3
Port B output buffers have symmetrical drive characteristics with both high sink and source
4
capability except PB3 which has the RESET capability. To use pin PB3 as an I/O pin, instead of
5
RESET pin, program (‘0’) RSTDISBL fuse. As inputs, Port B pins that are externally pulled low
6
will source current if the pull-up resistors are activated. The Port B pins are tri-stated when a
7
reset condition becomes active, even if the clock is not running.
8
9
1.1.4 RESET
10
Reset input. A low level on this pin for longer than the minimum pulse length will generate a
11
reset, even if the clock is not running and provided the reset pin has not been disabled. The minimum
12
pulse length is given in Table 20-4 on page 177. Shorter pulses are not guaranteed to
13
generate a reset.
14
The reset pin can also be used as a (weak) I/O pin.

Aber denk dran, nutzt du ihn als Eingang, dann kannst du den Attiny mit 
einem ISP Programmer nicht mehr programmieren.
Ich habe bislang nie den Resetpin als Eingang nutzen müssen.

Meine Standardschaltung ist immer Pullup am Reset und gut ist.

: Bearbeitet durch User
von __Son´s B. (bersison)


Lesenswert?

DANKE, für die konstruktiven Anregungen!

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.