PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seltsames verhalten



Atmelbeginne
09.12.2008, 19:19
Hallöchen

Ich habe da ein hoffentlich kleines Problem. Ich habe ein Programm geschrieben, welches ich auf einen PIC16F628A erfolgreich gebrannt habe.
Ich habe diesen PIC mit einem Schwinger an UB 5V. Alle I/O Pinne liegen mit einem Pull-Down Widerstand gegen Masse. Wenn ich nun z.B Port A0 per Datenkabel auf High lege, geht am Port B0 eine Diode an. Nicht sehr aufregend.. [-X

Das Program wertet in einer Schleife aus, ob High an Port A0 anliegt. Funktioniert wunderbar. Wenn ich nun die Spannungsversorgung abziehe und wieder aufstecke, kommt das seltsame verhalten. Die Schaltung bzw. das Programm funktioniert nicht mehr. Wenn ich aber ohne irgendetwas anderes zu ändern den PIC aus der Fassung ziehe, und ihn kurz danach wieder aufstecke, funktioniert alles wieder. ](*,)

Wer kann mir sagen ob es einen Unterschied gibt zwischen Spannung aus und PIC aus Sockel entfernen?

Meine Vermutung ist, das der PIC vom Kondensator zwischen UB+ und UB- am Leben gehalten wird. Kann das sein??

Ich hoffe ich habe mich deutlich genug ausgedrückt. Den Code habe ich nicht mitgepostet, da das Programm ja funktioniert..

Für eure Hilfe bedanke ich mich im vorraus

PicNick
09.12.2008, 19:35
Wenn du den Saft nur abdrehst, wird er wohl durch den Elko noch seine Brownout-funktion abklappern und etwas anders re-starten als wenn du alles direkt brutal kappst und er keine pieps mehr rausbringt (ohne gewähr, müßte nachschauen, ob das sein kann)

Die müßtest dann diese Brownout-detektion bei den Option-schaltern abdrehen.

Besserwessi
09.12.2008, 22:03
Eigentlich sollte man die brownout Funktion eher einschalten. Schließlich sorgt die dafür das der Controller bei zu wenig Spannung nichts mehr tut und einen geordneten Reset ausführt. Ohne Brownout können noch ein paar Befehle fehlerhaft ausgeführt werden und dabei alles möglich verstellen.

Wenn man die Spannung lange genu wegnimmt sollte man aber trotzdem normal starten können. Das kann aber ziehmlich lange sein, denn wenn die Takterzeugung erst mal nicht mehr läuft kann der Stromverbrauch sehr niedrig (< 1µA) werden und trotzdem können interne Speicherzustände erhalten bleiben. Ein 100 µF Elko kann dann schon mal ein paar Minuten reichen.

Atmelbeginne
10.12.2008, 09:51
Der Kondensator ist ein ungepolter mehrschicht 100nf C.

Die PIC Config lautet:

Low Voltage disabled
Broun Out enabled
Power up enabled
Watchdog disabled
Takt XT

Daraus resultierendes Config Word: 3F41h

Kann man den Pic auch zur Laufzeit resetten??
Meine Vorstellung: Wenn Spannung < xy dann reset PIC

oder in der elektronischen Beschaltung auch am +UB einen Pulldown R
damit sich die Kondensatorspannung beim abschalten des PIC über den Widerstand gegen Masse entladen kann.

Oder ist das Problem viel trivialer??

Danke im voraus

Atmelbeginne
10.12.2008, 15:58
Kann man eigendlich den Hardware Stack per Laufzeit auf 0 zurücksetzen.

Dadurch könnte ich den Chip reinitialisieren

askazo
10.12.2008, 16:09
Eigentlich sollte der µC beim starten einen ordentlichen Reset machen.
Dazu beschaltet man den Reset-Pin normalerweise mit einem RC-Glied oder einem Reset-Controller. Hast Du sowas bei Dir gemacht?

Gruß,
askazo

Atmelbeginne
10.12.2008, 19:37
Nein, den Pin habe ich mit einem Pull-up R belegt