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?
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.
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?
#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.
Nimm als Schutzwiderstand 1k. Das ist klein genug, um mit dem Taster den internen Pullup noch sicher auf low zu ziehen. Peter
Peter Dannegger schrieb:
> Nimm als Schutzwiderstand 1k
Auch ne gute Variante.
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.
#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.
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
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.
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
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
@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?
#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.
#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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.