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
Manfred H. schrieb: > Kann ich einfach Reset kurz auf Null ziehen Genau dafür ist der Reset da, davon kann nichts zerschossen werden.
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.
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
:
Bearbeitet durch User
Genau der von Christoph verlinkte ist es. Dann nehme ich den Resetpin und probiere es aus. Danke für Eure Hilfe
https://mightyohm.com/blog/2008/09/i-programmed-the-rstdisbl-fuse/ Da steht es auch, "SPI programmers need the RESET pin to flash the device." "The only way to recover is with a high voltage programmer". https://www.mikrocontroller.net/articles/AVR_Fuses#SPIEN,_DWEN_und_RSTDISBL "Besonders heimtückisch"
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
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.
:
Bearbeitet durch User
Manfred H. schrieb: > Hab ja schon öfters was von zerschossenen Programmen gelesen. Hab schon öfter was von Aliens gelesen die Leute entführen und Analexperimente durchführen. Deshalb bin ich vorsichtig und schlafe nur mit Metallplatte am Hintern.
Manfred H. schrieb: > Die Ausgänge sind bei aktiv auf Dauer high. Das kann man bei dem Board einstellen wie sich die Ausgänge verhalten. Anleitung lesen.
Christoph db1uq K. schrieb: > Normalerweise sollte der µC beim Einschalten die Resetroutine > ausführen. Der Prozessor führt beim Einschalten einen Power-On-Reset durch. Immer. Nicht müsste, sollte, könnte. Oliver
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.
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?
Björn W. schrieb: > Manfred H. schrieb: >> Die Ausgänge sind bei aktiv auf Dauer high. > > Das kann man bei dem Board einstellen wie sich die Ausgänge verhalten. > Anleitung lesen. Stell dir vor dass ich genau das brauche um einen rastenden Tastensatz nachzubilden. Ich werde Ub kurz unterbrechen.
:
Bearbeitet durch User
Manfred H. schrieb: > Kann ich einfach Reset kurz auf Null ziehen, oder ist es schlauer die > Betriebsspannung kurz weg zu schalten? Um auf Nummer Sicher zu gehen, kann man externe Reset-IC verwenden, so wie STM6315.
:
Bearbeitet durch User
Manfred H. schrieb: > Ich werde Ub kurz unterbrechen. Die Unterbrechung muss mindestens so lange dauern, dass die Kondensatoren auf der Betriebsspannung sicher Entladen werden. Dabei müssen auch sämtliche Eingäng vom uC spannungsfrei sein. Sonst wird der uC parasitär versorgt.
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.
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?
:
Bearbeitet durch User
Haben die Avrs oder alle uC auch einen Softreset? Also kann man den aus dem Programm heraus resetten?
Stefan schrieb: > Haben die Avrs oder alle uC auch einen Softreset? > Also kann man den aus dem Programm heraus resetten? Nein das haben die AVRs meistens gar nicht. Man kann aber den Watchdog missbrauchen.
:
Bearbeitet durch User
Stefan schrieb: > Haben die Avrs oder alle uC auch einen Softreset? > Also kann man den aus dem Programm heraus resetten?
Georg M. schrieb: > Stefan schrieb: >> Haben die Avrs oder alle uC auch einen Softreset? >> Also kann man den aus dem Programm heraus resetten? Welchen AVR betrifft dieser Screenshot? Die alten haben kein SW Reset.
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
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.
Ich habe gerade keinen Fall!! Ich frage allgemein, und bin davon ausgegangen, das die neuen das können, die allermeisten, zumindest.
Cyblord -. schrieb: > Welchen AVR betrifft dieser Screenshot? Die alten haben kein SW Reset. AVR mit UPDI (d.h. ab 2017).
Man könnte sich auch einen Hardware-Reset bauen, der AVR kann mit einem seiner Pins den eigenen Reset-Pin auf Masse ziehen.
Ben B. schrieb: > Man könnte sich auch einen Hardware-Reset bauen, der AVR kann mit einem > seiner Pins den eigenen Reset-Pin auf Masse ziehen. Das funktioniert nicht. Da beim Ziehen des Reset, alle Ausgänge hochohmig werden, noch bevor die benötigte Reset-Zeit für einen korrekten Reset erreicht ist. Da muss mindestens noch ein Kondensator hin.
Manfred H. schrieb: > Kann ich einfach Reset kurz auf Null ziehen, oder ist es schlauer die > Betriebsspannung kurz weg zu schalten? Warum kannst du beim Drücken deiner externen Taste den gewünschten Zustand nicht programmatisch herstellen?
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.