PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Phänomen oder Denkfehler ?



Frank_08
27.04.2009, 07:18
Hallo allen hilfreichen Mitgliedern,

ich habe seit dem Wochenende ein Phänomen oder auch einen Denkfehler zu verarbeiten:
Um bei einem Spannungsausfall bzw. Ausschaltbefehl an einem RN-Board mit ATmega32 keinen Datenverlust zu erleiden habe ich einen Stützkondensator (GoldCap 1,0F) in die Spannungszuführung VCC eingebaut. Anschließend wollte ich die Betriebsspannung auf INT1 führen um bei fallender Flanke die betreffenden Werte in den EEPROM zu schreiben zu lassen.
Entsprechend wurde INT1 als INPUT konfiguriert und die Interrupt-Service-Routinne auf fallende Flanke programmiert.

Das Phänomen: Der ATmega speichert die Werte bei Spannungsausfall oder Ausschalten wie gewünscht; allerdings bereits schon bei unbeschaltenem Port INT1 >> also ohne, daß das auszuwertende Signal der abfallenden Spannung überhaupt am Port INT1 anliegt !!!
Warum ist das so und kann diese Lösung ohne INPUT-Signal so dauerhaft beibehalten werden ???

Eine schöne Woche
Frank

Sauerbruch
27.04.2009, 08:09
allerdings bereits schon bei unbeschaltenem Port INT1
Heißt "unbeschaltet", dass der Interrupt-Pin "in der Luft" hängt, d.h. ohne irgendeinen PullUp- oder PullDown-Widerstand?

Frank_08
27.04.2009, 08:14
Korrekt, das Pin hängt momentan noch in der Luft. (ohne Pullup)
Ich habe den ATmega nur programmiert und wollte anschließend den PIN noch beschalten; da war die Funktion des Rückschreibens aber schon gegeben.

Frank

Sauerbruch
27.04.2009, 08:21
Dann könnte es gut sein, dass der (extrem hochohmige) Eingang sich irgendein 50Hz-Signal einfängt und permanent die ISR ausführt. Das passiert gar nicht so selten...

Aktivier´ doch mal den internen PulUp mit

PORTD.3=1

vielleicht ist der Spuk dann vorbei ;-)

Frank_08
27.04.2009, 08:38
Danke, werde ich versuchen.
Allerdings speise ich die Schaltung aus einem hochkarätigem Labornetzteil >> 50Hz also unwahrscheinlich.
Mich macht nur unruhig, daß die Funktion dauerhaft gegenben ist; d.h. ich habe den Test bestimmt 20x mit positivem Ergebnis ausgeführt.
Wenn am INT1 eine vagabuntierende Spannung vorhanden ist und die ISR den Abfall dieser Spannung als H/L-Flanke erkennt, woher bekommt dann der ATmega noch genug Energie zu Rückschreiben >> wir befinden uns ja dann schon im Lo-Bereich ?
Ursprünglich war geplant, die Auswertespannung vor dem Festspannungsregler auszuwerten und mit dem GoldCap hinter den Regler einzuspeisen. Eine Diode im Eingang des 7805 hätte mir den Rückfluß der Energie in die Spannunsversorgung verhindert so daß selbst, wenn am Eingang des 7805 schon Lo ist, für eine gewisse Zeit durch den Kondensator auf der Seite des ATmega Hi gehalten wird.

Frank

Sauerbruch
27.04.2009, 08:51
Ich meinte auch nicht einen Restbrumm auf der Versorgungsspannung - das wäre in der Tat sehr unwahrscheinlich.

Aber wenn der Pin tatsächlich komplett frei in der Luft hängt, d.h. an nichts angeschlossen ist (weder an die Eingangsspannung des U-Reglers noch an sonstwas), dann kann es gut sein, dass er sich aus irgendwelchen Netzkabeln, Trafos oder sonstigen "Strahlungsquellen" ein 50Hz-Signal einfängt. Quasi drahtlos...

Wenn Du ganz sicher wissen willst was auf PinD.3 los ist, mach doch mal ein Mini-Programm:




Config PinX.Y = Output 'daran eine LED anschließen

Do
PortX.Y = PIND.3
Loop


Ich bin sicher, dass die LED spätestens dann anfangen wird zu flackern, wenn Du mit der Hand in die Nähe des PinD.3 kommst...

Frank_08
27.04.2009, 08:55
Danke für die Antworten.
Ich werde es heute Abend testen und dann eine Rückinfo geben.

Schöne Woche
Frank

stefan_Z
27.04.2009, 12:49
Das kann nicht nur gut sein, sondern das ist immer so - und zwar je nach Umgebung ein paar hundert mal in der Sekunde.
Ohne PullUp/-Down fängt der halt jede noch so kleine Schwankung auf. Mit der Hand in die Nähe -> GND - mit ner Spannung in die Nähe -> High-Pegel.