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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von __Son´s B. (bersison)


Bewertung
-2 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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:
            Fuse

              o------------- Reset
              | 
Pin 4 o-------o
              
              o------------- PB4

von Michael U. (amiga)


Bewertung
0 lesenswert
nicht 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 Dominik K. (kilo81)


Bewertung
0 lesenswert
nicht lesenswert
Du musst in das Datenblatt schauen.
Direkt zu Beginn bei der Pin Konfiguration.
Auszug:
1.1.3 Port B (PB3:PB0)
Port B is a 4-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The
Port B output buffers have symmetrical drive characteristics with both high sink and source
capability except PB3 which has the RESET capability. To use pin PB3 as an I/O pin, instead of
RESET pin, program (‘0’) RSTDISBL fuse. As inputs, Port B pins that are externally pulled low
will source current if the pull-up resistors are activated. The Port B pins are tri-stated when a
reset condition becomes active, even if the clock is not running.

1.1.4 RESET
Reset input. A low level on this pin for longer than the minimum pulse length will generate a
reset, even if the clock is not running and provided the reset pin has not been disabled. The minimum
pulse length is given in Table 20-4 on page 177. Shorter pulses are not guaranteed to
generate a reset.
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)


Bewertung
0 lesenswert
nicht lesenswert
DANKE, für die konstruktiven Anregungen!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.