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".
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
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.
> 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 |
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.