PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR Grundschaltung



der_eine
03.09.2007, 10:36
Im AVR-Einstieg leicht gemacht Artikel (https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht) steht in Bezug auf die Grundbeschaltung:

Der Widerstand in der Grundschaltung dient dazu, die Reset-Leitung konstant auf definiertem High-Pegel zu halten. Verbindet man diesen RESET-Pin später kurz mit GND (Masse), dann wird das Programm im Controller neu gestartet.
Kann mir das jemand erklären? Der Pin wäre doch auch ohne den Widerstand auf Highpegel?

franzl
03.09.2007, 10:43
Hi,
ja das ist richtig der Widerstand währe auch ohne Pull-up auf Highpegel wenn man ihn an +5V anschließt. Allerdings würde es dann beim Programmieren, wenn die Leitung auf GND gezogen wird zu einem Kurzschluss kommen. Der Pull-up verhindert dies, da an ihm die 5V abfallen wenn ein Reset ausgelöst wird. Egal ob beim Flashen oder beim drücken des Reset Tasters. Hoffe ich konnt den Sachverhalt so gut es geht erklären.
mfg franz

pctoaster
03.09.2007, 10:50
Es geht darum, den Pegel sicher auch H zu halten. Die interne Beschaltung ist zu hochohmig. Bei kleinsten Störungen (Funken ect.) würde ein Reset ausgelöst. Aus gleichem Grund sollte man auch parallel zur Resetleitung einen Kerko 100n zu GND schalten.
Auf der Atmel Seite gibt es ein ausführliches Doc zum Design einer Schaltung mit einem AVR. ( doc1619)

Gruß
pctoaster

MeckPommER
03.09.2007, 10:50
Mal so aus dem Kopf ... wenn ich mich nicht irre, gibts bei den Reset-Pin einen internen Pull-Up, der mit ca. 50k auf high zieht. Die Praxis soll aber gezeigt haben (kann ich aus eigener Erfahrung nicht bestätigen), das dies in einiges Fällen und Schaltungen nicht so ganz ausreicht und der Controller resettet.
Zu diesem Zweck dient ein externer Widerstand, der mit 10k-20k zusätzlich auf high zieht.

uwegw
03.09.2007, 11:00
Bei AVRs mit debugWire sollte man auf dem Kondensator verzichten, sonst kann man nicht debuggen. Der Kondensator ist auch eigentlich nicht nötig, wenn man die BOD aktiviert.

der_eine
03.09.2007, 11:50
Das mit dem Kurzschluss beim Reset klingt einleuchtend, aber das deckt sich nicht mit der Highpegelerklärung.


Es geht darum, den Pegel sicher auch H zu halten. Die interne Beschaltung ist zu hochohmig. Bei kleinsten Störungen (Funken ect.) würde ein Reset ausgelöst.

Ich verstehe es nicht. Wie meinst du das mit den Störungen genau? Was würde passieren?

pctoaster
03.09.2007, 12:44
Wenn sich durch Staubsauger, Kühlschränke und diversen Geräten Funken bilden, strahlen diese elektromagnetische Wellen aus, die in einem Leiter (also auch Leiterplatte, Zuleitungen ect.) Ströme induzieren können. Wenn dies zufälligerweise auf die Reset Leitung gelangen, wird eben in Reset ausgelöst. Gleiches gilt für Einstreungen über die Betreibsspannung.
Ich habe, im Gegensatz zu @franzl erklärt, warum überhaupt ein Widerstand statt nichts da hin muß. @franzl ging davon aus, daß Du Vcc direkt mit Reset verbinden wolltest.
Wenn man BOD aktiviert, hilft dies nur bei Störungen auf der Betriebspannung und auch nur, wenn diese Störungen -2,3 V nicht überschreiten.
Man legt Schaltungen immer für den worst case aus und nicht für eine klinisch reine EMV Umgebung.
Hier kann man nachschauen, wie es richtig bgemacht wird. Atmel schreibt so etwas nicht umsonst:
http://www.atmel.com/dyn/resources/prod_documents/doc1619.pdf und wenn wir schon dabei sind:
http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf

Gruß
pctoaster

workwind
03.09.2007, 13:13
Ein nicht angeschlossener Input-Pin an einer CMOS-Schaltung kann ein beliebiges Potential (Spannung) besitzen. Deshalb sollte man 'offene' Pins auf ein definiertes Potential bringen.
Dies kann einerseits dadurch erreicht werden, indem man den Pin direkt mit Masse oder Vcc verbindet - dann kann jedoch kein anderes Potential angelegt werden. Die andere Möglichkeit besteht darin mit einem Pull-Up bzw. einem Pull-Down Widerstand ein 'Default-Potential' vorzugeben.
Bei großen Widerstandswerten ist das Default-Potential störanfällig - bei kleinen Widerstandswerten muss man auf der anderen Seite 'sehr kräftig dran ziehen' um den Wert zu ändern (hoher Strom). Hier zwischen muss ein Kompromiss gefunden werden.

Atmel hat einen großen Widerstandswert gewählt - dieser reicht für einige Schaltungen aus und kann bei Bedarf durch ein zusätzlichen, externen Pull-UpWiderstand verringert werden. Für den Hausgebrauch sollte man auf Nummer Sicher gehen und den empfohlenen Zusatz-Pull-Up einbauen, damit man sich nicht mit zufälligen, sporadischen Resets rumärgern muss.

der_eine
03.09.2007, 13:53
Ein nicht angeschlossener Input-Pin an einer CMOS-Schaltung kann ein beliebiges Potential (Spannung) besitzen.
Warum das? Müsste an einem nicht angeschlossenen Pin die Spannung nicht 0 sein?

pctoaster
03.09.2007, 14:20
je nach aktuellen Mondeinflüssen könnte dies so sein......
Um aber von eben diesen Einflüssen nicht abhängig zu sein pflegt man eben alle Anschlüsse von irgendwelchen Bauelementen grundsatzlich mit irgendetwas anderem zu verbinden.

Gruß
pctoaster

workwind
03.09.2007, 14:50
Ein nicht angeschlossener Input-Pin an einer CMOS-Schaltung kann ein beliebiges Potential (Spannung) besitzen.
Warum das? Müsste an einem nicht angeschlossenen Pin die Spannung nicht 0 sein?
Nein, bei einer CMOS-Schaltung eben nicht! Bei CMOS sind die einzelnen Transistoren als Feldeffekt-Transistoren (FET) ausgeführt. Ein Feldeffekttransistor besteht aus einem Kanal, in dem der zu schaltende Strom fließen kann und dem Gate. Der Kanal liegt zwischen dem Source und dem Drain-Anschluss und ist entweder hochohmig (leitet sehr wenig) oder niederohmig (leitet recht gut).
Über das Gate kann die Leitfähigkeit des Kanals beeinflusst werden. Das Gate ist über eine Oxidschicht elektrisch isoliert und kann somit jedes Potential haben, da keine Verbindung (auch nicht indirekt) zwischen dem Gate und Masse vorhanden ist - man muss dem Gate also von aussen ein Potential vorgeben. Die Input Eingänge von CMOS Schaltungen enden direkt an den Gate-Elektroden der FETs und haben somit kein definiertes Potential. Bei Flash Bausteinen nutzt man die gute Isolation der Oxidschicht sogar zur Datenspeicherung aus und definiert beim Speichervorgang das Potential!