Hallo Leute,
habe vor kurzem für einen Bekannten eine Art Zeitschaltuhr gebastelt,
beschrieben habe ich sie hier:
http://www.jb-electronics.de/html/elektronik/digital/d_zeitschaltuhr.htm
Neuerdings funktioniert aber gar nichts mehr; nur noch die Doppelpunkte
leuchten konstant, und allem Anschein nach gibt der PIC kein
Lebenszeichen mehr von sich.
Habt ihr spontan eine Idee, woran es liegen kann?
Beste Grüße
Jens
>Habt ihr spontan eine Idee, woran es liegen kann?
Überspannung auf VCC bekommen. MCLR schliesst man auch
nicht einfach so an VCC an. Hab mal was von min. 100 Ohm gelesen.
Kann mich aber auch täuschen.
Also Überspannung würde ich ausschließen, da die 5V über einen
7805-Regler kommen. Und mit den MCLR, stimmt, sauberer ist es
wahrscheinlich über ein RC-Glied, aber ich hatte bisher mit der
verwendeten Verschaltung des MCLR noch nie Probleme.
Gruß
Jens
>Also Überspannung würde ich ausschließen, da die 5V über einen>7805-Regler kommen.
Ist der auch ordentlich abgeblockt. Vieleicht ist der Quarz
kaputt. Ist das Gerät mal runtergefallen?
>Jaja ;-) Das klappt manchmal, aber nicht immer anscheinend.
Wie, Stecker raus, rein, raus funktioniert manchmal?
Kalte Lötstelle suchen;)
Hallo,
ja der 7805 ist abgeblockt, brav 2x mit 100nF. ;-) Gut, obs
runtergefallen ist, weiß ich nicht, da musst du meinen Bekannten fragen
;-)
Gut, eine kalte Lötstelle, die kann natürlich überall liegen. Dem
widerspricht aber, dass das Modul zwei Wochen tadellos gelaufen ist, und
dann auf einmal nicht mehr. Gut, wenn es hingefallen ist, würde das die
gestörte Funktionalität natürlich erklären.
Gibt es sonst irgendwelche hardware- oder softwareseitigen
Problemstellen?
Gruß
Jens
holger schrieb:> MCLR schliesst man auch> nicht einfach so an VCC an. Hab mal was von min. 100 Ohm gelesen.
In dem vorliegenden Fall sollte man überhaupt keinen externen Reset
verwenden.
Der PIC 16F627A hat einen gut funktionierenden, internen Reset, den man
über __CONFIG aktivieren kann. Den /MCLR-Pin kann man dann entweder als
normalen I/O verwenden oder als Eingang initialisieren und auf Masse
legen.
Jötze
Wahrscheinlich ist der Prozessor in der Ärtzte-Gewerksschaft und streikt
deswegen.
Nee mal im Ernst: Wer die 5V über ein langes Kabel zur Schaltung führt
muß bestraft werden. Wenn der 7805 genauso schlecht abgeblockt ist (der
10uF sitzt Diagonal entfernt zum Prozessor) wie der Prozessor, dann
schwingt er gerade so fröhlich vor sich hin und schaltet abwechselnd 0V
und 24V auf den Prozessor.
Gruß Anja
>Gut, eine kalte Lötstelle, die kann natürlich überall liegen. Dem>widerspricht aber, dass das Modul zwei Wochen tadellos gelaufen ist,
Das gemeine an kalten Lötstellen ist ja gerade das sie sich
erst nach einiger Zeit und nur sporadisch bemerkbar machen.
Sammel das Gerät ein und schau mal rein.
>Wie, Stecker raus, rein, raus funktioniert manchmal?
Diese Frage hast du noch nicht beantwortet.
Und noch was:
ist der WDT aktiviert?
Bei einer Anwendung, die unbaufsichtigt längere Zeit alleine laufen soll
ist das Pflicht.
Dann besteht nämlich die Chance, dass ein Absturz durch ein
unvorhergesehenes Ereignis durch automatischen Neustart behoben wird.
Überprüfe einfach mal, wenn das nächste Mal die Anwendung einfriert, ob
Du sie durch ein LOW-HIGH-Puls an /MCLR wieder gestartet werden kann.
Ist dem so, dann hätte der WDT das für Dich erledigt.
Wenn nicht, dann ist der PIC im LatchUp und es irgendetwas schlimmeres
passiert.
Ansonsten einfach mal über "good practice" beim Programmieren nachlesen:
es gibt verschiedene Techniken, die Deine Anwendung fehlertoleranter
machen.
Jötze
Anja schrieb:> Nee mal im Ernst: Wer die 5V über ein langes Kabel zur Schaltung führt> muß bestraft werden. Wenn der 7805 genauso schlecht abgeblockt ist (der> 10uF sitzt Diagonal entfernt zum Prozessor) wie der Prozessor, dann> schwingt er gerade so fröhlich vor sich hin und schaltet abwechselnd 0V> und 24V auf den Prozessor.
Die 5V kommen nicht über das lange kabel, sondern die unregulierten 9V.
Der 7805 macht auf der Platine dann die 5V draus. Es stimmt, die Fotos
auf der HP erwecken den Eindruck, aber ich habe nachträglich noch den
Spannungsregler auf die Platine gesetzt.
holger schrieb:>>Wie, Stecker raus, rein, raus funktioniert manchmal?>> Diese Frage hast du noch nicht beantwortet.
Dann hol ich das jetzt nach: Ja, manchmal funktioniert es.
Jöt Ze schrieb:> Und noch was:> ist der WDT aktiviert?
Nein, damit habe ich noch nie gearbeitet. Ich frage mich auch, warum der
PIC sich einfach aufhängen soll, ich mache ja im Code nichts wirklich
Kritisches. Aber ich werde mir den Tipp merken.
Gruß
Jens
Wenn Du wie ausgeführt nicht mehr als 9Min:59s zählen willst und das
dann auch nur auf die Sekunde genau, dann gibt es keinen Grund einen
(potentiell unzuverlässigen) externen Quarztakt zu nutzen.
Nimm den internen 4MHz-Takt und initialisieren OSC1 und OSC2 als
Eingänge, dann auf Masse.
Wieder eine Maßnahme, um die Komplexität und damit die Unzuverlässigkeit
zu minimieren.
Meines Erachtens wird der Spruch "simple is best" unter Ingenieuren
heutzutage zu wenig beachtet ...
Jötze
Jöt Ze schrieb:> Wenn Du wie ausgeführt nicht mehr als 9Min:59s zählen willst und das> dann auch nur auf die Sekunde genau, dann gibt es keinen Grund einen> (potentiell unzuverlässigen) externen Quarztakt zu nutzen.
Gut, Punkt für dich. Ich finde den 4.194304MHz-Trick einfach zu schön
glaube ich :-)
Jöt Ze schrieb:> Meines Erachtens wird der Spruch "simple is best" unter Ingenieuren> heutzutage zu wenig beachtet ...
Naja, da ich kein Ingenieur bin, fühle ich mich davon mal nicht tangiert
;-)
Gruß
Jens
holger schrieb:>>Jaja ;-) Das klappt manchmal, aber nicht immer anscheinend.>> Wie, Stecker raus, rein, raus funktioniert manchmal?> Kalte Lötstelle suchen;)
Ist der Power-Up-Timer aktiviert?
Jötze
Jöt Ze schrieb:> Und noch was:> ist der WDT aktiviert?>> Bei einer Anwendung, die unbaufsichtigt längere Zeit alleine laufen soll> ist das Pflicht.
Nö.
In meinen privaten Anwendungen schalte ich grundsätzlich den Watchdog
aus und die laufen alle schon jahrelang.
O.k. das sind 8051 und AVRs. Ich vermute aber nicht, daß die PICs so
extrem unzuverlässig sind.
> Dann besteht nämlich die Chance, dass ein Absturz durch ein> unvorhergesehenes Ereignis durch automatischen Neustart behoben wird.
Der Watchdog wird gerne genommen, um Softwarefehler bei mit der heißen
Nadel gestrickten Programmen zu verschleiern.
Besser ist in jedem Fall, ordentlich zu programmieren.
Peter
Hi
>Der Watchdog wird gerne genommen, um Softwarefehler bei mit der heißen>Nadel gestrickten Programmen zu verschleiern.>Besser ist in jedem Fall, ordentlich zu programmieren.
Oder/und einen miesen Aufbau zu kaschieren. Ich habe in 12 Jahren mit
AVRs noch keinen Watchdog gebraucht.
MfG Spess
Ich bin der Bekannte.;)
Das Modul habe ich jetzt bei meinem "Kunden" abgebaut und hier an einem
Labornetzgerät angeschlossen...
Die neue Situation jetzt. Wenn ich eine Spannung von 6 -7 Volt an das
Modul anlege, arbeitet die Schaltung. Erhöhe ich auf > 8 Volt bis zu den
knapp 10 Voolt, die von dem Steckernetzteil geliefert werden, dann geht
die Anzeuge nicht.
Und nein. Das Ding ist nicht runtergefallen.;) Das ist in einem Studio
eingebaut, die Anschlussleitung durch eine Durchführung des Tisches nach
unten geführt.
Kann so nirgendwo hinfallen.!
--
Rüdiger
>Erhöhe ich auf > 8 Volt bis zu den>knapp 10 Voolt, die von dem Steckernetzteil geliefert werden, dann geht>die Anzeuge nicht.
Dann wird wohl der Spannungsregler zu warm. Zieht ja auch ein bisschen
Strom
das Teil. Dauert es ein wenig bis die Anzeige aussteigt?
>Nein, das geht bis auf den Doppelpunkt garnicht erst an.
Miss mal die Spannung hinter dem 7805. LEDs mit Vorwiderstand
leuchten ja auch bei weniger als 5V.
Der Regler braucht ja wohl knapp 1,5 Volt. Wenn die Spannung hinter dem
Regler unter 5 Volt fällt, geht die Schaltung. Wenn auch recht dunkel.
Bei über 5 Volt geht nur der Doppelpunkt.
>Bei >= 7 Volt sind es hinter dem Regler 5,09 Volt...
Häng mal ein Oszi dran. Da sieht die Welt manchmal ganz anders
aus als mit dem Multimeter gemessen.
Wird der 7805 heiss? Wird der PIC heiss?
Ansonsten alles mal nachlöten. Gute Nacht.
Dann könnte es höchstens sein, dass da - wie schon erwähnt - irgendwas
schwingt. Hmm, aber warum, das ist die große Frage.
Wie groß ist die Spannung hinterm Regler auf deinem Multimeter, wenn das
Display nichts mehr anzeigt?
Gruß
Jens
Ist ja irgendwie ein dynamischer Vorgang.
Sobald da hinterm Regler die 5 Volt überschritten werden, (die paar mV)
dann bleibt die Anzeige weg.
Schweint auch irgendwie zufällig zu sein. Eben waren nur 2 der 3
Anzeigen an.
Unbeabsichtigt können da keine Interrupts ausgelöst werden, die muss man
erst separat aktivieren per Register.
ich hatte die Schaltung hier am Schreibtisch ne ganze Nacht lang laufen,
und keine Probleme. Ich verstehe es nicht...
Eine ganze Nacht ist ja jetzt nicht grad der Langzeittest schlecht hin,
vor allem nicht wenn man das ganze dann noch an einen weiter oben
erwähnten "Kunden" gibt sollte man evtl ein wenig länger testen...
Rüdiger schrieb:> Die neue Situation jetzt. Wenn ich eine Spannung von 6 -7 Volt an das> Modul anlege, arbeitet die Schaltung. Erhöhe ich auf > 8 Volt bis zu den> knapp 10 Voolt, die von dem Steckernetzteil geliefert werden, dann geht> die Anzeuge nicht.
Die Spannungregelung stinkt.
Eigentlich sollte ein 7805 bei 6V nicht funktionieren.
Der erlaubte Bereich liegt bei 7-35V, 9V ist ziemlich gut.
Wenn du an der Eingangsspannung rumdrehst, darf sich die
Ausgangsspannung nicht nennenswert ändern.
Wichtig : löte die 2 obligatorischen Kondensatoren ganz nah an den 7805.
Leider kann ich deine Platine nicht "lesen", der Aufbau mit den DIL ICs
auf der Lötseite ist reichlich merkwürdig.
Gibt es ein aktuelles Foto, mit dem Spannungsregler ?
Also ich würde auch auf einen Fehler in der Spannunngsversorgung tippen.
Misst du die Spannung direkt an den Pins des PIC oder am Ausgang des
Spannungsreglers? Eventuell hast du ja die Spannungsversorgung des PICs
am Eingang des Spannungsreglers angelötet und nicht am Ausgang (kann
schon mal passieren) oder Es ist eine Brücke zwischen IN und OUT. Der
PIC verträgt nur maximal 7V. Kann aber durchaus sein, dass er bei 9V 2
Wochen durchhält, bevor er anfängt rumzuspinnen.
stepp64 schrieb:> Der> PIC verträgt nur maximal 7V. Kann aber durchaus sein, dass er bei 9V 2> Wochen durchhält, bevor er anfängt rumzuspinnen.
In meinem Datenblatt steht :
Absolute Maximum Ratings(†)
Voltage on VDD with respect to VSS........ -0.3 to +6.5V
Weiter unten :
VDD Supply Voltage PIC16LF627A/628A/648A ... 2.0 — 5.5V
Wenn die Spannung deutlich unter 5V ist, schafft er nicht die vollen 20
Mhz.
Ein Vorschlag für Jens / Rüdiger:
Wennn du an die 5V einen Lautsprecher mit einem Vorwiderstand im KiloOhm
Bereich anschliesst, hörst die vielleicht den Spannungsregler schwingen.
(Notlösung, wenn kein Oszi vorhanden).
Ansonsten geht auch ein Soundkarten-Oszi, naturlich AC gekoppelt mit
einem kleinen Kondensator.
Also die Spannung ist schon hinter dem Regler zum PIC geführt. Kann die
5 Volt da ja auch messen.
Ih hab mal mit einem Signalverfolger die Spannung abgehört.;) Da kommt
nur bei Kontaktierung ein knack aus dem Lautsprecher. Wenn da was
schwingt, dann nicht im Audiobereich...
Die Spannung an Pin4 + 14 ist 5,09 Volt.
>Die Spannung an Pin4 + 14 ist 5,09 Volt.
Ich hoffe du meinst Pin5 + 14. Brat über diese beiden Pins
mal ganz dicht einen 100n dran. Und mit dicht meine ich nicht
3cm. Die Anzeige wird ja gemultiplext und der Strom durch die LEDs
wird größer je höher VCC ist. Irgendwann ist dann evtl. der Punkt
erreicht wo die Störungen für den PIC zu groß sind.
Hab den 100n drin. Da 4 und 14 genau gegenüber liegen, musste der über
den PIC drüber stehen. Aber, das hat nichts geändert. Nachwievor, sobald
am Pin 14 die Spannung 5 Volt erreicht, ist die Funktion nach dem
Einschalten weg.
Komischerweise, wenn das Modul mit 4,5 Volt am Pic gestartet wird, kann
danach auch auf 5 Volt hochgeregelt werden. Dann passiert nichts.
Also. Hab jetzt die Zuführung zum Pin 14 jetzt auf direktem Weg zum
Regler geführt. Das hat dann mit einem Elko drüber den Effekt, das nach
dem zweiten
Spannung anlegen, das Modul geht. Auch mit höherer Spannung. komisch
nur, das das erste Anlegen der Spannung nicht geht. Er wenn ich kurz die
Spannung wegnehme und wieder anschliesse, da geht es. Light evtl. an
dem Elko, das der noch Restspannung hat..?
Inwiefern hast du da den Elko reingeschaltet?
_____________
Ich weiß nicht mehr, wie genau ich die Spannungsversorgung zum PIC
gelegt habe. Es kann sein, dass diese Verlegung nicht gerade optimal
war, und sie irgendwie was vom Muxen abbekommt. Versuche mal, die
Leitung ganz bewusst außen herum zu führen, das bringt vielleicht was.
Ansonsten mal mit dem Oszi schauen, ob was in der Versorgung schwingt.
Gruß
Jens
Über dem PIC Pins VCC und Ground liegt der 100n. Das hat nichts
geändert. Aber 220 uf Elko parallel darüber und! die direkte Verlegung
vom 7805 zu VCC des PIC. Jetzt geht es wie oben beschrieben. Aber
befriedigend ist das nicht, weil nicht 100% zuverässig. Und das geht in
so einer Umgebung nicht.
Peter Dannegger schrieb:> Der Watchdog wird gerne genommen, um Softwarefehler bei mit der heißen> Nadel gestrickten Programmen zu verschleiern.> Besser ist in jedem Fall, ordentlich zu programmieren.>>> Peter
Hä?
Was hat denn das Eine mit dem Anderen zu tun?
Natürlich soll man ordentlich programmieren, und danach ordentlich
testen, und das alles ohne Watchdog.
Und dann, ganz am Ende, wird der Watchdog eingeschaltet.
Dann wird nichts "verschleiert", sondern Du gibst der Anwendung die
Möglichkeit, nach UNVORHERGESEHENEN Ereignissen wieder neu zu starten
oder in einen sicheren Zustand zu gehen (nach jedem Reset den Resetgrund
abfragen und nach einem Watchdog-Reset evtl. in sicherem Zustand eine
Fehlermeldung abgeben.
Gruß,
Jötze
Ohforf Sake schrieb:> Flash mal neu mit> __CONFIG(0x3F62);> d.h.> PWRT einschalten, damit startet der PIC zuverlässiger.> BODEN einschalten, kann nicht schaden.
Genau das hab' ich auch schon geschrieben - fürchte aber, dass der
Kollege das immer noch nicht gemacht hat.
Es ist nämlich gut möglich, dass der Power-Up-Reset unsauber
funktioniert, weil der Quarz nicht richtig angeschwungen ist oder beim
ersten Aufleuchten der 7-Segmenter ein Brown-Out passiert ...
Also los - das ist wirklich gleich gemacht.
Bei der Gelegenheit bitte auch mal bestätigen, ob der unnötige externe
Reset immer noch verwendet wird.
Jötze
Ich werde es einprogrammieren; mal sehen, ob es was bringt. Problem ist,
dass Rüdiger die Schaltung bei sich hat, und ich mein Programmiergerät
hier. Aber das wird sich regeln lassen denke ich.
Wir melden nachher, ob es was gebracht hat.
Gruß
Jens
Habe jetzt mit
__CONFIG(0x3F62);
neu programmiert, den Chip schicke ich morgen los, hoffentlich bringt es
was.
Die Reset-Konfiguration hab ich erstmal so gelassen, da dazu auch was an
der Platine geändert werden müsste. Mal sehen, vielleicht klappt es ja
schon so.
Danke für den Tip, es schein fürs erste zu funktionieren. Woran hat's
gelegen? So wie ich das verstanden habe, hat der PIC am Anfang keine
stabilen Bedingungen zum Starten gehabt, weil die 7-Segment-Anzeigen die
Spannung zum Einbruch gebracht haben?
Gruß
Jens
guten tach,
ich glaube der spannungsregler hat das problem gemacht, es kommt nämlich
auch darauf an ,was für ein Netzteil verwendet wird also ob es nur eine
pulsierende gleichspannung ausgibt und so weiter .
Aber so wie verstanden habe hast Du das ja mit dem Elko hinbekommen!
denn man merke sich nur 100 nf und irgendetwas mit langen Leitungen am
Regler ist immer schlecht vor allem bei sp viel Leistungsabfrage!!