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


von Philipp (Gast)


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?!

von slw (Gast)


Lesenswert?

wie sieht die HW aus?

von g457 (Gast)


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.

von Jens G. (jensig)


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 ...

von Philipp (Gast)


Lesenswert?

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

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.