<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.216.122.79</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.216.122.79"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/85.216.122.79"/>
	<updated>2026-04-10T23:40:00Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Basiswiderstand&amp;diff=50763</id>
		<title>Basiswiderstand</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Basiswiderstand&amp;diff=50763"/>
		<updated>2010-09-19T12:02:58Z</updated>

		<summary type="html">&lt;p&gt;85.216.122.79: /* Grundlagen &amp;amp; Transistorauswahl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In diesem Artikel wird die Berechnung eines &#039;&#039;&#039;Basiswiderstandes&#039;&#039;&#039;, manchmal auch Basisvorwiderstand genannt, für die Verwendung eines Transistors &#039;&#039;&#039;als Schalter&#039;&#039;&#039; beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Grundlagen &amp;amp; Transistorauswahl ==&lt;br /&gt;
&lt;br /&gt;
Ein häufiger Einsatzzweck von Transistoren als Schalter liegt insbesondere im Bereich der Mikrocontrollertechnik. Hierbei wird der Transistor, ein NPN-Typ, meist in [http://de.wikipedia.org/wiki/Emitterschaltung Emitterschaltung] betrieben. Beim Betrieb als Schalter möchte man dann, dass die Kollektor-Emitter-Strecke des Transistors entweder so gut wie möglich sperrt (&amp;quot;Schalter&amp;quot; offen) oder so gut wie möglich leitet (&amp;quot;Schalter&amp;quot; geschlossen), wobei weder der Transistor noch der Mikrocontroller Schaden nehmen soll.&lt;br /&gt;
&lt;br /&gt;
Zwei Werte sind hier besonders interessant: Der Kollektorstrom - das ist der Strom, der durch die zu schaltende Last (z.&amp;amp;nbsp;B. LEDs) fließt - sowie der Basisstrom - das ist der Strom, mit dem der Transistor in Emitterschaltung geschaltet wird.&lt;br /&gt;
&lt;br /&gt;
Der Transistor sollte normalerweise für mindestens den doppelten Wert des auftretenden Kollektorstroms geeignet sein. So mag im Datenblatt vom BC547 ein zulässiger Kollektorstrom von 100mA stehen, praktisch hat jedoch jenseits von ungefähr 50mA ein kräftigerer Typ wie etwa BC635 deutlich bessere Parameter.&lt;br /&gt;
&lt;br /&gt;
Das Sperren des Transistors ist der einfachere der zwei Fälle. In Emitterschaltung sperrt der Transistor, so gut es geht (es fließt immer ein sehr kleiner, vernachlässigbarer Kollektorreststrom), wenn der Basisstrom soweit wie möglich 0A ist. Das ist er, wenn die anliegende Spannung 0V ist. Also zum Beispiel dann, wenn der Ausgang eines Mikrocontroller, der die Basis steuert, die Basis auf low, also Masse legt.&lt;br /&gt;
&lt;br /&gt;
Um den Transistor zu schließen, muss er mit einem Basisstrom angesteuert werden. Man begrenzt den Basisstrom durch einen Widerstand, den Basiswiderstand. Der Widerstand darf weder zu groß, noch zu klein sein. Ist er zu groß, schaltet der Transistor nicht voll durch und es entsteht mehr Verlustleistung am Transistor, wodurch er zerstört werden kann. Ist er zu klein, wird der Ausgang des Mikrocontrollers überlastet.&lt;br /&gt;
&lt;br /&gt;
Um den Transistor möglichst gut durchzuschalten, kann man ihn in einem Bereich steuern, der &#039;&#039;Sättigung&#039;&#039; genannt wird. In dem Bereich bewirkt eine weitere Erhöhung des Eingangssignals keine weitere nennenswerte Änderung des Ausgangssignals. Technisch ist dabei die Kollektor-Emitter-Spannung minimal und kleiner als die Basis-Emitter-Spannung. Die Basis-Kollektor-Diodenstrecke des Transistors wird dabei leitend (Diode wird in Vorwärtsrichtung betrieben).&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil des Sättigungsbetriebes ist, dass der Transistor nur relativ langsam aus diesem Zustand herauskommt, wenn man ihn wieder sperren möchte. Dies ist für Hochfrequenz-Signale problematisch. Beim Schalten eines Relais, Motors oder einer LED stellt sich dieses Problem jedoch überhaupt nicht, da &amp;quot;langsam&amp;quot; für diese Anwendungen immer noch mehr als schnell genug ist.&lt;br /&gt;
&lt;br /&gt;
Für die Berechnung des Basiswiderstandes benötigt man die Stromverstärkung des Transistors. Diese sinkt beim Sättigungsbetrieb und ist häufig nur versteckt aus den Datenblättern herauszulesen. Meist sind die in Tabellen angegebenen Stromverstärkungen nicht die für die Sättigung. Statt dessen findet man den benötigten Wert mit etwas Glück in den Diagrammen. Alternativ kann man ihn aus den Werten für die Nicht-Sättigung abschätzen.&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich ist noch zu sagen, dass die Berechnungen nicht mit hoher Genauigkeit durchgeführt werden müssen. Transistoreigenschaften streuen sehr stark pro Exemplar, und um auf der sicheren Seite zu sein, sollte man lieber mal mit etwas mehr (z.&amp;amp;nbsp;B. 10 %) Basisstrom (entspricht kleinerem Basiswiderstand) arbeiten, als die Berechnung ergibt.&lt;br /&gt;
&lt;br /&gt;
== Berechnung ==&lt;br /&gt;
&lt;br /&gt;
[[bild:t_a_s.png]]&lt;br /&gt;
&lt;br /&gt;
* Datenblatt des Transistors besorgen wenn möglich vom Hersteller des verwendeten Transistors. Kennt oder erkennt man den Hersteller nicht, muss man sich mit einem Datenblatt eines beliebigen Herstellers begnügen.&lt;br /&gt;
* Datenblatt lesen!&lt;br /&gt;
* Benötigt wird die Stromverstärkung in Sättigung&lt;br /&gt;
** Im Datenblatt nach einer expliziten Angabe dieses Wertes suchen. Mit etwas Glück findet man ihn in den Diagrammen. Die in Tabellen angegebenen Stromverstärkungen beziehen sich normalerweise nicht auf die Sättigung, wenn dies nicht explizit dabei steht (zum Beispiel &amp;lt;math&amp;gt;{h_{FE}}_{SAT}&amp;lt;/math&amp;gt; oder ähnliches).&lt;br /&gt;
** Findet man keine Angabe zur Verstärkung in Sättigung im Datenblatt die &#039;&#039;&#039;minimale&#039;&#039;&#039; Stromverstärkung des Transistors nachschlagen. (Zeichen: &amp;lt;math&amp;gt;h_{FE}&amp;lt;/math&amp;gt;; Beschreibung: DC Current Gain; wenn mehrere Werte angegeben sind, den für den niedrigsten Kollektorstrom wählen). Drandenken: Je höher der Kollektor-Strom, um so geringer wird die Stromverstärkung. Diesen Wert zur Abschätzung des Wertes in Sättigung durch 2 bis 10 teilen. Bei Kleinsignaltransistoren kann man meist ersatzweise mit einer Stromverstärkung von 20-50 rechnen, bei Leistungstransistoren eher mit 10. Bei Darlington-Transistoren multiplizieren sich die Stromverstärkungsfaktoren beider Transistoren, hier kann man folglich bei Kleinleistungstransistoren von 400-2500 ausgehen.&lt;br /&gt;
* Den Strom &amp;lt;math&amp;gt;I_c&amp;lt;/math&amp;gt;, den der Verbraucher benötigt durch &amp;lt;math&amp;gt;h_{FE}&amp;lt;/math&amp;gt; teilen um den Basisstrom &amp;lt;math&amp;gt;I_b&amp;lt;/math&amp;gt; zu erhalten. &amp;lt;math&amp;gt;I_b=\frac{I_c} {h_{FE}}&amp;lt;/math&amp;gt;.  &lt;br /&gt;
* Durch Anwendung des ohmschen Gesetzes erhält man den Basiswiderstand &amp;lt;math&amp;gt;R_b=\frac{U_E-0,7V}{I_b}&amp;lt;/math&amp;gt;; &amp;lt;math&amp;gt;U_E-0,7 V&amp;lt;/math&amp;gt;, da von der Steuerspannung &amp;lt;math&amp;gt;0,7 V&amp;lt;/math&amp;gt; an der Basis-Emitter Strecke des Transistors abfallen. Statt &amp;lt;math&amp;gt;0,7 V&amp;lt;/math&amp;gt; kann man auch den Wert aus dem Datenblatt nehmen, sollte er im Datenblatt angegeben sei. Bei Darlington-Transistoren sollte mit einem Abfall von &amp;lt;math&amp;gt;1,4 V&amp;lt;/math&amp;gt; gerechnet werden wenn sich im Datenblatt nichts anderes findet.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Beispiel 1 ===&lt;br /&gt;
*Transistor: BC328&lt;br /&gt;
*Der Verbraucher benötigt einen Strom von maximal &amp;lt;math&amp;gt;I_c = 100 \mathrm{mA}&amp;lt;/math&amp;gt;. &lt;br /&gt;
*&amp;lt;math&amp;gt;h_{FE}&amp;lt;/math&amp;gt; ist 100 (Datenblatt), gerechnet wird jedoch mit einer abgeschätzten Stromverstärkung in Sättigung von &amp;lt;math&amp;gt;\frac{h_{FE}}{3.3} = 30&amp;lt;/math&amp;gt; (Erfahrungswert oder nachgemessen).&lt;br /&gt;
*Daraus folgt: &amp;lt;math&amp;gt;I_b=\frac{100 \mathrm{mA}}{30} = 3,3 \mathrm{mA}&amp;lt;/math&amp;gt;&lt;br /&gt;
*Der Mikrocontroller sei vom Typ ATmega oder ATtiny und liefert bei einer Versorgungsspannung von 5V abzüglich 5% Toleranz mindestens 4,5 Volt bei 3,3mA. Weiter fallen 0,7 V an der BE-Strecke ab, also bleiben ca. 3,8 V.&lt;br /&gt;
*&#039;&#039;&#039;Rb&#039;&#039;&#039; = &amp;lt;math&amp;gt;\frac{3,8\,\mathrm{V}}{3,3\,\mathrm{mA}} = 1150\,\Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
*Man wird hier also einen Basiswiderstand von &amp;lt;math&amp;gt;1 \mathrm{k}\Omega&amp;lt;/math&amp;gt; wählen. &lt;br /&gt;
:&#039;&#039;&#039;Merke&#039;&#039;&#039;: Bei dieser Berechnung abrunden, damit ein sicheres Schaltverhalten auch bei Exemplarstreuungen des Transistors gewährleistet ist.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel Transistor BC547B (von NXP) mit max. 40 mA Last ===&lt;br /&gt;
&lt;br /&gt;
NXP Datenblatt: http://www.nxp.com/acrobat_download/datasheets/BC847_BC547_SER_7.pdf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;h_{FE}&amp;lt;/math&amp;gt; ist minimal 200 (Datenblatt) bei 2mA Kollektorstrom. Ein Blick ins Kennlinienfeld verrät, dass &amp;lt;math&amp;gt;h_{FE}&amp;lt;/math&amp;gt; auch bei 40mA Kollektorstrom noch in diesem Bereich liegt. Aber, etwas versteckt bei den Daten und der Kennlinie zu &amp;lt;math&amp;gt;V_{CEsat}&amp;lt;/math&amp;gt; (der Kollektor-Emitter-Sättigungsspannung) findet man, dass &amp;lt;math&amp;gt;\frac{I_C}{I_B} = 20&amp;lt;/math&amp;gt; bei Sättigung ist, und das ist der gewünschte Zustand. Also rechnet man mit einer Stromverstärkung in Sättigung von 20.&lt;br /&gt;
&lt;br /&gt;
Daraus folgt: &amp;lt;math&amp;gt;I_b=\frac{40\,\mathrm{mA}}{20} = 2\,\mathrm{mA}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller sei vom Typ ATmega oder ATtiny und liefert bei einer Versorgungsspannung von 5V abzüglich 5% Toleranz mindestens 4,5 Volt bei 2&amp;amp;nbsp;mA. Etwa 0,780&amp;amp;nbsp;V fallen an der BE-Strecke ab (Datenblatt des BC547B, aus Kennlinie geschätzt), also bleiben ca. 3,75&amp;amp;nbsp;V.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rb&#039;&#039;&#039; = &amp;lt;math&amp;gt;\frac{3,75\,\mathrm{V}}{2\,\mathrm{mA}} = 1875\,\Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man wird hier also einen Basiswiderstand von &amp;lt; 1,8kΩ, beispielsweise 1,5kΩ wählen.&lt;br /&gt;
&lt;br /&gt;
== Ältere Mikrocontroller ==&lt;br /&gt;
&lt;br /&gt;
Mikrocontroller aus älteren Baureihen können oft nur wenig Strom liefern, viel weniger als beispielsweise die [[AVR]]s. So können etliche [[8051]]-Varianten nur einen Basistrom von 50 µA liefern, da diese über [[Ausgangsstufen Logik-ICs | Open Collector]] Ausgänge verfügen. Die oben gezeigte Schaltung ist dann ungeeignet, besser ist die folgende Schaltung. Doch Vorsicht, dabei ist der Transistor durchgesteuert, wenn der Mikrocontroller sich im Reset befindet!&lt;br /&gt;
&lt;br /&gt;
[[bild:t_a_s_oc.png]]&lt;br /&gt;
&lt;br /&gt;
== Offene Basis bei Reset ==&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Thema ist eine offene Basis: Ist ein Mikrocontroller im Reset, sind die Ausgänge meist hochohmig. Folglich hängt die Basis des Transistors, der nur über einen Basiswiderstand mit einem Portpin verbunden ist, hochohmig in der Luft. Das ist bei bipolaren Niedervolt-Transistoren zwar oft kein Problem, starke Störeinstrahlungen können jedoch bewirken, dass der Transistor mindestens teilweise leitet. Man vermeidet so etwas, in dem man die Basis definiert gegen Masse abschließt. Dies erfolgt mit einem zusätzlichen Widerstand zwischen Basis und Masse, meist im Bereich zwischen 50K-1M. Je größer der Widerstand, um so empfindlicher ist die Schaltung gegen elektromagnetische Umwelteinflüsse. Je niedriger dieser Widerstand, um so mehr Strom verbraucht die Schaltung im durchgesteuerten Zustand. In unkritischen Umgebungen hat sich ein Wert von 1M bewährt, im Automobilbereich verwendet man hingegen besser 100 K. &lt;br /&gt;
&lt;br /&gt;
Bei der Berechnung des Basiswiderstandes muss man natürlich den Strom, der durch diesen Abschlußwiderstand fließt (&amp;lt;math&amp;gt;\mathrm{I}=\frac{\mathrm{U_{BE}}}\mathrm{{R}}&amp;lt;/math&amp;gt;), berücksichtigen. Denn dieser wird ja nicht in der Basis wirksam. Der Basiswiderstand ist also entsprechend niedriger auszulegen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Transi2.gif]]&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/forum/read-1-374719.html#new Diskussion im Forum]&lt;br /&gt;
* Artikel [[Transistor]] mit weiteren Tipps&lt;br /&gt;
&lt;br /&gt;
[[Category:Grundlagen]]&lt;/div&gt;</summary>
		<author><name>85.216.122.79</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=230V&amp;diff=47471</id>
		<title>230V</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=230V&amp;diff=47471"/>
		<updated>2010-05-14T14:18:58Z</updated>

		<summary type="html">&lt;p&gt;85.216.122.79: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Portpin an 230V AC ==&lt;br /&gt;
&lt;br /&gt;
Hier ist eine kurze Beschreibung, wie man einen 230V-Pegel direkt an einen Portpin eines Mikrocontrollers anschließen kann.&lt;br /&gt;
Das diese Schaltung keine Galvanische Trennung besitzt, sieht man, glaube ich. Das übliche  BLA BLA bezüglich Sicherheit, Lebensgefahr spare ich mir an dieser Stelle. Diese Beschaltung soll nicht den Nulldurchgang detektieren&lt;br /&gt;
&lt;br /&gt;
[[Bild:Eingangsbeschaltung.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Beiden Dioden, hier BAT45 sind normalerweise in einem Controller als Schutzdiode sowiso schon enthalten. Aber Achtung, beim Verwenden des MCLR-Eingangs speziell von MICROCHIP Mikroprozessoren können diese Dioden fehlen und müssen in der Schaltung ergänzt werden.&lt;br /&gt;
Der 39K-Widerstand hat zwei Funktionen: erstes als Spannungsteiler mit R1 und R2 um die Spannung auf einen Vernünftigen Wert zu begrenzen und zweitens als Pulldown-Widerstand für den Portpin.&lt;br /&gt;
&lt;br /&gt;
Die Widerstände R1 und R2 sollen NICHT durch einen Widerstand mit 2MOHm ersetzt werden, weil gerade bei SMD-Widerständen die Spannungsfestigkeit meistens nicht ausreichend ist und weil (aus Sicherheitsgründen) davon ausgegangen werden kann, das nur ein Widerstand ausfällt, nicht aber beide auf einmal.&lt;br /&gt;
&lt;br /&gt;
Die Firma Microchip hat hier auch eine gute Applikation Note hierzu.&lt;br /&gt;
Für die allgegenwärtigen Sicherheitsfanatiker: &lt;br /&gt;
Bei einer FMEA wird ein Widerstand als ein sehr sicheres Bauteil angesehen, der nicht so mir-nichts-dir-nichts kaputt geht. (Ganz anders schaut es da schon mit den Dioden aus)&lt;br /&gt;
&lt;br /&gt;
Wichtig ist bei dieser Schaltung noch, das ich einen vernünftigen High-Pegel nur jede positive Halbwelle und auch nur in der Nähe des Spannungsmaximum erhalte. Ich muß also durch meine restliche Schaltung sicherstellen, dass ich den Nulldurchgang des Wechselstromes richtig mitbekomme und dann ( Bei Netzspannung 230V / 50Hz ) mindestens 2ms warten, bis ich den Portpin richtig einlesen kann.&lt;br /&gt;
&lt;br /&gt;
Der Elko mit 470yF und die Spannungsquelle werden natürlich nicht explizit benötigt und stellen nur die vorhanden Stromversorgung des Microcontrollers dar.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
* Simulation: http://www.mikrocontroller.net/articles/Datei:Eingangsbeschaltung.asc&lt;br /&gt;
* [http://ww1.microchip.com/downloads/en/AppNotes/00521c.pdf Microchip AN521: Interfacing to AC Power Lines]&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc2508.pdf Atmel AVR182: Zero Cross Detector]&lt;/div&gt;</summary>
		<author><name>85.216.122.79</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Temperatursensor&amp;diff=47125</id>
		<title>Temperatursensor</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Temperatursensor&amp;diff=47125"/>
		<updated>2010-05-06T14:19:50Z</updated>

		<summary type="html">&lt;p&gt;85.216.122.79: /* Digitale Temperatursensoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Will man mit einem [[Mikrocontroller]] Temperaturen messen, dann braucht man&lt;br /&gt;
* einen [[Sensor]], der die Temperatur z.&amp;amp;nbsp;B. in eine Spannung oder einen Strom umwandelt&lt;br /&gt;
* einen [[ADC | AD-Wandler]], der das Signal digitalisiert. Der kann auf dem Sensor oder dem Mikrocontroller integriert sein.&lt;br /&gt;
&lt;br /&gt;
Temperatursensoren gibt es nun in allen möglichen Varianten. Vom temperaturabhängigen [[Widerstand]] bis zum fertig abgeglichenen All-in-one-Bauteil mit digitalem Ausgang. Wie bei allen Sensoren sollte man auch hier genau hinschauen und [[Auflösung und Genauigkeit]] unterscheiden.&lt;br /&gt;
&lt;br /&gt;
== Analoge Temperatursensoren ==&lt;br /&gt;
&lt;br /&gt;
=== PT100 ===&lt;br /&gt;
&lt;br /&gt;
Unter einem PT100 versteht man einen Platinwiderstand, der bei 0°C einen Widerstand von 100 Ohm hat.&lt;br /&gt;
Platinwiderstände sind temperaturabhängige Widerstände mit hoher Wiederholgenauigkeit und Konstanz[http://de.wikipedia.org/wiki/Konstante].  Wegen der relativ geringen Widerstandsänderung von nur ca. 0,4 Ohm pro Grad ist etwas mehr Schaltungsaufwand erforderlich als bei anderen Sensoren. Genauere Formeln zur Temperaturbestimmung gibt es u.a. bei der [http://de.wikipedia.org/wiki/Pt100 Wikipedia]. Ein Schaltplan findet sich bei der [http://www.heise.de/ct/04/22/236/ c&#039;t].&lt;br /&gt;
&lt;br /&gt;
Die Sensoren gibt es auch mit anderen Widerstandswerten, z.&amp;amp;nbsp;B. mit 1000&amp;amp;Omega; und heißen dann entsprechend PT1000.&lt;br /&gt;
&lt;br /&gt;
Vorteil:&lt;br /&gt;
* genormt&lt;br /&gt;
* hohe Linearität&lt;br /&gt;
* hohe Wiederholgenauigkeit&lt;br /&gt;
* einfach austauschbar&lt;br /&gt;
&lt;br /&gt;
Nachteil:&lt;br /&gt;
* relativ teuer (bei segor.de ab 3,80&amp;amp;euro;)&lt;br /&gt;
* brauchen aufwendigere Auswerteschaltung&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://www.heise.de/ct/04/22/236/ c&#039;t-Artikel: Mikrocontroller-Programmierung: Timer, Sensoren und Drehgeber (mit PT100 Schaltung)]&lt;br /&gt;
&lt;br /&gt;
=== NTC/PTC ===&lt;br /&gt;
&lt;br /&gt;
NTC und PTC sind temperaturabhängige Widerstände.&lt;br /&gt;
&lt;br /&gt;
* NTC (engl. &#039;&#039;&#039;N&#039;&#039;&#039;egative &#039;&#039;&#039;T&#039;&#039;&#039;emperature &#039;&#039;&#039;C&#039;&#039;&#039;oefficient, Heißleiter), hat bei hohen Temperaturen seinen niedrigsten Widerstand, z.&amp;amp;nbsp;B. Silizium&lt;br /&gt;
* PTC (engl. &#039;&#039;&#039;P&#039;&#039;&#039;ositive &#039;&#039;&#039;T&#039;&#039;&#039;emperature &#039;&#039;&#039;C&#039;&#039;&#039;oefficient, Kaltleiter), hat bei niedrigen Temperaturen seinen geringsten Widerstand, z.&amp;amp;nbsp;B. Glühlampe&lt;br /&gt;
&lt;br /&gt;
Um den Widerstandswert zu messen schaltet man sie mit einem normalen Widerstand oder einer [[Konstantstromquelle]] in Reihe zu einem [[Spannungsteiler]] und misst den Spannungsabfall. Eine Beispielschaltung findet sich [http://www.mathar.com/msp_thermo1.html hier].&lt;br /&gt;
&lt;br /&gt;
Vorteil:&lt;br /&gt;
* billig (Reichelt 0,29 &amp;amp;euro;)&lt;br /&gt;
&lt;br /&gt;
Nachteil:&lt;br /&gt;
* müssen abgeglichen werden&lt;br /&gt;
* brauchen A/D-Wandler&lt;br /&gt;
* sind nichtlinear&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://www.sprut.de/electronic/temeratur/temp.htm Temperaturabhängige Stromquelle und NTC/PTC inclusive Linearisierung]&lt;br /&gt;
&lt;br /&gt;
=== LMx35 ===&lt;br /&gt;
&lt;br /&gt;
Eine IC-Familie, die pro Kelvin Temperaturänderung ihre Ausgangsspannung um 10&amp;amp;nbsp;mV ändert. Die ICs gibt es in verschiedenen Genauigkeiten und Temperaturbereichen mit den Bezeichnungen LM135(A), LM235(A) und LM335(A). Der günstigste ist der LM335 mit einem Temperaturbereich von −40 … +100°C.&lt;br /&gt;
In verschiedenen Bauformen erhältlich. Beispielschaltungen finden sich im [http://www.national.com/ds.cgi/LM/LM135.pdf Datenblatt] und [http://www.suessbrich.info/elek/elektherm1.html hier]&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* hat auch ohne Kalibrierung eine Genauigkeit von einem Grad (bei 25°C)&lt;br /&gt;
* relativ billig (LM335 bei Reichelt ab 0,50&amp;amp;nbsp;€)&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* benötigt A/D-Wandler&lt;br /&gt;
* bei längerer Anschlussleitung störanfällig&lt;br /&gt;
&lt;br /&gt;
=== LM334 ===&lt;br /&gt;
&lt;br /&gt;
Ein IC ähnlich dem LM335 mit dem Unterschied, dass der durch das IC fließende Strom proportional von der Temperatur abhängt. Mit einer einfachen Schaltung aus nur zwei Widerständen kann man dann den Strom in einer Weise wandeln, dass pro Kelvin eine Spannungsänderung von 10mV ausgegeben wird. Da die Strom-Spannungswandlung auf der Platine (und damit nahe am AD-Wandler) stattfindet und die Übertragung des Messwerts durch einen Strom stattfindet, sind Störungen durch Netzbrumm etc. viel geringer als beim LM335&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
&amp;lt;!-- * hat auch ohne Kalibrierung eine Genauigkeit von einem Grad (bei 25°C) &lt;br /&gt;
Laut Datenblatt +-3°C&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* relativ billig ([http://www.reichelt.de/?ARTICLE=10468 Reichelt 0,54 &amp;amp;euro;])&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* benötigt A/D-Wandler&lt;br /&gt;
* Bereich 0°C-70°C&lt;br /&gt;
&lt;br /&gt;
Ähnliche ICs:&lt;br /&gt;
* AD592 (Ausgangsstrom 1µA pro Kelvin, absolute Temperatur) [http://www.reichelt.de/?ARTICLE=3825 Reichelt: 3,75 €], Conrad 174912 8,50 &amp;amp;euro;&lt;br /&gt;
&lt;br /&gt;
=== SMT160-30 ===&lt;br /&gt;
&lt;br /&gt;
Ist ein Zwischending zwischen Digital und Analog. Sein Ausgangssignal ist ein digitales PWM-Signal, zu dessen Messung man am besten den Input-Capture-Eingang eines Mikrocontrollers verwendet. Man kann ihn also wie einen analogen Sensor nur indirekt auslesen, anstatt über einen AD-Wandler hier über einen Timer.&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* Digitales PWM-Signal ist unempfindlich gegen Störeinflüsse&lt;br /&gt;
* gibt es in SO8, TO18, TO92 und &amp;lt;b&amp;gt;TO220&amp;lt;/b&amp;gt;, gut befestigbar, z.B am Kühlkörper&lt;br /&gt;
* linear&lt;br /&gt;
* kein Abgleich nötig&lt;br /&gt;
&lt;br /&gt;
Nachteile (viele):&lt;br /&gt;
* benötigt Timer&lt;br /&gt;
* jittert extrem, genaue Messungen nur über Mittelung / Filterung möglich&lt;br /&gt;
* nicht nur das PWM-Verhältnis, sondern auf die Frequenz ist temp-abhängig (1-4kHz)&lt;br /&gt;
* teuer (Farnell 10,90&amp;amp;euro; +16%, Conrad 9,xx&amp;amp;euro; , www.hy-line.de ??).&lt;br /&gt;
* TO92 Gehäuse ist günstiger, dafür weniger genau&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* http://www.hy-line.de/co/sensor-tec/hersteller/smartec/smt-160-30/index.html&lt;br /&gt;
&lt;br /&gt;
=== Thermoelement ===&lt;br /&gt;
&lt;br /&gt;
Ein Thermoelement besteht im einfachsten Fall aus zwei ungleichen Metallendrähten, die an einem Punkt miteinander verbunden sind und bei dem die Verbindungsstelle einer anderen Temperatur ausgesetzt ist als die offenen Enden der Drähte. An den offenen Enden der Drähten entsteht eine Spannung (Thermospannung). Dieser Effekt wurde 1821 von Thomas Seebeck entdeckt ([http://de.wikipedia.org/wiki/Seebeck-Effekt Seebeck-Effekt] bei Wikipedia). Eine weitere Anwendung ist der thermoelektrische Generator (&amp;quot;Thermogenerator&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vorteil:&lt;br /&gt;
* über einen sehr weiten Temperaturbereich einsetzbar&lt;br /&gt;
&lt;br /&gt;
Nachteil:&lt;br /&gt;
* die sehr geringen Temperaturspannungen im Mikrovoltbereich benötigen eine sehr gute Auswertelektronik (guter Analogteil + AD-Wandler).&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://digital.ni.com/worldwide/germany.nsf/web/all/7A4F02BAEFEC22AC802567F6003E0D6E  Temperaturmessung mit Thermoelementen] - Eine Einführung von David Potter (deutsche Überarbeitung: G.Sinkovic) (inkl. Erläuterung der Kaltstellenkompensation)&lt;br /&gt;
* [http://www.ipetronik.com/pdf/Newsletter/Ipetronik_NL2_2004_d.pdf Warum Thermoelemente Relativtemperaturen messen! oder Was ist eine Kaltstelle?] - Technische Information von www.ipetronik.com (PDF, 272 KB)&lt;br /&gt;
&lt;br /&gt;
== Digitale Temperatursensoren ==&lt;br /&gt;
&lt;br /&gt;
=== DS1621 ===&lt;br /&gt;
&lt;br /&gt;
Der DS1621 ist Temperatursensor und A/D-Wandler in einem. Er gibt seine Daten per [[I²C]]-[[Bus]] aus. Ein Schaltplan für einen elektronischen Thermometer mit diesem IC findet sich [http://www.myplace.nu/avr/thermo/ hier].&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* bereits kalibriert&lt;br /&gt;
* kein A/D-Wandler nötig&lt;br /&gt;
* da I²C ein Bus ist, kann man mehrere DS1621 und andere I²C-Bausteine zusammen anschließen und braucht dafür trotzdem nur zwei I/O-Ports.&lt;br /&gt;
* Messbereich -55°C to +125°C &lt;br /&gt;
* Genauigkeit +-0,5°&lt;br /&gt;
* Auflösung besser 0,01°, wenn man die beiden Zählerregister (Count-Remain und Count-per-C) auswertet&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* teuer (Segor 5,80&amp;amp;euro;; RS 3,95&amp;amp;euro;; Conrad 5,22&amp;amp;euro;)&lt;br /&gt;
* obwohl die meisten Register [[Speicher#NVRAM | nichtflüchtig]] sind, kann man ihn nicht als Stand-Alone-Thermostat einsetzen, da er erst nach einem Start-Conversion-Befehl zu messen beginnt.&lt;br /&gt;
&lt;br /&gt;
Nachfolger:&lt;br /&gt;
* DS1631, DS1631A (Auto-Start-&amp;gt; Stand-Alone-Thermostat), DS1731&lt;br /&gt;
* weitere Stand-Alone-Thermostaten: DS1821, DS1629&lt;br /&gt;
&lt;br /&gt;
=== LM75 ===&lt;br /&gt;
&lt;br /&gt;
Der LM75 ist so ähnlich wie der DS1621, allerdings nur in SMD erhältlich und nicht so genau. Er ist aber öfters mal auf PC-Mainboards zu finden, so dass man beim Schlachten eines solchen günstig an einen Temperatursensor kommen kann. Einen Schaltplan findet man [http://www.mcselec.com/index.php?option=com_docman&amp;amp;task=cat_view&amp;amp;gid=83&amp;amp;limit=1&amp;amp;limitstart=35 hier].&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* bereits kalibriert&lt;br /&gt;
* kein A/D-Wandler nötig&lt;br /&gt;
* I²C-Bus Ausgang&lt;br /&gt;
* billiger als DS1621 (Reichelt 1,45 &amp;amp;euro;; RS 3V: 3,75&amp;amp;euro;; 5V: 2,72&amp;amp;euro;)&lt;br /&gt;
* Auflösung 0,5°&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* nur im SMD-Gehäuse erhältlich&lt;br /&gt;
* relativ ungenau (+-2°), kann man jedoch kalibrieren / kompensieren&lt;br /&gt;
&lt;br /&gt;
Kompatible Typen:&lt;br /&gt;
* AD7415ART&lt;br /&gt;
&lt;br /&gt;
=== TMP175 / TMP75 ===&lt;br /&gt;
&lt;br /&gt;
Ähnelt dem LM75 stark! Temperatursensor von Texas Instruments.&lt;br /&gt;
&lt;br /&gt;
=== DS18S20 / DS18B20 ===&lt;br /&gt;
&lt;br /&gt;
Der DS18S20 (Nachfolger des DS1820) und DS18B20 sind scheinbar Temperatursensoren und A/D-Wandler in einem. Wenn man genauer hinschaut, stellt man fest, dass es sich um direktwandelnde Sensoren handelt. Die Temperatur wird ohne Umweg über eine analoge Zwischengröße (Spannung oder Strom) in ein digitales Signal überführt. Die Datenkommunikation erfolgt über ein 1-Wire-Interface, wodurch man am [[Mikrocontroller]] mit nur einen einzigen I/O-Pin auskommen kann. Außerdem beherrschen sie die parasitäre Stromversorgung, d.h. man braucht für Daten und Stromversorgung zusammen nur zwei Leitungen.  Der DS18B20 hat 12 Bit Auflösung gegenüber 9 Bit Auflösung beim DS18S20.&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* bereits kalibriert&lt;br /&gt;
* Genauigkeit +-0,5°&lt;br /&gt;
* 1-Wire-Ausgang&lt;br /&gt;
&lt;br /&gt;
Nachteil:&lt;br /&gt;
* relativ teuer: Reichelt: 2,50&amp;amp;euro; / CSD: 1,85&amp;amp;euro; / Conrad 5,08&amp;amp;euro;&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://chaokhun.kmitl.ac.th/~kswichit/avrthermo/avrthermo.html Ein Schaltplan]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/6505 Code zur Ansteuerung ASM ATTiny12]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/14792 Code zur Ansteuerung AVR-GCC]&lt;br /&gt;
* [http://pdfserv.maxim-ic.com/en/ds/DS18S20.pdf Datenblatt DS18S20] &lt;br /&gt;
* [http://pdfserv.maxim-ic.com/en/ds/DS18B20.pdf Datenblatt DS18B20]&lt;br /&gt;
* [http://www.mikrocontroller.net/forum/read-4-248219.html Webserver zur Ansteuerung von bis zu 63 Bausteinen]&lt;br /&gt;
* [http://www.teslabs.com/openplayer/docs/docs/other/ds18b20_pre1.pdf PDF Anleitung zur Beschaltung und Programmierung (C)]&lt;br /&gt;
&lt;br /&gt;
=== DS1822 ===&lt;br /&gt;
&lt;br /&gt;
Ähnlich wie DS18S20, aber weniger genau (+-2°) und in großen Stückzahlen billiger. Wegen der geringeren Verbreitung kommt der Preisvorteil aber bei Einzelstücken nicht beim Kunden an. So kostet er bei Reichelt mit 3,50&amp;amp;euro; mehr als der DS18S20.&lt;br /&gt;
&lt;br /&gt;
=== DS1921 / DS1922 ===&lt;br /&gt;
&lt;br /&gt;
Sind wie die DS1821 1-wire-Sensoren mit zusätzlicher Logging-Funktion.&lt;br /&gt;
Im iButton-Gehäuse befindet sich eine Lithium-Zelle, eine RTC, CMOS-RAM und der Temp-Sensor. Nach umfangreicher Progammierung startet der Button seine Mission (Aufzeichnung des Temperaturverlaufs).&lt;br /&gt;
Gibt es auch mit zusätzlicher Feuchtemessung (DS1923).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TSic ===&lt;br /&gt;
&lt;br /&gt;
Die TSic Sensoren werden baugleich von 3 Herstellern angeboten:&lt;br /&gt;
* ZMD ([http://www.zmd.biz/temp.php?group=temp&amp;amp;content=products Homepage]) ([http://tarr.uspto.gov/servlet/tarr?regser=serial&amp;amp;entry=78673282 Trademark])&lt;br /&gt;
* IST AG ([http://www.ist-ag.com/eh/ist-ag/de/home.nsf/contentview/8F5D32432CAC53C2C1257405003C2433 Homepage])&lt;br /&gt;
* Hygrosens ([http://www.hygrosens.de/english/shop/list.html?tx_ttproducts_pi1%5Bcat%5D=11&amp;amp;cHash=dcd89b823b Homepage])&lt;br /&gt;
&lt;br /&gt;
Die TSic Sensoren ([http://www.zmd.biz/pdf/ZMD%20TSic%20Data%20Sheet%20V3%207.pdf Datenblatt]) geben ihre Temperaturmessdaten automatisch in einem festen Intervall aus. Daher muss der Host nur warten bis die nächsten Messdaten rausgeschickt werden. Die TSic Sensoren die es im freien Handel gibt, geben ihre Messdaten alle 100ms (10Hz) aus. &lt;br /&gt;
Zur Übertragung wird das [http://www.zmd.biz/pdf/IST_TSic_ZACwire_V2.3%20Digital%20Output_17-Oct-06.pdf ZACwire] Protokoll benutzt. Es handelt sich um eine einfach zwei Byte Übertragung per Manchester-Code. Diese zwei Byte repräsentieren den digital gewandelten Temperaturwert. Im Gegensatz zu Sensoren wie den DS18xxx von Dallas muss dieser Wert aber erst auf einen dezimalen Wert umgerechnet werden. &lt;br /&gt;
Die Sensoren kommen mit 3 Pins aus (VCC, GND, Dout).&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* Bereits kalibriert&lt;br /&gt;
* Verschiedene Genauigkeiten lieferbar&lt;br /&gt;
* Sehr einfaches Kommunikationsprotokoll&lt;br /&gt;
* Geringer Stromverbrauch&lt;br /&gt;
* Hochgenau: bis zu +/- 0.1°C (TSic 50x)&lt;br /&gt;
&lt;br /&gt;
Nachteil:&lt;br /&gt;
* Recht teuer (Reichelt: 4,70&amp;amp;euro; für den TSic206)&lt;br /&gt;
* Nur ein Sensor an einem I/O nutzbar (Kein Bussystem)&lt;br /&gt;
&lt;br /&gt;
Achtung! &lt;br /&gt;
Die TSic Sensoren gibt es auch als Version mit analog Ausgang. Bei der Typenbezeichnung gibt die 3. Stelle an ob es sich um die analog- oder Digitalversion handelt (1 = analog, 6 = digital). &lt;br /&gt;
Der TSic201 ist also analog, wärend der TSic206 ein digitaler ist.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/45573#347765 Ansatz zum Empfang der Daten]&lt;br /&gt;
* [http://ethersex.de/index.php/Zacwire Fertige Ansteuerung durch AVR in Ethersex]&lt;br /&gt;
* [http://www.zmd.biz/temp.php?group=temp&amp;amp;content=products Herstellerseite mit Datenblättern und FAQ]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/82087 Diskussion mit Beispielcode (MSP430, AVR, PIC)]&lt;br /&gt;
* [http://www.mikrocontroller.net/search?query=tsic* Suche in den Foren]&lt;br /&gt;
&lt;br /&gt;
=== SHT1x/SHT7x ===&lt;br /&gt;
&lt;br /&gt;
Der SHT1x/SHT7x (SHT10, SHT11, SHT15, STH71, SHT75) sind kombinierte Temperatur- und Feuchtesensoren von [http://www.sensirion.com Sensirion]. Sie unterscheiden sich in Bauform und Genauigkeit.&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* digitale Schnittstelle mit einfacher [[I²C]]-&#039;&#039;ähnlicher&#039;&#039; Ansteuerung&lt;br /&gt;
* keine Kalibrierung notwendig&lt;br /&gt;
* Beispielcode (C, MC51) auf der Sensirion-Seite verfügbar (relativ leicht portierbar)&lt;br /&gt;
* interne Heizelemente (Funktionsprüfung, &amp;quot;rauhe&amp;quot; Umgebung)&lt;br /&gt;
* Spannungsmonitor (&amp;quot;Battery fail&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* kann nicht am [[I²C]] Bus betrieben werden, theoretisch gleiche Clockleitung möglich, fixe Adresse&lt;br /&gt;
* relativ teuer (Farnell 18,60&amp;amp;euro;)&lt;br /&gt;
&lt;br /&gt;
=== ADT7310 ===&lt;br /&gt;
&lt;br /&gt;
Der ADT7310 von [http://www.analog.com/en/sensors/digital-temperature-sensors/adt7310/products/product.html Analog Devices] besitzt eine Auflösung von 16 Bit und eine Genauigkeit von ±0.5°C (die Genauigkeit gilt für den Bereich von −40°C bis +105°C).&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* Ansteuerung per SPI&lt;br /&gt;
* keine Kalibrierung notwendig&lt;br /&gt;
* hohe Auflösung und Genauigkeit&lt;br /&gt;
* programmierbarer Interruptausgang für Unter- und Übertemperatur&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* zur Zeit noch schlecht erhältlich (z.B. bei Digikey für 4,39$)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Sensorik]]&lt;/div&gt;</summary>
		<author><name>85.216.122.79</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=STM8&amp;diff=45455</id>
		<title>STM8</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=STM8&amp;diff=45455"/>
		<updated>2010-03-29T15:42:14Z</updated>

		<summary type="html">&lt;p&gt;85.216.122.79: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Beim STM8 handelt es sich um die neueste 8-Bit-Controllerlinie von &#039;&#039;&#039;ST Microelectronics&#039;&#039;&#039;. Sie zeichnet sich durch schnelle Ausführungszeiten (durchschnittlich 1,6 Takte per Instruktion), 16 MByte linearem Adressraum, umfangreichen Peripherieoptionen (wie integriertem CAN-Controller) und integriertem echtem EEPROM aus.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Architektur&#039;&#039;&#039;: Akkumulatorbasierte, modifizierte Harvard-Architektur mit gemeinsamen Adressraum&lt;br /&gt;
* &#039;&#039;&#039;Busbreite&#039;&#039;&#039;: Datenbus 32 Bit, Adressbus 24 Bit&lt;br /&gt;
* &#039;&#039;&#039;Hauptspeicher&#039;&#039;&#039;: 512 Bytes bis 6 kBytes SRAM&lt;br /&gt;
* &#039;&#039;&#039;Programmspeicher&#039;&#039;&#039;: 4 bis 128 kBytes Flash&lt;br /&gt;
* &#039;&#039;&#039;EEPROM&#039;&#039;&#039;: 384 Bytes bis 2 kBytes&lt;br /&gt;
* &#039;&#039;&#039;Spannungsversorgung&#039;&#039;&#039;: 1,8 bis 5,5V &lt;br /&gt;
* &#039;&#039;&#039;Taktfrequenz&#039;&#039;&#039;: bis 24 MHz&lt;br /&gt;
* &#039;&#039;&#039;Bauformen&#039;&#039;&#039;: SDIP, SOIC, TSSOP, LQFP, QFN, UQFPN, WLCSP, Unsawn Wafer.&lt;br /&gt;
* &#039;&#039;&#039;Pins&#039;&#039;&#039;: 20 bis 80&lt;br /&gt;
&lt;br /&gt;
===Familien===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;STM8S&#039;&#039;&#039;: Standardversion&lt;br /&gt;
* &#039;&#039;&#039;STM8L&#039;&#039;&#039;: Low-Power-Version&lt;br /&gt;
* &#039;&#039;&#039;STM8A&#039;&#039;&#039;: Automotive Grade&lt;br /&gt;
&lt;br /&gt;
===Weblinks===&lt;br /&gt;
* [http://www.st.com/mcu/inchtml-pages-stm8.html STM8-Familie auf der ST-Website]&lt;br /&gt;
* [http://www.st.com/mcu/contentid-130-113-STM8S_DISCOVERY.html Evaluation board STM8S-Discovery auf der ST-Website]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Mikrocontroller]]&lt;/div&gt;</summary>
		<author><name>85.216.122.79</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Sleep_Mode&amp;diff=44384</id>
		<title>Sleep Mode</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Sleep_Mode&amp;diff=44384"/>
		<updated>2010-03-11T14:48:13Z</updated>

		<summary type="html">&lt;p&gt;85.216.122.79: /* Stand By */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Auf deutsch Schlafmodus. Damit bezeichnet man den Zustand eines [[Mikrocontroller]]s, in dem verschiedene Funktionsblöcke ausgeschaltet sind ([[Timer]], [[UART]], [[AD-Wandler]] etc.) um Strom zu sparen. Das ist vor allem in [[Versorgung aus einer Zelle | batteriebetriebenen]] Geräten wichtig. Denn schließlich möchte man ja eine möglichst lange Laufzeit mit einer möglichst kleinen Batterie erreichen.&lt;br /&gt;
&lt;br /&gt;
Mit dem Sleep Mode eng verknüpft ist das [[Ultra low power]] Design. Man muss viele Dinge beachten, um nicht unnötig Strom zu verbrauchen. Z. B. werden in vielen Geräten über lange Zeiträume Daten erfaßt (Datenschreiber). Dabei werden meist relativ wenig Daten in sehr langen Zeitabständen aufgezeichnet und gespeichert. Zwischendurch gibt es für den Mikrocontroller meist nichts zu tun. Dann ist es nicht sinnvoll in Warteschleifen Zeit zu vertrödeln. Das geht wesentlich stromsparender.&lt;br /&gt;
&lt;br /&gt;
Die Ausführungen dieses Wikiartikels beziehen sich auf den [[AVR]] ATmega32. Prinzipiell gilt das Gesagte auch für viele andere Mikrocontroller ([[MSP430]], [[8051]] etc.), die Details muss man jedoch in den jeweiligen Datenblättern nachlesen. Bei den verschiedenen AVR Modellen findet man diese Informationen im Datenblatt unter der Überschrift &amp;quot;Power Management and Sleep Modes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Sleep_mode_ablauf.png|framed|Flussdiagramm]] Das Prinzip ist immer gleich. Nach Initialisierung des Mikrocontrollers und eventuell angeschlossener ICs ([[LCD]], [[I2C]]-EEPROM etc.) geht der Prozessor in eine Endlosschleife, in welcher die verschiedenen Aufgaben zyklisch bearbeitet werden. Wenn jedoch gerade nichts zu tun ist geht der Prozessor schlafen. Ein Interrupt weckt ihn, der Interrupt wird ausgeführt und er setzt seine Arbeit in der Hauptschleife fort. Das heißt aber auch, daß vor dem Eintritt in den Sleep-Mode die jeweiligen Interrupts freigegeben werden müssen und auch die entsprechenden Interruptroutinen bereitgestellt werden müssen. Sonst gibt es im wahrsten Sinne des Wortes ein böses Erwachen oder einen endlosen Dornröschenschlaf, der nur durch ein Reset beendet werden kann. Kurz bevor der Mikrocontroller schlafen geht, sollte man möglichst alle Module abschalten, welche nicht gebraucht werden, um wertvollen Strom zu sparen. Dazu zählen&lt;br /&gt;
&lt;br /&gt;
* der [[Brownout|Brown Out]] Detector (per [[AVR Fuses]] einschaltbar)&lt;br /&gt;
* der Analogcomparator&lt;br /&gt;
* interne AD-Referenz&lt;br /&gt;
* [[Watchdog]]&lt;br /&gt;
* [[UART]]&lt;br /&gt;
* [[Timer]]&lt;br /&gt;
&lt;br /&gt;
Weitere Hinweise zum Stromsparen gibt es im Artikel [[Ultra low power]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Überlick über alle Sleep Modes der AVRs ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Sleep Mode || Verfügbare Module || Stromaufnahme&amp;lt;BR&amp;gt;3,3V/1 MHz || Weckruf || Aufwachzeit&amp;lt;BR&amp;gt;[Takte] || Bemerkung&lt;br /&gt;
|-&lt;br /&gt;
| Active     || alle              &lt;br /&gt;
|align =&amp;quot;center&amp;quot;|  1,2mA                                  || alle     &lt;br /&gt;
|align =&amp;quot;center&amp;quot;| 0 &lt;br /&gt;
| - &lt;br /&gt;
|- &lt;br /&gt;
| Idle       || alle              &lt;br /&gt;
|align =&amp;quot;center&amp;quot;| 0,3mA                                   || alle     &lt;br /&gt;
|align =&amp;quot;center&amp;quot;| 6 &lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| ADC Noise&amp;lt;BR&amp;gt;Reduction || ADC&amp;lt;BR&amp;gt;Timer 2&amp;lt;BR&amp;gt;ext. Interrupts&amp;lt;BR&amp;gt;TWI&amp;lt;BR&amp;gt;Watchdog  &lt;br /&gt;
|align =&amp;quot;center&amp;quot;| ca. 0,3mA || ADC&amp;lt;BR&amp;gt;Timer 2&amp;lt;BR&amp;gt;ext. &#039;&#039;&#039;level&#039;&#039;&#039; Interrupt&amp;lt;BR&amp;gt;[[TWI]] Address match&amp;lt;BR&amp;gt;Brown Out Detector Reset&amp;lt;BR&amp;gt;External Reset&amp;lt;BR&amp;gt;Watchdog Reset &lt;br /&gt;
|align =&amp;quot;center&amp;quot;| 6&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| Power Save || Timer 2&amp;lt;BR&amp;gt;ext. Interrupts&amp;lt;BR&amp;gt;TWI&amp;lt;BR&amp;gt;Watchdog &lt;br /&gt;
|align =&amp;quot;center&amp;quot;|   10&amp;amp;mu;A         || Timer 2&amp;lt;BR&amp;gt;ext. &#039;&#039;&#039;level&#039;&#039;&#039; Interrupt&amp;lt;BR&amp;gt;TWI Address match&amp;lt;BR&amp;gt;Brown Out Detector Reset&amp;lt;BR&amp;gt;External Reset&amp;lt;BR&amp;gt;Watchdog Reset &lt;br /&gt;
|align =&amp;quot;center&amp;quot;| siehe&amp;lt;BR&amp;gt;[[#Morgenmuffel | hier]]&lt;br /&gt;
| Timer2 mit 32,768 kHz&amp;lt;BR&amp;gt;Uhrenquarz aktiv&lt;br /&gt;
|-&lt;br /&gt;
| Stand By   ||  ext. Interrupts&amp;lt;BR&amp;gt;TWI&amp;lt;BR&amp;gt;Watchdog &lt;br /&gt;
|align =&amp;quot;center&amp;quot;|   35&amp;amp;mu;A                              || ext. &#039;&#039;&#039;level&#039;&#039;&#039; Interrupt&amp;lt;BR&amp;gt;TWI Address match&amp;lt;BR&amp;gt;Brown Out Detector Reset&amp;lt;BR&amp;gt;External Reset&amp;lt;BR&amp;gt;Watchdog Reset &lt;br /&gt;
|align =&amp;quot;center&amp;quot;|  6&lt;br /&gt;
| Hauptoszillator aktiv&lt;br /&gt;
|-&lt;br /&gt;
| Power Down ||  ext. Interrupts&amp;lt;BR&amp;gt;TWI&amp;lt;BR&amp;gt;Watchdog &lt;br /&gt;
|align =&amp;quot;center&amp;quot;| 0,3&amp;amp;mu;A                                 ||ext. &#039;&#039;&#039;level&#039;&#039;&#039; Interrupt&amp;lt;BR&amp;gt;TWI Address match&amp;lt;BR&amp;gt;Brown Out Detector Reset&amp;lt;BR&amp;gt;External Reset&amp;lt;BR&amp;gt;Watchdog Reset&amp;lt;br\&amp;gt;PCINT&lt;br /&gt;
|align =&amp;quot;center&amp;quot;| siehe&amp;lt;BR&amp;gt;[[#Morgenmuffel | hier]]&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Die verschiedenen Sleep Modes im Detail ==&lt;br /&gt;
&lt;br /&gt;
=== Active Mode ===&lt;br /&gt;
&lt;br /&gt;
Eigentlich ist das kein Sleep Mode, er soll der Vollständigkeit halber aber genannt werden. In diesem Modus sind alle Takte und alle Module aktiv, zumindest die, die man per Programm aktiviert hat. In diesem Modus ist die CPU ständig am arbeiten, auch wenn es nur eine lange Warteschleife ist. Warten kostet genauso viel Strom wie sinnvolle Dinge berechnen! Dadurch werden auch ständig Daten aus dem [[Speicher#Flash-ROM | Flash]] geladen, nämlich das Programm, welches gerade ausgeführt wird. Das kostet natürlich Strom, wenn gleich auch die Mikrocontroller von heute sehr wenig brauchen. Bei 1 MHz und 3.3V braucht der ATmega ca. 1,2mA, zu finden im Datenblatt unter &amp;quot;ATmega8 Typical Characteristics&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Idle Mode ===&lt;br /&gt;
&lt;br /&gt;
Hier kann zum ersten mal gespart werden. Wenn nichts berechnet werden soll, der Timer, UART, ADC etc. aber arbeiten sollen, dann ist dieser Modus das Mittel der Wahl. Die CPU bleibt stehen, ebenso der Flash, weil ja kein Programm ausgeführt wird. Das spart schon mal einiges, der Stromverbrauch sinkt auf ca. 0,35mA, eine Einsparung von 70%! Aus diesem Modus kann jeder Interrupt die CPU wieder wecken. Sie ist dann bereits nach sechs Takten wieder voll einsatzfähig.&lt;br /&gt;
&lt;br /&gt;
=== ADC Noise Reduction Mode ===&lt;br /&gt;
&lt;br /&gt;
Dieser Modus geht einen kleinen Schritt weiter als der Idle Mode. Hier wird zusätzlich der Takt für die IO-Module abgeschaltet. Nur noch der [[AD-Wandler]], die exteren Interrupts, das [[TWI]] und der Watchdog sind funktionsfähig (wenn man sie nutzen will). Der [[UART]] und Timer0 bzw. Timer1 sind nicht mehr nutzbar. Wie der Name des Sleep Mode vermuten lässt wird das alles getan, um möglichst wenig Störungen mit den internen Modulen zu erzeugen, um die Messung des ADC geringfügig zu verbessern.&lt;br /&gt;
&lt;br /&gt;
=== Power Save Mode ===&lt;br /&gt;
&lt;br /&gt;
Hier werden fast alle Oszillatoren gestoppt. Die einzige Ausnahme ist der Timer 2, welcher asynchron mit einem 32,768 kHz Uhrenquarz betrieben werden kann. Ist er entsprechend konfiguriert, dann bleibt er beim Einschalten des Power Save Mode aktiv. Dieser Modus ist einer der wichtigsten! Da alle Oszillatoren gestoppt sind, funktionieren nur noch die asynchronen Module.&lt;br /&gt;
&lt;br /&gt;
Bei neueren AVR-Typen (z.B. ATMega88/ATMega644) kann Timer2 wahlweise auch mit dem internen Oszillator weiterlaufen. In dem Fall braucht es keinen externen Uhrenquarz.&lt;br /&gt;
&lt;br /&gt;
=== Stand By ===&lt;br /&gt;
&lt;br /&gt;
Hier werden alle Takte auf dem IC angehalten. &#039;&#039;&#039;ABER!&#039;&#039;&#039; Der ausgewählte Hauptoszillator läuft weiter. Das kostet zwar etwas Strom, hat aber den Riesenvorteil, daß die CPU nach dem Aufwachen nach nur sechs Takten wieder zur Verfügung steht. Das klingt selbstverständlich, ist es aber nicht! Gerade Quarzoszillatoren haben auf Grund ihrer sehr hohen Güte (sehr schmalbandiger Schwingkreis) eine Einschwingzeit von 10..100ms! Eine kleine Ewigkeit. Dieser Modus ist ideal, wenn ein Quarz verwendet wird und kürzeste Reaktionszeiten nach dem Aufwecken nötig sind. Da alle Takte gestoppt sind, funktionieren nur noch die asynchronen Module.&lt;br /&gt;
&lt;br /&gt;
=== Power Down Mode ===&lt;br /&gt;
&lt;br /&gt;
Das ist der &amp;quot;tiefste&amp;quot; Sleep Mode. Dabei werden &#039;&#039;&#039;ALLE&#039;&#039;&#039; Oszillatoren gestoppt (intern wie extern). Nur noch asynchrone Module funktionieren jetzt noch und können den schlafenden AVR wecken. Die Stromaufnahme wird nur noch von den Leckströmen bestimmt und liegt typisch bei 300nA.&lt;br /&gt;
&lt;br /&gt;
== Morgenmuffel ==&lt;br /&gt;
&lt;br /&gt;
Im Power Save und Power Down Mode ist der Oszillator für die CPU gestoppt. Wird der AVR nun geweckt kann er leider nicht sofort loslegen. Warum? Weil der Oszillator erst anlaufen und sich stabil einschwingen muß. Während dieser Zeit darf die CPU noch nicht loslaufen, sonst kann es passieren, daß sie abstürzt! (Weil ein noch instabiler Oszillator ultrakurze Taktpulse erzeugen kann, an denen sich die CPU &amp;quot;verschluckt&amp;quot;.) Wie bereits oben gesagt kann das Anschwingen eines Quarzoszillators sehr lange dauern. Je niedriger die Frequenz um so länger. Keramikresonatoren sind ca. zehn mal so schnell. Auch das ist ganz einfach physikalisch durch die Güte bestimmt. Sie sind breitbandiger, dadurch zwar ungenauer aber schwingen schneller an. Am schnellsten sind RC-Oszillatoren, leider sind sie aber auch die ungenauesten. Um nun die entsprechende Zeit zu warten wird der Watchdog-Oszillator verwendet. Darum muß man sich nicht direkt kümmern das macht der AVR allein. Aber man muß mittels der [[AVR Fuses]] festlegen, wieviel Takte gewartet werden soll. Die Frequenz des Watchdogoszillators beträgt ca. 1,15 MHz bei 3,3V Versorgungsspannung.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   Taktquelle                 || Wartezeit [Takte] || Wartezeit      || typische Einschwingzeit&lt;br /&gt;
|-&lt;br /&gt;
|   externer Quarz (1)         || 16384&amp;lt;BR&amp;gt; 32768      || 14,2ms&amp;lt;BR&amp;gt; 28,4ms || 10ms, Uhrenquarze 100ms&lt;br /&gt;
|-&lt;br /&gt;
|   externer Resonator (1)     || 1024&amp;lt;BR&amp;gt; 16384       || 890&amp;amp;mu;s&amp;lt;BR&amp;gt; 14,2ms || 1ms&lt;br /&gt;
|-&lt;br /&gt;
|   externer Quarzoszillator   || 6                    || 5&amp;amp;mu;s      || Takt liegt konstant an&lt;br /&gt;
|-&lt;br /&gt;
|   externer RC-Oszillator     || 6&amp;lt;BR&amp;gt; 18             || 5&amp;amp;mu;s&amp;lt;BR&amp;gt; 15&amp;amp;mu;s || 1..3 Takte&lt;br /&gt;
|-&lt;br /&gt;
|  interner RC-Oszillator      || 6                    || 5&amp;amp;mu;s        || 1..3 Takte&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(1) Es können für den Quarz bzw. Resonator auch niedigere Wartezeiten verwendet werden. Das ist jedoch nicht empfehlenswert. Näheres siehe Datenblatt.&lt;br /&gt;
&lt;br /&gt;
== Ermittlung des Stromverbrauchs ==&lt;br /&gt;
&lt;br /&gt;
Bei der Messung des Stromverbrauchs haben wir jedoch ein kleines Problem. Die Stromaufnahme eines Mikrocontrollers schwankt bei der Verwendung des Sleep Mode gewaltig. Denn oft wartet der Mikrocontroller im Schlafmodus auf ein Ereignis, z.B. einen Tastendruck. Wird eine Taste gedrückt arbeitet der Mikrocontroller beispielsweise für 100ms und geht dann wieder für Sekunden bis Tage schlafen. Die stoßartige Arbeitsweise (Burst) gleicht einer [[PWM]]. Das Problem ist dabei, daß man theoretisch mit einem Tiefpaß diese PWM filtern (glätten) muß um sie anschließend mit einem Multimeter zu messen. Aber wer will schon einen Tiefpaß mit einer Zeitkonstante von mehreren Minuten bis Tagen bauen und damit messen? Das Problem muß anders gelöst werden. Und das ist recht leicht.&lt;br /&gt;
&lt;br /&gt;
* Mit einem Multimeter mißt man die Stromaufnahme im Sleep Mode (Mikroampere)&lt;br /&gt;
* Mit einem Reihenwiderstand von 10..100 Ohm in der Vcc Leitung des Mikrocontrollers und einem Oszilloskop kann die Stromaufnahme des Mikrocontrollers während der kurzen aktiven Arbeitsphase gemessen werden. Dazu braucht man nur das ohmsche Gesetz, I = U / R. Dabei nutzt man einen 1:1 Tastkopf, um eine maximale Spannungsauflösung zu ereichen. Ausserdem schaltet man den Eingang auf AC-Kopplung, da ja nur Pulse gemessen werden, keine Gleichspannungen. Damit kann man vor allem den Spannungsmessbereich sehr weit runter drehen.  &lt;br /&gt;
* Der mittlere Stromverbrauch wird wie folgt berechnet&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;I_m = \frac {I_{sleep} \cdot t_{sleep} + I_{aktiv} \cdot t_{aktiv}}{t_{sleep} + t_{aktiv}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batterielebensdauer ==&lt;br /&gt;
&lt;br /&gt;
Wie übersetzen sich nun diese Zahlen in eine Batterielebensdauer? Versorgt man den AVR über drei in Reihe geschaltete AAA [[Versorgung aus einer Zelle | Batterien]], kann man etwa folgende Abschätzung machen. Eine AAA Batterie (Mignon) hat eine Kapazität von ca. 1200mAh. D.H. Sie kann für 1200 Stunden (50 Tage) 1mA liefern. Oder für 12000 Stunden 0,1mA, das sind immerhin schon 500 Tage, also über sechzehn Monate! Nutzt man den Power Save Mode (10uA), dann reichen die Batterien bereits 120.000 Stunden, das sind theoretisch 13,7 Jahre! Natürlich sinkt während der Entladung die  Batteriespannung, aber der Mega32 kann ja mit 2,7V betrieben werden, einige [[AVR]]-Typen sogar mit nur 1,8V. Ebenso wird es in 13 Jahren zu einer merklichen Selbstentladung der Batterien kommen, so daß die hier berechnete Zeit nicht erreicht wird. Real kann eher mit drei bis sieben Jahren gerechnet werden. Um eine hohe Lebensdauer zu erreichen müssen dann Lithiumbatterien verwendet werden, welche eine extrem geringe Selbstentladung haben und eine Lebensdauer von 10 Jahren erreichen.&lt;br /&gt;
&lt;br /&gt;
Wenn man wirklich das allerletzte Mikroampere einsparen will und dennoch quarzgenau eine Zeitbasis benötigt, dann verwendet man eine &#039;&#039;&#039;R&#039;&#039;&#039;eal &#039;&#039;&#039;T&#039;&#039;&#039;ime &#039;&#039;&#039;C&#039;&#039;&#039;lock (RTC, Echtzeituhr), wie z.B. [http://datasheets.maxim-ic.com/en/ds/DS1371.pdf DS1371]. Dieser Baustein arbeitet auch mit einem 32,768 kHz Uhrenquarz, ist aber extrem auf Stromsparen optimiert (Stromverbrauch 800..1100nA). Gleichzeitig ist eine Uhr und Weckfunktion eingebaut. Ausgelesen werden kann sie über den [[I2C]]-[[Bus]]. Diese RTC kann den Mikrocontroller periodisch nach einer bestimmten Zeit (Sekunden bis Tage) über einen externen Interrupt wecken. Damit kann der Mikrocontroller in den Power Down Mode gehen und maximal Strom sparen. So eine Kombination aus AVR und RTC verbraucht dann nur noch  ca. 1400nA! Eine kleine 3V Lithiumzelle mit 100mAh reicht dann unglaubliche 71.400 Stunden = 8 Jahre!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Allgemein gilt:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\text{Lebensdauer} [h] = \frac {\mathrm{Kapazit\ddot at} [Ah] }{\text{Strom} [A]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zu beachten ist, daß diese Formel nur für relativ geringe Entladeströme gilt, typisch bei einer Entladung über 20 Stunden oder länger. Will man hohe Ströme in einer kurzen Zeit entnehmen, sinkt die verfügbare Kapazität. Genaueres findet man dazu [http://www.amplepower.com/pwrnews/beer/ hier] und im Datenblatt der Batterien.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
&lt;br /&gt;
Die Beispiele sind mit WINAVR 20060421 compiliert und getestet worden. Zur Nutzung des Sleep Mode werden zwei C-Funktionen zur Verfügung gestellt, set_sleep_mode() und sleep_mode(). Genaueres hierzu findet man in der Dokumentation der libc im WINAVR. Alle Programme wurden mit Optimierungsstufe -Os compiliert.&lt;br /&gt;
&lt;br /&gt;
=== UART Terminal ===&lt;br /&gt;
&lt;br /&gt;
Soll der UART verwendet werden kommt nur der Idle Mode in Frage. In diesem Beispiel wird der AVR genutzt um Zeichen von der [[RS232]] Schnittstelle zu empfangen und per Morsezeichen auszugeben. Als Hauptoszillator wird ein 3,6864 MHz Quarz eingesetzt, wie für eine zuverlässige UART-Kommunikation notwendig ist. Siehe auch [[AVR-Tutorial: UART | AVR-Tutorial]], [[AVR Checkliste#UART.2FUSART | AVR Checkliste]] und [[AVR-GCC-Tutorial#Der_UART | AVR-GCC-Tutorial]]. Im Sleepmode verbraucht der AVR ca. 1,9mA, im aktiven Zustand mit eingeschalteter LED ca. 7,3mA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
************************************************************************&lt;br /&gt;
*&lt;br /&gt;
* Sleep Mode Demo, Idle Mode&lt;br /&gt;
*&lt;br /&gt;
* ATmega32 mit externem 3,6864 MHz Quarz an XTAL1/XTAL2&lt;br /&gt;
*&lt;br /&gt;
* LOW Fuse Byte = 0xFF&lt;br /&gt;
*&lt;br /&gt;
* An PD5 muss eine LED mit 1 kOhm Vorwiderstand angeschlossen werden&lt;br /&gt;
* An PD0 ist ein MAX232 angeschlosssen, um Daten vom PC zu empfangen&lt;br /&gt;
*&lt;br /&gt;
************************************************************************&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#define F_CPU 3686400       // Taktfrequenz des Quarzes&lt;br /&gt;
&lt;br /&gt;
#define BAUD 9600L          // Baudrate, das L am Ende ist wichtig, NICHT UL verwenden!&lt;br /&gt;
 &lt;br /&gt;
// Berechnungen&lt;br /&gt;
#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)   // clever runden&lt;br /&gt;
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1)))     // Reale Baudrate&lt;br /&gt;
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD-1000) // Fehler in Promille &lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/sleep.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// globale Variablen&lt;br /&gt;
&lt;br /&gt;
volatile uint8_t uart_flag;&lt;br /&gt;
volatile uint8_t uart_data;&lt;br /&gt;
&lt;br /&gt;
// lange, variable Wartezeit, Einheit in Millisekunden&lt;br /&gt;
&lt;br /&gt;
void long_delay(uint16_t ms) {&lt;br /&gt;
    for (; ms&amp;gt;0; ms--) _delay_ms(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Ein Byte als &amp;quot;Morsezeichen&amp;quot; auf eine LED ausgeben&lt;br /&gt;
&lt;br /&gt;
void morse(uint8_t data) {&lt;br /&gt;
    uint8_t i,j;&lt;br /&gt;
    &lt;br /&gt;
    for(i=0; i&amp;lt;8; i++) {&lt;br /&gt;
        if (data &amp;amp; 0x01)        // Prüfe Bit #0&lt;br /&gt;
            j=250;              // Bit ist 1&lt;br /&gt;
        else&lt;br /&gt;
            j=100;              // Bit ist 0&lt;br /&gt;
&lt;br /&gt;
        PORTD |= (1 &amp;lt;&amp;lt; PD5);    // LED an&lt;br /&gt;
        long_delay(j);&lt;br /&gt;
        PORTD &amp;amp;= ~(1 &amp;lt;&amp;lt; PD5);   // LED aus&lt;br /&gt;
        long_delay(1000-j);&lt;br /&gt;
        data &amp;gt;&amp;gt;= 1;             // nächstes Bit auf Bit #0 schieben&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main (void) {&lt;br /&gt;
&lt;br /&gt;
// IO konfigurieren&lt;br /&gt;
&lt;br /&gt;
    DDRA = 0xFF;&lt;br /&gt;
    DDRB = 0xFF;&lt;br /&gt;
    DDRC = 0xFF;&lt;br /&gt;
    DDRD = 0xFF;&lt;br /&gt;
&lt;br /&gt;
// UART konfigurieren&lt;br /&gt;
&lt;br /&gt;
    UBRRH = UBRR_VAL &amp;gt;&amp;gt; 8;&lt;br /&gt;
    UBRRL = UBRR_VAL &amp;amp; 0xFF;&lt;br /&gt;
    UCSRB = (1&amp;lt;&amp;lt;RXCIE) | (1&amp;lt;&amp;lt;RXEN); &lt;br /&gt;
&lt;br /&gt;
// Interrupts freigeben&lt;br /&gt;
&lt;br /&gt;
    sei();&lt;br /&gt;
    &lt;br /&gt;
// Endlose Hauptschleife&lt;br /&gt;
&lt;br /&gt;
    while(1) {&lt;br /&gt;
        set_sleep_mode(SLEEP_MODE_IDLE);&lt;br /&gt;
        sleep_mode();                   // in den Schlafmodus wechseln&lt;br /&gt;
&lt;br /&gt;
        // hier wachen wir wieder auf&lt;br /&gt;
        if (uart_flag==1) {&lt;br /&gt;
            uart_flag =0;&lt;br /&gt;
            morse(uart_data);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// UART RX complete interrupt&lt;br /&gt;
&lt;br /&gt;
ISR(USART_RXC_vect) {&lt;br /&gt;
    uart_flag = 1;              // signalisiere neue Daten&lt;br /&gt;
    uart_data = UDR;            // Daten auslesen, dadurch wird auch der Interrupt gelöscht&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Quarzgenaue Zeitbasis ===&lt;br /&gt;
&lt;br /&gt;
Hier kommt der Power Save Mode zum Einsatz. Als Zeitbasis dient ein externer 32,768 kHz Uhrenquarz, welcher asynchron den Timer 2 taktet. Das ist zwar nur ein 8 Bit Zähler, der schon nach 256 Takten überläuft, aber es gibt ja zum Glück noch den Vorteiler (Prescaler). Dieser kann die Teilerverhältnisse 1/8/32/256/1024 annehmen, daraus ergeben sich Überlaufzeiten von 7,8125ms/62,5ms/250ms/2s/8s. Werden längere Zeiten benötigt muß man diese in Software nachbilden. Z. B. kann man mit einem zwei Sekunden Intervall in einer Variable bis 30 zählen um exakt eine Minute zu erhalten. Die 30 mal aufwachen, Variable hochzählen und wieder in den Sleep Mode schalten fallen praktisch nicht ins Gewicht, das dauert nur einige Dutzend Mikrosekunden.&lt;br /&gt;
&lt;br /&gt;
Das hier gezeigte Beispiel ist sehr einfach gehalten, zeigt aber deutlich die Vorgehensweise. Im quarzgenauen Zeitraster von einer Minute wird eine LED für zwei Sekunden eingeschaltet. In den realen Anwendungen wird natürliche eine Messung etc. gemacht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
************************************************************************&lt;br /&gt;
*&lt;br /&gt;
* Sleep Mode Demo, Power Save Mode&lt;br /&gt;
*&lt;br /&gt;
* ATmega32 mit internem 1 MHz Oszillator + 32 kHz Quarz&lt;br /&gt;
*&lt;br /&gt;
* LOW Fuse Byte = 0xE1&lt;br /&gt;
*&lt;br /&gt;
* An PD5 muss eine LED mit 1 kOhm Vorwiderstand angeschlossen werden&lt;br /&gt;
* An TOSC1/TOSC2 muss ein 32,768 kHz Quarz angeschlossen sein&lt;br /&gt;
*&lt;br /&gt;
************************************************************************&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#define F_CPU 1000000&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/sleep.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// globale Variablen&lt;br /&gt;
&lt;br /&gt;
volatile uint8_t flag;&lt;br /&gt;
&lt;br /&gt;
// lange, variable Wartezeit, Einheit in Millisekunden&lt;br /&gt;
&lt;br /&gt;
void long_delay(uint16_t ms) {&lt;br /&gt;
    for (; ms&amp;gt;0; ms--) _delay_ms(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main (void) {&lt;br /&gt;
&lt;br /&gt;
// IO konfigurieren&lt;br /&gt;
&lt;br /&gt;
    DDRA = 0xFF;&lt;br /&gt;
    DDRB = 0xFF;&lt;br /&gt;
    DDRC = 0xFF;&lt;br /&gt;
    DDRD = 0xFF;&lt;br /&gt;
&lt;br /&gt;
// Analogcomparator ausschalten&lt;br /&gt;
&lt;br /&gt;
    ACSR = 0x80;&lt;br /&gt;
&lt;br /&gt;
// Timer2 konfigurieren&lt;br /&gt;
&lt;br /&gt;
    ASSR  = (1&amp;lt;&amp;lt; AS2);              // Timer2 asynchron takten&lt;br /&gt;
    long_delay(1000);               // Einschwingzeit des 32kHz Quarzes&lt;br /&gt;
    TCCR2  = 6;                     // Vorteiler 256 -&amp;gt; 2s Überlaufperiode&lt;br /&gt;
    while((ASSR &amp;amp; (1&amp;lt;&amp;lt; TCR2UB)));   // Warte auf das Ende des Zugriffs&lt;br /&gt;
    TIFR   = (1&amp;lt;&amp;lt;TOV2);             // Interrupts löschen (*)&lt;br /&gt;
    TIMSK |= (1&amp;lt;&amp;lt;TOIE2);            // Timer overflow Interrupt freischalten&lt;br /&gt;
// (*) &amp;quot;Alternatively, TOV2 is cleared by writing a logic one to the flag.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Interrupts freigeben&lt;br /&gt;
&lt;br /&gt;
    sei();&lt;br /&gt;
&lt;br /&gt;
// Endlose Hauptschleife&lt;br /&gt;
&lt;br /&gt;
    while(1) {&lt;br /&gt;
&lt;br /&gt;
        // WICHTIG!&lt;br /&gt;
        // Wenn der Timer2 im asynchronen Modus periodisch zum Wecken aus dem Sleep Mode&lt;br /&gt;
        // genutzt wird, dann muss vor dem Wiedereintritt mindestens&lt;br /&gt;
        // 1 Oszillatortakt des Timers abgewartet werden (~30us), um die Interruptlogik &lt;br /&gt;
        // wieder zu aktivieren, anderenfalls wacht der AVR nicht mehr auf.&lt;br /&gt;
        // Die folgenden zwei Zeilen tun dies.&lt;br /&gt;
        // Nur wenn sichergestellt ist, dass der Interrupt + Hauptschleife länger als 30us dauern,&lt;br /&gt;
        // kann man den Test weglassen&lt;br /&gt;
&lt;br /&gt;
        OCR2 = 0;                       // Dummyzugriff&lt;br /&gt;
        while((ASSR &amp;amp; (1&amp;lt;&amp;lt; OCR2UB)));   // Warte auf das Ende des Zugriffs&lt;br /&gt;
&lt;br /&gt;
        set_sleep_mode(SLEEP_MODE_PWR_SAVE);&lt;br /&gt;
        sleep_mode();                   // in den Schlafmodus wechseln&lt;br /&gt;
&lt;br /&gt;
        // hier wachen wir wieder auf, nach Ausführung des Interrupts&lt;br /&gt;
&lt;br /&gt;
        if (flag==1) {                  // Neues Messintervall ?&lt;br /&gt;
            flag =0;&lt;br /&gt;
            PORTD |= (1 &amp;lt;&amp;lt; PD5);        // LED für 2 Sekunden anschalten&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Timer2 overflow Interrupt&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER2_OVF_vect) {&lt;br /&gt;
    static uint8_t ticks;               // Hilfsvariable für Messintervall&lt;br /&gt;
&lt;br /&gt;
    ticks++;&lt;br /&gt;
    if (ticks==30) {                    // neues Messintervall ?&lt;br /&gt;
        ticks=0;&lt;br /&gt;
        flag=1;&lt;br /&gt;
    }&lt;br /&gt;
    PORTD &amp;amp;= ~(1 &amp;lt;&amp;lt; PD5);               // LED ausschalten&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Sleep Mode beträgt die Stromaufnahme des AVR ca. 10&amp;amp;mu;A, während der zwei Sekunden LED Leuchtdauer 2,3mA. Dadurch ergibt sich ein mittlerer Stromverbrauch von&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;I_m = \frac {10 \mu A \cdot 58s + 2,3mA \cdot 2s}{60s} = 86,3 \mu A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Korrekterweise müßte man jedoch noch den Stromverbrauch berücksichtigen, welcher bei jedem Timerüberlauf alle zwei Sekunden entsteht. Dabei wird einmal der Timerinterrupt durchlaufen sowie einmal die Hauptschleife. Das dauert hier ca. 50 Takte, bei 1 MHz somit 50&amp;amp;mu;s. Zusätzlich wird noch bis zu 30us gewartet, um garantiert einen Takt im Timer 2 vergehen zu lassen. Das passiert pro Minute 30 mal, somit erhöht sich der mittlere Stromverbrauch um&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\frac {30 \cdot 80 \mu s \cdot 1,2mA}{60s}= 48nA&amp;lt;/math&amp;gt; , was somit praktisch vollkommen vernachlässigbar ist.&lt;br /&gt;
&lt;br /&gt;
=== Aufwachen per Tastendruck ===&lt;br /&gt;
&lt;br /&gt;
Maximale Einsparung an Energie bringt der Power Down Modus. Das Aufwecken muß dann aber durch eine externen Interrupt erfolgen. Auch hier blinkt eine LED.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
************************************************************************&lt;br /&gt;
*&lt;br /&gt;
* Sleep Mode Demo, Power Down Mode&lt;br /&gt;
*&lt;br /&gt;
* ATmega32 mit internem 1 MHz Oszillator&lt;br /&gt;
*&lt;br /&gt;
* LOW Fuse Byte = 0xE1&lt;br /&gt;
*&lt;br /&gt;
* An PD5 muss eine LED mit 1 kOhm Vorwiderstand angeschlossen werden&lt;br /&gt;
* An PD2 muss ein Taster gegen GND angeschlossen sein&lt;br /&gt;
*&lt;br /&gt;
************************************************************************&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#define F_CPU 1000000&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/sleep.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// lange, variable Wartezeit, Einheit in Millisekunden&lt;br /&gt;
&lt;br /&gt;
void long_delay(uint16_t ms) {&lt;br /&gt;
    for (; ms&amp;gt;0; ms--) _delay_ms(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main (void) {&lt;br /&gt;
&lt;br /&gt;
// IO konfigurieren&lt;br /&gt;
&lt;br /&gt;
    DDRA = 0xFF;&lt;br /&gt;
    DDRB = 0xFF;&lt;br /&gt;
    DDRC = 0xFF;&lt;br /&gt;
    DDRD = 0xFB;        // PD2 = INT0 = Eingang&lt;br /&gt;
    PORTD = 0x04;       // Pull Up aktivieren&lt;br /&gt;
&lt;br /&gt;
// Analogcomparator ausschalten&lt;br /&gt;
&lt;br /&gt;
    ACSR = 0x80;&lt;br /&gt;
&lt;br /&gt;
// Interrupt konfigurieren&lt;br /&gt;
&lt;br /&gt;
    MCUCR &amp;amp;= ~0x3;              // levelgesteuerter Interrupt an INT0&lt;br /&gt;
&lt;br /&gt;
// Interrupts freigeben&lt;br /&gt;
&lt;br /&gt;
    sei();&lt;br /&gt;
    &lt;br /&gt;
// Endlose Hauptschleife&lt;br /&gt;
&lt;br /&gt;
    while(1) {&lt;br /&gt;
&lt;br /&gt;
        GICR |= (1 &amp;lt;&amp;lt; INT0);            // externen Interrupt freigeben&lt;br /&gt;
&lt;br /&gt;
        set_sleep_mode(SLEEP_MODE_PWR_DOWN);&lt;br /&gt;
        sleep_mode();                   // in den Schlafmodus wechseln&lt;br /&gt;
&lt;br /&gt;
        // hier wachen wir wieder auf&lt;br /&gt;
        GICR &amp;amp;= ~(1 &amp;lt;&amp;lt; INT0);           // externen Interrupt sperren&lt;br /&gt;
                                        // WICHTIG! falls der externe LOW Puls an INT0&lt;br /&gt;
                                        // sehr lange dauert&lt;br /&gt;
&lt;br /&gt;
        PORTD |= (1 &amp;lt;&amp;lt; PD5);            // LED für eine Sekunde anschalten&lt;br /&gt;
        long_delay(1000);&lt;br /&gt;
        PORTD &amp;amp;= ~(1 &amp;lt;&amp;lt; PD5);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// externer Interrupt INT0 &lt;br /&gt;
&lt;br /&gt;
// Die Interruptroutine kann leer sein, ABER sie muss existieren!&lt;br /&gt;
// Sonst springt der AVR nach dem Aufwachen zum Reset, weil kein sinnvoller&lt;br /&gt;
// Interruptvektor eingetragen ist!&lt;br /&gt;
&lt;br /&gt;
ISR(INT0_vect) {&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Power Down Mode beträgt die Stromaufnahme des AVR weniger als 1&amp;amp;mu;A (weniger konnte mit dem verfügbaren Messgerät nicht gemessen werden), laut Datenblatt ca. 0,3&amp;amp;mu;A. Während der einen Sekunde LED Leuchtdauer werden 3,8mA verbraucht. Wird einmal pro Minute die Taste gedrückt, ergibt sich ein mittlerer Stromverbrauch von&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;I_m = \frac {0,3 \mu A \cdot 59s + 3,8mA \cdot 1s}{60s} = 63,6 \mu A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wird nur einmal pro Stunde die Taste gedrückt, ergibt sich ein mittlerer Stromverbrauch von&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;I_m = \frac {0,3 \mu A \cdot 3559s + 3,8mA \cdot 1s}{3660s} = 1,3 \mu A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
&lt;br /&gt;
=== JTAG Fuse ===&lt;br /&gt;
&lt;br /&gt;
Aus dem Beitrag http://www.mikrocontroller.net/topic/51206&lt;br /&gt;
&lt;br /&gt;
&amp;gt; wenn ich in den Power Down mode schalte bleibt die Stromaufnahme&lt;br /&gt;
&amp;gt; trotzdem gleich.&lt;br /&gt;
&amp;gt; Atmega128 8Mhz 3,3V = 8mah entspricht auch dem Datenblatt.&lt;br /&gt;
&lt;br /&gt;
Datenblatt, Seite 49:&lt;br /&gt;
&lt;br /&gt;
If the On-chip debug system is enabled by the OCDEN Fuse and the chip enter Power down or&lt;br /&gt;
Power save sleep mode, the main clock source remains enabled. In these sleep modes, this will&lt;br /&gt;
contribute significantly to the total current consumption. There are three alternative ways to&lt;br /&gt;
avoid this:&lt;br /&gt;
• Disable OCDEN Fuse.&lt;br /&gt;
• Disable JTAGEN Fuse.&lt;br /&gt;
• Write one to the JTD bit in MCUCSR.&lt;br /&gt;
&lt;br /&gt;
PS. Ich habe gestern den ganzen Tag dran mit dem ATmega128 im&lt;br /&gt;
Sleep-Modus gesessen, man musste einfacht JTAG abschalten, dann läuft&lt;br /&gt;
der Hauptoszillator nicht mehr und der Stromverbrauch sinkt drastisch&lt;br /&gt;
ab.&lt;br /&gt;
&lt;br /&gt;
== Bauteile ==&lt;br /&gt;
&lt;br /&gt;
* [http://datasheets.maxim-ic.com/en/ds/DS1371.pdf DS1371], Echtzeituhr mit 1&amp;amp;mu;A Stromverbrauch&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://interface.khm.de/index.php/lab/experiments/sleep_watchdog_battery/ [[Arduino]] Sleep_Watchdog_Battery] von Martin Nawrath&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]]&lt;br /&gt;
[[Kategorie: Spannungsversorgung und Energiequellen]]&lt;/div&gt;</summary>
		<author><name>85.216.122.79</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_Typen&amp;diff=43388</id>
		<title>AVR Typen</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_Typen&amp;diff=43388"/>
		<updated>2010-02-19T13:32:46Z</updated>

		<summary type="html">&lt;p&gt;85.216.122.79: /* XMega */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Baureihen=&lt;br /&gt;
== AT90S ==&lt;br /&gt;
Die &amp;quot;Basic Line&amp;quot; der Atmel [[AVR]]-Reihe. Sie beinhaltet die ersten [[AVR|AVRs]] die produziert wurden und deren Bezeichnung mit &amp;quot;AT90S&amp;quot; beginnt. Alle Typen wurden mit der Zeit von den beiden Nachfolgereihen ersetzt: ATmega bzw. ATtiny.&lt;br /&gt;
&lt;br /&gt;
Einige neue AVR-Controller tragen eine mit AT90-&#039;&#039;ohne S&#039;&#039; beginnende Bezeichnung, haben aber einen &amp;quot;moderneren&amp;quot; Kern. Z.B. sind die Typen AT90PWM2/3 und AT90CAN128 vom Funktionsumfang (interner RC, USART etc.) den ATmegas zuzuordnen.&lt;br /&gt;
&lt;br /&gt;
== ATmega ==&lt;br /&gt;
Die ATmega-[[Mikrocontroller]] sind ein Teil der AVR-Controllerfamilie. Zusammen mit den ATtiny lösen die ATmega die AT90S-Serie schrittweise ab, wobei es in den meisten Fällen weitgehend pin- und funktionskompatiblen Ersatz für abgekündigte Controller gibt (ATmega8 statt AT90S4433, ATmega8515 statt AT90S8515 usw.).&lt;br /&gt;
&lt;br /&gt;
Atmel ATmega AVRs werden mit aktiviertem internem Taktgeber ausgeliefert. Schließt man ein andere externe Taktquelle an (Quarz, Quarzoszillator o.ä), wird diese nicht automatisch genutzt. Zum Aktivieren müssen die Fuse-Bits des Controllers entsprechend eingestellt werden (siehe Datenblatt).&lt;br /&gt;
&lt;br /&gt;
ATmegas mit integriertem [[JTAG]]-Interface (z.Zt. solche ab 16kB Flash-Speicher und mehr als 28 Pins&amp;lt;!-- wg. ATmega168--&amp;gt;) werden ab Werk mit aktiviertem JTAG-Interface ausgeliefert. Dieses Interface belegt vier Port-Pins (z.B. am PORTC bei ATmega16/32), die nicht für eigene Anwendungen genutzt werden können, solange das JTAG-Interface aktiviert ist. Das Interface lässt sich über ein Fuse-Bit (JTAGEN) dauerhaft und über ein Bit (JTD) in dem (oder einem der) MC-Kontroll-Register (Datenblatt nach JTD durchsuchen) per Software zur Laufzeit an- und abschalten. Weiteres im Datenblatt des jeweiligen Controllers in den Abschnitten Memory-Programming (Fuse) und JTAG/ICE (JTD).&lt;br /&gt;
&lt;br /&gt;
Beim ATmega128 ist ab Werk die Mega103-Kompatibilitäts-fuse gesetzt. Um alle Erweiterungen des Mega128 gegenüber dem Mega103 zu nutzen muss diese deaktivert werden. Diese Fuse sorgt außerdem dafür, dass das SRAM in einem anderen Adressbereich liegt. Dadurch funktionieren C-Programme nur bis zum ersten Funktionsaufruf. Siehe auch [[AVR_Checkliste#Besonderheiten_bei_ATmega128_und_seinen_Derivaten_im_64-Pin-Gehäuse | AVR Checkliste: Besonderheiten bei ATmega64 / ATmega128]]&lt;br /&gt;
&lt;br /&gt;
== ATtiny ==&lt;br /&gt;
&lt;br /&gt;
Die ATtiny stellen das untere Ende der neuen AVR Linie von Atmel dar und waren zunächst durch das Fehlen von internem [[RAM#SRAM|SRAM]] gekennzeichnet. Mittlerweile gibt es aber so bemerkenswerte Controller wie den ATtiny2313, deren Möglichkeiten und Funktionen den ATmegas in nichts nachstehen.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer Unterschied zu den ATmegas ist der fehlende Hardwaremultiplizierer. Jede Multiplikation muss also in Software ausgeführt werden. Eine Übersicht über die Verfügbarkeit verschiedener Befehle bietet die [[AVR_Assembler_-_Vergleichstabelle|AVR-Assembler Befehlsvergleichstabelle]].&lt;br /&gt;
&lt;br /&gt;
== XMega ==&lt;br /&gt;
Neueste Generation von AVR-Controllern mit neuem internen Aufbau, hoher Taktrate (32 MHz), niedriger Spannung (1,6 - 3,6V), 12 Bit ADC, vielen Schnittstellen, in 44 - 100 poligen SMD-Gehäusen&lt;br /&gt;
&lt;br /&gt;
== Sonstiges ==&lt;br /&gt;
&lt;br /&gt;
Die AT89-Familie gehört nicht zu den AVR-Typen mit dem AVR-RISC-Befehlssatz, sondern ist eine [[8051|Intel-8051]]-kompatible 8-Bit µC-Serie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Nomenklatur=&lt;br /&gt;
==Atmega==&lt;br /&gt;
Auch wenn die Namensgebung auf den ersten Blick bedingt durch die vielen verfügbaren Modelle kompliziert aussieht, so folgt sie doch immer (von wenigen Ausnahmen abgesehen) einem einfachen Schema. &lt;br /&gt;
&lt;br /&gt;
Nehmen wir einen aktuellen Baustein als Beispiel: *Atmega48PA-AU*. Der Name besteht aus 5 Teilen:&lt;br /&gt;
# Der Baureihe (hier: &amp;quot;Atmega&amp;quot;)&lt;br /&gt;
# Einer Nummer, immer eine Zweierpotenz (hier: 4). Diese Zahl gibt die Größe des Flashspeichers in Kibibyte an. &lt;br /&gt;
# Bis zu zwei weiteren Ziffern (hier: 8). Sie definieren die Zusatzfunktionen sowie Zahl der I/O-Ports.&lt;br /&gt;
# Bis zu zwei Buchstaben (hier: PA), die für die Revision sowie spezielle stromsparende Architekturen stehen.&lt;br /&gt;
# Einem Bindestrich und zwei weiteren Buchstaben, die die Bauform angeben (hier: AU).&lt;br /&gt;
&lt;br /&gt;
===Baureihe===&lt;br /&gt;
Hier gibt es nur zwei Reihen: Den kleinen Attiny mit reduziertem Funktionsumfang und den großen Atmega.&lt;br /&gt;
&lt;br /&gt;
===Speichergröße===&lt;br /&gt;
Während die Größe des Flashspeichers (Programmspeicher) direkt im Namen angegeben ist, ergibt sich die Größe von RAM und EEPROM nur indirekt aus dieser Nummer, wobei natürlich die Bausteine mit großem Flash auch mehr RAM und EEPROM haben als kleinere. Grob gilt diese Zuordnung:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Flash (kB)  !! EEPROM (B) !! RAM (B)&lt;br /&gt;
|-&lt;br /&gt;
| 2           ||   tiny: 128      ||  tiny: 128&lt;br /&gt;
|-&lt;br /&gt;
| 4           ||   tiny: var., mega: 256      ||  tiny: 256, mega: 512&lt;br /&gt;
|-&lt;br /&gt;
| 8           ||   tiny: var., mega: 512      ||  tiny: 512, mega: 1024&lt;br /&gt;
|-&lt;br /&gt;
| 16          ||   512      ||  1024&lt;br /&gt;
|-&lt;br /&gt;
| 32          ||   1024     ||  2048&lt;br /&gt;
|-&lt;br /&gt;
| 64          ||   2048*)   ||  4096*)&lt;br /&gt;
|-&lt;br /&gt;
| 128 - 256   ||   4096     ||  4K - 16K&lt;br /&gt;
|}&lt;br /&gt;
 *)Atmega640 verfügt über den doppelten Speicher&lt;br /&gt;
&lt;br /&gt;
===Zusatzfunktionen / Größe===&lt;br /&gt;
Die Ziffer(n) nach der Flashgröße geben die Ausstattungsmerkmale des Bausteins an. Die folgende Tabelle gilt für die Atmega-Reihe:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ziffer  !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| - ||  Keine Ziffer markiert die Bausteine der ersten Generation. Sie verfügen in der Regel über eine niedrigere maximale Taktrate (8/16 MHz anstatt 10/20 MHz), eine höhere Minimal-Spannung (2,7 anstatt 1,8 Volt), weniger Interrupt-Quellen und PWM-Kanäle&lt;br /&gt;
|-&lt;br /&gt;
| 0 ||  Reihe von 32 - 256 kB in einem größeren Gehäuse mit höherer Anzahl an I/O-Pins. Etwas älter als die aktuellen Reihen 4 und 8.&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||  Kennzeichnet eine verbesserte Version des Atmega128 / 256, aber älter als aktuelle 4er Reihe&lt;br /&gt;
|-&lt;br /&gt;
| 4 ||  Reihe von 16 bis 128 kB Flash, alle pinkompatibel in 40-44 poligem Gehäuse. Neueste Baureihe, alle in pico-power-Technologie mit vielen verbesserten Funktionen wie externen Interrupts, Timern, USART...&lt;br /&gt;
|-&lt;br /&gt;
| 5 ||  Reihe von 16 bis 64 kB&lt;br /&gt;
|-&lt;br /&gt;
| 8 ||  Reihe von 4 bis 32 kB, alle pinkompatibel in 28-32 poligem Gehäuse. Neueste Baureihe, alle in pico-power-Technologie mit vielen verbesserten Funktionen wie externen Interrupts, Timern, USART.... (auch in der Attiny-Reihe vorhanden)&lt;br /&gt;
|-&lt;br /&gt;
| 9 ||  Reihe von 16 bis 64 kB mit integriertem Controller für LC-Displays, folglich in großen Gehäusen (64-/100-polig)&lt;br /&gt;
|}&lt;br /&gt;
Aus dieser Liste stechen einige Bausteine als Außenseiter hervor:&lt;br /&gt;
* Atmega8515 / Atmega8535&lt;br /&gt;
* Atmega640: Im Prinzip ein Atmega64 mit deutlich mehr Hardware-Ressourcen (4 UARTs, 16 ADC-Kanäle...) und doppelt soviel EEPROM / SRAM.&lt;br /&gt;
&lt;br /&gt;
===Revision / Architektur===&lt;br /&gt;
Die (optionalen) Buchstaben vor dem Bindestrich geben Auskunft über den Stromverbrauch und Spannungsbereich&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Buchstabe  !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| A ||  Zweite Revision - meist nur eine Umstellung der internen Strukturen ohne Auswirkung für den Benutzer&lt;br /&gt;
|-&lt;br /&gt;
| L / V ||  &amp;quot;Low-Voltage&amp;quot;: Speziell für niedrigere Taktraten (8 bzw. 10 MHz) sowie niedrigere Eingangsspannungen (1,8 bzw. 2,7V) selektierte Bausteine&lt;br /&gt;
|-&lt;br /&gt;
| P ||  &amp;quot;Pico-Power&amp;quot;: Reduzierter Stromaufnahme, besonders in tiefen Sleep-Modes (&amp;lt; 1uA)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Bauform===&lt;br /&gt;
Die beiden Buchstaben nach dem Bindestrich geben Auskunft über die Bauform. Die Zahl der Pins des jeweiligen Gehäusetyps hängt vom Baustein ab.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Buchstaben  !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| A ||  TQFP-Gehäuse&lt;br /&gt;
|-&lt;br /&gt;
| C ||  BGA-Gehäuse&lt;br /&gt;
|-&lt;br /&gt;
| I ||  Bleihaltig - nicht mehr erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| M ||  (V)QFN- / MLF- Gehäuse&lt;br /&gt;
|-&lt;br /&gt;
| P ||  DIP-Gehäuse  (bastlerfreundlich!)&lt;br /&gt;
|-&lt;br /&gt;
| S ||  SOIC-Gehäuse&lt;br /&gt;
|-&lt;br /&gt;
| U ||  Bleifrei, RoHS-kompatibel&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
==Attiny==&lt;br /&gt;
Bei den Attiny-Bausteinen ist die Nummerierung deutlich unübersichtlicher als in der Atmega-Reihe. Die erste Ziffer gibt wie auch bei Atmega die Größe des Flash-Speichers an. Die obenstehenden Tabellen für Baureihe, Bauform, Revision und Speichergröße gelten ebenfalls (Ausnahmen: tiny5 mit 0,5byte Flash sowie tiny4 und tiny9 mit 0,5 bzw. 1kB Flash). Die Zusatzfunktionen und Baugröße sind aber nicht deutlich &lt;br /&gt;
&lt;br /&gt;
= Vergleichstabelle(n) / Ausstattung - von AVRs =&lt;br /&gt;
== AT90S - Reihe ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size:10px;&amp;quot; id=&amp;quot;AVR_Features_AT90S&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Typ||Flash (Kbytes)||EEPROM (Bytes)||SRAM (Bytes)||Max I/O Pins||F.max (MHz)||Vcc (V)||A/D Channels||Analog Comparator||16-bit Timer||8-bit Timer||Brown Out Detector||On Chip Oscillator||PWM Channels||RTC||Self Program Memory||Boot Code||SPI||TWI (I2C)||UART||Watchdog||Bauform(en)||Preis&amp;lt;ref name=&amp;quot;preis&amp;quot;&amp;gt;Preise (in &amp;amp;euro;) [http://www.reichelt.de Reichelt]-Katalog 01/2008&amp;lt;/ref&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- START - AT90S2313 --------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/doc0839.pdf AT90S2313]&lt;br /&gt;
|2&lt;br /&gt;
|128&lt;br /&gt;
|128&lt;br /&gt;
|15&lt;br /&gt;
|10&lt;br /&gt;
|2.7-6.0&lt;br /&gt;
| --&lt;br /&gt;
|Ja&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|1 Timer-PWM&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|20-pin&amp;lt;br/&amp;gt;PDIP&amp;lt;br/&amp;gt;SOIC &lt;br /&gt;
| -&lt;br /&gt;
&amp;lt;!-- ENDE - AT90S2313 ---------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - AT90Sxxxx --------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-- diesen Kommentar entfernen nach dem Kopieren dieser Eingabehilfe -- &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Typ&lt;br /&gt;
|Flash (Kbytes)&lt;br /&gt;
|EEPROM (Bytes)&lt;br /&gt;
|SRAM (Bytes)&lt;br /&gt;
|Max I/O Pins&lt;br /&gt;
|F.max (MHz)&lt;br /&gt;
|Vcc (V)&lt;br /&gt;
|A/D Channels&lt;br /&gt;
|Analog Comparator&lt;br /&gt;
|16-bit Timer&lt;br /&gt;
|8-bit Timer&lt;br /&gt;
|Brown Out Detector&lt;br /&gt;
|On Chip Oscillator&lt;br /&gt;
|PWM Channels&lt;br /&gt;
|RTC&lt;br /&gt;
|Self Program Memory&lt;br /&gt;
|Boot Code&lt;br /&gt;
|SPI&lt;br /&gt;
|TWI&lt;br /&gt;
|UART&lt;br /&gt;
|Watchdog&lt;br /&gt;
|Bauform(en)&lt;br /&gt;
|Preis&amp;lt;ref name=&amp;quot;preis&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;!-- diesen Kommentar entfernen nach dem Kopieren dieser Eingabehilfe--&amp;gt;&lt;br /&gt;
&amp;lt;!-- ENDE - AT90Sxxxx ---------------------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ATtiny - Reihe ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size:10px;&amp;quot; id=&amp;quot;AVR_Features_ATtiny&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!Typ||Flash (Kbytes)||EEPROM (Bytes)||SRAM (Bytes)||Max I/O Pins||F.max (MHz)||Vcc (V)||A/D Channels||Analog Comparator||16-bit Timer||8-bit Timer||Brown Out Detector||On Chip Oscillator||PWM Channels||RTC||Self Program Memory||Boot Code||SPI||TWI (I2C)||UART||Watchdog||Bauform(en)||Preis&amp;lt;ref name=&amp;quot;preis&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATtiny11 ---------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/doc1006.pdf ATtiny11]&lt;br /&gt;
|1&lt;br /&gt;
| --&lt;br /&gt;
| --&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|2.7-5.5&lt;br /&gt;
| --&lt;br /&gt;
|Ja&lt;br /&gt;
| --&lt;br /&gt;
|1&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
| --&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|8-pin PDIP&amp;lt;br/&amp;gt;SOIC  &lt;br /&gt;
| 0.58-0.87&lt;br /&gt;
&amp;lt;!-- ENDE - ATtiny11 ----------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATtiny12 ---------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/doc1006.pdf ATtiny12]&lt;br /&gt;
|1&lt;br /&gt;
|64&lt;br /&gt;
| --&lt;br /&gt;
|6&lt;br /&gt;
|8&lt;br /&gt;
|1.8-5.5&lt;br /&gt;
| --&lt;br /&gt;
|Ja&lt;br /&gt;
| --&lt;br /&gt;
|1&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
| --&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|8-pin PDIP&amp;lt;br/&amp;gt;SOIC   &lt;br /&gt;
| 1.00-1.20&lt;br /&gt;
&amp;lt;!-- ENDE - ATtiny12 ----------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATtiny13 ---------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/doc2535.pdf ATtiny13]&lt;br /&gt;
|1&lt;br /&gt;
|64&lt;br /&gt;
|64&lt;br /&gt;
|6&lt;br /&gt;
|24&lt;br /&gt;
|1.8-5.5&lt;br /&gt;
|4 10bit&lt;br /&gt;
|Ja&lt;br /&gt;
| --&lt;br /&gt;
|1&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|1 Timer-PWM&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|8-pin PDIP&amp;lt;br/&amp;gt;SOIC  &lt;br /&gt;
| 1.15-1.20&lt;br /&gt;
&amp;lt;!-- ENDE - ATtiny13 ----------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATtiny15 ---------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/doc1187.pdf ATtiny15]&lt;br /&gt;
|1&lt;br /&gt;
|64&lt;br /&gt;
| --&lt;br /&gt;
|6&lt;br /&gt;
|1.6&lt;br /&gt;
|2.7-5.5&lt;br /&gt;
|4 10bit&lt;br /&gt;
|Ja&lt;br /&gt;
| --&lt;br /&gt;
|2&lt;br /&gt;
|Ja&lt;br /&gt;
|ONLY&amp;lt;br/&amp;gt;(no EXT)&lt;br /&gt;
|1 150kHz 8bit&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|Nein&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|8-pin PDIP&amp;lt;br/&amp;gt;SOIC&lt;br /&gt;
| 1.15&lt;br /&gt;
&amp;lt;!-- ENDE - ATtiny15 ----------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATtiny2313 -------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/doc2543.pdf ATtiny2313]&lt;br /&gt;
|2&lt;br /&gt;
|128&lt;br /&gt;
|128&lt;br /&gt;
|15&lt;br /&gt;
|20&lt;br /&gt;
|1.8-5.5&lt;br /&gt;
| --&lt;br /&gt;
|Ja&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|4&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&amp;lt;br/&amp;gt;USART + USI&lt;br /&gt;
|Ja&lt;br /&gt;
|20-pin PDIP&amp;lt;br/&amp;gt;SOIC&amp;lt;br/&amp;gt;QFN/MLF&lt;br /&gt;
| 1.30&lt;br /&gt;
&amp;lt;!-- ENDE - ATtiny2313 --------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATtiny24 -------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://atmel.com/dyn/resources/prod_documents/doc8006.pdf ATtiny24]&lt;br /&gt;
|2&lt;br /&gt;
|128&lt;br /&gt;
|128&lt;br /&gt;
|12&lt;br /&gt;
|20&lt;br /&gt;
|1.8-5.5&lt;br /&gt;
|8 10bit&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|4&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&amp;lt;br/&amp;gt; USI&lt;br /&gt;
|Ja&lt;br /&gt;
|14-pin PDIP&amp;lt;br/&amp;gt;SOIC&amp;lt;br/&amp;gt;QFN/MLF&lt;br /&gt;
|1.45&lt;br /&gt;
&amp;lt;!-- ENDE - ATtiny24 --------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATtiny261 -------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://atmel.com/dyn/resources/prod_documents/doc2588.pdf  ATtiny261]&lt;br /&gt;
|2&lt;br /&gt;
|128&lt;br /&gt;
|128&lt;br /&gt;
|16&lt;br /&gt;
|20&lt;br /&gt;
|1,8-5,5&lt;br /&gt;
|11&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|2&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Nein&lt;br /&gt;
|Ja USI&lt;br /&gt;
|Ja&lt;br /&gt;
|20-Pin PDIP&amp;lt;br&amp;gt;SOIC&amp;lt;br&amp;gt;MLF&lt;br /&gt;
|1,15&lt;br /&gt;
&amp;lt;!-- ENDE - ATtiny261 --------------------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ATmega - Reihe ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: 10px;&amp;quot; id=&amp;quot;AVR_Features_ATMega&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!Typ||Flash (Kbytes)||EEPROM (Bytes)||SRAM (Bytes)||Max I/O Pins||F.max (MHz)||Vcc (V)||A/D Channels||Analog Comparator||16-bit Timer||8-bit Timer||Brown Out Detector||On Chip Oscillator||PWM Channels||RTC||Self Program Memory||Boot Code||SPI||TWI (I2C)||UART||Watchdog||Bauform(en)||Preis&amp;lt;ref name=&amp;quot;preis&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- START - ATMega8 ----------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/2486S.pdf ATmega8]&lt;br /&gt;
|8&lt;br /&gt;
|512&lt;br /&gt;
|1K&lt;br /&gt;
|23&lt;br /&gt;
|16&lt;br /&gt;
|2.7-5.5&lt;br /&gt;
|6 10bit PDIP&amp;lt;br/&amp;gt;8 10bit TQFP QFN/MLF&lt;br /&gt;
|Ja&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|3&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&amp;lt;br/&amp;gt;USART&lt;br /&gt;
|Ja&lt;br /&gt;
|28-pin PDIP&amp;lt;br/&amp;gt;32-pin TQFP&amp;lt;br/&amp;gt;QFN/MLF&lt;br /&gt;
| 1.70-1.90&lt;br /&gt;
&amp;lt;!-- ENDE - ATMega8 -----------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATMega16 ---------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf ATmega16]&lt;br /&gt;
|16&lt;br /&gt;
|512&lt;br /&gt;
|1K&lt;br /&gt;
|32&lt;br /&gt;
|16&lt;br /&gt;
|2.7-5.5&lt;br /&gt;
|8 10bit&lt;br /&gt;
|Ja&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|4&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja Master/Slave&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja USART&lt;br /&gt;
|Ja&lt;br /&gt;
|40-pin PDIP&amp;lt;br/&amp;gt;44-pin TQFP&amp;lt;br/&amp;gt;QFN/MLF&lt;br /&gt;
| 2.60-2.85&lt;br /&gt;
&amp;lt;!-- ENDE - ATMega16 ----------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATMega32 ---------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf ATmega32]&lt;br /&gt;
|32&lt;br /&gt;
|1024&lt;br /&gt;
|2K&lt;br /&gt;
|32&lt;br /&gt;
|16&lt;br /&gt;
|2.7-5.5&lt;br /&gt;
|8 10bit&lt;br /&gt;
|Ja&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|4&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja Master/Slave&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja USART&lt;br /&gt;
|Ja&lt;br /&gt;
|40-pin PDIP&amp;lt;br/&amp;gt;44-pin TQFP&amp;lt;br/&amp;gt;QFN/MLF &lt;br /&gt;
| 3.20-4.60&lt;br /&gt;
&amp;lt;!-- ENDE - ATMega32 ----------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATMega644 --------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/doc2593.pdf  ATmega644]&lt;br /&gt;
|64&lt;br /&gt;
|2K&lt;br /&gt;
|4K&lt;br /&gt;
|32&lt;br /&gt;
|20&lt;br /&gt;
|1.8-5.5&lt;br /&gt;
|8 10bit&lt;br /&gt;
|Ja&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|6&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja Master/Slave&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja USART&amp;lt;br/&amp;gt;(2 beim 644P)&lt;br /&gt;
|Ja&lt;br /&gt;
|40-pin PDIP&amp;lt;br/&amp;gt;44-pin TQFP&amp;lt;br/&amp;gt;QFN/MLF&lt;br /&gt;
| 6.80-7.50&lt;br /&gt;
&amp;lt;!-- ENDE - ATMega644 ---------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATMega128 --------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf ATmega128]&lt;br /&gt;
|128&lt;br /&gt;
|4K&lt;br /&gt;
|4K&lt;br /&gt;
|53&lt;br /&gt;
|16&lt;br /&gt;
|2.7-5.5&lt;br /&gt;
|8 10bit&lt;br /&gt;
|Ja&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|2 8bit&amp;lt;br/&amp;gt;6 2-16bit&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja Master/Slave&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&amp;lt;br/&amp;gt;2 USART&lt;br /&gt;
|Ja&lt;br /&gt;
|64-pin TQFP&amp;lt;br/&amp;gt;QFN/MLF&lt;br /&gt;
|8.05-8.40  &lt;br /&gt;
&amp;lt;!-- ENDE - ATMega128 ---------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-- START - ATMega1284P --------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/products/product_card.asp?part_id=4331 ATmega1284P]&lt;br /&gt;
|128&lt;br /&gt;
|4K&lt;br /&gt;
|16K&lt;br /&gt;
|32&lt;br /&gt;
|20&lt;br /&gt;
|1.8-5.5&lt;br /&gt;
|8 10bit&lt;br /&gt;
|Ja&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|6 &lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja Master/Slave&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&amp;lt;br/&amp;gt;2 USART&lt;br /&gt;
|Ja&lt;br /&gt;
|DIP-40&amp;lt;br&amp;gt;TQFP-44&amp;lt;br/&amp;gt;MLF-44&lt;br /&gt;
|(6-8 EUR) &lt;br /&gt;
&amp;lt;!-- ENDE - ATMega128 ---------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-- START - ATMega256 --------------------------------------------------------&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.atmel.com/dyn/resources/prod_documents/doc2549.pdf ATmega2560]&lt;br /&gt;
|256&lt;br /&gt;
|4K&lt;br /&gt;
|8K&lt;br /&gt;
|86&lt;br /&gt;
|16&lt;br /&gt;
|2.7-5.5&lt;br /&gt;
|16 10bit&lt;br /&gt;
|Ja&lt;br /&gt;
|4&lt;br /&gt;
|2&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|16&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja Master/Slave&lt;br /&gt;
|Ja&lt;br /&gt;
|Ja&amp;lt;br/&amp;gt;4 USART&lt;br /&gt;
|Ja&lt;br /&gt;
|100-pin TQFP&lt;br /&gt;
|8-15  &lt;br /&gt;
&amp;lt;!-- ENDE - ATMega256 ---------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- START - ATMegaxxxx -------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-- diesen Kommentar entfernen nach dem Kopieren dieser Eingabehilfe -- &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Typ&lt;br /&gt;
|Flash (Kbytes)&lt;br /&gt;
|EEPROM (Bytes)&lt;br /&gt;
|SRAM (Bytes)&lt;br /&gt;
|Max I/O Pins&lt;br /&gt;
|F.max (MHz)&lt;br /&gt;
|Vcc (V)&lt;br /&gt;
|A/D Channels&lt;br /&gt;
|Analog Comparator&lt;br /&gt;
|16-bit Timer&lt;br /&gt;
|8-bit Timer&lt;br /&gt;
|Brown Out Detector&lt;br /&gt;
|On Chip Oscillator&lt;br /&gt;
|PWM Channels&lt;br /&gt;
|RTC&lt;br /&gt;
|Self Program Memory&lt;br /&gt;
|Boot Code&lt;br /&gt;
|SPI&lt;br /&gt;
|TWI&lt;br /&gt;
|UART&lt;br /&gt;
|Watchdog&lt;br /&gt;
|Bauform(en)&lt;br /&gt;
|Preis&amp;lt;ref name=&amp;quot;preis&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;!-- diesen Kommentar entfernen nach dem Kopieren dieser Eingabehilfe--&amp;gt;&lt;br /&gt;
&amp;lt;!-- ENDE - ATMegaxxxx --------------------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Referenzen =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.avrfreaks.net/index.php?module=Freaks%20Devices&amp;amp;func=devCompare Vergleichstabelle] von AVRFreaks&lt;br /&gt;
&lt;br /&gt;
[http://www.atmel.com/dyn/products/param_table.asp?family_id=607&amp;amp;OrderBy=part_no&amp;amp;Direction=ASC#760 Vergleichstabelle aller aktuellen AVR Controller bei Atmel]&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>85.216.122.79</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Treiber&amp;diff=41576</id>
		<title>Treiber</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Treiber&amp;diff=41576"/>
		<updated>2009-12-21T01:57:51Z</updated>

		<summary type="html">&lt;p&gt;85.216.122.79: /* Anwendung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Ein &amp;quot;Treiber&amp;quot; ist eine Schaltung die den nötigen Strom zur Verfügung stellt, um einen Transistor in der erforderlichen Zeit ein- bzw. auszuschalten.&lt;br /&gt;
&lt;br /&gt;
Angenommen ein Leistungs-FET benötigt laut Datenblatt eine Ladung von Q_g = 180nC (Coulomb = Ampere * Sekunde) um das Gate auf ca. 5V zu laden und den FET damit einzuschalten. &lt;br /&gt;
Wenn der FET in 140ns einschalten soll - warum findet sich im weiteren Verlauf des Artikels -  wird dafür ein kontinuierlicher Strom von 1,5A benötigt, was ein Mikrocontroller nur mit einer zusätzlichen Ansteuerung bewerkstelligen kann. &amp;lt;br&amp;gt;Diese Ansteuerung nennt man &amp;quot;Treiber&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel wird hauptsächlich auf die Besonderheiten zur Ansteuerung von Leistungselektronik bezug genommen, die geschaltet betrieben wird.&lt;br /&gt;
&lt;br /&gt;
==Anwendung ==&lt;br /&gt;
&lt;br /&gt;
FETs und IGBTs werden mit einer Spannung gesteuert.&lt;br /&gt;
Bei einer Gate-Source bzw. Gate-Emitter Spannung von 0V ist das Bauteil gesperrt bzw. hochohmig.&lt;br /&gt;
Steigt die Spannung über die sogenannte &amp;quot;Schwellenspannung&amp;quot; - die für Leistungsbauteile zwischen ca. 3 und 6V liegt - &lt;br /&gt;
geht das Bauteil langsam vom gesperrten in den leitenden Zustand über.&lt;br /&gt;
Bei einem weiteren Spannungsanstieg bis zu einem Level von ca. 12V verringert sich der &amp;quot;On&amp;quot; Widerstand bzw. &lt;br /&gt;
der Kollektor-Emitter Spannungsabfall auf den im Datenblatt angegebenen minimalen Wert. Eine weitere Erhöhung führt nur zu einer &lt;br /&gt;
vergleichsweise geringen Reduktion des Widerstandes bzw. Spannungsabfalls, und erhöht die Energiemenge die beim Schalten durch den Treiber &lt;br /&gt;
umgeladen werden muß dramatisch (U² !).&lt;br /&gt;
&lt;br /&gt;
Im Betrieb fällt in einem Leistungstransistor immer eine bestimmte Verlustleistung an. Diese Verluste teilen sich auf in &amp;quot;Schaltverluste&amp;quot; und &amp;quot;Leitend- bzw. on-Verluste&amp;quot;. Die on-Verluste sind hauptsächlich vom Leistungsschalter selbst abhängig, die Schaltverluste hingegen von der Schaltgeschwindigkeit. Je schneller ein FET/IGBT ein- bzw. ausgeschaltet wird, desto geringer sind die Schaltverluste.&amp;lt;br&amp;gt;&lt;br /&gt;
Leider gibt es hier neben physikalischen Grenzen insbesondere unerwünschte Nebenwirkungen, nämlich die EMV = &#039;&#039;&#039;E&#039;&#039;&#039;lektro &#039;&#039;&#039;M&#039;&#039;&#039;agnetische &#039;&#039;&#039;V&#039;&#039;&#039;erträglichkeit. Je schneller geschaltet wird, desto stärker sind die Störungen, die dadurch erzeugt werden. Diese Störungen sind sehr schnell so stark, daß andere Schaltungen im Umkreis von einigen Metern beeinflußt werden d.h. die USB Maus leuchtet plötzlich auf, ohne daß sie bewegt wurde bzw. der eigene Mikrocontroller macht nicht mehr, was er eigentlich sollte. Bitte dieses Thema nicht auf die leichte Schulter nehmen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Treiberleistung ===&lt;br /&gt;
&lt;br /&gt;
IGBT und FET sind zwar &amp;quot;spannungsgesteuerte&amp;quot; Bauelemente, trotzdem muß bei jedem Einschalten und bei jedem Ausschalten&lt;br /&gt;
die Gatekappazität umgeladen werden.&lt;br /&gt;
Die Energie zum Laden eines Kondensators wird mit &amp;quot;0,5*C*U²&amp;quot; berechnet. Es ist jedoch Energiebedarf bei jedem &amp;quot;Aufladen&amp;quot; &lt;br /&gt;
und &amp;quot;Entladen&amp;quot; zu berücksichtigen.&lt;br /&gt;
Daher ergibt sich die Treiberleistung wie folgt:&lt;br /&gt;
&lt;br /&gt;
P_treiber = 2 x 0,5 x 5 x Cx x dUg² x f_schalt&lt;br /&gt;
           = 5 x Cx x dUg² x f_schalt&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cx&amp;quot; entspricht beim IGBT der Datenblattangabe für &amp;quot;Cies&amp;quot;, bzw. beim FET der Datenblattangebe für &amp;quot;Ciss&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel bei dUg = 23V, Cies=4nF und f_schalt=5kHz  beträgt P_treiber = 53mW. Zusätzlich muß der Eigenverbrauch des Treibers &lt;br /&gt;
berücksichtigt werden, der leicht zwischen 0,5 und 1 W liegen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Bei größeren Strömen mit einer höheren Frequenz - z.B. Induktionsheizung - wird die Ansteuerleistung schon sehr interessant: &lt;br /&gt;
z.B. dUg = 23V, Cies=20nF und f_schalt=250kHz, hier beträgt P_treiber = 13,3W (zuzüglich Eigenverbrauch).&lt;br /&gt;
&lt;br /&gt;
=== Definition LS- und HS-Schalter=== &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;L&#039;&#039;&#039;ow-&#039;&#039;&#039;S&#039;&#039;&#039;ide - Schalter: Der FET schaltet eine Last gegen GND - auch als LS-Schalter bezeichnet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;H&#039;&#039;&#039;igh-&#039;&#039;&#039;S&#039;&#039;&#039;ide - Schalter: Der FET schaltet eine Last an die Versorgungsspannung - auch als HS-Schalter bezeichnet.&lt;br /&gt;
&lt;br /&gt;
===LS-Treiber===&lt;br /&gt;
 folgt in den nächsten Tagen ;-)&lt;br /&gt;
&lt;br /&gt;
====Stromversorgung ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Beispiel eines diskreten Treibers ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Beispiel eines integrierten Treibers ====&lt;br /&gt;
&lt;br /&gt;
===HS-Treiber===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Stromversorgung durch isolierte Versorgungsspannung====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Stromversorgung durch Bootstrap====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Berechnung einer Bootstrapdiode=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Bootstrapkondensator=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Beispiel eines diskreten Treibers ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Beispiel eines integrierten Treibers ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Besonderheiten beim Treiberaufbau===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild: Gatekreis_Bild1.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild: Gatekreis_Bild2.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Leistungselektronik ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pufferkondensator ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Berechnung der Verlustleistung ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Besonderheiten bei der elektrischen Anbindung Pufferkondensator zu Leistungsschalter===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild: Leistungsteil_Bild1.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild: Leistungsteil_Bild2.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Zusätzliche Hinweise ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Mosfet-Übersicht]]&lt;br /&gt;
* [[IGBT]]&lt;br /&gt;
* [[FET]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bauteile]]&lt;/div&gt;</summary>
		<author><name>85.216.122.79</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Treiber&amp;diff=41575</id>
		<title>Treiber</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Treiber&amp;diff=41575"/>
		<updated>2009-12-21T01:54:26Z</updated>

		<summary type="html">&lt;p&gt;85.216.122.79: /* Treiberleistung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Ein &amp;quot;Treiber&amp;quot; ist eine Schaltung die den nötigen Strom zur Verfügung stellt, um einen Transistor in der erforderlichen Zeit ein- bzw. auszuschalten.&lt;br /&gt;
&lt;br /&gt;
Angenommen ein Leistungs-FET benötigt laut Datenblatt eine Ladung von Q_g = 180nC (Coulomb = Ampere * Sekunde) um das Gate auf ca. 5V zu laden und den FET damit einzuschalten. &lt;br /&gt;
Wenn der FET in 140ns einschalten soll - warum findet sich im weiteren Verlauf des Artikels -  wird dafür ein kontinuierlicher Strom von 1,5A benötigt, was ein Mikrocontroller nur mit einer zusätzlichen Ansteuerung bewerkstelligen kann. &amp;lt;br&amp;gt;Diese Ansteuerung nennt man &amp;quot;Treiber&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel wird hauptsächlich auf die Besonderheiten zur Ansteuerung von Leistungselektronik bezug genommen, die geschaltet betrieben wird.&lt;br /&gt;
&lt;br /&gt;
==Anwendung ==&lt;br /&gt;
&lt;br /&gt;
FETs und IGBTs werden mit einer Spannung gesteuert.&lt;br /&gt;
Bei einer Gate-Source bzw. Gate-Emitter Spannung von 0V ist das Bauteil gesperrt bzw. hochohmig.&lt;br /&gt;
Steigt die Spannung über die sogenannte &amp;quot;Schwellenspannung&amp;quot; - die für Leistungsbauteile zwischen ca. 3 und 6V liegt - &lt;br /&gt;
geht das Bauteil langsam vom gesperrten- in den leitenden Zustand über.&lt;br /&gt;
Bei einem weiteren Spannungsanstieg bis zu einem Level von ca. 12V verringert sich der &amp;quot;On&amp;quot; Widerstand bzw. &lt;br /&gt;
der Kollektor-Emitter Spannungsabfall auf den im Datenblatt angegebenen minimalen Wert. Eine weitere Erhöhung führt nur zu einer &lt;br /&gt;
vergleichsweise geringen Reduktion des Widerstandes bzw. Spannungsabfalls, und erhöht die Energiemenge die beim Schalten durch den Treiber &lt;br /&gt;
umgeladen werden muß dramatisch (U² !).&lt;br /&gt;
&lt;br /&gt;
Im Betrieb fällt in einem Leistungstransistor immer eine bestimmte Verlustleistung an. Diese Verluste teilen sich auf in &amp;quot;Schaltverluste&amp;quot; und &amp;quot;Leitend- bzw. on- Verluste&amp;quot;. Die on-Verluste sind hauptsächlich vom Leistungsschalter selbst abhängig, die Schaltverluste hingegen von der Schaltgeschwindigkeit. Je schneller ein FET/IGBT ein- bzw. ausgeschaltet wird, desto geringer sind die Schaltverluste.&amp;lt;br&amp;gt;&lt;br /&gt;
Leider gibt es hier neben physikalische Grenzen insbesondere unerwünschte Nebenwirkungen, nämlich die EMV = &#039;&#039;&#039;E&#039;&#039;&#039;lektro &#039;&#039;&#039;M&#039;&#039;&#039;agnetische &#039;&#039;&#039;V&#039;&#039;&#039;erträglichkeit. Je schneller geschaltet wird, desto stärker sind die Störungen, die dadurch erzeugt werden. Diese Störungen sind sehr schnell so stark, daß andere Schaltungen im Umkreis von einigen Metern beeinflußt werden d.h. die USB Maus leuchtet plötzlich auf, ohne daß sie bewegt wurde bzw. der eigene Mikrocontroller macht nicht mehr, was er eigentlich sollte. Bitte dieses Thema nicht auf die leichte Schulter nehmen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Treiberleistung ===&lt;br /&gt;
&lt;br /&gt;
IGBT und FET sind zwar &amp;quot;spannungsgesteuerte&amp;quot; Bauelemente, trotzdem muß bei jedem Einschalten und bei jedem Ausschalten&lt;br /&gt;
die Gatekappazität umgeladen werden.&lt;br /&gt;
Die Energie zum Laden eines Kondensators wird mit &amp;quot;0,5*C*U²&amp;quot; berechnet. Es ist jedoch Energiebedarf bei jedem &amp;quot;Aufladen&amp;quot; &lt;br /&gt;
und &amp;quot;Entladen&amp;quot; zu berücksichtigen.&lt;br /&gt;
Daher ergibt sich die Treiberleistung wie folgt:&lt;br /&gt;
&lt;br /&gt;
P_treiber = 2 x 0,5 x 5 x Cx x dUg² x f_schalt&lt;br /&gt;
           = 5 x Cx x dUg² x f_schalt&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Cx&amp;quot; entspricht beim IGBT der Datenblattangabe für &amp;quot;Cies&amp;quot;, bzw. beim FET der Datenblattangebe für &amp;quot;Ciss&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel bei dUg = 23V, Cies=4nF und f_schalt=5kHz  beträgt P_treiber = 53mW. Zusätzlich muß der Eigenverbrauch des Treibers &lt;br /&gt;
berücksichtigt werden, der leicht zwischen 0,5 und 1 W liegen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Bei größeren Strömen mit einer höheren Frequenz - z.B. Induktionsheizung - wird die Ansteuerleistung schon sehr interessant: &lt;br /&gt;
z.B. dUg = 23V, Cies=20nF und f_schalt=250kHz, hier beträgt P_treiber = 13,3W (zuzüglich Eigenverbrauch).&lt;br /&gt;
&lt;br /&gt;
=== Definition LS- und HS-Schalter=== &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;L&#039;&#039;&#039;ow-&#039;&#039;&#039;S&#039;&#039;&#039;ide - Schalter: Der FET schaltet eine Last gegen GND - auch als LS-Schalter bezeichnet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;H&#039;&#039;&#039;igh-&#039;&#039;&#039;S&#039;&#039;&#039;ide - Schalter: Der FET schaltet eine Last an die Versorgungsspannung - auch als HS-Schalter bezeichnet.&lt;br /&gt;
&lt;br /&gt;
===LS-Treiber===&lt;br /&gt;
 folgt in den nächsten Tagen ;-)&lt;br /&gt;
&lt;br /&gt;
====Stromversorgung ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Beispiel eines diskreten Treibers ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Beispiel eines integrierten Treibers ====&lt;br /&gt;
&lt;br /&gt;
===HS-Treiber===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Stromversorgung durch isolierte Versorgungsspannung====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Stromversorgung durch Bootstrap====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Berechnung einer Bootstrapdiode=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Bootstrapkondensator=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Beispiel eines diskreten Treibers ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Beispiel eines integrierten Treibers ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Besonderheiten beim Treiberaufbau===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild: Gatekreis_Bild1.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild: Gatekreis_Bild2.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Leistungselektronik ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pufferkondensator ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Berechnung der Verlustleistung ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Besonderheiten bei der elektrischen Anbindung Pufferkondensator zu Leistungsschalter===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild: Leistungsteil_Bild1.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild: Leistungsteil_Bild2.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Zusätzliche Hinweise ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Mosfet-Übersicht]]&lt;br /&gt;
* [[IGBT]]&lt;br /&gt;
* [[FET]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bauteile]]&lt;/div&gt;</summary>
		<author><name>85.216.122.79</name></author>
	</entry>
</feed>