Forum: Mikrocontroller und Digitale Elektronik AVR Atmega8 Programm startet nur nach Reset


von Mark (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich stehe auf dem Schlauch.

Beim Anlegen der Versorgungsspanung 12V (10µF auf 12V Seite) vor 78L05 
(100nF auf 5V Seite) startet das Programm auf dem Mega8 nicht. An jedem 
der 3 PWM Ausgänge sind LEDs angeschlossen. Deren Glimmen (das Programm 
läuft zu diesem Zeitpunkt nicht) deutet darauf hin, dass
1
  OCR1A = 0;
2
  OCR1B = 0;
3
  OCR2 = 0;  
4
  if(OCR1A == 0){TCCR1A &= ~(1<<COM1A1);}
5
  else{TCCR1A |= (1<<COM1A1);}
6
  if(OCR1B == 0){TCCR1A &= ~(1<<COM1B1);}
7
  else{TCCR1A |= (1<<COM1B1);}
8
  if(OCR2 == 0){TCCR2  &= ~((1<<WGM20) | (1<<WGM21));}
9
  else{TCCR2  |= ((1<<WGM20) | (1<<WGM21));}

alle OCRx auf Null sind, jedoch die Ausgänge nicht abgeschaltet sind.
Dieser Teil befindet sich bereits in void main(), dort kommt der Mega8 
also nicht an.

Ich habe Test durchgeführt mit 100nF zwischen GND und Reset, dann 
zusätzlich mit 10k Pullup an Reset, brachte keine Abhilfe. Nur nach 
manueller Betätigung des Reset Tasters (Reset an GND) startet und läuft 
das Programm.

16MHz externer Quarz mit 18 pF Lastkapazitäten.

Watchdog ist aus.
CKOPT ist aktiviert (also starke Pegel). Der Quarz schwingt auch, sobald 
Spannung anliegt, nur das Programm wird nicht gestartet.

SUT_CKSEL steht auf "Ext. Crystal/Resonator High Freq.; Start-up time: 
258 CK + 64 ms".

Das seltsame: Warte ich eine Weile (geschätzt 2 Minuten) nach Anlegen 
der Spannung, startet der Mega8 von selbst. Das verzögerte 
selbstständige Starten geht etwas schneller, wenn bei SUT_CKSEL z.B. 
"Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 0 ms" 
ausgewählt ist.

Das angehängte Bild zeigt die Spannung am Resetpin (gelb) und die 
Versorgungsspannung (blau). Bei dem 2V Spannungsplateau verbleibt die 
Spannung übrigens auch kurz, wenn ich die Versorgungsspannung trenne.

Im Programm habe ich am Beginn von void main() schon mit 
long_delay(1)..usw erfolglos experimentiert.

Hat jemand eine Idee, warum ich den Mega8 beim Anlegen der 
Versorgungsspannung fast jedes Mal manuelle resetten muss, damit er 
läuft?

von Mark (Gast)


Lesenswert?

Das Spannungsplateau kommt von dem PC-Netzteil, welches ich als 
Spannungsquelle verwende.

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.