Atmega 328P resetten

OP #7809848
Lesenswert?

Hallo Hab mal eine Frage an die Softwareprofis. Ich habe einen IR FB Empfänger von ELV mit besagtem Atmega. Die Ausgänge sind bei aktiv auf Dauer high. Ich muss extern über eine Taste die Ausgabe zurücksetzen. Reset Pin 29 liegt über 10k auf +5V. Kann ich einfach Reset kurz auf Null ziehen, oder ist es schlauer die Betriebsspannung kurz weg zu schalten? Hab ja schon öfters was von zerschossenen Programmen gelesen. Deshalb bin ich da vorsichtig.

Gruß Mani

#7809853
Lesenswert?

Manfred H. schrieb:

Die Ausgänge sind bei aktiv auf Dauer high.

Wie sieht es denn mit dem Standard-Zustand nach dem Einschalten aus? Sowas steht im Datenblatt.

Ich muss extern über eine Taste die Ausgabe zurücksetzen. Reset Pin 29 liegt über 10k auf +5V.

Wie immer

Kann ich einfach Reset kurz auf Null ziehen, oder ist es schlauer die Betriebsspannung kurz weg zu schalten?

Kommt fast auf das selbe raus.

#7809855
Lesenswert?

der hier? https://de.elv.com/p/elv-bausatz-ir-empfaenger-8-kanaele-ire-8-lieferung-ohne-gehaeuse-P104674/

"Da die Port-Pins über integrierte Pull-ups verfügen, ist hier keine weitere Beschaltung erforderlich. Der Reset-Eingang des Controllers ist mit dem Widerstand R4 beschaltet" (10k nach +5V).

Der Reset scheint nur die Software zurückzusetzen, da kann nichts passieren, damit wird der Programmspeicher nicht geändert.

https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=4 "1.1.5 PC6/RESET If the RSTDISBL fuse is programmed, PC6 is used as an input pin. If the RSTDISBL fuse is unprogrammed, PC6 is used as a 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."

Ob der als Reset benutzbar ist, hängt von der Einstellung der Fuse ab, das ist nicht sicher. Eine Überprüfung des Zustands ist höchstens mit einem "HV-Programmer" möglich. https://www.mikrocontroller.net/articles/AVR_HV-Programmer

#7809929
Lesenswert?

Christoph db1uq K. schrieb:

Der Reset scheint nur die Software zurückzusetzen, da kann nichts passieren, damit wird der Programmspeicher nicht geändert.

Allerdings wäre das Konzept mit Programm im Flash ja völlig sinnlos, wenn sich daran durch Aus- und Einschalten des Prozessors was verändern würde.

Manfred H. schrieb:

Hab ja schon öfters was von zerschossenen Programmen gelesen.

Wo denn?

Oliver

#7809967
Lesenswert?

Normalerweise sollte der µC beim Einschalten die Resetroutine ausführen. Wenn die Software aus unbekanntem Grund abstürzt, kann man den Kaltstart durch Ausschalten oder über einen Reset auslösen, das sollte egal sein.

Einen umprogrammierbaren Reseteingang braucht man vor allem für die 8-Pin µC, wenn die Anschlüsse nicht ausreichen. Der Kaltstart durch Aus/Einschalten funktioniert dann immer noch.

#7810034
Lesenswert?

Ja klar, wenn er in Ordnung ist.

Ich kann mir vorstellen, dass man den Bootloader eines Arduino mit einem Programmiergerät so zerschießen kann, dass man ihn anschließend von arduino.cc als Datei holen und mit dem selben Programmiergerät wieder einspielen muss, was vielleicht Anfänger überfordert.

Oder man hat während eines Programmiervorgangs einen Spannungsausfall/Unterspannung, was irgendwie eine Fuse versehentlich umklappt, sodass man sogar einen HV-Programmer braucht um das zu reparieren.

Oder man hat ein Programmiergerät, das sogar irgendwie den Programmspeicher mit Nullen füllt und dabei auch Fuses erwischt, ich bin nicht sicher, ob das zuverlässig verhindert ist.

Aber das sind alles ziemlich konstruierte Fälle. Eher uńwahrscheinlich.

Gast #7810037
Lesenswert?

Christoph db1uq K. schrieb:

Ich kann mir vorstellen, dass man den Bootloader eines Arduino mit einem Programmiergerät so zerschießen kann, dass man ihn anschließend von arduino.cc als Datei holen und mit dem selben Programmiergerät wieder einspielen muss, was vielleicht Anfänger überfordert.

Wer es schafft, den Bootloader zu zerstören, der schafft man es auch, in der Arduino IDE auf "Bootloader brennen" zu klicken. Mehr ist dazu nämlich nicht nötig.

Was hat das mit Poweroff/Reset zu tun?

(Firma: Funkenflug Industries) #7810344
Lesenswert?

Der Programmspeicher (Flash) der AVR-Controller ist eigentlich recht robust, aber manche hatten Probleme mit dem EEPROM, wenn dieses bei wackeliger Betriebsspannung benutzt wurde.

Die meisten AVRs haben einen Brownout-Detektor, der sich über die Fuses einschalten lässt. Wenn man den kitzlig einstellt, bringt der die CPU schon bei unter 4,3V in den Reset-Zustand (sind auch 2,7V und 1,8V einstellbar). Dadurch wird verhindert, daß der Controller wegen zu niedriger Betriebsspannung crasht und dabei evtl. irgendwelche ungewollten Operationen ausführt oder Daten zerstört. Wenn die Spannung nach so einem Brownout wieder ansteigt, startet der AVR so wie nach dem Einschalten.

Externe Reset-Bausteine braucht der AVR normalerweise nicht, er hat eigentlich alles dafür selbst integriert.

#7810477
Lesenswert?

Manfred H. schrieb:

Die Ausgänge sind bei aktiv auf Dauer high. Ich muss extern über eine Taste die Ausgabe zurücksetzen. Reset Pin 29 liegt über 10k auf +5V. Kann ich einfach Reset kurz auf Null ziehen, oder ist es schlauer die Betriebsspannung kurz weg zu schalten?

Und was passiert, wenn die Betriebsspannung wieder da ist, oder Reset nicht mehr auf L, und die FB liefert immer noch "aktiv"? Dann sind evtl. die Ausgänge wieder auf H, weil nach Programm-Restart weiterhin "aktiv" erkannt wird - ist das so gewollt?

Gast #7810647
Lesenswert?

ah ok, dass dachte ich mir schon, die neuen haben ja sehr viel solcher neuen Features eingebaut, deshalb war ich eben schon überrascht, das die neuen AVR Serien das noch nicht haben sollen. Wäre jetzt davon ausgegangen, dass das alle mit der neuen PDI Schnittstelle können

#7810650
Lesenswert?

Stefan schrieb:

ah ok, dass dachte ich mir schon, die neuen haben ja sehr viel solcher neuen Features eingebaut, deshalb war ich eben schon überrascht, das die neuen AVR Serien das noch nicht haben sollen. Wäre jetzt davon ausgegangen, dass das alle mit der neuen PDI Schnittstelle können

Lies doch einfach für deine verwendeten AVRs nach ob die das können. So abstrakt ist die Diskussion schwierig.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren