Ich habe gerade ein sehr merkwürdiges Problem: Ein Tiny 12 wird mit Brownout 2.7 Volt betrieben. Zum Ausschalten der Schaltung wird ein Pin auf Low gelegt, womit dann ein Transistor die Stromversorgung abklemmt. Der Tiny zieht sich sozusagen den Boden unter den Füßen weg. Ist sozusagen eine Selbsthaltung - der Chip sorgt selber dafür, dass die Versorgungsspannung da bleibt oder er sie sich entzieht. Über einen 1000uF Kondensator und bei eingeschalteter LED als Last dauert das dann ca. 0.5 Sekunden. Meist klappt das gut. Manchmal aber scheint der Prozessor bei 2.7 Volt zwar einen Brownout-Reset zu machen, dann aber doch wieder für einen ganz kurzen Moment durchzustarten. Dann wird im Programm sofort wieder der "Selbsterhaltungspin" auf High gezogen, womit dann die Schaltung wieder eingeschaltet ist. Die einzige Erklärung, die ich dafür habe: Beim Übergang in den Reset werden nicht erwartungsgemäß alle Pins sofort eindeutig auf hochohmig gelegt, sondern kurzzeitig gibt es einen High-Pegel am "Selbsterhaltungspin". Hat jemand mal so einen Effekt bei AVR-Controllern entdeckt, dass die beim Übergang in den Reset noch ganz kurz irgendwelche unklaren Pegel auf den IO-Pins ausgeben?
Wie sieht Deine Schaltung genau aus? Das Problem wird auch sein, daß ein ausgeschalteter Controller weniger Strom braucht, als ein eingeschalteter, wodurch sich der Elko nochmal etwas aufrappelt, den Controller erneut startet, wodurch dieser die Portpins neu setzt. Bei einem Reset hingegen werden alle Portpins sofort und ohne Widerrede hochohmig, darauf kannst Du Dich ruhig verlassen. Vielleicht hilft noch ein zusätzlicher Widerstand an der richtigen Stelle, aber dafür müßte man die Schaltung sehen.
Wie wäre es im angestrebten fall einfach alle pins tristate zu setzen? und die selbsthaltung im eingeschalteten fall lowaktiv zu gestalten. Ein externes "R ca 100 kOhm - 1MOhm" sollte als Pullup dienen um den Schalter FET sicher in Ausstellung zu halten.
warum lässt du den sebsterhaltungspin nach dem reset nicht einfach für 10-100ms aus und schaltest erst dann auf an ? dann wäre sichergestellt das die spannung erst noch weiter abfällt bevor du die selbsterhaltung reaktivierst ;) ich nehme mal an, das du über einen zum transistor parallel geschalteten taster startest. Dann ist es dann ja nicht wirklich kritisch, wie lange du drücken musst..je nach gerät kanst du damit auch ne schöne "Ich-geh-nur-an-wenn-du-lange-drückst" realisieren, was einem unbeabsichtigten einschalten entgegenwirkt :) Gruß, Marc
Danke für die Lösungsvorschläge. @Travel Rec.: Der Transistor in der Plusleitung ist schon off. Dann wird der Tiny12 nur noch über den 1000uF gespeißt. Der Tiny hält an einem Port noch eine Leitung auf Low, an der eine LED hängt. Zum entladen des Elkos. In dem Moment, wo der Brownout zuschlägt, ist in der Tat ein abrupte Stromreduzierung von 10mA auf nahezu 0. Aber es gibt ja nichts, wo der Elko nachgespeißt werden könnte. Die Leitung vom Elko zum Controller ist auch niederohmig genug, da können keine Sprünge von über 50mV entstehen, was die Hysteres des Brownout ist. Die Aussage, dass ich mich auf die Hochohmigkeit der Ausgänge verlassen kann, hilft mir schonmal weiter. Ich werde das jetzt nochmal durchmessen. @Winne: Wäre eine Möglichkeit, die ich mal ausprobieren kann. Der NPN, der da geschaltet wird, hat einen 100K von der Basis nach GND, Tristate würd also gehen. Eingeschaltet würde ich dann aber auf High lassen und ausschalten auf Tristate setzen. Trotzdem interessiert mich natürlich brennend, wie der merkwürdige Effekt zustande kommt. @Marc: So ähnlich mache ich es jetzt. Nach dem Einschalten wird erstmal, ob auch der Einschalttaster für mindestens 1ms durchweg gedrückt ist. Erst dann starte ich durch. Dies scheint gut zu funktionieren, technisch gelöst ist es also, frage mich nur noch, wie das Phänomen zustande kam.
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.