Reset beim ATtiny13

omtom

Neues Mitglied
09. Mai 2012
15
0
0
Sprachen
  1. ANSI C
Hallo zusammen,

kann mir jemand die Bedeutung des PINS1 "reset" beim ATtiny 13 erleutern?
Beim Programmiern soll er mit einen 10 k-Widerstand an Vcc gelegt werden.
Beim Normalbetieb an Masse.

Ich lasse den PIN1 offen und alles funktioniert.
Was ist den nun richtig?

Gruß
Tom
 
Hallo omton,

der Reset pin sorgt für ein quasi hardwaremässiges zurücksetzen aller internen
Vorgänge und Variablen, mit ausnahme der im eprom abgelegten.

Der Pin kann per Fuse-bit sowohl als IO, als auch als Reset definiert werden.
Ab Werk ist dieser Standartmäßig auf Reset gesetzt.

Außerdem ist der Reset-eingang low-aktiv, muss also auf logisch 0 bzw. Low sein,
was in etwa dem masse-potential entspricht.

Wenn man den Controller nun per ISP programmiert muss der Reset aktiviert sein,
was dem Controller sofern die zuständigen Fuses gestzt sind mitteilt, dass
er sich mit den per SPI emfangenen Daten programmieren soll.

Deshalb: Auf keinen Fall den Reset-pin verfusen, sonst kannst du den
µC nur noch per High-Voltage-programming proggrammieren/retten!

PS: Das High-Voltage-Proggramming setzt ein Proggrammiergerät voraus,
welches dies unterdstützt wie z.B. das STK500.

ich hoffe dir geholfen zu haben!

Gruß:
AVRuser
 
Hallo AVRuser,

Danke für die Antwort, aber ich verstehe NICHTS; seit gestern kann ich erst eine LED zum Blinken bekommen.

Zum Programmieren benutze ich USBasp und WinAVR. Es geht nur darum, LEDs zum blinken zu bekommen. Kann ich dann Pin 1 vernachlässigen.
Wie gesagt, ich habe Pin 1 in dr Luft hängen und alles funktioniert. Programmierung und Betrieb.

Gruß
Tom
 
Hallo omtom!

Die Info`s von AVRuser sind zwar richtig, aber für dich zur Zeit wohl etwas "unverstädlich".

Der /RESET-Pin eines AVR sollte immer über einen 4K7 oder 10K Widerstand mit Vcc verbunden sein.

Wird der /RESET-Pin auf GND gelegt, so führt der AVR einen Reset aus!
Dies passiert zum Beispiel, wenn du den AVR programmierst.
Allerdings musst du das nicht von Hand machen, sondern das erledigt dein Programmiergerät (und wenn es nur ein Parallelkabel ist) von selbst!

Sollte dein Programm mal "abgeschmiert" sein, kannst du zum Beispiel mit einem Taster selber den /RESET-Pin kurz mit GND verbinden.
Damit wird der AVR dann resettet und dein Programm startet komplett neu!

Merke:
Im normalen Betrieb wird der /RESET-Pin IMMER über einen Widerstand mit Vcc verbunden!


Grüße,
Cassio
 
Hallo Cassio,

Danke für die klare Antwort. Du schreibst:

"Wird der /RESET-Pin auf GND gelegt, so führt der AVR einen Reset aus!
Dies passiert zum Beispiel, wenn du den AVR programmierst.
Allerdings musst du das nicht von Hand machen, sondern das erledigt dein Programmiergerät (und wenn es nur ein Parallelkabel ist) von selbst!"


Jetzt verstehe ich. Das habe ich bisher nirgendwo gelesen.

Eine Quelle schreibt "Der Widerstand R1 [an Pin 1] verbindet den RESET-Eingang des Mikrocontrollers mit 5V und versetzt ihn in den Zustand des Arbeitens. Typisch sind hier 10 KOhm. Man könnte statt des Widerstandes auch einen Draht nehmen. Das kann der Fall sein, wenn der bereits programmierte Attiny13 nur sein Programm "abspielen" soll."

Das wäre dan falsch mit dem Draht.

Tom
 
Hallo Tom !

Das mit dem Draht ist eigentlich falsch,
denn dann würde es einen Kurzschluss geben, sobald ein Reset (Programmer oder manuell per Taster) den /RESET-Pin auf GND legt. :cool:


Grüße,
Cassio
 
Wie bereits gesagt:
-man kann den Pin über ein Fusebit entweder als /Reset-Pin oder als normalen I/O-Pin festlegen (CAVE: da die "normale" SPI-ISProgrammierung den /Reset-Pin benutzt, kann man sich da "aussperren" - auch aus den Fusebits. (-> high voltage programming))
-der /Reset-Pin ist low-aktiv, also wird der Controller bei einem low-Pegel im Reset "gehalten" - erst eine steigende Flanke am Pin läßt den Controller (nach einer Wartezeit) neu starten (schon mal am PC den Reset-Taster gedrückt gehalten?)
-da man in der digitalen Elektronik eher saubere Pegel haben will, der offene Eingang aber irgendwo rumschwirrt, wird der Pin über eine Widerstand auf einen festen Pegel gezogen (hier den high-Pegel=1 - deswegen Pull-Up). Warum über einen Widerstand? Damit man (über Taster/Programmer/Transistor/whatever) den Pin eben auch auf den low-Pegel bekommen kann (was ja den Reset auslöst), OHNE die Spannngsquelle kurzzuschliessen.

Ok, bis hier wurde das alles oben schon genannt. Aber warum geht es trotzdem (scheinbar problemlos) mit offenem /Reset-Pin?
Wenn man in's Datenblatt des Controllers schaut, findet man ab Seite 48ff den generellen "Aufbau" der Pins. Erkennbar ist ein interner Pull-Up (ungefähre werte werden später in den "electrical characteristics" genannt). Beim /Reset ist dieser per default aktiviert, aber ein laufendes Programm kann das Pull-Up Disable Bit (PUD) im MCU Control Register (MCUCR) setzen. Dann sind alle PullUps außer Betrieb. Nach einem Reset ist das zwar wieder zurückgesetzt (bis dann das Programm den Pullup abschaltet), aber der rumflatternde /Reset-Pin kann natürlich nicht-reproduzierbare Resets erzeugen, klar?

P.S.: Ob sich das PUD auf den PullUp des /Reset-Pins auch dann auswirkt, wenn dieser als Reset eingestellt ist (Fuse), weiß ich nicht mit Sicherheit - auf einen externen PullUp hat es aber garantiert keinen Einfluss.
 
Hi
Vielleicht bringt eine kleine Skizze mal Licht in die bisherigen Aussagen
schaltkreis.PNG
Ich hoffe, das das mit dem Bild geklappt hatt. nun denk dir mal den Widerstand weg. Welches Potential liegt dann an Reset? Gar keins und das bedeutet, der Controller oder die Elektronik dahinter wird irgend ein beliebiges Potential annehmen. Natürlich nicht 5 V aber ein Mädel mit ner Seidenbluse kann da schon für helle Aufregung unter den Elektronen sorgen. So ein Widerstand bindet den Eingang an ein Potential. Er verhindert aber auch einen Kurzschluss, wenn jemand auf den Taster drückt. Deshalb ist es Sitte, offene Eingänge mit einem Potential über Widerstände zu binden. Entwedr Pull-Up -Widerstand gegen VCC oder Pull-Down -Widerstand gegen GND
Einige Controller haben intern zuschaltbare Pul-Up Widerstände, da spart man die externe Beschaltung.
Gruß oldmax
 
Hallo zusammen,

Danke für die Antworten.
Mir ist jetzt alles klar.

Gruß
Tom
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)