Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zur Grundschaltung
Gottfreak
19.03.2004, 18:02
Hi
Ich bin drauf und dran, meinen ersten AVR (einen AT 90S4433 ) anzuschließen.
In den Grundschaltungen, die ich gefunden habe, erzeugt immer ein Kondensator den Resetimpuls. Den brauch' ich doch nur, damit das Ding beim Einschalten der Versorgungsspannung angeht, oder? Ist die Länge des Signals wichtig oder könnte ich auch einen Taster nehmen?
Wie genau muss die Kapazität der Kondensatoren am Taktsignal mit den Angaben der Grundschaltung übereinstimmen?
Kann ich bei dem Elko zwischen Vcc und Gnd ohne weiteres höhere Kapazitäten nehmen (hab' noch ganz viele auf alten Mainboards) oder filtern die dann Störungen höherer Frequenz schlechter?.
PS: Lassen sich an einen Quarz beliebig viele µController anschließen?
Hi
Den Kondensator braucht man bei Reset eigentlich nicht! Zum entstören sollte nicht mehr als 100 bis 300 nF verwendet werden.
An einen Quarz läßt sich nur ein Controller anschließen, die Alternative wären Quarzoszillatoren
Der Kondensator, der etwas mit dem Resetimpuls zu tun hat, macht konkret folgendes:
Er wird beim Herunterfahren der Versorgungsspannung entladen und dann, wenn er gebraucht wird, beim Einschalten langsamer als alle anderen Systemkomponenten mit Versorgungsspannung aufgeladen. Er hält dabei den Controller im Reset Zustand bis alle anderen Systemkomponeten die nötige Spannung zum Arbeiten haben. Dann erst wird der Controller vom Reset befreit und beginnt das Programm. Der Oszillator ist dann stabil und macht keine Doppelschritte mit wilden Schwingungen mehr, wie sie beim Anlaufen auftreten können.
Der Kondensator kann damit soweit vergrößert werden, wie es die Geduld des Anwenders zuläßt.
Die Elkos sind meistens unkritisch. Von digitalen Logikschaltungen werden nur sehr kurze Störungen erzeugt, die mit kleineren Kondensatoren besser abgeblockt werden können. Elkos sind mehr für Motoren und Relais zuständig, es gibt keine Begrenzung nach oben, wenn man von der Belastung der Versorung beim Einschalten absieht.
Bei ganzen Schaltschränken mit vielen Boards braucht man eine Beschränkung der Kondensatorgröße und schließlich eine Entkopplung sonst könnte man beim Einschalten oft die Sicherung auswechseln.
Bei Robotern gibt es Akkus und strombegrenzte Spannungsregler aber, ich glaube, kaum Sicherungen.
Es gibt Komponenten mit exterenem Takteingang, wenn das nicht vorgesehen ist kann man mit Sicherheit auch tricksen, aber das ist dann sehr individuell.
Soviel erst mal vorab.
Manfred
Da habe ich also 10 Minuten für den Text gebraucht und mich überschnitten. Also nochmal:
Resetkondensator wie vorgegeben zur Sicherstellung der Bereitschaft aller Systemkomponenten nach Reset oder größer.
Blockkondensatoren für Logikschaltungen: 100nF (kaum größer).
Fremdoszillator zur Taktversorgung von Controllern ist entweder im Datenblatt vorgeschlagen oder durch tricksen erreichbar.
Ich hoffe das stimmt mit "Gast 19:25" überein.
sniper-k98
20.03.2004, 15:35
mit welchem programm kann man so nette Schaltpläne machen, finde teilweise recht mühselig das alles per Hand zu zeichnen... gibts die irgendwo im netz?
Gottfreak
28.04.2004, 01:48
Wie ist das mit den Kondensatoren zwischen den Quarzen und gnd?
Ist deren Größe von der Frequenz des Quarzes abhängig oder nimmt man für Quarze aller Typen die gleichen?
Bei Mikrokrontrollern mit EEPROM ist eine Brown-Out-Detection empfehlenswert. Sonst sind u. U. nach dem Start Daten weg.
Also einfach TL7757 (=MC/LM34064) RESETBAUSTEIN verwenden. Ein Kondensator ist dann nicht nötig, der übliche Pull-Up-Widerstand sollte jedoch dabei sein.
Wenn das EEPROM nicht verwendet wird, dann tut es auch die üblich Kombination aus Kondensator (100 nF) gegen GND und Widerstand (100 KOhm) gegen Vcc.
Meine Empfehlung:
Nicht am falschen Ende sparen und immer gleich den professionellen Weg gehen. Das spart Ärger. => RESETBAUSTEIN nehmen.
Fehler koorigiert ( Kjion, Moderator AVR )
Bei Mikrokrontrollern mit EEPROM ist eine Brown-Out-Detection empfehlenswert. Sonst sind u. U. nach dem Start Daten weg.
Naja, nicht ganz. Die Daten sind nach dem Start immer noch da. Probleme gibts wenn ein Reset kommt während Daten geschrieben werden sollen. Da kann dann alles mögliche passieren...
Die ATmegas haben übrigens alle Brown-Out-Detection die man per Fusebytes aktivieren kann!
MfG Kjion
Was ist denn Brown-Out-Detection ?
Black-Out: Totaler Stromausfall
=> Ist eigentlich keine Problem, da das ganze System sowieso neu startet.
Brown-Out: Ganz kurzer Einbruch der Stromversorgung.
=> Ist grosser Mist, weil das keiner mitbekommt.
Brown-Out-Detection bedeutet:
Immer wenn die Spannung am Mikrokontroller unter einen bestimmten Minimalwert abfällt, wird die RESET-Leitung auf Low gezogen. Also bekommt der Mikrokontroller auch diesen Sonderfall mit.
Die interne Variante im AVR leistet aber nur den RESET beim Unterschreiten der zulässigen Betriebsspannung im LAUFENDEN Betrieb.
Leider kommt es aber beim Ein- und Ausschalten des Systems zu jeweils einer kurzen Zeit mit undefinierten Pegeln am Bus. D. h. der Mikrokotroller führt zufällige Instruktionen aus, wenn währenddessen nicht RESET auf Low ist. Die interne Logik kann das nicht, also muss ein externer Baustein (z. B. TL7757) her.
Wenn also der Mikrokotroller beim Ein- oder Ausschalten nun zufällig die Instruktion zum Schreiben ins EEPROM ausführt, dann sind Daten weg.
Für alle die noch zweifeln:
Ich habs selber erlebt und ca. 10 h in die Fehlersuche meiner Software gesteckt. Da war aber kein Fehler, also habe ich mal das getan, was im Datenblatt steht und siehe da, Problem gelöst !!!
Man kann das auch sehr schön selber ausprobieren:
1. EEPROM voll machen mit z. B. "A5"
2. Strom an, Strom aus (richtig oft, d. h. ca. 50 mal, evtl öfter)
3. Ins EEPROM schauen, wenn das System einen Standard-RESET hat, dann ist bestimmt irgendwo ein Byte verändert.
=> Man hat das Problem live erlebt.
Hier steht übrigens wie und warum man das alles macht:
http://www.atmel.com/dyn/resources/prod_documents/DOC1051.PDF
Trotz der ganzen Mühe ist natürlich ein Stromausfall während eines Schreibvorganges immer noch fatal, hier hilft nur eine Art gepuffertes Filesystem im EEPROM.
Man kann natürlich für jeden Quarz eine optimale Lastkapazität:
- errechnen
- messen
- vom Hersteller/Händler erfahren
Z. B.
http://www.reichelt.de erfahren
- aus dem Datenblatt entnehmen
z. B.
http://www.crystek.com/spec-sheets/CSX3.pdf
In der Praxis ist das aber egal.
22 pF ist z. B. bei 16MHz ganz prima und tut auch für niedrigere Frequenzen bis runter zu 1MHz.
Link gekürzt, da zu lang!
Gottfreak
06.05.2004, 16:24
Leider kommt es aber beim Ein- und Ausschalten des Systems zu jeweils einer kurzen Zeit mit undefinierten Pegeln am Bus. D. h. der Mikrokotroller führt zufällige Instruktionen aus, wenn währenddessen nicht RESET auf Low ist. Die interne Logik kann das nicht, also muss ein externer Baustein (z. B. TL7757) her.
Kann man nicht, wie oben beschrieben mit einem Kondensator zwischen GND und Reset dafür sorgen, dass Reset Low ist? Wenn das Starten einige mS länger dauert, ist das doch meist egal und ein Kondensator ist viel günstiger als ein Resetbaustein.
Wenn das EEPROM nicht verwendet wird, dann tut es auch die üblich Kombination aus Kondensator (100 nF) gegen GND und Widerstand (100 KOhm) gegen Vcc.
Also wo ist das Problem mit dem Kondensator, der den AVR im Reset hält, bis die Spannung stabil ist?
Beim Einschalten reicht das sicherlich aus.
Beim Ausschalten kommt es jedoch genau zu den im o. a. ATMEL-Datenblatt (DOC1051.PDF) beschriebenen Zustand. Die CPU führt während die Spannung zusammenbnricht zufällige Instruktionen aus. Dies kann nur verhindert werden, indem der RESET dann sofort auf LOW gezogen wird.
Der RESET-Baustein ist die professionelle Lösung um mit geringem Aufwand alle Probleme in diesem Bereich zu erschlagen.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.