Hallo Leute, habe eine kleine Uhr gebaut mit 10LEDs und zwei CD4094-Registern, Herz der Schaltung ist der PIC16F627A. Die Helligkeit der LEDs kann über ein Poti eingestellt werden, die Uhrzeit wird über den Taster eingestellt. Die Uhr hat zudem 3 x 1.5V AAA Batterien eingebaut, die bei Ausfall der Hauptspannungsversorgung (Steckernetzteil) über ein Relais automatisch zugeschaltet werden. Nun erkennt die Software automatisch, wenn an RA2 kein Saft mehr anliegt (denn genau dann ist ja die Primärversorgung aus), und schaltet dann das PWM aus und den PIC in den Sleep-Mode. Über Timer1 wird der PIC alle 2s geweckt, und wenn immer noch kein Saft da ist, geht er wieder schlafen. Aber: Die Schaltung zieht im Sleep-Mode immer noch so um die 20mA, gemessen an der markierten Stelle. Aber so viel kann das doch nicht sein. Wo kommt das her? Alle LEDs sind ausgeschaltet, ENABLE ist auf 0, und die CMOS ICs bekommen sogar gar keinen Strom mehr ab. Ich hoffe, ihr könnt mir helfen, den Stromfresser zu finden. Beste Grüße Jens
Im Batt. Betrieb sind IC2, IC3 und IC4 ohne Versorgungsspannung, dennoch hängen Ausagänge des PICs an deren Eingängen, korrekt? Schalte die mal auf GND Pegel und messe dann.
Hallo Jan, danke für den Tip. Ich hätte erwähnen sollen, dass beim Schlafengehen PWM ausgeschaltet wird, sowie alle Outputs auf 0 gesetzt werden. Mache ich also schon. Ist es unsauber, die CMOS-ICs und den ADC per Diode so vom Saft abzuschneiden? Fließt da vielleicht was gerade deswegen? Gruß Jens
Nö, der hängt ja vor der Diode. Habe nochmal genau nachgeguckt und das Problem glaube ich gefunden, war softwaretechnisch (habe das PWM-Modul immer wieder eingeschaltet bei ISR-Aufruf, blöd, ich weiß ;-)). Nun liegt der Ruhestrom bei 40uA, und bei ISR-Aufruf kurzzeitig bei etwa 0.7mA. Ist immer noch ein bisschen viel, oder ist das normal? Gruß Jens
Jens schrieb: > Nun liegt der Ruhestrom bei 40uA, und bei ISR-Aufruf kurzzeitig bei etwa > 0.7mA. Ist immer noch ein bisschen viel, oder ist das normal? Klingt jetzt erst einmal normal, mit welcher Aufnahem bei gegebener Frequenz ist der PIC denn gemäß Datenblatt angegeben.
Datenblatt ist ein gutes Stichtwort - was Interrupts usw. angeht finde ich mich auch immer besser drin zu Recht, aber gerade was die elektrischen parameter angeht bin ich immer von der Flut der Zahlen erschlagen. Findet jemand die entsprechende Seite? Ich jabe nach "sleep" im PDF gesucht aber dazu keinen Strom gefunden, ich fühle mich gerade etwas blind. Gruß Jens
Habe die Software übrigens nochmals leicht korrigiert, und komme und auf 31uA im Sleep-Mode. Da kann man nicht meckern. Bei meinen verwendeten Batterien (http://www.reichelt.de/?ACTION=3;ARTICLE=100559;PROVID=2402) mit so ca. 900mAh (ist das realistisch? habe den kleinsten Wert für Alkali-Mangan-Batterien von Wikipedia genommen) wären das T = 900mAh / 30uA = 900mA / 0.031mA h = ca. 30000h > 3 Jahre ?! Das kann ja nicht. Was ist ne realistische zahl? Gruß Jens
Wozu ist das Relais da drin eigentlich gut? Mir scheint, die Schaltung würde ohne es exakt genauso funktionieren.
Ist nur da, damit die Batterien abgeklemmt sind, wenn keine Primärspannung da ist. Gruß Jens
Also wenn extern keine Spannung anliegt, dann ist die Batterie abgeklemmt. Und wenn eine dran ist, dann ist sie überflüssig. Hmm, seltsame Logik. Ausserdem ist das ein Öffner. Die Batterien sind abgeklemmt, wenn Primärspannung anliegt und angeklemmt wenn keine da ist. Was ja der Sinn einer Batteriepufferung ist. Nur wird dieser Job bereits von D1/D2 erledigt, ganz ohne Relais. Bei Primärspannung > Batteriespannung sperrt D2 und es fliesst kein Batteriestrom. Hängt mal die Relaisspule ab und probiers aus.
Und was ist wenn Versorgungsspannung da ist, die aber kleiner ist als die Batteriespannung? Dann fließt was aus den Batterien, obwohl es nicht sein muss. Aber nochmal zu den Zeiten: Stimmt die obige Berechnung mit den 3 Jahren grob? Gruß Jens
Jens schrieb: > Und was ist wenn Versorgungsspannung da ist, die aber kleiner ist als > die Batteriespannung? Dann fließt was aus den Batterien, obwohl es nicht > sein muss. Das ist doch genau das der Standby-Fall, der vom Controller erkannt werden soll und zum Stromsparmodus führt. Mit Relais kann dir hingegen ein Problem entstehen, dass es ohne nicht gibt: Wenn deine externe Versorgung auf z.B. 2V fällt und dabei bleibt. Relais bleibt an, Batterie aus, Controller verhungert. Ohne Relais: Controller kriegt Batteriestrom, erkennt Unterspannung und geht auf Standby.
Na das Relais würde dann aber auch ausgehen, ist ja für 4 bis 5V konzipiert. Aber OK, ich sehe es ein, eigentlich ist es sinnlos. Übrigens, es ist defintiv KEINE gute Idee bei solch einem Projekt das Brownout-Detect aktiviert zu haben.... Gruß Jens
Ach mann!! Das kann doch nicht sein! Ich habe die Uhr testweise mit Hauptversorgung laufen lassen (so ca. 10 Minuten), und dann mal die Versorgung abgeklemmt und mit Batterie weiterlaufen lassen. Und was passiert? Der PIC wird heiß!! Zu heiß zum Anfassen. Ich hab ihn natürlich erstmal rausgenommen und abkühlen lassen. Ich hab danach versucht, das Verhalten zu reproduzieren, aber erfolglos. Was ist da passiert?! Gruß Jens
Mal ins Blaue geraten, einer deiner Ausgänge war noch aktiv, und hat irgendwie eines der nicht versorgten ICs betrieben. In dem Fall kann, von einem Kurzschluss bis zu einem Diodeneffekt auf einen deiner anderen Ausgänge auf GND Pegel, alles mögliche passieren.
Jens schrieb: > Na das Relais würde dann aber auch ausgehen, ist ja für 4 bis 5V > konzipiert. Das Datasheet vom nächstbesten 5V Relais dokumentiert eine Haltespannung von gerade mal 0.75V (min).
A. K. schrieb: > eine Haltespannung > von gerade mal 0.75V (min). Ja, hat mein Reed-Relais auch. Aber meine externe Spannung kommt von einem geregelten 5V-Netzteil. Ich glaube als Fazit könnte mensch stehen lassen: Das Relais ist unnötig (ihr habt mich überzeugt), aber schaden tut es unter meinen Betriebsbedingungen nicht. Jan S. schrieb: > Mal ins Blaue geraten, einer deiner Ausgänge war noch aktiv, und hat > irgendwie eines der nicht versorgten ICs betrieben. In dem Fall kann, > von einem Kurzschluss bis zu einem Diodeneffekt auf einen deiner anderen > Ausgänge auf GND Pegel, alles mögliche passieren. Also die Ausgänge schalte ich definitiv ab vor dem SLEEP();. Zudem wird auch das PWM-Modul ausgeschaltet, und der korrespondierende Pin RB3 auch noch auf 0 gesetzt. Könnte es sein, dass die Eingänge da muchsen? Also die lieber auf TRISRXX = 0; und dann auf GND-Pegel legen? Ein bekannter von mir meinte, das könnte auch ein CMOS-Latching-Effekt sein.. na super, den bekomme ich ja nur weg durch "have you tried turning it on and off again" aber genau das soll ja bei mir gerade nicht gemacht werden... Bin über jede Idee / jeden Ratschlag dankbar. Beste Grüße Jens
Oder wäre es sinnvoller, die CMOS-ICs und den ADC am Saft zu lassen und die nur mit nichts zu füttern? Gruß Jens
Jens schrieb: > Ich glaube als Fazit könnte mensch stehen lassen: Das Relais ist unnötig > (ihr habt mich überzeugt), aber schaden tut es unter meinen > Betriebsbedingungen nicht. Doch - schluckt unnötig Platinenplatz, zieht Strom, ist Mechanik, muß bestückt werden und überhaupt...
Aber das ist doch erstmal egal jetzt, das dringendere Problem ist die Aufwärmung des PICs... Hat jemand Ideen dazu? Gruß Jens
Ein Latch-up, wenn du das meinst, kann auch durch eine statitsche Entladung ausgelöst werden. Wenn Du schon an deiner Schltung rumtatscht, dann erscheint mir das als Möglichkeit. ;-)
Ja, Latch-Up meinte ich, danke. Aber so sensitiv sind die Schaltungen doch nicht. Ich habe schon dutzende Platinen mit PIC & CD4094-Konstellation aufgebaut, nach dem selben Schema, nur ohne Batteriepuffer, und da ist sowas noch nie passiert. Es scheint irgendwie an dem Batterie-Modus zu liegen. Kann es sein, dass - obwohl alle Ausgänge ausgeschaltet sind - da trotzdem Kurzschlüsse durch die CD4094 oder TLC549 entstehen, die nicht am Saft hängen? Gruß Jens
Stromversorgung der 4094er an die gepufferte Versorgung hängen. Richtig angesteuert benötigen die keinen Strom (OE inaktiv). Dann kann es nicht passieren, dass sie auch nur kurzzeitig durch die Eingänge Strom ziehen und dadurch ggf. in den Latchup laufen. Wenn der TLC ebenfalls auf Standby betrieben werden kann, dann wäre das dort ebenfalls sinnvoll.
Jens schrieb: > ber so sensitiv sind die Schaltungen > doch nicht. Ich habe schon dutzende Platinen mit PIC & > CD4094-Konstellation aufgebaut, nach dem selben Schema, nur ohne > Batteriepuffer, und da ist sowas noch nie passiert. Ja nee is klar. > Es scheint irgendwie an dem Batterie-Modus zu liegen. Aha, woher weisst du das? > Kann es sein, dass - obwohl alle Ausgänge ausgeschaltet sind - da > trotzdem Kurzschlüsse durch die CD4094 oder TLC549 entstehen, die nicht > am Saft hängen? Öhm ohne Saft über Versorgung oder Eingang bzw Ausgang des PICs? Fällt dann wohl unter Perpetuum mobile. EDIT mir fällt gerade eine Möglichkiet ein ja, der Kurzschluss könne beim Abschalten der ICs entstehen, und dann nicht mehr kontrollierbar sein, da hast Du wohl recht. Eine einfache ösung wären Schutzwiderstände in den Leitungen.
Hallo, danke für eure Antworten. A. K. schrieb: > Stromversorgung der 4094er an die gepufferte Versorgung hängen. Richtig > angesteuert benötigen die keinen Strom (OE inaktiv). Dann kann es nicht > passieren, dass sie auch nur kurzzeitig durch die Eingänge Strom ziehen > und dadurch ggf. in den Latchup laufen. Na gut, dann hänge ich die noch davor. OE ist auf null, definitiv. Aber wozwischen sollen die CD4094 im Latchup denn den Kurzschluss auslösen? Da liegt ja nichts an? A. K. schrieb: > Wenn der TLC ebenfalls auf Standby betrieben werden kann, dann wäre das > dort ebenfalls sinnvoll. Das weiß ich nicht so recht, finde dazu im Datenblatt des TLC549 nichts. Kann mir jemand helfen? Jan S. schrieb: > Aha, woher weisst du das? Weil es immer dann diese Erwärmungen gab (bzw. sie dann starteten), wenn das Steckernetzteil nicht verbunden war, und die Uhr auf Batteriepuffer lief. Jan S. schrieb: > EDIT mir fällt gerade eine Möglichkiet ein ja, der Kurzschluss könne > beim Abschalten der ICs entstehen, und dann nicht mehr kontrollierbar > sein, da hast Du wohl recht. Eine einfache ösung wären Schutzwiderstände > in den Leitungen. Das verstehe ich nicht so ganz. Ich sehe das genau wie du (Perpetuum mobile). Aber was meinst du passiert beim Abschalten der ICs? Und wo würdest du die Schutzwiderstände hinpacken? Gruß Jens
Hallo Jens, wie A.K. schon schrieb die 4094 über OE in Standby schalten, sollten dann so gut wie keinen Strom ziehen. Den TLC würde ich komplett sparen... hat der PIC 16 keinen ADC bzw. nen Komarator? Siehe http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Analog-Digital-Wandlung_ohne_internen_ADC Oder PDF im Anhang. Gruß Steffen
Jens schrieb: > Aber was meinst du passiert beim Abschalten der ICs? Keine Ahnung, das ist es ja. ;-) Möglicherweise verhällt sich der eine oder andere Eingang dann wie ne simple Diode und leitet voll gegen Masse. Dadurch kann dein PIC Ausgang in einen Latch-up Zustand geraten. > Und wo würdest du die Schutzwiderstände hinpacken? In die Leitungen zwischen PIC und den restlichen ICs.
Steffen N. schrieb: > wie A.K. schon schrieb die 4094 über OE in Standby schalten, sollten > dann so gut wie keinen Strom ziehen. Hab ich gerade so verschaltet. Aber die Schaltung zieht jetzt 700uA im Standby! Das ist zu viel. Weiß auch nicht wo das herkommt.. Steffen N. schrieb: > Den TLC würde ich komplett > sparen... hat der PIC 16 keinen ADC bzw. nen Komarator? Also einen ADC hat der nicht, aber einen Komparator. Aber den zu verwenden ist jetzt nicht mehr so sinnvoll da die Platine quasi fertig ist. Jens
Jens schrieb: > Aber den zu > verwenden ist jetzt nicht mehr so sinnvoll Selbes Prinzip wie beim Relais, was nicht da ist kann auch keine Probleme verursachen!
Gut, das Relais werde ich rausnehmen. Ihr habt mich überzeugt ;-) Die CD4094 sind ja jetzt echt parallel zum PIC, und zusammen ziehen sie im Sleep-Mode 3uA, das ist weniger als ich zu hoffen wagte. Der TLC549 zieht allerdings satte 0.7mA... Also packe ich den lieber vor die Dioden an JP1, weil der ja sowieso nicht gebraucht wird im Sleep-Mode. Auch nicht so sauber, oder? Jens
Jens schrieb: > Der TLC549 zieht allerdings satte 0.7mA... Also packe ich den lieber vor > die Dioden an JP1, weil der ja sowieso nicht gebraucht wird im > Sleep-Mode. Mir erschließt sich nicht warum du den nicht ganz raus wirfst?
Na gut, über den Comparator-Trick, aber leider habe ich keinen Timer mehr übrig.. Jens
Na es wird doch wohl einen passenden PIC mit ADC geben oder nicht? Spart dir auf jeden fall ein unötiges Bauteil, du hast es bei Sleep besser unter Kontrolle (+ weniger Strom) und Leitungen + Software aufwand spart es außerdem.
Ja, sicherlich, aber das Teil ist ein Geburtstagsgeschenk und sollte morgen fertig sein ;-) Also gut, ich werde den ADC rausnehmen, und einen Taster zur Helligkeitseinstellung verwenden. Wäre sowieso nicht so bequem gewesen, weil es ein blöder Print-Poti von Piher war (10mm Durchmesser) und der mit dem Schraubendreher hätte betätigt werden müssen. Naja, ich melde mich wenn's Erfolgserlebnisse gibt, Jens
Denk aber daran die Taster gegen GND zu schalten und die internen Pullups zu verwenden, sonst wird das wieder nicht mit dem Stromsparen ;)
Nope, die kommen vor die Dioden, die sollen ja auch nur im aktiven Modus benutzt werden können. Um die Ports zu schützen kommt in die Zuleitung jeweils nich ne 1N4148. Gruß Jens
Wenn der Prozessor schläft, wird er die Taster schon nicht auswerten.
Aber wenn jemand während des Umschaltens drückt könnte es einen Latchup geben. Daher habe ich jetzt auch als "Current Sense"-Pin den RA5 genommen. Gruß Jens
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.