www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mega32 resettet in unregelmäßigen Abständen


Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,
ich hab hier ein atmega32-16pu, der ein etwas seltsames Verhalten zeigt.
Ich betreibe den mit Minimalbeschaltung - also 16Mhz Quarz und 
Widerstand an Reset - das Ganze auf nem Steckbrett. Meinen Code habe ich 
während des Testens auf folgenden Zeilen zusammengekürzt.

ISR(SIG_USART_RECV) {
  uint8_t c = UDR;
}

void initPcInterface(void) {
  // Enable transmitter, receiver, rx complete interrupt
  UBRRL = 0x33; //19,2k bps   //0x19;  // 38.4k bps
  UCSRB |= (1<<RXCIE) | (1<<RXEN) | (1<<TXEN);
}

void sendByteToPc(uint8_t byte) {
  while( !(UCSRA&(1<<UDRE)) );
  UDR = byte;
}

void sendDataToPc(uint8_t *data, uint8_t size) {
  uint8_t i;
  sendByteToPc(size);
  for(i=0;i<size;i++) {
    sendByteToPc(data[i]);
  }
}

int main(void) {
  initPcInterface();
  sei();
        uint8_t *s = (uint8_t*)"uart-test successful\n";
  sendDataToPc(s,strlen((char*)s));
  while(1) {
          // LOOP
    _delay_us(10);
  }
  return 0;
}

Dennoch löst irgendwas beim Empfang von Daten in unregelmäßigen 
Abständen einen Reset aus. Wenn ich nix an den µC senden, passiert auch 
stundenlang nix. Schick ich aber Daten übers uart zum µC führt das Ding 
irgendwann nen reset durch.
Spannungsversorgung und Spannung am Reset-Pin hab ich schon mitm Oszi 
überprüft, da stimmt alles und bleibt auch stabil.

Meine Frage nun: Woran kann das liegen?
Ich sollte vielleicht noch erwähnen, dass der µC nicht neu ist sondern 
noch bei mir in der Restekiste lag. Vielleicht hat der sich ja im Laufe 
der Zeit nen Defekt eingefangen?!

Autor: slw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie sieht die HW aus?

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wenn ich nix an den µC senden, passiert auch stundenlang nix. Schick ich
> aber Daten übers uart zum µC führt das Ding irgendwann nen reset durch.

CKOPT programmiert? Falls nein dann mach das mal, dann läuft der Quarz 
'full swing rail-to-rail', das ist wesentlich störunempfindlicher als 
die (Energie)Sparversion.

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich betreibe den mit Minimalbeschaltung - also 16Mhz Quarz und
>Widerstand an Reset - das Ganze auf nem Steckbrett.

Gut - also auch keine Abblock-C's in unmittelbarer Nähe des µC ...

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schien an CKOPT gelegen zu haben. Nun läuft mein Code ohne Probleme.
Danke!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.