Mega32 resettet in unregelmäßigen Abständen

Gast #1921642
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.
1
ISR(SIG_USART_RECV) {
2
  uint8_t c = UDR;
3
}
4

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

11
void sendByteToPc(uint8_t byte) {
12
  while( !(UCSRA&(1<<UDRE)) );
13
  UDR = byte;
14
}
15

16
void sendDataToPc(uint8_t *data, uint8_t size) {
17
  uint8_t i;
18
  sendByteToPc(size);
19
  for(i=0;i<size;i++) {
20
    sendByteToPc(data[i]);
21
  }
22
}
23

24
int main(void) {
25
  initPcInterface();
26
  sei();
27
        uint8_t *s = (uint8_t*)"uart-test successful\n";
28
  sendDataToPc(s,strlen((char*)s));
29
  while(1) {
30
          // LOOP
31
    _delay_us(10);
32
  }
33
  return 0;
34
}

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?!
Gast #1921660
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.

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