C8051F020 Reset immer wieder

Gast #3919514
Lesenswert?

Hallo,

ich arbeite momentan mit dem C8051F020 Mikrocontroller der Marke Silabs.
Ich baue ein Roboterauto, dass innerhalb eines Quadrats einer Linie 
folgt (die Linien sind der Rahmen des Quadrats).
Wenn das Auto eine Querlinie erkennt, macht es eine Linkskurve und folgt 
anschließend wieder der Linie.

Nun habe ich aber das Problem, dass der Controller immer wieder einen 
Reset auslöst.
Das passiert zufällig (kein gewisses Schema erkennbar) und oft auch 
mehrmals hintereinander.
Der Watchdog-Timer is disabled. Das Problem besteht auch, wenn alle 
Interrupts und das Globale Interrupt disabled sind.

Ich habe mir auch schon gedacht, dass es mit der Spannungsversorgung 
zusammenhängen könnte.
Habe dann den Controller nicht mit der Batterie (ca. 10V aus 
AAA-Batterien, die mit einem LM2596 DC-Converter auf 3,3V runtergeregelt 
werden),
sondern auch mit einem DC-Generator versorgt. Kein Erfolg.
Habe außerdem auch schon versucht, die Versorgungsspannung mit einem 
Elko zu puffern (1000uF, 50V), ebenfalls nutzlos.

Hat von euch jemand eine Idee was die Ursache für das Problem sein 
könnte?
Vielen Dank schonmal!
Gast #3919736
Lesenswert?

Überschreibst Du Dir vielleicht den Stack und damit eine 
Rücksprungadresse, so dass der Prozessor irgendwo ins Nirvana springt 
und dann so lange seine Adresse hochzählt, bis er wieder bei Null 
angekommen ist?
Gast #3934303
Lesenswert?

Hi,

deine Beschreibung der Hardware lässt vermuten, dass sie noch 
verbesserungswürdig ist (z.B. die Sache mit den Pufferkondensatoren => 
nicht nur dicke Caps verwenden, auch 100nF haben zusätzlich ihre 
Daseinsberechtigung). Desweiteren wäre interessant zu wissen, wie das 
Resetsignal beschaltet ist. Was sind denn für Motoren verbaut bzw. wie 
werden diese versorgt? => Schaltplan!

Peter hat es schon angedeutet, lass dir mal den Status des 
RSTSRC-Registers nach so einem Reset geben.

Wenn du Interrupts etc. deaktiviert und auch den Komparator als 
Resetquelle deaktiviert hast, kommt ein verkorkster Stack eigentlich nur 
bei Assemblerprogrammierung infrage oder wenn du einen verbeulten 
Pointer hast - aber das wurde auch bereits erwähnt, ohne den Code zu 
kennen ist das schwer zu beurteilen.

Ralf

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