www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik "Prellende" Spannungsversorgung


Autor: Andreas Posch (andyp17)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

Ich habe eine Frage zur Spannungsversorgung in Verbindung mit einem 
Mikrocontroller (AVR). Und zwar benutze ich eine Klemme zwischen meinem 
Labornetzteil und meinem DC/DC-Wandler. Nun ist mir folgendes 
aufgefallen: Wenn die Spannung bereits an den Klemmen anliegt, wenn ich 
die Kabel darin befestige, kommt es vor, dass sich der uC mehrmals ein 
und ausschaltet. Ist mir auch klar warum, aber nun ist es einmal 
passiert, dass sich dabei das Programm darauf gelöscht bzw. verändert 
hat! Auf jeden Fall macht es nicht mehr das, was es machen soll. Nach 
einem erneuten Bespielen des Flashs funktioniert aber wieder alles 
einwandfrei. Danach hab ich versucht, das Problem zu rekonstruieren, 
indem ich absichtlich in der Klemme mit einem Kabel "gewackelt" habe. 
Und siehe da, das Programm war wieder defekt.

Nun meine Frage: Warum passiert das. Was geschieht da im uC. Und vor 
allem: wie kann ich das verhindern? Kann ja mal passieren, dass das beim 
Anschließen passiert, und dann soll ja nicht gleich das Programm futsch 
sein!

Vielen Dank für eure Hilfe!!

mfg
Andy

Autor: Klugscheisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das würde mich jetzt auch mal interessieren:
>Und siehe da, das Programm war wieder defekt.
Hast Du das Prg. mal zurückgelesen und mit dem Originial verglichen?

Was ist das für ein Programm? Prozessor? Bootloader?

Autor: Andreas Posch (andyp17)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ja, ich gerade das Programm zurückverglichen. Aber AVRStudio meldet, 
dass es "equal to file" ist, obwohl es nicht macht, was es machen soll. 
Aber sonst wie vorher. Nach erneutem Flashen gehts wieder.

Ich verwende AVRStudio in Verbindung mit WinAVR und einem Mega168.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denk mal da ist was anderes Faul!

Wie sieht denn Deine Reset-Beschaltung aus?

Autor: Andreas Posch (andyp17)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, wie immer: mit 10k Pull-Up zum Programmer.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... und 47n zur Masse?

Autor: Andreas Posch (andyp17)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, die hab ich nicht, weil ich hier schön oft gelesen habe, dass die 
eigentlich unnötig sind. War das falsch?

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
probiers mal aus.

Autor: Andreas Posch (andyp17)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, i werds probieren. Ich versteh aber nicht ganz, was das damit zu tun 
haben könnte! Könntest du mir Einblick in deine Gedankengänge gewähren 
:-) :-)...

Autor: Kachel - Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du BOD aktiviert?

KH

Autor: J. K. (rooot)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Posch wrote:
> OK, i werds probieren. Ich versteh aber nicht ganz, was das damit zu tun
> haben könnte! Könntest du mir Einblick in deine Gedankengänge gewähren
> :-) :-)...

der C bewirkt, dass der Reset-Pin vorerst (kurze Zeit) low bleibt, und 
der µC noch nicht gleich zu arbeiten beginnt. erst wenn sich der C 
auflädt geht der Reset-Pin HIGH = µC arbeitet.
In der Zeit des Prellens ist der µC also noch nicht aktiv, erst wenn die 
Spannung stabil ist!

>Nein, die hab ich nicht, weil ich hier schön oft gelesen habe, dass die
>eigentlich unnötig sind. War das falsch?

ja, wo hast du das gelesen?

mfg
J.K

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
J. K. wrote:
>>Nein, die hab ich nicht, weil ich hier schön oft gelesen habe, dass die
>>eigentlich unnötig sind. War das falsch?
>
> ja, wo hast du das gelesen?

Eine Verzögerung vom Reset-Eingang ist nicht zwingend notwendig, wenn 
man BOD aktiviert hat und noch einen großzügigen Startup-Delay benutzt 
und die Umgebung nicht sehr verschmutzt ist (zum Beispiel durch Motoren, 
Relais, bzw. andere induktive Lasten) bzw. die Versorgungsspannung 
schnell genug ansteigt beim Einschalten. Wenn man aber auf Nummer Sicher 
gehen will schaut man sich u.a. die AppNote 042 an: 
http://atmel.com/dyn/resources/prod_documents/doc2521.pdf
Atmel hat ne Menge solcher Design Considerations auf Lager.

Autor: Ronny F. (ronny)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und noch ein Tipp am Rande:

In der Initalisierungsphase der Software sollte man z.B. Schreibzugriffe 
aufs EEPROM oder in den Flash generell vermeiden.

Grundsätzlich muss man davon ausgehen, dass bei unsauberer 
Reset-Beschaltung der Startup-Code einige male teilweise ausgeführt 
wird, bevor der Controller sein Programm stabil abarbeitet.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ronny F. wrote:
> Und noch ein Tipp am Rande:
>
> In der Initalisierungsphase der Software sollte man z.B. Schreibzugriffe
> aufs EEPROM oder in den Flash generell vermeiden.

Wo steht denn das?

> Grundsätzlich muss man davon ausgehen, dass bei unsauberer
> Reset-Beschaltung der Startup-Code einige male teilweise ausgeführt
> wird, bevor der Controller sein Programm stabil abarbeitet.

Bitte was? :O Dann ist es aber höchste Zeit den Reset zu verlängern!

Autor: Andreas Posch (andyp17)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, danke für eure Hinweise. Werd ich gleich mal beachten. Das mit der 
BOD-Einstellung funzt wunderbar. Hab jetzt diese Einstellung aktiviert 
und der Fehler ist nicht mehr aufgetreten! Ich glaub, das wars!

Besten Dank!!


mfg
Andy

Autor: Ronny F. (ronny)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Simon:

> > Und noch ein Tipp am Rande:
> >
> > In der Initalisierungsphase der Software sollte man z.B. Schreibzugriffe
> > aufs EEPROM oder in den Flash generell vermeiden.
>
> Wo steht denn das?

Nirgendwo. Es erhöht aber im Falle von unsauberen Reset-Beschaltungen 
oder EMV-bedingten Störungen/Resets die Überlebenswahrscheinlichkeit 
deines Systems.


> > Grundsätzlich muss man davon ausgehen, dass bei unsauberer
> > Reset-Beschaltung der Startup-Code einige male teilweise ausgeführt
> > wird, bevor der Controller sein Programm stabil abarbeitet.
>
> Bitte was? :O Dann ist es aber höchste Zeit den Reset zu verlängern!

Jup. Wenn man noch Einfluss auf die Schaltung hat, sollte man das 
tunlichst tun.

Gruß,

Ronny

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ronny F. wrote:
> Jup. Wenn man noch Einfluss auf die Schaltung hat, sollte man das
> tunlichst tun.

Ja, das ist natürlich die Voraussetzung *Räusper

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das mit der BOD-Einstellung funzt wunderbar

Du doktors and den Symptomen rum. Sicher geht das ein
par hundertmal gut aber nicht wirklich sicher!

Autor: Maria (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Mega168 wird über den RESET Pin programmiert und debugt (debugWIRE).
Da darf keine C Beschaltung gemacht werden.

Die Reset Verzögerung und Logik ist im Chip.
Zusätzlich ist der Brown-out Detector zur Spannungsüberwachung 
vorhanden.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Maria

Auszug aus dem Datasheet:

1.1.5 PC6/RESET
If the RSTDISBL Fuse is programmed, PC6 is used as an I/O pin. Note that 
the electrical characteristics
of PC6 differ from those of the other pins of Port C.
If the RSTDISBL Fuse is unprogrammed, PC6 is used as a Reset input. A 
low level on this pin
for longer than the minimum pulse length will generate a Reset, even



"if the clock is not running."



The minimum pulse length is given in Table 28-3 on page 308. Shorter 
pulses are not guaranteed
to generate a Reset.
The various special features of Port C are elaborated in “Alternate 
Functions of Port C” on page
82.

best regards Carsten

Autor: Andreas Posch (andyp17)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Carsten:
Danke für deinen Hinweis. Ich habe aber leider bei dieser Schaltung 
keine Möglichkeit mehr ein C dazuzugeben. Ich werde das aber für meine 
nächsten Projekte mit Sicherheit berücksichtigen.

Vielen Dank... Andy

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.