Forum: Mikrocontroller und Digitale Elektronik Störende Pullups während Reset


von Thomas (kosmos)


Angehängte Dateien:

Lesenswert?

Hallo, ich habe mal eine Frage bezüglich der Pullupwiderstände die ja 
aktiv sind wenn der AVR (ATM16) im Reset gehalten wird.

Ich habe vor, an einem Ausgang einen Optokoppler dranzuhängen der 
wiederum einen FET ansteuert, da der FET den Transistor des Optokoppler 
ja kaum belastet habe ich etwas bedenken das der Optokoppler während 
eines Resets aufgrund des Pullupstroms schon durchsteuert.

Ist meine Befürchtung begründet? Wenn ja wie könnte man das auf einfache 
Weise verhindern?

Pullup durch Pulldown (Spannungsteiler) soweit belasten das die 
Spannnung gegen Null geht oder einfach den Widerstand für die 
Optokoppler LED weiter erhöhen.

Auf den Schaltplan habe ich jetzt mal verzichtet.
ATMega16 mit 5V VCC
LED im Optokoppler 1,2V/20mA
5-1,2=3,8V benötigter Spannungsabfall
3,8 / 0,02A = 190 Ohm

ich werde 220 Ohm verbauen

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Thomas O. schrieb:
> Hallo, ich habe mal eine Frage bezüglich der Pullupwiderstände die ja
> aktiv sind wenn der AVR (ATM16) im Reset gehalten wird.

Sie sind aber während Reset gar nicht aktiv.
Zitat aus dem Datenblatt Mega16 (06/08 Seite 50)
> The port pins are tri-stated when a reset condition becomes
> active, even if no clocks are running.

von Max H. (hartl192)


Lesenswert?

Thomas O. schrieb:
> Ist meine Befürchtung begründet?
Nein, siehe oben.
>Wenn ja wie könnte man das auf einfache
> Weise verhindern?
Die Optokoppler LED zwischen Pin und Vdd schalten.

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Thomas O. schrieb:

> Hallo, ich habe mal eine Frage bezüglich der Pullupwiderstände die ja
> aktiv sind wenn der AVR (ATM16) im Reset gehalten wird.

Nein, das werden sie nicht. Wenn Reset, dann IO-Pins hochohmig. Das 
steht im Datenblatt, man muß es nur mal lesen...

> Ich habe vor, an einem Ausgang einen Optokoppler dranzuhängen der
> wiederum einen FET ansteuert

Dann brauchst du bezüglich des Reset überhaupt nix unternehmen. Einfach 
nur den passenden Widerstand, um den Strom durch die LED im normalen 
Betrieb zu begrenzen, genügt völlig.

Etwas anders sieht das bei direkter Ansteuerung eines FET aus. Da ist 
dann ein Pulldown nötig. Aber nicht etwa, um den Strom eines Pullup 
abzuleiten, sondern um den bei hochohmigem Ausgang sonst floatenden 
Pegel auf ein wohldefiniertes Niveau zu bringen.

Dasselbe ist aber auch "hinter" einem Optokoppler nötig. Je nachdem, ob 
der invertierend oder nichtinvertierend benutzt wird, ist für die 
Ansteuerung eines FET immer ein Widerstand nach VCC bzw. GND nötig, um 
immer für einen definierten Pegel im Fall "LED dunkel" zu sorgen. Dann 
ist nämlich der Transistor im Optokoppler auch hochohmig und somit ohne 
Widerstand der Pegel undefiniert.

von Thomas (kosmos)


Angehängte Dateien:

Lesenswert?

ich verwende die Fuses mit der 64 mSek Verzögerung und da dauert es dann 
etwas bis ich im Programm PUD setzen kann.

LED zw. VDD und Portpin: Mich stört dieses invertierte Verhalten. Gerade 
wenn man nach längerer Zeit wieder einen Quelltext hernimmt, möchte ich 
mit einer 1 einen aktiven Aktor erkennen/darstellen ohne erstmal groß zu 
schauen wie rum war das angeklemmt.

von Max H. (hartl192)


Lesenswert?

Thomas O. schrieb:
> ich verwende die Fuses mit der 64 mSek Verzögerung und da dauert
> es dann
> etwas bis ich im Programm PUD setzen kann.
http://www.atmel.com/Images/doc2466.pdf
-  Seite 67:
Die Pullups sind nach dem Reset sowieso aus, die PORTx und DDRx Register 
sind nach dem Reset beide 0x00.
- Seite 50:
>> The port pins are tri-stated when a reset condition becomes
>> active, even if no clocks are running.
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           Also auch schon bevor der Oszillator überhaupt startet.

Das hat Atmel auch verstanden, dass es blöd wäre, wenn die IOs nach dem 
Reset aktivierte Pullups hätten.

> LED zw. VDD und Portpin: Mich stört dieses invertierte Verhalten. Gerade
> wenn man nach längerer Zeit wieder einen Quelltext hernimmt, möchte ich
> mit einer 1 einen aktiven Aktor erkennen/darstellen ohne erstmal groß zu
> schauen wie rum war das angeklemmt.
Dafür sind Kommentare da.

: Bearbeitet durch User
von Thomas (kosmos)


Lesenswert?

ok, also danke nochmals an alle. Werde das ganze jetzt mal aufbauen.

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
Noch kein Account? Hier anmelden.