Forum: Mikrocontroller und Digitale Elektronik Widerstände für AVR Pin-Eingang


von #GAST# (Gast)


Lesenswert?

Guten Morgen,

ich möchte meine an meinen AVR einen TAster anschließen und das ganze so 
Idiotensicher wiemöglich machen. Wenn ich nur einen Widerstand einbaue, 
kann der Controller ja gegrillt werden, wenn ich auf dem Pin 
versehentlich etwas ausgebe. Also baue ich zwischen GND und Schalter 
einen Widerstand ein und zwischen Schalter (andere Seite) und +5V.

Die Frage ist jetzt, wie ich die Widerstände dimensionieren muss.

Ich weiß, dass der AVR unter 0,2V sicher LO und über 4V sicher HI 
schaltet. Maximal dürfen beim AVR 40mA fließen.

R1 = 0,2V/0,04A = 5_OHM
R2 = 4V/0,04A = 100_OHM

das passt aber leider nicht mit dem Widerstandswert im Tutorial 
zusammen. Was ahbe ich falsch gemacht?

von PascalL (Gast)


Lesenswert?

Was heißt für dich "Idiotensicher" ?
Gegen Überspannung?

Der AVR Eingang hat einen so großen Innenwiderstand das kaum Strom in 
den
Eingang des AVR fließt.
Bei Überspannung-oder Unterspannungen fangen die Internen 
Begrenzungsdioden
zu leiten - wenn diese nicht geschützt werden gehen diese durch
Überstrom kaput.
Eine möglichkeit das zu verhindern wäre ein Reihenwiderstand der den 
Strom
so begrenzt das eine Überspannung am Eingang mit XX Volt den Eingang 
nicht
zerstört.

In deinen Fall kann da eigentlich nichts passieren, da der Taster
ander Betriebsspannung vom µC betrieben wird.

von #GAST# (Gast)


Lesenswert?

Ich meinte jetzt, dass der Port versehentlich auf Ausgang programmiert 
wird und +5V anliegen. Wird der Schalter dann geschlossen fließen die 5V 
direkt gegen Masse wobei der Strom so hoch wird, dass der µC gebraten 
wird. So stelle ich es mir zumindest vor. Oder ist das flasch?

von Grrr (Gast)


Lesenswert?

#GAST# schrieb:
> So stelle ich es mir zumindest vor. Oder ist das flasch?

Das ist ein bischen schwer zu beantworten, da wir die Asugangssituation 
nicht kennen.

Um was für einen Idioten handelt es sich denn? Wenn es z.B. so ein 
Programmieridiot, wie ich es bin, ist kann man sowas schonmal einbauen, 
aber so richtig kapurr habe ich auch ohnedies keinen AVR bekommen. Beim 
Testen merkt man ja gleich, das was nicht geht.

Im Endprodukt hat der Idiot Kunde ja garkeinen physischen Zugriff auf 
den Port oder das Programm. Da brauchts also keine "Angstwiderstände".

Ein Experimenteller idiotischer Programmierer wird vielleicht für sowas 
danbar sein. Vielleicht.

von Peter D. (peda)


Lesenswert?

Nimm als Schutzwiderstand 1k.

Das ist klein genug, um mit dem Taster den internen Pullup noch sicher 
auf low zu ziehen.


Peter

von Grrr (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Nimm als Schutzwiderstand 1k

Auch ne gute Variante.

von #GAST# (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe jetzt die Frage jetzt nochmal in ein Bild gefasst. Das ganze 
willich so absichern, dass ICH als Programmierer nichts kaputt mache, 
wenn ich den Schalter schließe und auf dem PIN 5V ausgebe.

von Karl H. (kbuchegg)


Lesenswert?

#GAST# schrieb:
> Ich habe jetzt die Frage jetzt nochmal in ein Bild gefasst. Das ganze
> willich so absichern, dass ICH als Programmierer nichts kaputt mache,
> wenn ich den Schalter schließe und auf dem PIN 5V ausgebe.

Im Grunde hast du schon recht.
Aber: Ganz so schlimm ist die Sache dann auch wieder nicht.
Wenn du einen Pin versehentlich auf Ausgang schaltest UND den Pin auch 
noch auf High ziehst UND da einen Taster nach Masse dran hast UND dieser 
Taster dann auch noch gedrückt wird DANN geht der Ausgangstreiber nicht 
gleich kaputt.
Ein bischen was halten die Dinger schon aus. So ist das dann auch wieder 
nicht.

Das soll jetzt natürlich kein Freibrief sein nur Unsinn zu machen. Aber 
es ist auch nicht so, dass bei so einem verständlichen Fehler sofort der 
Chip durchbrennt.

Dein R2 ist in den µC eingebaut, nennt sich Pullup Widerstand und ist 
per Software zuschaltbar. Den R1 kann man verbauen, ein Wert von ca. 1k, 
wie PeDa schon sagte, ist angemessen.
Du kannst ihn, und das ist eigentlich der Normalfall, aber auch 
weglassen und dafür ein wenig Sorgfalt beim Programmieren walten lassen. 
Und wenn du tatsächlich einmal den angesprochenen Fehler machst, dann 
merkst du das ziemlich schnell weil dein Programm nicht funktioniert. 
Dann korrigierst du den Fehler und stellst fest: der µC hat ihn 
überlebt.

von Thomas B. (escamoteur)


Lesenswert?

Und wieso schließt Du den Taster nicht einfach gegen Vcc an und machst 
einen Pulldown (100k) an den Eingang des µC? Dann musst Du Dir darüber 
eigentlicg keine Sorgen machen oder sehe ich das jetzt falsch?

Gruß
Tom

von Karl H. (kbuchegg)


Lesenswert?

Thomas Burkhart schrieb:

> eigentlicg keine Sorgen machen oder sehe ich das jetzt falsch?

Das siehst du falsch
Das 'Problem' besteht dann immer noch:
Pin auf Ausgang und den Pin auf 0 programmieren -> der Taster stellt 
zumindest im Prinzip einen Kurzschluss von Vcc zu GND dar.

von Peter (Gast)


Lesenswert?

Thomas Burkhart schrieb:
> oder sehe ich das jetzt falsch?

ja, denn ein µC kann auch auf GND schalten, damit hast du wieder ein 
Kurzschluss zwischen + und GND

von ... .. (docean) Benutzerseite


Lesenswert?

und wenn er dann den Pin auf Ausgang und 0 schaltet ;)

von Peter D. (peda)


Lesenswert?

Thomas Burkhart schrieb:
> Und wieso schließt Du den Taster nicht einfach gegen Vcc an und machst
> einen Pulldown (100k) an den Eingang des µC? Dann musst Du Dir darüber
> eigentlicg keine Sorgen machen oder sehe ich das jetzt falsch?

Ja.
Dann ist die Gefahr sogar noch größer. Es reicht für den Kurzschluß den 
Pin als Ausgang zu setzen, man muß ihn nicht auch noch auf high setzen.


Peter

von #GAST# (Gast)


Lesenswert?

@Karl heinz Buchegger: Danke, habe ich jetzt schonmehr verstanden. Wenn 
R2 aber so wieso eingebaut ist, warum ist er dann im Tutorial 
beschreiben, wie man Taster anschließt?

Aber gut, wenn es auch so geht, werde ich es so probieren. Wie müsste 
ich denn dann die Wiederstände berechnen?

von Karl H. (kbuchegg)


Lesenswert?

#GAST# schrieb:
> @Karl heinz Buchegger: Danke, habe ich jetzt schonmehr verstanden. Wenn
> R2 aber so wieso eingebaut ist, warum ist er dann im Tutorial
> beschreiben, wie man Taster anschließt?

Du meinst den Pullup Widerstand.
Der ist da deswegen drinn, damit man am Anfang den Lernenden nicht 
gleich mit Unmengen an Information überfallen muss, damit er sein erstes 
Programm schreiben kann. Wenn du im Tut ein wenig nach unten scrollst, 
kommst du zu einem Abschnitt, in dem es um die eingebauten Pullup 
Widerstände geht. Dort wird die Schaltung dann auch korrigiert und der 
Widerstand rausgeworfen.

> Aber gut, wenn es auch so geht, werde ich es so probieren. Wie müsste
> ich denn dann die Wiederstände berechnen?

Diese Widerstände berechnet man eigentlich nicht wirklich. Da nimmt man 
Standard-Werte.
Aber im Grunde: Du kennst die Spannung. Du legst fest wieviel Strom bei 
dieser Spannungsdifferenz fliessen soll. Mittels R = U / I 
dimensionierst du den Widerstand, wobei man beim Strom nicht an die 
Grenzwerte rangeht.

von Albrecht H. (alieninside)


Lesenswert?

#GAST# schrieb:
> ...
> Ich weiß, dass der AVR unter 0,2V sicher LO und über 4V sicher HI
> schaltet. Maximal dürfen beim AVR 40mA fließen.

Wäre natürlich toll gewesen, wenn du auch noch geschrieben hättest um 
welchen "AVR" es sich denn nun genau handelt, es wird ja wohl kaum bei 
allen AVRs alles und für alle Zeiten gleich bleiben.

Im Datenblatt des ATmega644 steht z.B. auch was von 40mA, das liest sich 
da aber so als ob das der Strom wäre, bei dem der Pin gerade noch nicht 
kaputt geht, außerdem gilt das nur für einen bis maximal zwei Pins, da 
steht nämlich weiter, dass der Strom für bestimmte Pingruppen also z.B. 
PB0-PB7, 100mA nicht überschreiten soll, aber das heißt dann immer noch 
nicht das man alle Pingruppen mit 100mA betreiben darf, weil da auch 
noch steht, dass der Strom über die Vcc und GND Pins maximal 200mA 
betragen darf.

Also wenn man alle 32 Standard I/O-Pins des ATmega644 versehentlich als 
Ausgang gegen GND schalten würde, wäre man erst dann auf der sicheren 
Seite, wenn man dafür sorgt, dass der Strom durch jeden einzelnen Pin 
auf max. 6,25 mA begrenzt wird:

5V / 6,25 mA = 800 Ohm

Da ist man mit 1K-Ohm doch nicht schlecht bedient.
5V / 1000 Ohm = 5mA



>
> R1 = 0,2V/0,04A = 5_OHM

Schon klar 0,2V , da steht aber nichts davon, dass dabei auch 40mA 
fließen müssen, wenn die 0,2V anliegen, das dürfen sie höchstens, durch 
maximal zwei Pins, im Extremfall.

> R2 = 4V/0,04A = 100_OHM

ebenso.



>
> das passt aber leider nicht mit dem Widerstandswert im Tutorial
> zusammen. Was ahbe ich falsch gemacht?

Du berücksichtigst nicht den Innenwiderstand der einzelnen 
AVR-Baugruppen und und den Umstand das diese fast nur aus 
spannungsgesteuerten Bauteilen bestehen.

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.