Forum: Mikrocontroller und Digitale Elektronik Arduino 328P: Warum resettet er?


von Chris J. (Gast)


Lesenswert?

Hallo,

welche Gründe gibt es warum ein Arduino, also eigentlich nur der 328P 
Chip mitten im Programm resettet? Ich benutze den Watchdog auf eine ISR, 
sleep Mode ebenfalls aber auch wenn ich alles was mit wdt und sleep 
auskommentiere resettet er manchmal. Da ein JTAG Debbuging mit der 
Arduino IDE nicht möglich ist suche ich weitere Ursachen. Kann man einen 
Brown Out irgendwie abfragen? Ich habe eine 3.3V Version, vielleicht 
schlägt der ja zu früh zu? Und was ist mit einem Puffer Überlauf der 
seriellen Daten, die reinkommen? Kann das auch dazu führen?

Welches Programm kann ich in Verbindung mit einem Diamex ISP Programmer 
verwenden um Fuses zu setzen? Bin nicht so der AVR Kenner.

Gruss,
Christian

von Flip B. (frickelfreak)


Lesenswert?

Ich tippe auf deine Software, aber die kennen wir nicht.

von Einer K. (Gast)


Lesenswert?

Ich tippe auf deine Stromversorgung, aber die kennen wir nicht

von Stefan F. (Gast)


Lesenswert?

Ich tippe auf einen Hardwarefehler, aber die kennen wir nicht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Chris J. schrieb:
> Kann man einen Brown Out irgendwie abfragen?
Laut Datenblatt schon. Da gibt es ein Register, in dem die Reset-Ursache 
festgehalten wird...

von Dietrich L. (dietrichl)


Lesenswert?

Noch ein Tip? Störungen von Außen über die Peripherie und sonstige 
Verdrahtung, die wir aber auch nicht kennen.

von Chris J. (Gast)


Lesenswert?

Ich will es einfacher machen: Welche Software bietet mir einen guten 
Kofort Fuses zu setzen? Das BOD Bit zum Bleistift?

von Sebastian R. (sebastian_r569)


Angehängte Dateien:

Lesenswert?

AtmelStudio?

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Chris J. schrieb:
> Und was ist mit einem Puffer Überlauf der seriellen Daten, die
> reinkommen? Kann das auch dazu führen?

Das kommt drauf an, wie das Programm zu Pufferverwaltung aufgebaut ist, 
und ob es einen Pufferüberlauf geordnet verhindert.

von Chris J. (Gast)


Lesenswert?

Wolfgang schrieb:
> Das kommt drauf an, wie das Programm zu Pufferverwaltung aufgebaut ist,
> und ob es einen Pufferüberlauf geordnet verhindert

Serial (UART0) und Softserial aus der eingebauten Lib.....

AVR Studio ist etwas aufgeblasen, was ist mit PonyProg2000? Kann das den 
Diamex ansteuern?

von Stefan F. (Gast)


Lesenswert?

AVR8-Burn-O-Mat (benötigt Java 7 oder 8 und Avrdude).

Heute ist offensichtlich wieder Freitag.

von J. Zimmermann (Gast)


Lesenswert?

Ich tippe auf eine fehlende ISR bei aktiviertem Interrupt.
mfg
Achim

von Chris J. (Gast)


Angehängte Dateien:

Lesenswert?

J. Zimmermann schrieb:
> Ich tippe auf eine fehlende ISR bei aktiviertem Interrupt.
> mfg
> Achim

Hmmm... die habe ich.

ISR(WDT_vect) {

WDTCR |= (1<<WDIE);

}

AVR Burn O Mat !!! Genau die hatte ich im Blick,  nur vergessen über die 
Zeit. Boah..... noch bis 18 Uhr arbeiten heute.... erst dann wieder an 
das Hobby :-((

Reset Cause ermitteln. Mit External Reste scheint wohl der Reset Pin 
gemeint zu sein?

unsigned char ResetSrc = MCUSR;   // save reset source
   MCUSR = 0x00;  // cleared for next reset detection

   ... // further initialisation

   if (ResetSrc & PORF)
      cputs("PWR RESET\n\r");
   if (ResetSrc & EXTRF)
      cputs("EXT RESET\n\r");
   if (ResetSrc & BORF)
      cputs("BOD RESET\n\r");
   if (ResetSrc & WDRF)
      cputs("WDT RESET\n\r");

Beitrag #5632550 wurde vom Autor gelöscht.
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
Noch kein Account? Hier anmelden.