www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tiny 12: Portbedingungen beim Übergang in Reset


Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: winne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Marc S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.