Forum: Mikrocontroller und Digitale Elektronik ATmega 16 startet erst nach Tastendruck auf Reset


von Markus (Gast)


Lesenswert?

Hallo Community,

ein ATmega16 ist in der Grundschaltung aufgebaut. VCC und GND liegen an 
(gemessen), 10kOhm gegen VCC am Resetpin und zusätzlich noch ein 
"Resettaster" gegen GND am Resetpin. Der µC startet das Programm (in C) 
erst sobald man RESET-PIN gegen GND zieht und fährt nicht automatisch 
an. Kann mir jemand sagen warum?

Gruß
Markus

von Peter D. (peda)


Lesenswert?

Das Program startet schon, bloß bleibt es hängen, weil IO-Pins nicht den 
von Dir erwarteten Pegel haben.

von Markus (Gast)


Lesenswert?

ok und nach einem manuellen Reset ist das dann anders?

von Draco (Gast)


Lesenswert?

Peter D. schrieb:
> Das Program startet schon, bloß bleibt es hängen, weil IO-Pins nicht den
> von Dir erwarteten Pegel haben.

Markus schrieb:
> ok und nach einem manuellen Reset ist das dann anders?

Das würde mich auch interessieren :) Kannst du nicht ne Debug ausgabe 
machen irgendwie... um zu sehen wo er hängt?!

von Markus (Gast)


Lesenswert?

falls ihr meint, dass mein Programm fehlerhaft wäre oder hängen bleibt, 
das kann ich verneinen. Es ist eine simple Ultraschallmessung die (nach 
einem manuellen Reset) permanent wie gewünscht funktioniert.

Ich würde nur gerne verstehen, warum der µC erst diesen "Anstoß" per 
Reset benötigt.

von Max D. (max_d)


Lesenswert?

Langsam ansteigende Versorgung ohne Brownout?

von chris (Gast)


Lesenswert?

Brownout aktivieren und ein 100nF Kondensator parallel zum Taster...

von Markus (Gast)


Lesenswert?

BODEN Fuse ist gesetzt.
den Taster hatte ich Testweise komplett entfernt.

Habe nun einen Watchdog einprogrammiert der einen Reset durchführt, 
würde das Problem aber trotzdem gerne verstehen.

von Norbert (Gast)


Lesenswert?

Markus schrieb:
> BODEN Fuse ist gesetzt.
> den Taster hatte ich Testweise komplett entfernt.
>
> Habe nun einen Watchdog einprogrammiert der einen Reset durchführt,
> würde das Problem aber trotzdem gerne verstehen.

ATmega 16 manual:
Table 5. Start-up Times for the Crystal Oscillator Clock Selection

von chris (Gast)


Lesenswert?

dann Schaltplan

von Max (Gast)


Lesenswert?

Vielleicht ist dein Ultraschallsensor noch nicht bereit, wenn dein AVR 
nach einem Power On loslegt.
Kommentier den Quellcode mal aus und nimm eine Komponente nach der 
anderen wieder rein, um zu sehen, wo der Controller stehen bleibt.

Oder kannst du beweisen, das der Controller wirklich nicht anläuft. 
(Taktquelle schwingt nicht oder dergleichen). Lass zum Test ganz am 
Anfang mal eine LED einschalten und schaue, ob die auch erst nach einem 
Reset angeht.

von Markus (Gast)


Lesenswert?

Danke für den Denkanstoß Max,

hatte direkt nach main eine LED eingeschaltet und es war wohl 
tatsächlich so, dass der Ultraschallsensor nicht bereit war (die LED 
leuchtete, der Rest blieb regunslos).
Ein einmaliges Delay von 50ms schaffte Abhilfe.

Danke für euere Tipps, manchmal sieht man den Wald vor lauter Bäumen 
nicht mehr.

von Peter D. (peda)


Lesenswert?

Markus schrieb:
> ok und nach einem manuellen Reset ist das dann anders?

Ja.
Nach dem Poweron ist das Programm losgelaufen und hat z.B. Ports 
initialisiert.
Nach den Reset Drücken geht wieder alles in tristate, aber die Pegel 
halten sich noch Weile und das kann schon ausreichen.

von Peter D. (peda)


Lesenswert?

Markus schrieb:
> Ein einmaliges Delay von 50ms schaffte Abhilfe.

Besser ist es, ein Timeout aufzusetzen, damit man nicht ewig auf die 
Antwort eines externen Gerätes wartet.
Dann kann man mehrere Versuche starten bzw. eine Fehlermeldung ausgeben.

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.