<?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=Boregard</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=Boregard"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/Boregard"/>
	<updated>2026-04-12T14:50:50Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=100674</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=100674"/>
		<updated>2019-06-14T12:45:31Z</updated>

		<summary type="html">&lt;p&gt;Boregard: /* Eigenschaften &amp;amp; Spezifikationen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:pcb.png|thumb|right|200px|Fertige Reflow-Ofen-Steuerung]]&lt;br /&gt;
[[Datei:reflow_controller_front.jpg|thumb|right|200px|Controller im RM2055M Gehäuse (front)]]&lt;br /&gt;
[[Datei:reflow_controller_back.jpg|thumb|right|200px|Controller im RM2055M Gehäuse (back)]]&lt;br /&gt;
[[Datei:Reflow_pid_test2.png|thumb|right|200px|Test des PID Reglers]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: [http://sourceforge.net/projects/ratcos/ ]&lt;br /&gt;
* Sourcen PC-Programm: [http://sourceforge.net/projects/ratcos/ ]&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/ratcos/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/ratcos/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenanschnittsteuerung&lt;br /&gt;
* Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
[[Datei:kuehlkoerper.jpg|thumb|right|200px|Montagedetail Kühlkörper]]&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch für den Triac.&lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde für den Triac schneiden.&lt;br /&gt;
* Die Kühlkörper selbst können mit Stiften erworben werden, die man in die Leiterplatte lötet. Oder Alternativ Bohrungen auf 2,7mm aufbohren und mit Zylinderkopfschraube M2,5 x 8 befestigen.&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem XC8 Compiler. &lt;br /&gt;
* MPLABX sowie der XC8 Compiler können kostenlos bei Microchip bezogen werden. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
* Der Umluftbetrieb hat jedoch zur Folge, dass natürlich auch etwas Wärme wieder von der Leiterplatte weggepustet wird. Wenn man nur kleine Leiterplatten hat, kann es von Vorteil sein, diese ohne Umluft zu löten.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist. Es ist aber möglich, die Altium-Daten in ein ASCII-Format zu wandeln, welches auch von Eagle geöffnet werden kann - Auf Anfrage...&lt;br /&gt;
&lt;br /&gt;
=Installation USB Treiber=&lt;br /&gt;
Hier mal eine Anleitung, wie der Windows Treiber (z. B. unter Win7) - &lt;br /&gt;
für den in der Firmware verwendeten M-Stack - installiert wird.&lt;br /&gt;
&lt;br /&gt;
1. Unter www.github.com/signal11/m-stack/blob/master/apps/cdc_acm/inf/ &lt;br /&gt;
die Dateie cdc-acm.inf runter laden.&lt;br /&gt;
&lt;br /&gt;
2. USB der Controller-Hardware am PC anstecken. Im Gerätemanager muss &lt;br /&gt;
jetzt unter &amp;quot;Andere Geräte&amp;quot; der Eintrag &amp;quot;USB CDC Test&amp;quot; angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
3. Auf diesem Eintrag &amp;quot;USB CDC Test&amp;quot; im Gerätemanager mit der rechten &lt;br /&gt;
Maustaste klicken und &amp;quot;Treibersoftware aktualisieren&amp;quot; auswählen.&lt;br /&gt;
&lt;br /&gt;
4. Dann den zweiten Punkt (&amp;quot;Auf dem Computer nach Treibersoftware &lt;br /&gt;
suchen&amp;quot;) auswählen.&lt;br /&gt;
&lt;br /&gt;
5. &amp;quot;Durchsuchen&amp;quot; wählen und das Verzeichnis auswählen, in dem sich die &lt;br /&gt;
heruntergeladene Datei cdc-acm.inf befindet.&lt;br /&gt;
&lt;br /&gt;
6. Der Treiber wird nun installiert und danach sollte eine &lt;br /&gt;
Erfolgsmeldung kommen.&lt;br /&gt;
&lt;br /&gt;
7. Im Erfolgsfall wird im Gerätemanager unter &amp;quot;Anschlüsse (COM,...)...&amp;quot; &lt;br /&gt;
z. B.&amp;quot;M-Stack CDS Demo (COM5)&amp;quot; angezeigt.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
&#039;&#039;&#039;Wird in V1.1 gefixt&#039;&#039;&#039;&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.--&amp;gt; gefixt&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.--&amp;gt; gefixt&lt;br /&gt;
* Masseanbindung Quarz.--&amp;gt; gefixt&lt;br /&gt;
* Klemmen weiter weg vom Rand.--&amp;gt; gefixt&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.--&amp;gt; gefixt&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.--&amp;gt; gefixt&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.--&amp;gt; gefixt&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.--&amp;gt; gefixt&lt;br /&gt;
* THT-Kondensatoren für Snubber.--&amp;gt; gefixt&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.--&amp;gt; gefixt&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.--&amp;gt; gefixt&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. --&amp;gt; gefixt&lt;br /&gt;
* Power-LED vorsehen.--&amp;gt; gefixt&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen--&amp;gt; gefixt&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.--&amp;gt; Ist schon da, an fast jeder Stiftleiste&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?--&amp;gt; erstmal nicht&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage--&amp;gt; gefixt&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage--&amp;gt; gefixt&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?--&amp;gt; Wird nicht gemacht&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.--&amp;gt; Wird nicht gemacht&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
&#039;&#039;&#039;Wird in V1.1 gefixt&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/ratcos/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Elektronikversender&amp;diff=100620</id>
		<title>Elektronikversender</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Elektronikversender&amp;diff=100620"/>
		<updated>2019-06-03T07:35:42Z</updated>

		<summary type="html">&lt;p&gt;Boregard: /* Hobbyking */ URL gekürzt, alte lieferte 404...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Vor- und Nachteile von verschiedenen Elektronik-Versand-Händlern werden relativ häufig im Forum diskutiert. Diese Diskussionen führen nicht selten zu weitestgehend gleichen Ergebnissen. In diesem Artikel sollen daher die Argumente, die für oder gegen einen bestimmten Elektronik-Versender sprechen, zusammengetragen werden. Sobald diese Liste einigermaßen vollständig ist, würde dies sicher einige Diskussions-Threads und/oder Flame-Wars überflüssig machen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bei ausländischen Versendern sind generelle Infomationen zur Handhabung von Versand, sowie Zoll und Abgaben nützlich. Bitte aber hier nicht jedesmal wieder die kompletten Zoll-Details eintragen, dafür gibt es den Artikel [[Zoll und Abgaben]]&lt;br /&gt;
&lt;br /&gt;
Diese Liste erhebt keinerlei Anspruch auf Vollständigkeit, d.h. wenn ihr einen Versender kennt, der hier noch nicht aufgeführt ist, dann nennt wenigstens die URL und den Namen. Den Rest können auch andere besorgen, die den Versender ebenfalls kennen!&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Diese Seite kann nur von angemeldeten Benutzern bearbeitet werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bitte nur Firmen eintragen die versenden. Für reine Ladengeschäfte gibt es [[Lokale Elektroniklieferanten]]. Versender die auch ein Ladengeschäft betreiben können in beide Listen eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
* Bitte nur Firmen eintragen, die unter anderem Elektronikbauteile, -bausätze und z.B. Messgeräte versenden. Für andere Materialien gibt es [[Eisenwarenversender]] (die Liste dort enthält nicht nur Eisenwarenversender).&lt;br /&gt;
 &lt;br /&gt;
* Nur Versender eintragen die ohne Bettelei, ohne Rumgezicke oder ähnliches an Privatpersonen verkaufen (eventuell über Umwege). Also &#039;&#039;&#039;B2C, kein B2B&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
* Bitte ergänzt nur allgemeine Sachen (z.&amp;amp;nbsp;B. &amp;quot;liefert immer vollständig&amp;quot;, &amp;quot;günstig&amp;quot; oder &amp;quot;große Auswahl&amp;quot;), aber nicht Sachen wie &amp;quot;mein ATMega 128 hatte verbogene Beine&amp;quot;!&lt;br /&gt;
&lt;br /&gt;
* Bitte auch die alphabetische Sortierung beibehalten!&lt;br /&gt;
&lt;br /&gt;
* Keinen Spam von Firmen, besonders nicht, wenn sie nicht an Privatpersonen verkaufen. Wer uns nichts verkaufen will soll bitte draußen bleiben. &lt;br /&gt;
&lt;br /&gt;
* Nur in Ausnahmefällen Firmen die keinen oder keinen funktionsfähigen Onlineshop betreiben eintragen.&lt;br /&gt;
&lt;br /&gt;
* Bitte veraltete Einträge updaten oder, wenn die Firma nicht mehr auffindbar ist, löschen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Liste der Versender ==&lt;br /&gt;
&lt;br /&gt;
=== AATiS ===&lt;br /&gt;
Homepage: http://www.aatis.de&lt;br /&gt;
&lt;br /&gt;
* Arbeitskreis Amateurfunk und Technik in der Schule e.V.&lt;br /&gt;
* Bausätze speziell auch für Elektronik-Anfänger, Schüler&lt;br /&gt;
* Literatur, Seminare für Lehrer &lt;br /&gt;
&lt;br /&gt;
=== AK Modul Bus Computer GmbH ===&lt;br /&gt;
Homepage: http://www.ak-modul-bus.com/stat/produkte.html&lt;br /&gt;
&lt;br /&gt;
* Interfaces, Messmodule, Funktionsmodelle, Experimentiersysteme&lt;br /&gt;
* Entwicklungssysteme, Baugruppen, Elektor, Zubehör, Bauelemente&lt;br /&gt;
* Software, Lernpakete, Bücher, Sonderposten&lt;br /&gt;
&lt;br /&gt;
=== AliExpress ===&lt;br /&gt;
&lt;br /&gt;
Homepage: http://www.aliexpress.com/&lt;br /&gt;
&lt;br /&gt;
Stellvertretend für &amp;quot;aus China&amp;quot;: In der Regel versandkostenfrei und bis 26€ ohne Einfuhrumsatzsteuer. Alternativ auch [http://www.banggood.com Banggood] oder [http://ebay.com ebay.com] (erste Browser-Sprache: Englisch), siehe auch [[China SUPER Bauteile-Schnäppchen Thread-Wiki]].&lt;br /&gt;
&lt;br /&gt;
=== Allpax ===&lt;br /&gt;
Homepage: http://www.allpax.de&lt;br /&gt;
&lt;br /&gt;
* Liefert auch an Privathaushalte&lt;br /&gt;
* Keine Elektronik an sich, aber ggf. nützliches Zubehör: Größeres, übersichtliches Sortiment an ESD-Beuteln und -Folien, offen und mit Zippverschluss, Pink Poly und Metallisiert (High Shield). Preislich über Farnell, dafür findet man sofort, was man sucht...&lt;br /&gt;
* außerdem Ultraschallreiniger, Waagen und Folienschweißgeräte, sowie viel Fachfremdes&lt;br /&gt;
* Versandkosten: 8,33€ nach Deutschland, diverse EU-Länder 17,85€, Schweiz 34,51€; Versandkostenfrei in D ab 178,50€&lt;br /&gt;
* Gewährt scheinbar auch Privatkunden die Zahlung per Rechnung; bei Bankeinzug 2% Rabatt, bei Vorkasse und Abholung 3%&lt;br /&gt;
&lt;br /&gt;
=== AME-Engineering ===&lt;br /&gt;
Homepage: http://www.ame-engineering.de&lt;br /&gt;
&lt;br /&gt;
* Hochfrequenz-Spezialitäten, Amateurfunk&lt;br /&gt;
&lt;br /&gt;
=== Amidon ===&lt;br /&gt;
Homepage: http://www.amidon.de&lt;br /&gt;
&lt;br /&gt;
* Sehr großes Sortiment, vorallem für seltene Bauteile, z.&amp;amp;nbsp;B. Dioden&lt;br /&gt;
&lt;br /&gt;
=== Andy&#039;s Funkladen ===&lt;br /&gt;
Homepage: http://www.andyfunk.de&lt;br /&gt;
&lt;br /&gt;
Homepage nicht erreichbar (03.06.2019)&lt;br /&gt;
&lt;br /&gt;
* Alles für Amateur- und CB-Funk&lt;br /&gt;
* Bauteile und Gehäuse&lt;br /&gt;
&lt;br /&gt;
=== Anvilex ===&lt;br /&gt;
Homepage: http://shop.anvilex.com/index.html&lt;br /&gt;
&lt;br /&gt;
* Liefert sehr günstige Break-Out Boards für diverse Packages&lt;br /&gt;
* Hat einige einfache und günstige Programmer auch für FPGAs etc&lt;br /&gt;
&lt;br /&gt;
=== Atzert Technik-Discounter ===&lt;br /&gt;
Homepage: http://www.atzert-technik.de&lt;br /&gt;
&lt;br /&gt;
Früher &#039;&#039;MEGAKICK Electronic Stores&#039;&#039;, dann &#039;&#039;EFB-Electronic Versand&#039;&#039;, danach &#039;&#039;Atzert-Elektronik Versand&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Shop offline. Man wird auf ETT für gewerbliche Kunden verwiesen.&lt;br /&gt;
&lt;br /&gt;
* Mindestens schon der vierte Name und die vierte Webseite für den Endkunden-Versand von [[Elektronikversender#ETT|ETT]]. ETT liefert sonst nur an gewerbliche Kunden.&lt;br /&gt;
* Ladengeschäfte in Bielefeld, Braunschweig, Bremen, Hamburg (Ladengeschäft in Berlin, Kleiststr. ist geschlossen). &lt;br /&gt;
* Die Preise schwanken im Vergleich zu anderen Anbietern, welche ebenfalls ETT-importierte Produkte führen, mal nach oben, mal nach unten.&lt;br /&gt;
&lt;br /&gt;
=== AVOLTA ===&lt;br /&gt;
Homepage: http://www.avolta.de&lt;br /&gt;
&lt;br /&gt;
* Umfangreiches Sortiment im Bereich Schalter + Steckdosen, Haustechnik, KNX, Beleuchtung&lt;br /&gt;
* Verkauft an Endverbraucher und Firmenkunden&lt;br /&gt;
* sehr schnelle Lieferung mit guter Logistik&lt;br /&gt;
* Fachberatung&lt;br /&gt;
* Fachausstellung mit 120 Schalterdesigns.&lt;br /&gt;
&lt;br /&gt;
=== Bassenberg Elektronik ===&lt;br /&gt;
Homepage: http://www.bassenberg.de&lt;br /&gt;
&lt;br /&gt;
* Ladengeschäfte in Braunschweig und Neumünster&lt;br /&gt;
* Beschafft auch nicht mehr gelistete und abgekündigte Bauteile&lt;br /&gt;
* Liefert auch an Privat&lt;br /&gt;
&lt;br /&gt;
=== Batterie24 ===&lt;br /&gt;
Homepage: http://www.batterie24.de&lt;br /&gt;
&lt;br /&gt;
* Günstige Ultralife &amp;amp; Saft Lithium Batterien sowie FGS Bleiakkus&lt;br /&gt;
* z.B. 10 Ultralife Lithium Batterien 9V Block 62,90 Euro (Stand: Juni 2019)&lt;br /&gt;
* Anwendungen: z.B. Rauchmelder, Babyphone, Garagentoröffner, Sicherheitssysteme und Alarmanlagen&lt;br /&gt;
&lt;br /&gt;
=== Batronix ===&lt;br /&gt;
Homepage: http://www.batronix.com&lt;br /&gt;
* Gute Auswahl an Messgeräten (Oszis, Multis, Logik-/Spektrumanalyzer, Thermometer), aber auch Lötequipment und Labornetzteile&lt;br /&gt;
* Premium-Distributor für Rigol und Owon, d.h. bevorzugte Belieferung bei Engpässen gegenüber anderen Händlern&lt;br /&gt;
* Bausätze, Programmieradapter für Microcontroller-Applikationen&lt;br /&gt;
* Liefert auch an Privat&lt;br /&gt;
* Versand per DHL&lt;br /&gt;
* Bezahlung via Rechnung (unter Vorbehalt und nicht bei abweichender Lieferadresse), Paypal, Nachnahme, Kreditkarte oder Vorkasse&lt;br /&gt;
&lt;br /&gt;
=== BAZ Spezialantennen ===&lt;br /&gt;
Homepage: http://www.spezialantennen.de&lt;br /&gt;
&lt;br /&gt;
* Antennen für Amateurfunk, ISM, WLAN usw.&lt;br /&gt;
&lt;br /&gt;
=== bed - elektronik ===&lt;br /&gt;
Homepage: http://www.bed-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Restposten aktive und passive Bauelemente&lt;br /&gt;
* sehr günstige Preise&lt;br /&gt;
* alles ab Lager lieferbar&lt;br /&gt;
* Versand an Privat&lt;br /&gt;
* ab 60 EUR versandkostenfrei&lt;br /&gt;
&lt;br /&gt;
=== Bfi-Optilas ===&lt;br /&gt;
Homepage: http://www.bfioptilas.de&lt;br /&gt;
&lt;br /&gt;
* Kein Onlineshop&lt;br /&gt;
* spezialisierter Distributor für Hochfrequenzhalbleiter und Optik&lt;br /&gt;
&lt;br /&gt;
=== BG-Electronics.de ===&lt;br /&gt;
Homepage: http://www.bg-electronics.de&lt;br /&gt;
&lt;br /&gt;
* Online Shop für aktive und passive elektronische Bauelememte&lt;br /&gt;
* günstige Preise&lt;br /&gt;
* alle Artikel ab Lager lieferbar, daher kurze Wartezeiten&lt;br /&gt;
* weltweiter Versand&lt;br /&gt;
* zahlreiche Mengenrabatte&lt;br /&gt;
* viele Ersatzteile aus dem Audio-, CarHiFi und TV-Bereich&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== B &amp;amp; M electronics ===&lt;br /&gt;
Homepage: http://www.bmelectronics.de&lt;br /&gt;
&lt;br /&gt;
* Bauteile, Platinen und Baugruppen für Amateurfunk&lt;br /&gt;
Seite nicht erreichbar am 22.7.2012 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Box73 ===&lt;br /&gt;
Homepage: http://www.box73.de&lt;br /&gt;
&lt;br /&gt;
Onlineshop des Funkamateur.&lt;br /&gt;
&lt;br /&gt;
* Bauteile, Bausätze, Literatur aus dem Amateurfunkbereich&lt;br /&gt;
* Preise sind O.K.&lt;br /&gt;
* Bestellungen werden nur Di und Do bearbeitet&lt;br /&gt;
* Ab 50 EUR bei Bankeinzug portofrei.&lt;br /&gt;
&lt;br /&gt;
=== Boxtec AG ===&lt;br /&gt;
Homepage: http://www.boxtec.ch&lt;br /&gt;
&lt;br /&gt;
Onlineshop für Robotik&lt;br /&gt;
&lt;br /&gt;
* Bauteile, Bausätze aus dem Bereich Robotik&lt;br /&gt;
* Preise sind O.K. ( Ausfuhr und Zoll beachten )&lt;br /&gt;
* Grosse Auswahl und Lieferfähigkeit&lt;br /&gt;
* Bestellungen können vor Ort abgeholt werden (in der Schweiz)oder zugesandt werden&lt;br /&gt;
* Wiki Seite dazu mit viel Info z.B. PIC und I2C Bus&lt;br /&gt;
* Online Hilfe möglich&lt;br /&gt;
* viele Info zu einzelnen Bauteilen&lt;br /&gt;
* eigenes Forum&lt;br /&gt;
* Regelmässig Treffen vor Ort&lt;br /&gt;
&lt;br /&gt;
=== Bürklin OHG ===&lt;br /&gt;
Homepage: http://www.buerklin.com&lt;br /&gt;
&lt;br /&gt;
* große Auswahl, hohe Verfügbarkeit&lt;br /&gt;
* sehr schneller Versand&lt;br /&gt;
* Ladengeschäft in Oberhaching (südlicher Landkreis München)&lt;br /&gt;
&lt;br /&gt;
=== CBoden ===&lt;br /&gt;
* Homepage: http://shop.cboden.de/Bauelemente/&lt;br /&gt;
* Sehr wenige Bauteile, dafür oft günstiger als andere Versender&lt;br /&gt;
* Versandkosten in D: 2,50 Euro&lt;br /&gt;
&lt;br /&gt;
=== CBsoft, s.r.o. (ltd.) ===&lt;br /&gt;
*Homepage: http://www.jjtubes.eu/&lt;br /&gt;
* Firma in der Slowakei&lt;br /&gt;
* Verkauft Röhren der Firma JJ&lt;br /&gt;
* englischsprachig&lt;br /&gt;
* Zahlungsmöglichkeiten in € mit Paypal und Kreditkarte&lt;br /&gt;
&lt;br /&gt;
=== chiptrade.com ===&lt;br /&gt;
siehe [[#SE Spezial-Electronic AG|SE Spezial-Electronic AG]]&lt;br /&gt;
&lt;br /&gt;
=== ConeleK Electronic ===&lt;br /&gt;
Homepage: http://www.conelek.com&lt;br /&gt;
&lt;br /&gt;
* Sehr kleines Bauteileangebot (Röhren, Röhrensockel)&lt;br /&gt;
* Elektronik-Laborbedarf, insbesondere Nachfüllpackungen mit Steckbrett-Drahtbrücken&lt;br /&gt;
* Werkzeug für Elektronik&lt;br /&gt;
* Stromversorgungen&lt;br /&gt;
* Versand an Privat&lt;br /&gt;
* Versandkosten bis 25kg, Vorkasse 5,90€ (Stand 04/2008)&lt;br /&gt;
&lt;br /&gt;
=== Conrad ===&lt;br /&gt;
Homepage: http://www.conrad.de und http://www.business.conrad.de&lt;br /&gt;
&lt;br /&gt;
* großes Angebot (für Bauteile den &amp;quot;Business&amp;quot;-Katalog beachten, der Hauptkatalog ist dahingehend etwas &amp;quot;dünn&amp;quot;) (Anm.: Bauteile, die nur im Business-Katalog aufgeführt sind, sind in Ladengeschäften nur über Sonderbestellung zu bekommen, d.h. dort in aller Regel nicht vorrätig.)&lt;br /&gt;
* Positiv: Wirklich jedes Bauteil kann einzeln gekauft werden und wird nicht in dämlichen Verpackungseinheiten verkauft, so wie es bei den meisten anderen Elektronik-Lieferanten der Fall ist. Dies ist vor Allem für den Prototypenbau sehr hilfreich.&lt;br /&gt;
* relativ teuer jedoch bis zu 10% Rabatt für Schulen (bei genügend Umsatz)&lt;br /&gt;
* 21 Ladengeschäfte in Deutschland, sechs in Österreich (Megastores)&lt;br /&gt;
* positiv: Bei Business-Kunden wird der Rechnungsbetrag erst nach 14 Tagen abgebucht.&lt;br /&gt;
* haben einen (teuren) 24 Std. Lieferservice für Notfälle - Conrad garantiert aber nicht 100%ig für die Einhaltung der 24 Stunden. Bei Nichteinhaltung gibt es kein Geld zurück.&lt;br /&gt;
* Verfügbarkeit in Filialen kann Online überprüft werden.&lt;br /&gt;
* Verfügbarkeit in Filialen kann über zentale Rufnummer erfragt werden. Abholung bestellter Ware in Filialen möglich, aber trotzdem gleiche Versandkosten.&lt;br /&gt;
* Eigenmarken: u.a. Voltcraft, Renkforce&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Vorerst Auskommentiert - Subjektiv/Einzelerfahrung, veraltete Informationen (Filialen)&lt;br /&gt;
* Mit jeder Bestellung erhält man zusätzlich Werbung von unseriösen Firmen, wo Gewinne versprochen werden und man sich in Wirklichkeit für irgendwelche Abos verpflichtet. Wenn man bei Conrad anruft und sie zur Rede stellt, erhält man die Antwort, dass diese Werbung anscheinend aus Versehen hineingerutscht ist. So ein Zufall.&lt;br /&gt;
* sehr kulant bei Umtäuschen&lt;br /&gt;
* versuchen bei Rückgaben einen Teil oder den gesamten Betrag einzubehalten (schon mehrfach vorgekommen)&lt;br /&gt;
* Schlampig verpackte Artikel. ICs sind nicht Antistatik-Konform verpackt.&lt;br /&gt;
* Die Filiale München / Tal hat keine Telefonnummer mehr in den Verzeichnissen, anscheinend sind Kundenanfragen dort zu &amp;quot;lästig&amp;quot;. (Kommentar: andere Filialen auch nicht, wird nur noch über eine Sammelnummer über ein Callcenter abgewickelt. Die Ladenbestellung wird dann vom Callcenter per eMail an die Filiale weitergeleitet.)&lt;br /&gt;
* die Ladengeschäfte haben nicht das gesamte Programm vor Ort, man kann jedoch in den Geschäften anrufen und die Verfügbarkeit anfragen, evtl. sogar Teile für ein paar Stunden &amp;quot;zurücklegen lassen&amp;quot; (von Geschäft zu Geschäft verschieden).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== csd-electronics ===&lt;br /&gt;
Homepage: [http://www.csd-electronics.de/?pk_campaign=micro_sender csd-electronics.de]&lt;br /&gt;
&lt;br /&gt;
* schnelle Lieferung, bei Lagerware am selben Tag ohne Aufpreis. Auf Wunsch Teillieferung.&lt;br /&gt;
* ATMEL, ICs, Passive und Mechanische Bauteile, Platinen- und Lötzubehör, u.a.&lt;br /&gt;
* ca. 6200 Bauteile lagernd&lt;br /&gt;
* günstig&lt;br /&gt;
* Mengenrabatte für fast jedes Produkt&lt;br /&gt;
* Lieferung auch an Privat&lt;br /&gt;
* Versand innerhalb Deutschlands: &lt;br /&gt;
* DHL: 4,50 EUR (ab 60 EUR versandkostenfrei)&lt;br /&gt;
* DPD: ab 5,50 EUR&lt;br /&gt;
* Versand EU-weit ab 2,99 EUR&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* Bauelemente, die nicht im Shop angeboten werden, können auf Anfrage beschafft werden.&lt;br /&gt;
* Zahlung per Vorkasse (3% Skonto), PayPal, Nachnahme, Kreditkarte. &lt;br /&gt;
* Zahlung per Rechnung, Bankeinzug nur für Stammkunden (ab 4 bis 5 Bestellung), Für Institute/Firmen direkt auf Rechnung möglich&lt;br /&gt;
* Abholung von Ware in Bonn-Dransdorf möglich&lt;br /&gt;
* Neuer Shop seit 17.08.2016&lt;br /&gt;
&lt;br /&gt;
=== dad24 ===&lt;br /&gt;
Homepage, Shop: http://dad24.eu&lt;br /&gt;
E-Bay Shop:     nicht mehr vorhanden 08/2018 (http://stores.ebay.de/Shop-dad24)&lt;br /&gt;
&lt;br /&gt;
* Unterschiedliche Preise in den beiden Shops&lt;br /&gt;
* Kleiner, nicht sonderlich schöner Onlineshop (dad24.eu)&lt;br /&gt;
* Kleines Angebot. Lupenleuchten, Lötstationen, Labornetzgeräte, Messgeräte, etc. aus dem unteren Preissegment&lt;br /&gt;
* Jede Woche eine neue &amp;quot;Kategorie der Woche&amp;quot; auf dad24.eu. Produkte aus der Kategorie werden erst im Warenkorb mit einem Rabatt angezeigt, der auch gewährt wird.&lt;br /&gt;
&lt;br /&gt;
=== Darisus ===&lt;br /&gt;
Homepage: http://www.darisus.de&lt;br /&gt;
&lt;br /&gt;
* kompetente Beratung&lt;br /&gt;
* liefert sehr zuverlässig, in Notfällen auch Express&lt;br /&gt;
* Versand innerhalb Deutschlands ab 4,50 EUR&lt;br /&gt;
* Hat auch eine gute Auswahl an CPLDs und einige FPGAs diverser Hersteller&lt;br /&gt;
&lt;br /&gt;
=== Develektro ===&lt;br /&gt;
Homepage (Deutschland): https://www.develektro.com/&lt;br /&gt;
* Bezeichnet sich als Fachhandelspartner von Farnell/element14© Der Shop für Hobby- Privat- &amp;amp; Profi Entwickler!&lt;br /&gt;
&lt;br /&gt;
=== Digi-Key ===&lt;br /&gt;
Homepage (Deutschland): http://www.digikey.de&lt;br /&gt;
&lt;br /&gt;
* optisch nicht besonders ansprechende, aber durchaus sehr funktionelle Website&lt;br /&gt;
* beheimatet in den USA, ein Logistikbüro gibt es in den Niederlanden&lt;br /&gt;
* kostenloser Versand ab 50&amp;amp;#8364;, darunter 18&amp;amp;#8364; Versandkosten&lt;br /&gt;
* macht merkwürdige Plausibilitäts-Checks: wenn man privat über ihrem Dollar Limit (z.B. 400 Dollar bestellt) kommt sofort die Rückfrage nach Firmenname und Firmenadresse&lt;br /&gt;
* Rückfragen nach dem Verwendungszweck kommen ebenfalls schon bei der Bestellung bei bestimmten Bauteilen die der Exportkontrolle unterliegen&lt;br /&gt;
* Versand direkt aus den USA, dafür sehr flott mit UPS Express (in rund zwei bis drei Tagen da)&lt;br /&gt;
* riesiges Angebot, gewissermaßen ein Distributor der auch Kleinmengen an Privatpersonen liefert, entscheidend ist, dass der Hersteller des Produkts geführt wird&lt;br /&gt;
* kein anderer Anbieter, bietet so viele verschiedene passive Bauteile in kleinen Stückzahlen, z.&amp;amp;nbsp;B. SMD Widerstände in Bauform 01005 bis 2512 meist in verschiedenen Toleranzklassen und von verschiedenen Herstellern&lt;br /&gt;
* alle Bauteile mit Herstellerangabe, Digikey kauft ausschließlich direkt vom Hersteller&lt;br /&gt;
* Preise sind auf der deutschen Website in Euro inklusive etwaigem Zoll angegeben, allerdings ohne Mehrwertsteuer, die korrekt abgerechnet wird (d.h. man zahlt bei Versand nach Österreich 20% Mwst., nach Deutschland m.W.n. 19%)&lt;br /&gt;
* der Preis für im Warenkorb befindliche Ware wird für einen Monat garantiert und nur bei Mengenänderung aktualisiert (d.h. zwischenzeitliche Preisanpassungen, nach oben wie nach unten, bleiben unberücksichtigt)&lt;br /&gt;
* Meistens deutlich teurer als Reichelt, doch häufig die beste Anlaufstelle für Privatkunden wenn es um Spezialbauteile geht, und der Hersteller sich im Programm von Digikey befindet&lt;br /&gt;
* Zahlung per Kreditkarte (MasterCard, VISA, American Express) oder Vorauskasse (SEPA-Überweisung auf deutsches Konto bei der Commerzbank AG)&lt;br /&gt;
&lt;br /&gt;
=== Display3000 ===&lt;br /&gt;
Shop: https://shop.display3000.com&lt;br /&gt;
&lt;br /&gt;
* Kleiner Shop&lt;br /&gt;
* Spezialisiert auf Mikrocontroller-Komplettlösungen mit Farb TFTs&lt;br /&gt;
* Individualisierbare Controller-Module&lt;br /&gt;
* Entwickeln und Produzieren auch im Kundenauftrag&lt;br /&gt;
* Eigene Folientastaturen für Bopla Gehäuse&lt;br /&gt;
* Günstige Rigol-Geräte (sind nicht alle im Shop gelistet, per Mail anfragen)&lt;br /&gt;
* Vorauskasse, Paypal, Amazon Payment, Rechnung (große Firmen, Stammkunden)&lt;br /&gt;
* Mindestbestellwert 25 Euro&lt;br /&gt;
&lt;br /&gt;
=== Display Electronics ===&lt;br /&gt;
&lt;br /&gt;
Homepage: http://www.distel.co.uk (Zurzeit nicht erreichbar)&lt;br /&gt;
&lt;br /&gt;
* In England&lt;br /&gt;
* Webseite = Augenkrebs &lt;br /&gt;
* Online-Shop versteckt hinter dem Search-Button auf der Homepage&lt;br /&gt;
* Restposten aller Art&lt;br /&gt;
* Mindestbestellwert 10 GBP&lt;br /&gt;
&lt;br /&gt;
=== Eckstein-Shop ===&lt;br /&gt;
Homepage: https://eckstein-shop.de/&lt;br /&gt;
&lt;br /&gt;
*Kein Mindestbestellwert&lt;br /&gt;
*Onlineshop aus Clausthal-Zellerfeld (Harz)&lt;br /&gt;
*alles zu den Themen Raspbarry Pi, Arduino, Makeblock &lt;br /&gt;
*und dazugehörige Elektronik Bauteile (Bildschirme, Motoren, Sensoren, usw.)&lt;br /&gt;
*Versand mit DHL für Kleinkram € 1,99 bzw. größere Sachen € 3,49&lt;br /&gt;
*Generell Versandkostenfrei ab € 50&lt;br /&gt;
&lt;br /&gt;
=== eeTec.ch ===&lt;br /&gt;
Homepage: http://eetec.ch&lt;br /&gt;
&lt;br /&gt;
*Kein Mindestbestellwert&lt;br /&gt;
*Onlineshop aus der Schweiz&lt;br /&gt;
*Elektronik Bauteile, Bausätze, Breakouts, Sensoren, Programer, LED, Robotik, Modellbau, Ardupilot/Arducopter und DIY Zubehör&lt;br /&gt;
*Arduino (kompatible) Shields und Boards&lt;br /&gt;
*Gratis Versand am Folgetag (in der Schweiz) bei vielen Produkten (alles unter 2cm)&lt;br /&gt;
*Generell Versandkostenfrei ab 100 CHF (CH)&lt;br /&gt;
*Versand in in die EU ab 1 Euro für (auf Anfrage)&lt;br /&gt;
&lt;br /&gt;
=== endasmedia Shop ===&lt;br /&gt;
Homepage: http://endasmedia.ch&lt;br /&gt;
&lt;br /&gt;
* Schweizer Standort! Versendet für 1-3 Euro Europaweit!&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* Bauelemente (&#039;&#039;&#039;STM32&#039;&#039;&#039;, AVR, LCD, Kleinteile) und Bausätze sehr günstig&lt;br /&gt;
* Eigenentwickelte Bausätze &lt;br /&gt;
* AVR-ISP-Stick (USBASP)&lt;br /&gt;
* Restposten aller Art&lt;br /&gt;
* Vorauskasse, Paypal&lt;br /&gt;
* Dieser Shop wird von einem Forenmitglied (hedie) betrieben!&lt;br /&gt;
* Verkauf auch an Privat/Bastler&lt;br /&gt;
&lt;br /&gt;
=== eHaJo ===&lt;br /&gt;
Homepage: https://www.eHaJo.de&lt;br /&gt;
&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* Bauelemente (AVR, LCD, Kleinteile) und Bausätze sehr günstig&lt;br /&gt;
* eigenentwickelte Bausätze &lt;br /&gt;
* Arduino Clone&lt;br /&gt;
* Lötübungen für SMD&lt;br /&gt;
* AVR-ISP-Stick&lt;br /&gt;
* Versand ab 2,90€, Versandkostenfrei ab 175€&lt;br /&gt;
* Vorauskasse, Paypal&lt;br /&gt;
&lt;br /&gt;
=== EIBTron.com ===&lt;br /&gt;
Homepage: http://www.eibtron.com&lt;br /&gt;
&lt;br /&gt;
* Riesige Auswahl an Produkten (~300000)&lt;br /&gt;
* SMD-Bauteile bis 0402!&lt;br /&gt;
* auch spezielle Sachen wie Xilinx-Configuration PROMs, AD9740-DACs oder SMD-Quarze (z.B. Abracon ABM7) im Angebot&lt;br /&gt;
* Alternative zum HBE-Shop für Privatanwender&lt;br /&gt;
* Versand direkt durch RS&lt;br /&gt;
* zuverlässiger und freundlicher Support&lt;br /&gt;
&lt;br /&gt;
=== Eisch-Kafka-Electronic ===&lt;br /&gt;
Homepage: http://www.eisch-electronic.de&lt;br /&gt;
 &lt;br /&gt;
* Hochfrequenz Bausätze und Bauteile für Amateurfunk&lt;br /&gt;
&lt;br /&gt;
=== EleConT ===&lt;br /&gt;
Homepage: http://www.elecont.de/shop/&lt;br /&gt;
&lt;br /&gt;
* Carrierboards für gebräuchliche AVR&lt;br /&gt;
&lt;br /&gt;
=== Electropuces ===&lt;br /&gt;
Homepage: http://perso.wanadoo.fr/electropuces/&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte aus Nantes, Frankreich  (teilweise engl. Menü)&lt;br /&gt;
&lt;br /&gt;
=== Electronic Search ===&lt;br /&gt;
&lt;br /&gt;
Homepage: http://www.electronic-search.de&lt;br /&gt;
&lt;br /&gt;
* Keine Mindestbestellmenge&lt;br /&gt;
* Verkauf auch an Privat/Bastler&lt;br /&gt;
* Fast alle Preise im Online-Shop nur &amp;quot;auf Anfrage&amp;quot;, und nicht im Shop angegeben.&lt;br /&gt;
&lt;br /&gt;
=== electronicpool Rheinstetten ===&lt;br /&gt;
Homepage: http://www.electronicpool.de&lt;br /&gt;
&lt;br /&gt;
* abgekündigte oder schwer beschaffbare elektronische Bauteile&lt;br /&gt;
&lt;br /&gt;
=== Elektroland24===&lt;br /&gt;
Homepage: http://www.elektroland24.de/&lt;br /&gt;
&lt;br /&gt;
* Großes Sortiment im Bereich Schalter &amp;amp; Steckdosen/Haustechnik/Elektoinstallation&lt;br /&gt;
* Verkauf an Endverbraucher&lt;br /&gt;
* kurze Lieferzeiten&lt;br /&gt;
&lt;br /&gt;
=== Elektronik-Kompendium ===&lt;br /&gt;
Homepage: http://www.elektronik-kompendium.de&lt;br /&gt;
&lt;br /&gt;
* Bausätze diverser Schaltungen (mit Anleitung und Funktionsbeschreibung)&lt;br /&gt;
* erspart lästiges Suchen in anderen Shops&lt;br /&gt;
* kurze Lieferzeiten&lt;br /&gt;
* günstiger Versand&lt;br /&gt;
&lt;br /&gt;
=== ElrePo ===&lt;br /&gt;
Homepage: http://www.elrepo.de&lt;br /&gt;
&lt;br /&gt;
*Relativ großes Sortiment an Bauteilen&lt;br /&gt;
*Günstige Sortimente und Recycling Bauteile&lt;br /&gt;
*Versandkosten ab 90ct !&lt;br /&gt;
&lt;br /&gt;
=== Elk Tronic ===&lt;br /&gt;
Homepage: http://www.elk-tronic.de&lt;br /&gt;
&lt;br /&gt;
* kleines Lieferprogramm Adapterplatinen (SMD -&amp;gt; 2,54mm-Raster) und Programmieradapter&lt;br /&gt;
* günstige Preise und Versandspesen&lt;br /&gt;
&lt;br /&gt;
=== Elko-Verkauf ===&lt;br /&gt;
Homepage: http://www.elko-verkauf.de&lt;br /&gt;
&lt;br /&gt;
* Nur Low-ESR-Elkos&lt;br /&gt;
* Elko-Sets für ein Gerät&lt;br /&gt;
&lt;br /&gt;
=== Ellmitron ===&lt;br /&gt;
Homepage: http://www.ellmitron.de/&lt;br /&gt;
Katalog: http://www.ellmitron.de/katalog.pdf&lt;br /&gt;
&lt;br /&gt;
* Lehrmittel, Kleinbausätze vor allem für Schüler, Experimentierkästen&lt;br /&gt;
&lt;br /&gt;
=== Elpro ===&lt;br /&gt;
Homepage: http://www.elpro.org/shop/shop.php&lt;br /&gt;
&lt;br /&gt;
* Sehr gute Preise, nachsehen lohnt sich!&lt;br /&gt;
* Kein Mindestbestellwert, aber höhere Versandkosten für kleine Bestellungen. (Stand April 2013):&lt;br /&gt;
* Ab €200: Versandkostenfrei&lt;br /&gt;
* Große Auswahl an Mikrocontrollern, z.B. [[STM32]] und [[LPC1xxx]]&lt;br /&gt;
* Sehr große Auswahl an Schaltnetzteilen von Meanwell (geschlossen, offen, auf PCB lötbar, DIN-Schiene)&lt;br /&gt;
* Shopsoftware gewöhnungsbedürftig, jedoch sinnvolle Untergliederung. Braucht JavaScript&lt;br /&gt;
* Keine AGBs online. Da Preisangaben ohne MwSt. richtet sich das Angebot vermutlich nicht an Endverbraucher (werden aber beliefert)&lt;br /&gt;
* Sehr schnelle Lieferung, Bearbeitungszeit (bis Warenausgang) oft nur 2-3 Tage.&lt;br /&gt;
* Versand bisher mit DHL&lt;br /&gt;
* gute bis sehr gute Verpackung&lt;br /&gt;
&lt;br /&gt;
=== Eltrix ===&lt;br /&gt;
Homepage: http://eltrix.de/Starteltrix.htm&lt;br /&gt;
&lt;br /&gt;
*  Verbrauchsmaterial, Tipps und Tricks fürs Leiterplattenherstellen und Löten&lt;br /&gt;
&lt;br /&gt;
=== elteile.de ===&lt;br /&gt;
Homepage: http://elteile.de&lt;br /&gt;
&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* Versandkosten: Deutschland 2,75€ / Weltweit ab 6,00€&lt;br /&gt;
* Versandkostenfrei ab 45 €&lt;br /&gt;
* PayPal und Vorkasse&lt;br /&gt;
* auch Lieferung an Privat&lt;br /&gt;
* Widerstände, Kondensatoren, IC&#039;s, Dioden, Z-Dioden, Transistoren usw.&lt;br /&gt;
* auch Bauteile auf Anfrage.&lt;br /&gt;
* fast alle Artikel ab Lager in Deutschland lieferbar&lt;br /&gt;
&lt;br /&gt;
=== eltradec.eu (Robert Matyschok Electronics Trade &amp;amp; Consulting) ===&lt;br /&gt;
Homepage: http://www.eltradec.eu&lt;br /&gt;
&lt;br /&gt;
* auch Lieferung an Privat&lt;br /&gt;
* Mindestbestellwert 15€, versicherter Versand ab 5€, versandkostenfrei ab 50€&lt;br /&gt;
* nach Vereinbarung auch Abholung in Karlsruhe möglich&lt;br /&gt;
* kein Warten, verkauft wird grundsätzlich nur eigene Lagerware&lt;br /&gt;
* Aktive, Passive, Elektromechanik, kein Werkzeug, keine Meßgeräte&lt;br /&gt;
* Schwerpunkte: analoge Fernsehtechnik (u.a. Zeilentrafos, viele TDAs), uC/uP, PLD (Xilinx, Altera, Lattice), HF-ICs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ELV ===&lt;br /&gt;
Homepage: http://www.elv.de&lt;br /&gt;
&lt;br /&gt;
* nicht sehr große Auswahl an Einzelteilen&lt;br /&gt;
* riesiges Angebot an Zubehör für Hobbyisten&lt;br /&gt;
* viele z.T. pfiffige Eigenentwicklungen, Bausätze (auch zum Download auf der Website verfügbar)&lt;br /&gt;
* sonst Sortiment ähnlich Conrad, nicht billig&lt;br /&gt;
* im Allgemeinen nicht billig, merkwürdigerweise sind manche Artikel aber die günstigsten auf dem Markt&lt;br /&gt;
* mühsamer Onlinekatalog&lt;br /&gt;
* Immer mal wieder Fehllieferungen und Wartezeiten (zumindest in die Schweiz). Service erreichte in 3 Fällen nicht das inserierte Niveau.&lt;br /&gt;
* Versandkosten innerhalb Deutschland 4,5&amp;amp;#8364;, ab 150&amp;amp;#8364; Bestellwert versandkostenfrei&lt;br /&gt;
* nicht abwählbare Versandversicherung, die 0,85% des Bestellwertes kostet&lt;br /&gt;
&lt;br /&gt;
=== Embedded Tools &amp;amp; Gadgets ===&lt;br /&gt;
Homepage: http://www.embedded-tools.ch&lt;br /&gt;
&lt;br /&gt;
* Schweizer Shop&lt;br /&gt;
* schnelle Lieferung, bei Lagerware am selben Tag ohne Aufpreis. Auf Wunsch Teillieferung.&lt;br /&gt;
* Viele Arduino und Eval-Boards&lt;br /&gt;
* ATMEL, ICs, Passive und Mechanische Bauteile, Platinen- und Lötzubehör, u.a.&lt;br /&gt;
* ca. 5000 Bauteile lagernd&lt;br /&gt;
* günstig&lt;br /&gt;
* Mengenrabatte für fast jedes Produkt&lt;br /&gt;
* Versand innerhalb der Schweiz: 7,60 CHF&lt;br /&gt;
* EU-weiter Versand&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* Bauelemente, die nicht im Shop angeboten werden, können auf Anfrage beschafft werden.&lt;br /&gt;
* Zahlung per Rechnung nur für Stammkunden (ab 4 bis 5 Bestellung), Für Institute/Firmen direkt auf Rechnung möglich&lt;br /&gt;
* Abholung von Ware Aarau/Schweiz nach Vereinbarung&lt;br /&gt;
&lt;br /&gt;
=== ETT - Electronic Toys Trading  ===&lt;br /&gt;
Homepage: http://www.ett-online.de&lt;br /&gt;
&lt;br /&gt;
* Großhandel nur für Gewerbekunden, aber hat einen Zweitshop [[Elektronikversender#Atzert Technik-Discounter|Atzert Technik-Discounter]] (früher EFB-Electronic Versand, davor Megakick Electronic-Stores) für Endkunden.&lt;br /&gt;
* Ladengeschäft in Braunschweig für jedermann. Weitere Atzert Ladengeschäfte in Bielefeld, Bremen, Hamburg und Berlin.&lt;br /&gt;
* Eigentümer der Marken McCHECK®, McPower®, McVoice® und anderer, unter denen ETT importierte Messgeräte, Labornetzteile, usw. an Großkunden und Händler vertreibt. Diese sind unter oben genannten Marken dann in vielen Shops anderer Firmen für Endkunden zu finden, nicht nur bei Atzert. Preisvergleiche lohnen.&lt;br /&gt;
&lt;br /&gt;
=== Ettinger GmbH ===&lt;br /&gt;
Homepage: http://www.ettinger.de&lt;br /&gt;
&lt;br /&gt;
* Liefert per Nachnahme oder gegen Vorauskasse auch an Privatkunden.&lt;br /&gt;
* Mechanische Komponenten (Gehäuse, Abstandshalter, Drehknöpfe, usw.)&lt;br /&gt;
* LEDs&lt;br /&gt;
* Gewöhnungsbedürftiger Online-Shop&lt;br /&gt;
&lt;br /&gt;
=== EXP-TECH ===&lt;br /&gt;
Homepage: http://www.exp-tech.de/&lt;br /&gt;
&lt;br /&gt;
* liefert an privat&lt;br /&gt;
* vielfältiges Sortiment von vielen verschiedenen Händlern (Adafruit, Sparkfun, Arduino, Olimex, Embest, SeedStudio, CooCox,  Digi, BeagleBone, IteadStudio, RaspberryPI, SecretLabs, CookingHacks,  Axiris.pe, OpenPicus, RobotElectronics, RobotBase, AttenInstruments,  Dagu, RF-Explorer, TexasInstruments, DangerousPrototypes...)&lt;br /&gt;
* Lieferung per DHL&lt;br /&gt;
* Zahlungsmöglichkeiten: Überweisung (Vorkasse), PayPal, Visa, MasterCard&lt;br /&gt;
&lt;br /&gt;
=== Farnell ===&lt;br /&gt;
Homepage: http://de.farnell.com&lt;br /&gt;
&lt;br /&gt;
* liefert nur an gewerbliche Abnehmer, Ausnahme sind Studenten und HTL-Schüler (Österreich, Farnell.at). Nachweis wird verlangt (Gewerbeschein oder Immatrikulation), Prüfung kann einige Tage dauern&lt;br /&gt;
* Lieferungen an Privat:&lt;br /&gt;
:* Schweiz: Farnell Schweiz beliefert auch Privatkunden.&lt;br /&gt;
:* Deutschland: Über den Reseller [[#Develektro]] kann man Produkte aus dem Farnell-Sortiment bestellen.&lt;br /&gt;
:* Österreich: [[#Technik-Welt / Industrieshop.at|Technik-Welt / Industrieshop.at]]&lt;br /&gt;
* große Auswahl&lt;br /&gt;
* &amp;lt;s&amp;gt;12% Rabatt für Studenten und Lehreinrichtungen&amp;lt;/s&amp;gt; Laut Kundenservice seit Dezember 2013 keine Rabatte mehr für bestimmte Kundengruppen!&lt;br /&gt;
* sehr schneller Versand, Ware ist in 99% aller Fälle am nächsten Tag da (UPS), fehlende Positionen werden relativ rasch versandkostenfrei nachgeliefert&lt;br /&gt;
* Versandkosten: Bestellung bis 54,99&amp;amp;#8364;: 5,95&amp;amp;#8364;; ab 55,00&amp;amp;#8364; versandkostenfrei&lt;br /&gt;
* hat nach eigenen Aussagen umfangreichstes Sortiment an RoHS-konformen Bauteilen mit Suchfunktion im WWW&lt;br /&gt;
* leistungsfähige parametrische Suchfunktion / teils aber völlig nutzlos, da den Artikeln massenweise Tags fehlen, weswegen die Suchergebnisse unnötig eingeschränkt werden&lt;br /&gt;
* Datenblätter für die meisten Bauteile online&lt;br /&gt;
* Internetpräsenz fällt nachts oft aus (Hinweis auf angebliche geplante Wartungsarbeiten)&lt;br /&gt;
* Sortierfunktion wird bei der Suche ständig zurückgesetzt, im Warenkorb ist überhaupt keine sinnvolle Sortierung möglich&lt;br /&gt;
* Eigenwillige Preispolitik: Einiges sehr günstig, Anderes total überteuert&lt;br /&gt;
* Accounts werden bei Inaktivität ohne Nachfrage deaktiviert/gelöscht, kein Login und keine Neuanlage über die Webseite möglich, Freischaltung via Support erfordert erneuten Nachweis&lt;br /&gt;
&lt;br /&gt;
=== Fibra-Brandt Zweibrücken ===&lt;br /&gt;
Homepage: http://www.fibra-brandt.com&lt;br /&gt;
&lt;br /&gt;
* lagert tausende veraltete und schwer zu findende elektronische Bauteile&lt;br /&gt;
* Halbleiter, IC&#039;s, Transistoren, Spulen und Kondensatoren.&lt;br /&gt;
* Sonderbeschaffung von abgekündigten Halbleitern.&lt;br /&gt;
&lt;br /&gt;
=== Fischer DK2FD ===&lt;br /&gt;
Homepage: http://www.dk2fd.de für Amateurfunkprodukte&lt;br /&gt;
&lt;br /&gt;
* Baugruppen für Hochfrequenzmesstechnik und Amateurfunk&lt;br /&gt;
&lt;br /&gt;
=== Fuchs Shop ===&lt;br /&gt;
Homepage: http://www.fuchs-shop.com/&lt;br /&gt;
&lt;br /&gt;
* 1-Wire- und iButton-Komponenten&lt;br /&gt;
&lt;br /&gt;
=== Funkamateur Online-Shop ===&lt;br /&gt;
&lt;br /&gt;
Siehe [[Elektronikversender#Box73]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Futurelec ===&lt;br /&gt;
Homepage: http://www.futurlec.com&lt;br /&gt;
&lt;br /&gt;
* günstiger Versender aus Übersee&lt;br /&gt;
* viele Stamp-Boards&lt;br /&gt;
* LED Matrix-Module&lt;br /&gt;
&lt;br /&gt;
=== Future Electronics ===&lt;br /&gt;
Homepage: http://de.futureelectronics.com&lt;br /&gt;
&lt;br /&gt;
* große Auswahl an Teilen&lt;br /&gt;
* Versand auch an Privatpersonen&lt;br /&gt;
* Preisangaben ohne MwSt.&lt;br /&gt;
* Zahlung nur mit Kreditkarte&lt;br /&gt;
* Versandkosten 7,14€ (Brutto)&lt;br /&gt;
* Versand aus den USA mit FedEx, Lieferzeit meist unter 5AT&lt;br /&gt;
* Verzollung usw. wird von FutureElectronics gemacht, keine Nachzahlungen etc.&lt;br /&gt;
&lt;br /&gt;
=== Geist Electronic-Versand GmbH ===&lt;br /&gt;
Homepage: http://www.geist-electronic.de&lt;br /&gt;
&lt;br /&gt;
* Liefern Bauteile für Elektor-Projekte&lt;br /&gt;
* D-78054 Villingen-Schwenningen&lt;br /&gt;
* Versandkosten: 5.40€&lt;br /&gt;
&lt;br /&gt;
=== Gie-Tec ===&lt;br /&gt;
Homepage: http://www.gie-tec.de/index.php&lt;br /&gt;
&lt;br /&gt;
Teile des früheren proMa systro Angebots.&lt;br /&gt;
&lt;br /&gt;
=== guloshop.de ===&lt;br /&gt;
Homepage: http://guloshop.de&lt;br /&gt;
&lt;br /&gt;
* kleiner Shop, konzentriert sich auf Standard-AVRs im DIP-Gehäuse, ist dabei aber meist der billigste Versender in Deutschland&lt;br /&gt;
* ATtiny, ATmega, Breakout-Boards, Programmer, Adapterkabel, IC-Fassungen&lt;br /&gt;
* AVR mit geflashtem Arduino-Bootloader&lt;br /&gt;
* äußerst niedrige Preise&lt;br /&gt;
* liefert schnell und zuverlässig, jedoch nur gegen Vorkasse&lt;br /&gt;
* kein Mindestbestellwert, Versandkosten für kleine Bestellungen: 2,40 EUR, darüber 4,40 EUR&lt;br /&gt;
* ansässig in 90489 Nürnberg&lt;br /&gt;
&lt;br /&gt;
=== H-Tronic ===&lt;br /&gt;
Homepage: http://www.h-tronic.eu/index.php&lt;br /&gt;
&lt;br /&gt;
* Online-Shop einer Entwicklungsfirma, in dem neben Baugruppen und Geräten auch einige Bauelemente und Elektronikzubehör angeboten werden&lt;br /&gt;
* kleines Angebot&lt;br /&gt;
&lt;br /&gt;
=== Hallmanns Elektronik ===&lt;br /&gt;
Homepage: http://www.hallmanns.com &amp;lt;br&amp;gt;&lt;br /&gt;
Adresse: Bruno Hallmanns, Weierstraße 41, 52349 Düren&lt;br /&gt;
&lt;br /&gt;
* Elektronikhändler mit Ladenlokal und Versand&lt;br /&gt;
* Ladentypisches Sortiment (Bauteile, Geräte, PC, Funk, Hifi...)&lt;br /&gt;
&lt;br /&gt;
=== Hari Seligenstadt ===&lt;br /&gt;
Homepage: http://www.hari-ham.com&lt;br /&gt;
&lt;br /&gt;
* Bausätze, Ringkerne, Geräte für Amateurfunk&lt;br /&gt;
&lt;br /&gt;
=== HBE - Heinz Büchner Elektronik, Messtechnik, med. Elektronik e.K. ===&lt;br /&gt;
Homepage: http://www.hbe-shop.de/katalog/&lt;br /&gt;
&lt;br /&gt;
* Bezeichnet sich als &#039;&#039;[[#Farnell|Farnell]] Fachhändler&#039;&#039;, bei dem nichtgewerbliche Kunden aus dem Farnell-Sortiment bestellen können.&lt;br /&gt;
* Im Shop ist es relativ kompliziert das gewünschte Bauteil im riesigen Farnell Sortiment zu finden. Tipp: Die wesentlich bessere Suche direkt bei [[#Farnell|Farnell]] nutzen und dann bei HBE nach der Bestellnummer suchen. &lt;br /&gt;
* Preise für Farnell-Produkte normalerweise Farnell Netto-Preis + MwSt.&lt;br /&gt;
* Mindestbestellwert 30,- €, Mindermengenzuschlag 5,- € (Stand 03/2014)&lt;br /&gt;
* Versandkosten 5,65 €, ab 90,- € versandkostenfrei (Stand 03/2014)&lt;br /&gt;
&lt;br /&gt;
http://hbe-shop.de/ Die Heinz Büchner Elektronik hat leider mit Wirkung 27.06.2017 den Geschäftsbetrieb eingestellt. (Stand 29.06.2017) &lt;br /&gt;
http://hbe-shop.de/ Die Homepage enthält nur noch eine Amazon-Werbeseite (29.01.2019)&lt;br /&gt;
&lt;br /&gt;
=== HeComps ===&lt;br /&gt;
Homepage: http://www.hecomps.de&lt;br /&gt;
* Module und Shields zum Anschluss an Arduino, AVR etc.&lt;br /&gt;
* Viele Sachen aus dem &amp;quot;China SUPER Bauteile-Schnäppchen&amp;quot; Thread&lt;br /&gt;
* 2-5 Arbeitstage für Waren ab Lager&lt;br /&gt;
* Porto + Verpackung ab Euro 2,95&lt;br /&gt;
* Kein Mindestbestellwert&lt;br /&gt;
&lt;br /&gt;
=== Heho-Elektronik ===&lt;br /&gt;
Homepage: http://www.heho-elektronik.de&lt;br /&gt;
* Halbleiter / Bauteile, Sortimente, Handy - Akkus, VELLEMAN - Bausätze&lt;br /&gt;
* Aktuelles Angebot, Ladegeräte / Akkuladegeräte, Blei - Akkus&lt;br /&gt;
* Spannungswandler, Audio / Video / USB - Kabel, Netzwerk - Kabel&lt;br /&gt;
* 1-2 Arbeitstage für Waren ab Lager&lt;br /&gt;
* Porto + Verpackung pauschal Euro 4,50&lt;br /&gt;
* Mindestbestellwert von &amp;amp;#8364; 10,00&lt;br /&gt;
&lt;br /&gt;
=== HKW-Elektronik GmbH ===&lt;br /&gt;
Homepage: http://www.hkw-shop.de/&lt;br /&gt;
* DCF77 Empfangstechnik und Messtechnik&lt;br /&gt;
* Antennen, Decoderplatinen&lt;br /&gt;
* Shop aktuell teils fehlerhaft (Bestand angeblich 0, Bestellung kam aber sofort an)&lt;br /&gt;
&lt;br /&gt;
=== Home-Electronic24 ===&lt;br /&gt;
Homepage: http://www.home-electronic24.de/&lt;br /&gt;
&lt;br /&gt;
=== HW-Electronics ===&lt;br /&gt;
Homepage: http://www.hw-electronics.de &amp;lt;br&amp;gt;&lt;br /&gt;
Homepage EU: http://hw-electronics.eu/&lt;br /&gt;
&lt;br /&gt;
* Tauch- und Sprühätzanlagen&lt;br /&gt;
* Entwicklungsgeräte&lt;br /&gt;
* Belichtungsgeräte, Materialsätze zum Selbstbau von Belichtungsgeräten&lt;br /&gt;
&lt;br /&gt;
=== ID-Elektronik ===&lt;br /&gt;
Homepage: http://www.id-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Amateurfunk-Baugruppen&lt;br /&gt;
&lt;br /&gt;
=== Identible ===&lt;br /&gt;
Homepage: https://www.idenditble.de&lt;br /&gt;
&lt;br /&gt;
* RFID-Lesegeräte (LF, HF, UHF)&lt;br /&gt;
* RFID-Transponder in unterschiedlichsten Bauformen (Glastransponder, Schlüsselanhänger, Karten, etc.)&lt;br /&gt;
* Kryptochipkarten, Mikroprozessorkarten&lt;br /&gt;
* 1-2 Arbeitstage Versand für Waren ab Lager&lt;br /&gt;
* Porto + Verpackung pauschal Euro 5,90 (ab 500,00€ frei Haus)&lt;br /&gt;
* Kauf auf Rechnung, PayPal, Vorkasse&lt;br /&gt;
* Verschickt Muster auch Kostenfrei &lt;br /&gt;
&lt;br /&gt;
=== IT-WNS ===&lt;br /&gt;
Homepage: https://shop.thomasheldt.de/&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Bauteile, Platinen, Bausätze&amp;quot; insbesondere mit ATMEGA Mikrocontrollern&lt;br /&gt;
* Viele aktive, passive und mechanische Bauelemente&lt;br /&gt;
* Bausätze zu Projekten aus dem Forum&lt;br /&gt;
* ESP8266 Module, SD-Slots, RFID, Bluetooth-Module, AVR Mikrocontroller, USB uvam.&lt;br /&gt;
* Bauelemente, die nicht im Shop angeboten werden, können auf Anfrage (Kontaktformular) oft beschafft werden &lt;br /&gt;
* Günstige Preise und Versandkosten ab 3,95EUR, kein Mindestbestellwert&lt;br /&gt;
* Schneller Versand, sofern die Artikel auf Lager sind, versandkostenfreie Nachlieferung&lt;br /&gt;
&lt;br /&gt;
=== Just Honest ===&lt;br /&gt;
Homepage: https://www.just-honest.com&lt;br /&gt;
&lt;br /&gt;
* Kleines Sortiment von Bauteilen&lt;br /&gt;
* günstiger Versand (ab 1,90 €)&lt;br /&gt;
* günstige ZIF-Sockel&lt;br /&gt;
* ATTiny Mikrocontroller zum günstigen Preis, auch mit Arduino Bootloader und DIP-Sockel &lt;br /&gt;
* auch bei Amazon mit Prime Versand vertreten (etwas teurer)&lt;br /&gt;
&lt;br /&gt;
=== Kabelscheune ===&lt;br /&gt;
Homepage: http://www.kabelscheune.de&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Direktversand von Elektromaterial und Multimediaprodukten&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Kessler ===&lt;br /&gt;
Homepage: http://www.kessler-electronic.de&lt;br /&gt;
&lt;br /&gt;
* im Preis-Leistungsverhältnis mit Reichelt zu vergleichen (sprich: günstig)&lt;br /&gt;
* Sortiment kleiner als Reichelt und mit gewissen Abweichungen (z. B. andere FPGA und RAMs)&lt;br /&gt;
* oft lange Lieferzeiten&lt;br /&gt;
* Versandkosten innerhalb Deutschlands 4€ (Brief), 5€ (DHL-Paket), 10€ (DHL-Express-Paket)&lt;br /&gt;
&lt;br /&gt;
=== Klein-Electronic ===&lt;br /&gt;
Homepage: http://www.klein-electronic.de&lt;br /&gt;
&lt;br /&gt;
* Baugruppen zur Video- und 2,4GHz-Sendetechnik&lt;br /&gt;
&lt;br /&gt;
=== kollino - lets do great things ===&lt;br /&gt;
Homepage: https://www.kollino.de&lt;br /&gt;
&lt;br /&gt;
* Neuer Online Shop (07/2018) für aktive und passive elektronische Bauelemente.&lt;br /&gt;
* Günstige Preise.&lt;br /&gt;
* Auf Anfrage wird versucht, das Sortiment nach Kundenwunsch zu erweitern.&lt;br /&gt;
* Alle Artikel ab Lager lieferbar, daher kurze Wartezeiten.&lt;br /&gt;
* Kein Mindestbestellwert, faire Versandkosten nach Gewicht und Größe (ab 1,30 EUR Warensendung/1.45 EUR Großbrief für Kleinbestellungen).&lt;br /&gt;
* Liefert schnell und zuverlässig mit Deutscher Post und DHL.&lt;br /&gt;
* Bezahlung Vorkasse oder PayPal.&lt;br /&gt;
* Leicht verständliches Nachbauen und Lernen über die Blogbeiträge. Mitmachen ist erwünscht.&lt;br /&gt;
* Firmensitz in Deutschland/60596 Frankfurt.&lt;br /&gt;
&lt;br /&gt;
=== Konni-Antennen ===&lt;br /&gt;
Homepage: http://www.konni-antennen.de&lt;br /&gt;
&lt;br /&gt;
* Antennen für TV, Amateurfunk&lt;br /&gt;
* Zubehör, Einzelteile&lt;br /&gt;
* sehr netter kompetenter Service&lt;br /&gt;
&lt;br /&gt;
=== LEDSEE Electronics ===&lt;br /&gt;
Homepage: http://www.ledsee.com&lt;br /&gt;
&lt;br /&gt;
* LEDs, LCDs, diverses&lt;br /&gt;
* Lieferung direkt aus China, daher sehr günstig und lange Lieferzeiten&lt;br /&gt;
&lt;br /&gt;
=== LED Microtechnics LTD ===&lt;br /&gt;
Homepage: http://www.ledmeile.de&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;LED Shop und Lampentechnik&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== LED-Tech LED-Shop ===&lt;br /&gt;
Homepage: http://www.led-tech.de&lt;br /&gt;
&lt;br /&gt;
* viele verschiedene LEDs zu sehr guten (meist den günstigsten) Preisen&lt;br /&gt;
* vor allem auf High-Power-LEDs spezialisiert&lt;br /&gt;
* viele verschiedene Treiber für High-Power-LEDs&lt;br /&gt;
* kostenloser Versand&lt;br /&gt;
* haben ein eigenes, sehr umfangreiches Forum&lt;br /&gt;
&lt;br /&gt;
=== Lüdeke Elektronic ===&lt;br /&gt;
Homepage: http://www.luedeke-elektronic.de/&lt;br /&gt;
&lt;br /&gt;
* großes Sortiment, bietet unter anderem auch viele selbst entwickelte Bausätze an&lt;br /&gt;
&lt;br /&gt;
=== LUMITRONIX LEDs-Shop ===&lt;br /&gt;
Homepage: http://www.leds.de&lt;br /&gt;
&lt;br /&gt;
* alles rund um LEDs (auch Zubehör und Lektüre)&lt;br /&gt;
* neben Standard-LEDs auch SMD- und SuperFlux-LEDs&lt;br /&gt;
&lt;br /&gt;
=== Manutech Europa ===&lt;br /&gt;
Homepage: http://www.manutecheurope.de und http://www.manutecheurope.com/&lt;br /&gt;
&lt;br /&gt;
*Großes Sortiment an induktiven Bauteilen aller Art&lt;br /&gt;
*vielfältiges Angebot an Stromwandlern, Stromsensoren (Wechselstrom, Gleichstrom, HF), Rogowskispulen, Klappkernspulen, Dreiphasenwandlern ...&lt;br /&gt;
*außerdem Ringkerntrafos, Netztrafos und andere Übertrager&lt;br /&gt;
*diverse Sub-D-Stecker-Bauformen mit intern geblockten Anschlüssen &lt;br /&gt;
*Spulen und Drosseln aller Art (Ringkernspulen, stromkompensierte Drosseln, Gleichtaktdrosseln, verlustarme HF-Ferritspulen, SMD-Bauformen usw.)&lt;br /&gt;
*Durchgangskondensatoren, EMC- und Pi-Filter, Filterarrays&lt;br /&gt;
*Schaltnetzteile und DC-DC-Konverter&lt;br /&gt;
*Können auf Nachfrage auch alle möglichen Bauteile wie Spulen, Transformatoren und Stromsensoren nach eigenen Vorgaben herstellen&lt;br /&gt;
*Beliefern Firmenkunden und Endverbraucher, von da her auch für Funkamateure sehr interessant&lt;br /&gt;
*gute Logistik, sehr schnelle Lieferung (übernacht)&lt;br /&gt;
&lt;br /&gt;
=== Marotronics ===&lt;br /&gt;
Homepage: http://www.marotronics.de/&lt;br /&gt;
&lt;br /&gt;
* liefert an Privat&lt;br /&gt;
* liefert Weltweit (mit Ausnahmen)&lt;br /&gt;
* Elektronic und Robotic Teile, DIY Rasenroboter (Ardumower), Arduino Boards, Sensoren...&lt;br /&gt;
* Lieferung per DHL oder Hermes&lt;br /&gt;
* Zahlungsmöglichkeiten: Überweisung (Vorkasse), PayPal&lt;br /&gt;
&lt;br /&gt;
=== Marsch Elektronik, M. Schlimper ===&lt;br /&gt;
Homepage: http://www.marsch-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Online Shop für aktive und passive Bauelemente&lt;br /&gt;
* Versandkosten ab Euro 1,60&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* bietet auch Einsteigersortimente und Widerstandsortimente (auch SMD)&lt;br /&gt;
* liefert nur innerhalb Deutschlands&lt;br /&gt;
* nicht gelistete Artikel können angefragt werden und werden meist auch beschafft&lt;br /&gt;
&lt;br /&gt;
=== Mauritz Communication &amp;amp; Electronics ===&lt;br /&gt;
Homepage: http://www.mauritz.de/&lt;br /&gt;
&lt;br /&gt;
* Online Shop für HF-Stecker und Kabel&lt;br /&gt;
* bietet HF-Stecker/Buchsen und Koaxkabel an&lt;br /&gt;
* große Auswahl, auch exotische Teile&lt;br /&gt;
* Kabelkonfektionierung nach Wunsch&lt;br /&gt;
* vernünftige Preise&lt;br /&gt;
* liefert nach Rücksprache auch weltweit&lt;br /&gt;
* Keine Mindestbestellwert, aber 5 € Aufschlag unter 15 €&lt;br /&gt;
* Versand bis 40 kg pauschal 5,95 € per GLS innerhalb DE&lt;br /&gt;
* schneller Versand&lt;br /&gt;
* Paypal oder Vorkasse&lt;br /&gt;
&lt;br /&gt;
=== mechapro ===&lt;br /&gt;
Homepage: http://www.mechapro.de&lt;br /&gt;
* Online Shop für Schrittmotoren und Steuerungen&lt;br /&gt;
* Schrittmotorendstufen als Fertiggeräte oder Bausätze&lt;br /&gt;
* Eigene Entwicklung und Fertigung in Deutschland (außer Motoren)&lt;br /&gt;
* Versandkosten in DE ab 4 EUR&lt;br /&gt;
* liefert EU-weit&lt;br /&gt;
&lt;br /&gt;
=== Mikrocontroller.net ===&lt;br /&gt;
Homepage: http://shop.mikrocontroller.net&lt;br /&gt;
&lt;br /&gt;
* Starterkits, Development Boards und Zubehör für AVR, AVR32, ARM und MSP430&lt;br /&gt;
&lt;br /&gt;
=== Mouser ===&lt;br /&gt;
Homepage: http://de.mouser.com&lt;br /&gt;
&lt;br /&gt;
* Liefert an Privat&lt;br /&gt;
* Zügige Lieferung mit FedEx aus den USA&lt;br /&gt;
* &amp;quot;Versand ist kostenfrei bei den meisten Bestellungen über 50 €&amp;quot;&lt;br /&gt;
* Preise inkl. Zoll aber ohne Einfuhrumsatzsteuer&lt;br /&gt;
* Zahlungsmöglichkeiten: Kreditkarte, PayPal&lt;br /&gt;
&lt;br /&gt;
=== MS-Elektronik ===&lt;br /&gt;
Homepage: http://www.ms-elektronik.info&lt;br /&gt;
&lt;br /&gt;
* Liefert an Privat&lt;br /&gt;
* Zügige Lieferung&lt;br /&gt;
* Gute Qualität&lt;br /&gt;
* Viel in Richtung Audio&lt;br /&gt;
* Große Auswahl an Elkos -&amp;gt; kleine Preise&lt;br /&gt;
* kein allzu großes Sortiment&lt;br /&gt;
&lt;br /&gt;
=== myAVR Shop ===&lt;br /&gt;
Hompage http://shop.myavr.de&lt;br /&gt;
&lt;br /&gt;
* Kleine Auswahl, aber die angebotene Ware ist sehr preiswert (meist preiswerter als bei Reichelt)&lt;br /&gt;
* Zügige Lieferung (1-2 Werktage)&lt;br /&gt;
* Diverse Zahlungsmöglichkeiten: Rechnung, Vorkasse, Lastschrift, Kreditkarte, PayPal&lt;br /&gt;
* Kein Mindestbestellwert&lt;br /&gt;
* Sehr günstige Versandkosten ab 1,95 Eur&lt;br /&gt;
* Mengenrabatt ab 10 gleichen Artikeln&lt;br /&gt;
&lt;br /&gt;
=== Neuhold-Elektronik ===&lt;br /&gt;
Homepage: http://www.neuhold-elektronik.at &amp;lt;br&amp;gt;&lt;br /&gt;
Shop: http://www.neuhold-elektronik.at/catshop/default.php?language=de&lt;br /&gt;
&lt;br /&gt;
* preiswerte Schnäppchen&lt;br /&gt;
* regelmäßig aktualisierte Angebotsliste herunterladbar&lt;br /&gt;
* Ab 60,- EUR versandkostenfrei in Österreich&lt;br /&gt;
&lt;br /&gt;
=== Octamex ===&lt;br /&gt;
Homepage: http://www.octamex.de&lt;br /&gt;
&lt;br /&gt;
* Leiterplattenchemie (Entwickler, Ätzmittel, CRC-Sprays)&lt;br /&gt;
* Chemisch Zinn&lt;br /&gt;
* Lötstopp-Laminat, Tentingresist, Bestückungsdruck&lt;br /&gt;
* Bungard Basismaterial in 0,5mm 1,0mm 1,5mm Dicke und 18µm, 35µm, 70µm Kupfer&lt;br /&gt;
* Bungard Alucorex für 19&amp;quot; Frontplatten&lt;br /&gt;
* Bungard Cotherm, Alukernbasismaterial&lt;br /&gt;
* Funkmodule 434MHz, 868MHz, 2.4GHz&lt;br /&gt;
* Löttechnik und Zubehör&lt;br /&gt;
* Gehäuse aller Art&lt;br /&gt;
* Messgeräte und Labornetzteile&lt;br /&gt;
* aktive, passive u. mechanische Bauelemente (Widerstände, Kondensatoren, Transistoren, Logik-ICs etc.)&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* Lieferung auch ins Ausland&lt;br /&gt;
* Versandkosten ab 4,50EUR&lt;br /&gt;
* Liefert nur gegen Vorkasse, ausser für Bestandskunden, die schon häufig bestellt haben&lt;br /&gt;
* Zahlung mit EC-Pay oder Kreditkarte nur gegen Aufschlag (bis zu 5%)&lt;br /&gt;
&lt;br /&gt;
=== Online Batterien ===&lt;br /&gt;
Homepage: http://www.online-batterien.de&lt;br /&gt;
&lt;br /&gt;
* Allerlei günstige Batterien &amp;amp; Akkus vieler Marken&lt;br /&gt;
* z.&amp;amp;nbsp;B. &#039;&#039;&#039;40 Stk.&#039;&#039;&#039; DURACELL PLUS LR6 AA 11,59€ (Jan 2010)&lt;br /&gt;
* Beleuchtungsartikel&lt;br /&gt;
* USV&lt;br /&gt;
* Versand ab 3,90€&lt;br /&gt;
&lt;br /&gt;
=== Oppermann ===&lt;br /&gt;
Homepage: http://www.oppermann-electronic.de&lt;br /&gt;
&lt;br /&gt;
* Restposten, auch HF Bauteile&lt;br /&gt;
* auch Privatkunden&lt;br /&gt;
* Lieferung nach üblicher Zeit&lt;br /&gt;
&lt;br /&gt;
=== PCB-Soldering ===&lt;br /&gt;
&lt;br /&gt;
Homepage, Online-Shop: http://www.pcb-soldering.co.uk&lt;br /&gt;
eBay: http://www.allendale-stores.co.uk&lt;br /&gt;
Firmen-Homepage: http://www.allendale-elec.co.uk&lt;br /&gt;
&lt;br /&gt;
* [http://www.aoyue.com/en/products.asp Aoyue] Lötstationen und preiswertes Zubehör (Lötspitzen) für diese. Bei Aoyue-Zubehör bessere Preise (Stand 10/2008) als [[#WilTec_Wildanger_Technik_GmbH|WilTec]]&lt;br /&gt;
* Schnelle Lieferung&lt;br /&gt;
* Dank EU Binnenmarkt nur britische Mehrwertsteuer (VAT), kein Zoll/Einfuhrumsatzsteuer&lt;br /&gt;
* Zwei von drei E-Mails wurden nicht beantwortet&lt;br /&gt;
* Versandart wurde eigenmächtig von &amp;quot;Standard&amp;quot; auf teureres &amp;quot;Signed for&amp;quot; (Einschreiben) geändert&lt;br /&gt;
* Sendet nach Einkauf regelmäßig Spam-Mails.&lt;br /&gt;
&lt;br /&gt;
=== Pollin Electronic ===&lt;br /&gt;
Homepage: http://www.pollin.de&lt;br /&gt;
&lt;br /&gt;
* Restposten aller Art (z.&amp;amp;nbsp;B. &amp;quot;250 g verschiedene ICs&amp;quot; u.dgl.)&lt;br /&gt;
* Produkte teils schnell ausverkauft &lt;br /&gt;
* Qualität schwankend. Man kann gute Schnäppchen machen aber auch reinfallen. Umtausch ist dann aber problemlos.&lt;br /&gt;
* Es wird öfters von sorgloser Verpackung berichtet (empfindliche und schwere Produkte besser nicht zusammen bestellen). Reklamationen bei Beschädigungen werden freundlich behandelt, aber E-Mails werden nicht beantwortet.&lt;br /&gt;
* Warenwirtschaftssystem mängelbehaftet: Bei Telefonbestellung angeblich vorhandene Ware stellt sich bei erfolgter Bestellung als nicht mehr lieferbar heraus, Versandkosten dann also ggf. überproportional hoch.&lt;br /&gt;
* Lieferzeit in der Regel 2-3 Werktage / knappe Woche bei neuer Sonderliste&lt;br /&gt;
* Ladengeschäft in 85104 Pförring (Oberbayern) + jährlicher großer Schnäppchenmarkt vor Ort (mehrtägig, mit Festzelt etc.)&lt;br /&gt;
* Versandkosten innerhalb Deutschlands 4,95€&lt;br /&gt;
* Zahlung per Nachnahme (+2,50 €), Bankeinzug, Vorkasse, &#039;&#039;SOFORT&#039;&#039;-Überweisung oder PayPal&lt;br /&gt;
* Mehrfach jährliche Gutscheine für effektiv VK-freie Lieferung (z.B. an Ostern und Weihnachten), teilweise öffentlich einsehbar (Facebook, Webseite), teils nur für Kunden. Nichtöffentliche Gutscheine per Post/Mail sind nicht übertragbar und werden bei Fremdnutzung nachträglich gestrichen.&lt;br /&gt;
&lt;br /&gt;
=== QRP-project ===&lt;br /&gt;
Homepage: http://www.qrpshop.de/&lt;br /&gt;
&lt;br /&gt;
* Bausätze vor allem einfache Kurzwellen-Funkgeräte&lt;br /&gt;
&lt;br /&gt;
=== Ramser Elektrotechnik ===&lt;br /&gt;
Homepage: http://www.ramser-elektro.at&lt;br /&gt;
&lt;br /&gt;
* Günstige Preise&lt;br /&gt;
* Bausätze für Anfänger&lt;br /&gt;
* Versandpauschale 6.95€ in der EU, Versandkostenfrei ab 30€&lt;br /&gt;
* Bezahlung über PayPal,Vorkasse oder Rechnung&lt;br /&gt;
&lt;br /&gt;
=== Reichelt ===&lt;br /&gt;
Homepage: http://www.reichelt.de&lt;br /&gt;
&lt;br /&gt;
* relativ große Auswahl, aber nicht viele &amp;quot;brandaktuelle&amp;quot; Bauteile&lt;br /&gt;
* wenn man höflich fragt, liefern sie ganz selten auch Bauteile, die nicht im Katalog stehen zu &amp;quot;normalen&amp;quot; Preisen (vorausgesetzt der Hersteller ist im Sortiment), z.&amp;amp;nbsp;B. Xilinx XC2S50, aber meist erhält man die Antwort, dass der Artikel nicht im Sortiment ist, obwohl auf der Homepage unter Service extra ein Punkt angeführt ist: &amp;quot;Ich benötige einen Artikel, der nicht im Programm ist&amp;quot;&lt;br /&gt;
* reagiert aber teilweise auch auf Anregungen, neue Produkte in das Angebot aufzunehmen; siehe dazu auch den Artikel [[Reichelt-Wishlist]]&lt;br /&gt;
* liefert schnell und vollständig; wenn etwas ausnahmsweise nicht verfügbar ist, dann liefern sie es auf eigene Kosten nach, wenn der Artikel in absehbarer Zeit wieder vorrätig ist (selbst wenn er nur 0,20€ wert ist).&lt;br /&gt;
* lässt einen dennoch manchmal warten, wenn ein Artikel nicht lieferbar ist! Daher bei der Bestellung immer darauf hinweisen, dass man auch eine Teillieferung akzeptiert. (Laut Auskunft dauert das länger, besser nach der Inet-Bestellung anrufen und nicht lieferbare Teile aus der Bestellung streichen lassen)&lt;br /&gt;
* Lieferzeiten normalerweise 2 - 4 Arbeitstage&lt;br /&gt;
* niedrige Preise (aber unbedingt Qualität des Artikel checken)&lt;br /&gt;
* Versandkosten 5,60€ (Deutschland); 6,95€ Österreich; Schweiz 16€; Italien 13,95€ EU 15 - 19€;&lt;br /&gt;
* 10€ Mindestbestellwert für alle Länder&lt;br /&gt;
* auch in die Schweiz sehr guter Service&lt;br /&gt;
* holt sich auch ohne Erlaubnis Bankauskünfte bei großen Bestellungen ein&lt;br /&gt;
&lt;br /&gt;
=== RF Microwave ===&lt;br /&gt;
Homepage: http://www.rf-microwave.com/&lt;br /&gt;
&lt;br /&gt;
* Ausschliesslich HF-Bauelemente&lt;br /&gt;
* riesige Auswahl an Bauteilen für den Mikrowellenbereich&lt;br /&gt;
* Bestellung nur nach Registrierung im Shop&lt;br /&gt;
* Schnelle Lieferung&lt;br /&gt;
* Firmensitz in Italien&lt;br /&gt;
* Shop auf Italienisch oder Englisch; Frau Rota antwortet auch auf Deutsch&lt;br /&gt;
* Mittlerweile „richtiger“ Online-Shop (früher war es nur ein PDF pro Abteilung)&lt;br /&gt;
* Bezahlung über Kreditkarte, PayPal oder Überweisung&lt;br /&gt;
* Auch Sonderwünsche (Zusammenlegung verschiedener Bestellungen zum Sparen von Versandkosten) möglich&lt;br /&gt;
* Vormals http://www.rfmicrowave.it/&lt;br /&gt;
&lt;br /&gt;
=== RFW Elektronik ===&lt;br /&gt;
Homepage: http://www.rfw-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* HF Bauelemente&lt;br /&gt;
&lt;br /&gt;
=== Ribu ===&lt;br /&gt;
Homepage: http://www.ribu.at&lt;br /&gt;
&lt;br /&gt;
* Sehr guter Elektronikversand in Österreich mit zahlreichen Entwicklungsboards und zahlreichen Elektroniklösungen.&lt;br /&gt;
* Liefert sehr schnell und hat eine ausgezeichnete Beratung. &lt;br /&gt;
* Online-Shop ist sehr übersichtlich und einfach zu bedienen.&lt;br /&gt;
* Lieferstatusanzeige für alle Artikel. Bei Auslaufartikeln ist sogar die noch verfügbare Stückzahl sichbar.&lt;br /&gt;
* Günstige Sonderangebote&lt;br /&gt;
* innerhalb Österreichs 4,90&amp;amp;#8364; Versandkosten, ab 80,- keine Versandkosten&lt;br /&gt;
* ausserhalb Österreichs 13&amp;amp;#8364; Versandkosten, ab 225&amp;amp;#8364; versandkostenfrei&lt;br /&gt;
* liefert auch an Privatkunden&lt;br /&gt;
* Mindestbestellwert innerhalb Österreichs 10&amp;amp;#8364;, ausserhalb 30&amp;amp;#8364;&lt;br /&gt;
&lt;br /&gt;
=== Richardson Electronic ===&lt;br /&gt;
Homepage: http://www.richardsonrfpd.com/&lt;br /&gt;
&lt;br /&gt;
* Hochfrequenz-Halbleiter, HF-Röhren,&lt;br /&gt;
&lt;br /&gt;
=== Riedl Elektronik ===&lt;br /&gt;
Homepage: http://www.riedl-electronic.at&lt;br /&gt;
&lt;br /&gt;
* großes Angebot v.a. ICs und Trafos&lt;br /&gt;
* recht günstig&lt;br /&gt;
* Rabatt für Schüler/Student&lt;br /&gt;
* Versand nach AT: 3,95€ bis 1kg, ab 100€ frei Haus&lt;br /&gt;
* Versand AT über 1kg sowie Ausland: Nach Aufwand (wird nicht direkt angezeigt)&lt;br /&gt;
&lt;br /&gt;
=== RLX COMPONENTS s.r.o. ===&lt;br /&gt;
Homepage: http://www.rlx.sk&lt;br /&gt;
&lt;br /&gt;
* Man spricht Deutsch&lt;br /&gt;
* Messgeräte, Mikrocontroller-Boards, Bauelemente&lt;br /&gt;
&lt;br /&gt;
=== RM Computertechnik GmbH ===&lt;br /&gt;
Homepage: http://www.rm-computertechnik.de&lt;br /&gt;
&lt;br /&gt;
* Kerngeschäft ist PC-Technik, aber auch großes Sortiment an Kabeln, Litzen und Steckverbindern&lt;br /&gt;
* handelt auch mit einigen Bauelementen, wie LED&#039;s&lt;br /&gt;
&lt;br /&gt;
=== Robotikhardware===&lt;br /&gt;
Homepage: http://www.robotikhardware.de&lt;br /&gt;
&lt;br /&gt;
* Microcontroller&lt;br /&gt;
* Entwicklungsboards&lt;br /&gt;
* Sensoren&lt;br /&gt;
* Robotik-Zubehör&lt;br /&gt;
* günstige Angebote für Hobbyelektroniker&lt;br /&gt;
* auch einzelne Platinen&lt;br /&gt;
&lt;br /&gt;
=== Robotik-Teile.de===&lt;br /&gt;
Homepage: http://www.robotik-teile.de&lt;br /&gt;
&lt;br /&gt;
* Große Auswahl an Elektronik Produkten &lt;br /&gt;
* Microcontroller, Sensoren, Zubehör, u.v.m.&lt;br /&gt;
* Versandkosten betragen immer 4,90 €&lt;br /&gt;
* Zahlbar ber PayPal, Sofortüberweisung, Vorkasse und Nachnahme&lt;br /&gt;
&lt;br /&gt;
=== Benno Rößle Elektronik ===&lt;br /&gt;
Homepage: http://www.roessle-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Masten, Antennen, Befestigungsmat.,Zubehör, Geräte, Anpassteile, HF-Stecker&lt;br /&gt;
&lt;br /&gt;
=== Sander Elektronik ===&lt;br /&gt;
Homepage: http://www.sander-electronic.de&lt;br /&gt;
&lt;br /&gt;
* beliefert auch Privatkunden, Bankeinzug möglich&lt;br /&gt;
* ähnlich Segor ein Berliner Versender&lt;br /&gt;
* Hier findet man manche [[MSP430]], die es sonst nicht in kleinen Stückzahlen gibt&lt;br /&gt;
* Herr Sander ist sehr kompetent und selbst Autor von Fachartikeln&lt;br /&gt;
* selbst abgekündigte Halbleiter können noch beschafft werden&lt;br /&gt;
* Bezahlung auch mit Kreditkarte möglich&lt;br /&gt;
* Versandkosten innerhalb Deutschlands ab 3,35&amp;amp;#8364;, innerhalb Europas ab 6&amp;amp;#8364;&lt;br /&gt;
&lt;br /&gt;
=== Sat-Schneider ===&lt;br /&gt;
Homepage: http://www.sat-schneider.de&lt;br /&gt;
* Bauteile, Ersatzteile  Online-Shop&lt;br /&gt;
* Baugruppen zum Empfang des Digitalen Kurzwellenrundfunks DRM&lt;br /&gt;
&lt;br /&gt;
=== Sourcetronic GmbH ===&lt;br /&gt;
Hompage: http://www.sourcetronic.com&lt;br /&gt;
&lt;br /&gt;
* Verkäufer von Messtechnik, Antriebstechnik und Solartechnik&lt;br /&gt;
* Produziert auch selbst, z.B. Pumpensteuerungen oder Kalibrierwiderstände&lt;br /&gt;
* Hauptsächlich gewerbliche Kunden, liefert aber auch an Privatkunden&lt;br /&gt;
* Online-Shop mit großem Angebot an Messgeräten, Hochspannungsprüfgeräten, Frequenzumrichtern und Pumpensteuerungen&lt;br /&gt;
* Preise sind ohne Mehrwertsteuer angegeben&lt;br /&gt;
&lt;br /&gt;
=== Otto Schubert GmbH ===&lt;br /&gt;
Homepage: http://www.schubert-gehaeuse.de&lt;br /&gt;
&lt;br /&gt;
* Kein Online-Shop. Bestellungen nur per Telefon, Fax oder E-Mail &lt;br /&gt;
* Weissblechgehäuse, Gerätegehäuse, wetterfeste Gehäuse&lt;br /&gt;
* Drehkondensatoren&lt;br /&gt;
* Sonderanfertigungen&lt;br /&gt;
* ansässig in 90574 Roßtal&lt;br /&gt;
&lt;br /&gt;
=== Schramm-Software ===&lt;br /&gt;
Homepage: http://www.schramm-software.de/bausatz/&lt;br /&gt;
&lt;br /&gt;
* Online-Shop, bietet Elektronik-Bausätze mit Mikrocontrollern&lt;br /&gt;
* Bausätze als Lehrmaterial geeignet, da ausführliches Begleitheft mitgeliefert wird (Aufbauanleitung, Schaltung, Controllerprogramm, Experimente...)&lt;br /&gt;
* bisher nur ein relativ kleines Sortiment, soll ergänzt werden&lt;br /&gt;
* Versandkosten innerhalb Deutschlands 2,50 &amp;amp;#8364;, innerhalb der EU 3,50 &amp;amp;#8364;&lt;br /&gt;
&lt;br /&gt;
=== Schuricht ===&lt;br /&gt;
Homepage: http://www.schuricht.de&lt;br /&gt;
&lt;br /&gt;
* deutscher Ableger der Distrelec- (Elektronik) und Disdata-Gruppe (Computertechnik)&lt;br /&gt;
* Liefert auch an Privatkunden (getrennte AGBs für gewerbliche und Privatkunden, Lieferung an Privat per Nachnahme: Versandkosten ab 6,54€ plus 4,76€ Nachnahmegebühr).&lt;br /&gt;
**Online Bestellung mit &amp;quot;Privat&amp;quot; als Firmenangabe &lt;br /&gt;
* Papierkatalog über 2000 Seiten, durchgehend farbig, nur für Geschäftskunden erhältlich.&lt;br /&gt;
* Ziemlich teuer&lt;br /&gt;
&lt;br /&gt;
=== Schuro Elektronik GmbH ===&lt;br /&gt;
Homepage: http://www.schuro.de&lt;br /&gt;
&lt;br /&gt;
* Elektronische Bauelemente und Bauteile für den Audio- und Lautsprecherbau (Kondensatoren, Spulen u.dgl.)&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* Versandkosten innerhalb Deutschlands gewichtsabhängig ab 5,75&amp;amp;#8364;&lt;br /&gt;
&lt;br /&gt;
=== Segor-electronics ===&lt;br /&gt;
Homepage: http://www.segor.de&lt;br /&gt;
&lt;br /&gt;
* Spezialist für Halbleiter, die ansonsten für nicht-gewerbliche Abnehmer nur schwer erhältlich sind (Preise dahingehend &amp;quot;angemessen&amp;quot;)&lt;br /&gt;
* auch Privatkunden gerne gesehen&lt;br /&gt;
* Ladengeschäft in Berlin&lt;br /&gt;
* kein Mindestbestellwert bei Versand innerhalb der EU&lt;br /&gt;
&lt;br /&gt;
=== semaf-electronics ===&lt;br /&gt;
Homepage: http://electronics.semaf.at&lt;br /&gt;
&lt;br /&gt;
* Spezialist für Breakout Boards wie z.B. Adafruit, Arduino, Atmel, Cubieboard,Raspberry Pi, Sparkfun&lt;br /&gt;
* aktive und passive Bauteile und Zubehör&lt;br /&gt;
* Ladengeschäft in 1090 Wien&lt;br /&gt;
&lt;br /&gt;
=== SE Spezial-Electronic AG ===&lt;br /&gt;
Homepage: http://www.spezial.de&lt;br /&gt;
&lt;br /&gt;
* Distributor&lt;br /&gt;
* Laut AGB auch Verkauf an Privat.&lt;br /&gt;
* Große Verpackungseinheiten/Mindestbestellmengen pro Bauteil&lt;br /&gt;
* Versandkosten pauschal 9,- €  (Deutschland) (Stand 08/2008)&lt;br /&gt;
&lt;br /&gt;
=== Small Control Shop ===&lt;br /&gt;
Homepage: http://www.small-control.de&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Bernd Walter Computer Technology&amp;quot;&lt;br /&gt;
* kleines Lieferprogramm aber ein paar interessante Produkte&lt;br /&gt;
&lt;br /&gt;
=== Shortec Electronics GmbH ===&lt;br /&gt;
Homepage: https://www.shortec.com&lt;br /&gt;
&lt;br /&gt;
* Großes Angebot an Steckverbindern&lt;br /&gt;
* Guter Support&lt;br /&gt;
* Verkauf teilweise nur in ganzen Verpackungseinheiten&lt;br /&gt;
* Akzeptiert u. A. Kreditkarten und PayPal&lt;br /&gt;
&lt;br /&gt;
=== Simple Development Shop ===&lt;br /&gt;
Homepage: http://simpledevelopment.de/shop/&lt;br /&gt;
&lt;br /&gt;
* Entwicklungsboards&lt;br /&gt;
* Ausgesuchte Bauteile&lt;br /&gt;
* Teilweise spezielle Boards &lt;br /&gt;
* Ab 50€ Versandkostenfrei in Deutschland&lt;br /&gt;
&lt;br /&gt;
=== SMG Diffusion - F1GE ===&lt;br /&gt;
Homepage: http://www.smgdiffusion.com&lt;br /&gt;
( Seite nur französisch )&lt;br /&gt;
&lt;br /&gt;
* Videotechnik, &lt;br /&gt;
* 1,2 GHz / 2,4GHz Module&lt;br /&gt;
* Gebraucht-Messgeräte HP, Tek, Philips  u.a.&lt;br /&gt;
* GHz-Halbleiter&lt;br /&gt;
* Koax-Adapter&lt;br /&gt;
* Antennen&lt;br /&gt;
&lt;br /&gt;
=== SR-Systems ===&lt;br /&gt;
Homepage: http://www.sr-systems.de&lt;br /&gt;
&lt;br /&gt;
* Baugruppen für Digital-TV, Sende- und Empfangstechnik&lt;br /&gt;
* DVB-S, DVB-T&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Strixner&amp;amp;Holzinger ===&lt;br /&gt;
Homepage: http://www.sh-halbleiter.de&lt;br /&gt;
&lt;br /&gt;
* Ladengeschäft in München&lt;br /&gt;
* Versand &lt;br /&gt;
* riesiges Angebot an Halbleiter, auch schwer beschaffbare&lt;br /&gt;
* Online-Shop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TAUTEC-ELECTRONICS ===&lt;br /&gt;
Homepage: http://www.tautec-electronics.de&lt;br /&gt;
&lt;br /&gt;
* Online Shop für aktive elektronische Bauelemente&lt;br /&gt;
* günstige Preise (Vorsicht, Preisangaben enthalten keine Mehrwertsteuer) aber Mindestbestellwert 100 Euro&lt;br /&gt;
* alle Artikel ab Lager lieferbar, daher kurze Wartezeiten&lt;br /&gt;
* weltweiter Versand&lt;br /&gt;
* zahlreiche Mengenrabatte&lt;br /&gt;
* viele Ersatzteile aus dem Audio-, Car-HiFi und TV-Bereich&lt;br /&gt;
&lt;br /&gt;
=== TecHome.de Online-Shop ===&lt;br /&gt;
Hompage: http://www.techome.de/index.html&lt;br /&gt;
&lt;br /&gt;
=== Tec-Shop (Wolfgang Rompel Elektronik) ===&lt;br /&gt;
Homepage: http://www.tec-shop.de&lt;br /&gt;
&lt;br /&gt;
* Kleines, aber ausgesuchtes Sortiment&lt;br /&gt;
* Interessantes Angebot an Sensoren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Thomatronic ===&lt;br /&gt;
https://www.thomatronik.de/&lt;br /&gt;
* Leistungs-NTCs von Ametherm&lt;br /&gt;
https://www.thomatronik.de/de/bauelemente/einschaltstrombegrenzer/MS&lt;br /&gt;
&lt;br /&gt;
* Thomatronic ist auch Distributor von Ametherm, wenn auch nicht auf deren Homepage gelistet&lt;br /&gt;
* Die Leistungs-NTCs von EPCOS gehen nur bis 120 Ohm, hier 220 Ohm erhältlich (€4,17)&lt;br /&gt;
* Versandkosten €10,12 Stand 28.11.2018, auch Kleinmengen an Hobbyisten&lt;br /&gt;
&lt;br /&gt;
=== TME (Transfer Multisort Elektronik) ===&lt;br /&gt;
Homepage: http://www.tme.eu/de&lt;br /&gt;
&lt;br /&gt;
*breites Sortiment&lt;br /&gt;
*parametrische Suche&lt;br /&gt;
*Verkauf über die deutsche Tochter (19 % statt 21 % polnische Umsatzsteuer)&lt;br /&gt;
&lt;br /&gt;
=== Trenkenchu &amp;amp; Stadler GbR ===&lt;br /&gt;
Homepage: http://www.ts-audio.de&lt;br /&gt;
&lt;br /&gt;
* die meisten Artikel sind deutlich teurer als der Marktpreis, es sind jedoch auch Schnäppchen dabei, z.B. HDMI-Kabel&lt;br /&gt;
&lt;br /&gt;
=== Trenz-electronic ===&lt;br /&gt;
Homepage: http://www.trenz-electronic.de&lt;br /&gt;
&lt;br /&gt;
* FPGA-Boards mit Xilinx-FPGAs (Xilinx, Digilent, ...) und Zubehör&lt;br /&gt;
* Weitere teils sehr spezielle Produkte, auch Eigen-Entwicklungen&lt;br /&gt;
* Liefert auch an Privatkunden&lt;br /&gt;
&lt;br /&gt;
=== TV-Ersatzteile ===&lt;br /&gt;
Homepage: http://www.tversatzteile.de&lt;br /&gt;
&lt;br /&gt;
* TV-, Audio-, Video-Ersatzteile, Aktive / Passive Bauteile&lt;br /&gt;
* Fernbedienungen Haushaltstechnik&lt;br /&gt;
&lt;br /&gt;
=== UKW-Berichte ===&lt;br /&gt;
Homepage: http://www.ukw-berichte.de&lt;br /&gt;
&lt;br /&gt;
* Antennen, Bauteile, Bausätze, Literatur für Amateurfunk&lt;br /&gt;
* ansässig in 91081 Baiersdorf&lt;br /&gt;
&lt;br /&gt;
=== Voelkner ===&lt;br /&gt;
Homepage: http://voelkner.de&lt;br /&gt;
* Großer Teil des Conrad-Programms, identische Nummern, identische Aufkleber auf der Ware, Preise weitgehend identisch oder nur ein paar Cent abweichend, bei bestimmten Artikelgruppen (z.B. Werkzeug) aber auch bis zu 25% billiger&lt;br /&gt;
* Versandkosten Deutschland: 4,95€; ab 25€ Warenwert und Sofortüberweisung.de versandkostenfrei / Versandkosten-Flatrate für 15€ pro Jahr&lt;br /&gt;
* Versandkosten EU: 9,95€&lt;br /&gt;
* Möglichkeit der Versandkostenflatrate (D): Einmalig 14,95€ / gültig für ein Jahr&lt;br /&gt;
* Legt jeder Bestellung gleich wieder einen Gutschein über 5€ bei MBW 25€ bei (Flat nur bei häufigen, kleinen Bestellungen sinnvoll); außerdem kommt etwa alle 2-3 Monate selbiger Gutschein + versandkostenfreie Lieferung per Mail, ebenfalls MBW 25€&lt;br /&gt;
* Verpackungsqualität wechselnd, mal brauchbar, mal eher Pollin-Niveau. Selbst kleine Bestellungen, die gefahrlos per Brief/Großbrief verschickt werden könnten werden in einem großen Paket versendet.&lt;br /&gt;
&lt;br /&gt;
=== VOTI Webshop ===&lt;br /&gt;
Homepage: http://www.voti.nl/shop/catalog.html&lt;br /&gt;
&lt;br /&gt;
* relativ kleines Lieferprogramm&lt;br /&gt;
* einige interessante Restposten (Surplus)&lt;br /&gt;
* Sitz in Amersfoort, Niederlande&lt;br /&gt;
&lt;br /&gt;
=== Walter elektronik ===&lt;br /&gt;
Homepage: http://www.walter-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Bauteile, Röhren&lt;br /&gt;
&lt;br /&gt;
=== Watterott electronic GmbH===&lt;br /&gt;
Homepage: http://www.watterott.com&lt;br /&gt;
&lt;br /&gt;
* Distributor für Adafruit, Arduino, BeagleBoard/PandaBoard, Embedded Artists, GHI, Olimex, Parallax, Pololu, Seeed Studio, Solarbotics, SparkFun... &lt;br /&gt;
* Entwicklungskits von Atmel, Cypress, Freescale, Microchip, NXP, STM, TI...&lt;br /&gt;
* Spezialbauteile von Davicom, FTDI, VLSI, WIZnet...&lt;br /&gt;
* Bungard Basismaterial + Chemie&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* Zahlung: Vorkasse, Sofortüberweisung, PayPal, Nachnahme, Kreditkarte (Visa/Mastercard), Rechnung (nur gewerbliche Kunden)&lt;br /&gt;
* Versandkosten Dtl. (DHL) ab 3,50 Euro&lt;br /&gt;
* Schneller, entgegenkommender Service&lt;br /&gt;
* in der &amp;quot;c&#039;t Hardware Hacks&amp;quot; 01/2013 ist ein Artikel über Stephan Watterott und seinen Online-Shop&lt;br /&gt;
&lt;br /&gt;
=== Welectron ===&lt;br /&gt;
Homepage: https://www.welectron.com&lt;br /&gt;
* Große Auswahl an Messtechnik (Multimeter, Oszilloskope, Signalgeneratoren, Spektrumanalyzer), Labornetzteilen und Löttechnik&lt;br /&gt;
* Premium-Distributor für Siglent, Brymen und Maynuo mit 5% Forenrabatt (Code &#039;&#039;&#039;&#039;&#039;uc2019&#039;&#039;&#039;&#039;&#039;)&lt;br /&gt;
* Approved Raspberry Pi Reseller&lt;br /&gt;
* Viele Zahlungsarten (auch per Rechnung), 2% Vorkassenrabatt&lt;br /&gt;
* Schnelle Lieferung per DHL (auch an Privatkunden), ab 80 EUR versandkostenfrei&lt;br /&gt;
* Abholmöglichkeit in Karlsruhe&lt;br /&gt;
&lt;br /&gt;
=== WilTec Wildanger Technik GmbH ===&lt;br /&gt;
Homepage: http://shop.wiltec.info&lt;br /&gt;
&lt;br /&gt;
* Aoyue Lötgeräte (Heißluft, Löten, Entlöten), Netzteile, Werkzeuge&lt;br /&gt;
* Aoyue Zubehör (Lötspitzen, Heißluftdüsen), Ersatzteile&lt;br /&gt;
* Andere, nicht Elektronik-Angebote, wie KFZ-Tuningteile&lt;br /&gt;
* Versand. Bei Voranmeldung auch Lagerverkauf.&lt;br /&gt;
&lt;br /&gt;
=== Wüstens frag-jan-zuerst ===&lt;br /&gt;
Homepage: http://www.die-wuestens.de/dindex.htm&lt;br /&gt;
&lt;br /&gt;
* Röhrentechnik&lt;br /&gt;
* Hochspannungs-Spezialteile&lt;br /&gt;
&lt;br /&gt;
=== WIMO ===&lt;br /&gt;
Homepage: http://www.wimo.de&lt;br /&gt;
&lt;br /&gt;
* Große Auswahl an Amateurfunktechnik&lt;br /&gt;
&lt;br /&gt;
=== Zech DG0VE ===&lt;br /&gt;
Homepage: http://www.dg0ve.de&lt;br /&gt;
&lt;br /&gt;
* Baugruppen für Amateurfunk&lt;br /&gt;
&lt;br /&gt;
=== Diverse ===&lt;br /&gt;
* http://www.chip-flip.com - Europäisches Bauelementesuchsystem, franchised Lieferantensuche, Datenblätter und viele nützliche Informationen&lt;br /&gt;
* http://www.ecomponents-store.com/ Elektronische Bauelemente kaufen - Hier finden Sie eine große Auswahl an elektronischen und elektromechanischen Bauelementen von über 40 Herstellern.&lt;br /&gt;
* http://www.findchips.com/ Suchmaschine für Lieferanten elektronischer Bauelemente&lt;br /&gt;
* http://www.franchised-distributors.eu/ - Finden Sie Vertragsdistributoren von über 800 Halbleiterherstellern für elektronische und elektromechanische Bauelemente.&lt;br /&gt;
* https://octopart.com/ Suchmaschine für elektronische Bauelemente&lt;br /&gt;
* https://www.sotabeams.co.uk/   Amteur Radio for the great outdoors  /- Testequipment - Ham Radio Kits etc.&lt;br /&gt;
&lt;br /&gt;
==Handelsplätze==&lt;br /&gt;
&lt;br /&gt;
Shops auf den Handelsplätzen kommen und gehen. Man sollte daher nicht vergessen direkt auf den Handelsplätzen zu suchen. Ebenso kann man handeslsplatz-übergreifend auf&lt;br /&gt;
&lt;br /&gt;
http://de.pandacheck.com/&lt;br /&gt;
&lt;br /&gt;
suchen.&lt;br /&gt;
===Ebay-Shops===&lt;br /&gt;
&lt;br /&gt;
====Ego-China====&lt;br /&gt;
http://stores.ebay.de/Ego-China-Electronics   TFTs und LCDs &amp;lt;br /&amp;gt; Versand aus China (2-3 Wochen)&lt;br /&gt;
&lt;br /&gt;
====Sure-Electronics====&lt;br /&gt;
http://stores.ebay.de/Sure-Electronics   Highpower LEDs und Verstärker &amp;lt;br /&amp;gt;&lt;br /&gt;
Hat auch einen eigenen Shop: http://www.sureelectronics.net/ &amp;lt;br /&amp;gt;&lt;br /&gt;
Versand aus China&lt;br /&gt;
&lt;br /&gt;
====Ether-Deal====&lt;br /&gt;
http://stores.ebay.de/ether-deal   Unter sonstiges viele versch. Elektronik-teile &amp;lt;br /&amp;gt; Versand aus China&lt;br /&gt;
&lt;br /&gt;
====NooElec====&lt;br /&gt;
http://stores.ebay.de/NooElec USB-AVR Boards (mega32u2) und rgbled-matrizen &amp;lt;br /&amp;gt; Versand aus Kanada&lt;br /&gt;
&lt;br /&gt;
====Sine qua non surplus====&lt;br /&gt;
http://stores.ebay.de/Sinequanon-Surplus-Electronics Großbritannien&lt;br /&gt;
&lt;br /&gt;
=== Aliexpress ===&lt;br /&gt;
Homepage: http://www.aliexpress.com&lt;br /&gt;
&lt;br /&gt;
* Chinesischer Handelsplatz&lt;br /&gt;
* Günstige Arduinos, Adapterplatinen, Miniboards, etc.&lt;br /&gt;
* Vorsicht vor Fake-Transistoren und sehr günstigen Einzelbauteilen, die müssen nicht immer Original sein&lt;br /&gt;
* Zahlung: Per Kreditkarte, Absicherung über Aliexpress. Der Kaufpreis wird erst nach Bestätigung des Erhalts der Ware an den Lieferanten freigegeben&lt;br /&gt;
* Lieferzeit: Ca. 2-4 Wochen (kommt aus China oder Hongkong)&lt;br /&gt;
* Versandkosten: je nach Anbieter&lt;br /&gt;
* [[Zoll und Abgaben]] beachten (bis 150€ zollfrei, ab 22€ aber 19% Umsatzsteuer)&lt;br /&gt;
&lt;br /&gt;
== China-Versender ==&lt;br /&gt;
&lt;br /&gt;
China-Shops gibt es wie Sand am Meer. Zum Teil haben sie deutschen oder europäischen Lagern, d.h. man hat weniger Probleme mit dem [[Zoll]]. Shop-übergreifend kann man auf&lt;br /&gt;
&lt;br /&gt;
http://de.pandacheck.com/&lt;br /&gt;
&lt;br /&gt;
suchen.&lt;br /&gt;
&lt;br /&gt;
=== Bang Good ===&lt;br /&gt;
Homepage: http://www.banggood.com/&lt;br /&gt;
&lt;br /&gt;
* China Bling-Bling aller Art. Auch Lötzubehör, Modellbau, gelegentlich Bauteile, Messgeräte, Bausätze, etc.&lt;br /&gt;
&lt;br /&gt;
=== DealExtreme ===&lt;br /&gt;
Homepage: http://www.dx.com/&lt;br /&gt;
&lt;br /&gt;
* China Bling-Bling aller Art. Auch Lötzubehör, gelegentlich Bauteile, Messgeräte, Bausätze, etc.&lt;br /&gt;
* Nicht immer der preiswerteste.&lt;br /&gt;
&lt;br /&gt;
=== Hobbyking ===&lt;br /&gt;
Homepage: http://www.hobbyking.com/&lt;br /&gt;
&lt;br /&gt;
* Viel Modellbau&lt;br /&gt;
* Auch Robotik und Quadcopter&lt;br /&gt;
&lt;br /&gt;
=== Satistronics ===&lt;br /&gt;
Homepage: http://www.satistronics.com&lt;br /&gt;
&lt;br /&gt;
* typischer &amp;quot;China-Versender&amp;quot;, mit allen Vor- und Nachteilen&lt;br /&gt;
* Lieferzeit bei Standardversand sehr lange (etwa 1 Monat nach D), aber schnellere Lieferung gegen Aufpreis möglich&lt;br /&gt;
* tritt auch bei eBay in Erscheinung ([http://stores.ebay.de/satistronicsstore eBay-Shop]), die Preise dort sind in der Regel aber etwas höher als im Online-Shop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Messgeräte ==&lt;br /&gt;
=== Neue Messgeräte ===&lt;br /&gt;
&lt;br /&gt;
Viele der oben genannten Elektronikversender verkaufen auch Messgeräte. Darüber hinaus gibt es diverse Versender, die sich hauptsächlich oder ausschließlich auf Messgeräte spezialisiert haben. Allerdings verkaufen viele davon nicht an Privat.&lt;br /&gt;
&lt;br /&gt;
==== CalPlus GmbH ====&lt;br /&gt;
Homepage: http://www.calplus.de &amp;lt;br /&amp;gt;&lt;br /&gt;
Shop: http://www.scopeshop.de&lt;br /&gt;
&lt;br /&gt;
==== Cosinus ComputerMesstechnik ====&lt;br /&gt;
Homepage: http://www.cosinus.de&lt;br /&gt;
&lt;br /&gt;
* Nicht an Privat&lt;br /&gt;
&lt;br /&gt;
==== dataTec ====&lt;br /&gt;
Homepage: http://www.datatec.de&lt;br /&gt;
&lt;br /&gt;
* Große Auswahl&lt;br /&gt;
* Bestellung von Privat auf Anfrage, Privatpersonen werden laut ABG per Vorkasse beliefert&lt;br /&gt;
* Studenten bekommen Rabatt, je nach dem, was bestellt wird&lt;br /&gt;
* Umständlicher Bestellvorgang, seitens DataTec teilweise auf dem Postweg -&amp;gt; Es dauert teil sehr lange bis die Ware ankommt&lt;br /&gt;
* Sehr freundlicher und kompetenter Service, per eMail als auch telefonisch&lt;br /&gt;
&lt;br /&gt;
==== Elektronik-Kontor Messtechnik GmbH ====&lt;br /&gt;
Homepage: http://www.ekomess.de&lt;br /&gt;
&lt;br /&gt;
==== Meilhaus Electronic GmbH ====&lt;br /&gt;
Homepage: http://www.meilhaus.de&lt;br /&gt;
&lt;br /&gt;
* Diverse Markenhersteller&lt;br /&gt;
* Eigenmarken&lt;br /&gt;
&lt;br /&gt;
==== PinSonne-Elektronik ====&lt;br /&gt;
Homepage: http://www.pinsonne-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Onlineshop&lt;br /&gt;
* kleines Sortiment&lt;br /&gt;
* DMM, LCR, DSO, MSO, Scopemeter&lt;br /&gt;
* UNI-T, Siglent, Hantek (Tekway), Micsig und andere asiatische Firmen&lt;br /&gt;
&lt;br /&gt;
==== PK elektronik Poppe GmbH ====&lt;br /&gt;
Homepage: http://www.pk-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* U.a. Fluke Distributor.&lt;br /&gt;
&lt;br /&gt;
====Präzitronic Hennig / Messgeräte Chemnitz====&lt;br /&gt;
Homepage: http://www.messgeraete-chemnitz.de&lt;br /&gt;
&lt;br /&gt;
* Verkauft explizit auch an Privat.&lt;br /&gt;
* Owon&lt;br /&gt;
* Selbst übersetzte deutsche Owon-Handbücher&lt;br /&gt;
* Fluke&lt;br /&gt;
* Extech&lt;br /&gt;
* Zusätzlich kleines Angebot an Gebrauchtgeräten&lt;br /&gt;
&lt;br /&gt;
==== SI Scientific Instruments GmbH ====&lt;br /&gt;
Homepage: http://www.si-scientific.de (Onlineshop) &amp;lt;br /&amp;gt;&lt;br /&gt;
Homepage: http://www.si-gmbh.de (komplettes Programm)&lt;br /&gt;
&lt;br /&gt;
* Onlineshop auf si-scientific.de&lt;br /&gt;
* Akzeptiert PayPal&lt;br /&gt;
 &lt;br /&gt;
==== TESTEC ====&lt;br /&gt;
Homepage: http://www.testec.info&lt;br /&gt;
&lt;br /&gt;
* Tastköpfe-Hersteller&lt;br /&gt;
* Hameg Vertriebspartner&lt;br /&gt;
* B+K Precision Generalimporteur&lt;br /&gt;
&lt;br /&gt;
==== Zeitech ====&lt;br /&gt;
Homepage: http://www.zeitech.de/shop/&lt;br /&gt;
&lt;br /&gt;
* Diverses (Rigol, Owon, etc.)&lt;br /&gt;
&lt;br /&gt;
=== Gebrauchte Messgeräte ===&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt enthält Anbieter bei denen gebrauchte Messgeräte erhältlich sind.&lt;br /&gt;
&lt;br /&gt;
==== Astro Electronic ====&lt;br /&gt;
Homepage: http://www.astro-electronic.de&lt;br /&gt;
&lt;br /&gt;
==== HTB-Elektronik ====&lt;br /&gt;
Homepage: http://www.htb-elektronik.com&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
&lt;br /&gt;
==== IX Instrumex ====&lt;br /&gt;
Homepage: http://www.instrumex.de/index.cgi?User:LANGUAGE=de&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
&lt;br /&gt;
==== Christoph Lüders MessTechnik ====&lt;br /&gt;
Homepage: http://www.CLMT.de &amp;lt;br&amp;gt;&lt;br /&gt;
Online-Shop: http://www.shop-016.de/shop-CLMT.html &amp;lt;br&amp;gt;&lt;br /&gt;
eBay: http://myworld.ebay.de/c_h_r/&lt;br /&gt;
&lt;br /&gt;
* Hat 2010 die Restbestände von Förtig übernommen&lt;br /&gt;
&lt;br /&gt;
==== Rosenkranz Elektronik ====&lt;br /&gt;
Homepage: http://www.rosenkranz-elektronik.de&amp;lt;br&amp;gt;&lt;br /&gt;
eBay Shop: http://stores.ebay.de/Rosenkranz-Elektronik-GmbH-Shop&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
* Auch auf eBay zu finden&lt;br /&gt;
&lt;br /&gt;
==== Helmut-Singer-Elektronik ====&lt;br /&gt;
Homepage: http://www.helmut-singer.de&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
* Verkauf auch an Privat&lt;br /&gt;
* An den meisten Samstagen im Jahr auch Lagerverkauf, sonst Versand&lt;br /&gt;
&lt;br /&gt;
---&amp;gt; Hat leider zugemacht (Juni 2018), Shop nicht mehr erreichbar &amp;quot;Diese Seite wurde abgeschaltet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Sphere ====&lt;br /&gt;
Homepage: http://www.sphere.bc.ca&amp;lt;br&amp;gt;&lt;br /&gt;
Messgeräte und Ersatzteile: http://www.sphere.bc.ca/test/index.html&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
* Ersatzteile&lt;br /&gt;
** Besonders bekannt für Tektronix-Ersatzteile&lt;br /&gt;
&lt;br /&gt;
==== Tektronix TekSelect ====&lt;br /&gt;
Homepage: http://www.tek.com/Measurement/tekselect/&lt;br /&gt;
&lt;br /&gt;
* Tektronix verkauft selber gebrauchte und überarbeitete Tektronix-Messgeräte unter dem Label &#039;&#039;TekSelect&#039;&#039;.&lt;br /&gt;
* Original Tektronix-Garantie&lt;br /&gt;
* Der Bestellvorgang nervt, man muss Kontaktaufnahme durch einen &amp;quot;Representative&amp;quot; erbeten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Platinenhersteller]]&lt;br /&gt;
* [[Lokale Elektroniklieferanten]]&lt;br /&gt;
* [[Eisenwarenversender]]&lt;br /&gt;
* [[Zoll und Abgaben]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* http://www.xs4all.nl/~ganswijk/chipdir/ Suche nach integrierten Schaltkreisen&lt;br /&gt;
* http://www.alldatasheet.com                Datenblätter&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Lieferanten]]&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=STM32&amp;diff=93645</id>
		<title>STM32</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=STM32&amp;diff=93645"/>
		<updated>2016-08-17T08:31:17Z</updated>

		<summary type="html">&lt;p&gt;Boregard: Link zu Hitex insider guide geht nicht mehr.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;STM32 ist eine Mikrocontroller-Familie von [http://www.st.com/mcu/inchtml-pages-stm32.html ST] mit einer 32-Bit [[ARM]] Cortex-M0/M3/M4 CPU. Diese Architektur ist speziell für den Einsatz in Mikrocontrollern neu entwickelt und löst damit die bisherigen ARM7-basierten Controller weitestgehend ab. Den STM32 gibt es von ST in unzähligen Varianten mit variabler Peripherie und verschiedenen Gehäusegrößen und -formen. Durch die geringe Chipfläche des Cores ist es ST möglich, eine 32 Bit-CPU für weniger als 1&amp;amp;nbsp;€ anzubieten.&lt;br /&gt;
&lt;br /&gt;
[[Bild:stm32F103xc.png|thumb|right|340px|Blockdiagramm STM32F103xC/D/E]]&lt;br /&gt;
&lt;br /&gt;
== STM32-Familien ==&lt;br /&gt;
&lt;br /&gt;
Bisher gibt es elf STM32-Familien:&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f0-series.html STM32F0]&lt;br /&gt;
** Cortex M0&lt;br /&gt;
** Mikrocontroller zum Einstieg&lt;br /&gt;
** Bis 48MHz (38 DMIPS)&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f1-series.html STM32F1]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** Bis 72MHz (61 DMIPS)&lt;br /&gt;
**Verschiedene Unterfamilien:&lt;br /&gt;
*** Connectivity line&lt;br /&gt;
*** Performance line&lt;br /&gt;
*** USB Access line&lt;br /&gt;
*** Access Line&lt;br /&gt;
*** Value line&lt;br /&gt;
* [http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1575 STM32F2]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** Bis 120MHz (150 DMIPS)&lt;br /&gt;
** Wie die STM32F1 Serie, Camera-Interface, 32-Bit Timer, Crypto-Engine...&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f3-series.html STM32F3]&lt;br /&gt;
** Cortex M4F&lt;br /&gt;
** DSP und FPU&lt;br /&gt;
** Bis 72MHz (90 DMIPS)&lt;br /&gt;
** Fast 12-bit 5 MSPS and precise 16-bit sigma-delta ADCs&lt;br /&gt;
** Touch sensing controller (TSC)&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f4-series.html STM32F4]&lt;br /&gt;
** Cortex M4F&lt;br /&gt;
** DSP und FPU&lt;br /&gt;
** Bis 180MHz (225 DMIPS)&lt;br /&gt;
** Bis zu 2MB Flash&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f7-series.html STM32F7]&lt;br /&gt;
** Cortex M7&lt;br /&gt;
** DSP und FPU (Single/Double Precision)&lt;br /&gt;
** Bis 216MHz (462 DMIPS)&lt;br /&gt;
** Mehr Peripherie: SPDIF-IN/OUT, SAI, HDMI-CEC, Dual Quad SPI&lt;br /&gt;
** On-Chip Grafik-LCD-Controller&lt;br /&gt;
** DMAs auch für Ethernet, USB und Chrom-ART&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32l0-series.html STM32L0]&lt;br /&gt;
** Cortex M0+&lt;br /&gt;
** Low Power &lt;br /&gt;
** mit LCD Treiber&lt;br /&gt;
** Bis 32MHz (26 DMIPS)&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32l1-series.html STM32L1]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** Low Power &lt;br /&gt;
** mit LCD Treiber&lt;br /&gt;
** Bis 32MHz (33 DMIPS)&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32l4-series.html STM32L4]&lt;br /&gt;
** Cortex M4F&lt;br /&gt;
** DSP und FPU (Single Precision)&lt;br /&gt;
** Ultra Low Power (bis zu 8nA mit I/O Wake-Up)&lt;br /&gt;
** Bis 80MHz (100 DMIPS)&lt;br /&gt;
** 128KB...1MB Flash, 64/128KB SRAM&lt;br /&gt;
** optional Segment-LCD Treiber&lt;br /&gt;
** Quarzloser Betrieb auch mit CAN (1% ab Werk) oder USB (Synch über Host) möglich&lt;br /&gt;
** Digital-Filter für ΣΔ-Modulatoren&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32t-series.html STM32T]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** 72MHz&lt;br /&gt;
** Touch Sensing&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32w-series.html STM32W]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** BIS 24MHz&lt;br /&gt;
** RF-MCU &lt;br /&gt;
[http://www.st.com/web/en/catalog/mmc/FM141/SC1169 Hier eine Übersicht zum Auswählen eines STM32Fxxx]&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
* Cortex-M0 / Cortex-M3 / Cortex-M4F / Cortex-M7 Kern (mit FPU)&lt;br /&gt;
* 16KB ... 2MB  [[Flash-ROM]]&lt;br /&gt;
* 4KB ... 512KB [[Speicher#SRAM|SRAM]]&lt;br /&gt;
* 2KB ... 16KB [[Speicher#EEPROM|EEPROM]] (STM32L)&lt;br /&gt;
* SDRAM-Controller bei den [http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1577/LN1806 STM32F42xxx und STM32F43xxx], bis 512 MByte externer SDRAM addressierbar&lt;br /&gt;
* 512 one-time programmable Bytes(STM32F2/4)&lt;br /&gt;
* [[IC-Gehäuseformen | Gehäuse]] 20 ... 216 Pins als LCSP, TSSOP, QFN, LQFP und BGA&lt;br /&gt;
* Derzeit sind &#039;&#039;&#039;über 600&#039;&#039;&#039; [http://www.st.com/web/en/catalog/mmc/FM141/SC1169 STM32 Derivate/Varianten verfügbar]&lt;br /&gt;
* Bis 72MHz CPU-Takt, bis 120MHz beim STM32F2xx, bis 168/180 MHz beim STM32F4xx, wobei eine spezielle Prefetch-Hardware bis 120/168 MHz eine Geschwindigkeit erzielt, die 0 Wait-States entspricht. Der CPU-Takt wird über einen Multiplikator aus dem internen RC-Takt oder einem externen Quarz-Takt abgeleitet. Bis 216MHz CPU-Takt bei STM32F7xx.&lt;br /&gt;
* Externes Businterface (nur bei Gehäusen ab 100 Pin und nur bei STM32F4, STM32F2 und STM32F1 Performance line)&lt;br /&gt;
* LCD Treiber für bis zu 8x40 Segmente (nicht beim STM32F2xx)&lt;br /&gt;
* TFT Treiber bei [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f4-series/stm32f429-439.html STM32F429/STM32F439] [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f4-series/stm32f469-479.html STM32F469/STM32F479]&lt;br /&gt;
* Spannungsbereich 1,65 ... 3,6V, nur eine Betriebsspannung nötig&lt;br /&gt;
* Temperaturbereich bis 125 °C&lt;br /&gt;
* Bis zu 168 IOs, viele davon [[Pegelwandler|5V-tolerant]]&lt;br /&gt;
* Interner, kalibrierter RC-Oszillator mit 8MHz (16MHz bei STM32F2/F4xx)&lt;br /&gt;
* Externer Quarz&lt;br /&gt;
* Real Time Clock mit eigenem Quarz und separater Stromversorgung&lt;br /&gt;
* Bis zu 16 [[Timer]], je Timer bis zu 4 IC/OC/PWM Ausgänge. Davon 2x Motion Control Timer (bei STM32F103xF/G), (bis zu 32 PWM Ausgänge)&lt;br /&gt;
* Systick Counter&lt;br /&gt;
* Bis zu 3 12-Bit [[AD-Wandler]] mit insgesamt 24 AD-Eingängen, integrierter [[Temperatursensor]], Referenzspannung Vrefint und VBatt Spannungsmessung (STM32F4xx)&lt;br /&gt;
* Bis zu 2 12-Bit [[DA-Wandler]] (bis zu 3 beim STM32F3xx)&lt;br /&gt;
* Bis zu 2 [[DMA]] Controller mit bis zu 12 Kanälen (16 beim STM32F2/4xx)&lt;br /&gt;
* Bis zu 2x [[I2C|I²C]]&lt;br /&gt;
* Bis zu 5x [[UART|USART]] mit LIN, IrDA und Modem Control (bis zu 8 beim STM32F2/F4xx)&lt;br /&gt;
* Bis zu 3x [[SPI]] (bis zu 6 beim STM32F4xx)&lt;br /&gt;
* Bis zu 2x [[I2S|I²S]]&lt;br /&gt;
* Bis zu 2x [[CAN#STMicroelectronics STM32 (Cortex M3/M4)|CAN]]&lt;br /&gt;
* Hardware [[CRC]] Unit, bei der STM32F3xx Serie mit einem einstellbaren Polynom &lt;br /&gt;
* Unique device ID register (96 Bits)&lt;br /&gt;
* TRNG - True Random Number Generator (STM32F2/4xx), basierend auf analoger Schaltung&lt;br /&gt;
* Cryptographic Processor (CRYP) (STM32F2/4xx)&lt;br /&gt;
* Hash Processor (HASH) (STM32F2/4xx)&lt;br /&gt;
* Kamera-Interface (DCMI) (STM32F2/4xx)&lt;br /&gt;
* [[USB]] 2.0 Full Speed / OTG&lt;br /&gt;
* [[USB]] 2.0 Hi Speed OTG mit extra PHY-Chip (STM32F2/4xx)&lt;br /&gt;
* SDIO Interface (z.B. SD-Card Reader)&lt;br /&gt;
* Ethernet&lt;br /&gt;
* Watchdog mit Window-Mode&lt;br /&gt;
* Jedes Peripheriemodul ist separat einschaltbar, wodurch sich erheblich [[Ultra low power|Strom sparen]] lässt&lt;br /&gt;
* [[JTAG]] und SWD (Serial Wire Debug) Interface&lt;br /&gt;
* Bis zu 6 Hardware-Breakpoints für Debuggen&lt;br /&gt;
* und vieles mehr ...&lt;br /&gt;
&lt;br /&gt;
== Struktur der Dokumentation ==&lt;br /&gt;
Die Dokumentation der STM32 ist im Vergleich zur [[AVR]]-Familie umfangreicher und komplexer. Sie teilt sich in mehrere Dokumente auf.&lt;br /&gt;
Als Beispiel der Dokumentation soll stellvertretend der [http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1031/LN1565/PF164486 STM32F103RC] genannt werden. Die Seite von ST beinhaltet alle nötigen Informationen passend zu diesem Prozessor.&lt;br /&gt;
&lt;br /&gt;
Diese Dokumente von ST beschreiben den Controller:&lt;br /&gt;
&lt;br /&gt;
* Im [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00191185.pdf STM32F103xC/D/E Datasheet] sind die speziellen Eigenschaften einer bestimmten Modellreihe beschrieben und die exakten Daten und Pinouts aufgeführt, sowie die Zuordnung Chipname - Flash/RAM-Größe. Die Peripheriemodule werden nur aufgeführt, nicht detailliert beschrieben.&lt;br /&gt;
* Im [http://www.st.com/content/ccc/resource/technical/document/reference_manual/59/b9/ba/7f/11/af/43/d5/CD00171190.pdf/files/CD00171190.pdf/jcr:content/translations/en.CD00171190.pdf Reference Manual (RM0008)] sind alle Peripheriemodule der jeweiligen STM32-Controllerfamilie im Detail beschrieben.&lt;br /&gt;
* Das [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0403c/index.html ARMv7M Architecture Reference Manual] beschreibt detailliert den Prozessorkern, wie das Exception Model, die CPU Instruktionen inklusive Encoding, etc.&lt;br /&gt;
* Das [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/programming_manual/CD00228163.pdf STM32 Cortex-M3 Programming Manual] ist eine Zusammenfassung des ARMv7M Architecture Reference Manual bezogen auf die STM32.&lt;br /&gt;
* Wer nicht die ST Firmware-Library verwendet, der benötigt zusätzlich das [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/programming_manual/CD00283419.pdf Flash Programming Manual] für die Betriebsart des Flash-ROMs, d.h. die frequenzabhängige Konfiguration der Waitstates.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich sollten auch die [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/errata_sheet/CD00197763.pdf Errata Sheets] beachtet werden. Empfohlen sei auch die Appnote &amp;quot;[http://www.st.com/web/en/resource/technical/document/application_note/CD00164185.pdf AN2586 Getting started with STM32F10xxx hardware development]&amp;quot;.&lt;br /&gt;
Die jeweiligen Dokumentations-PDFs sind auf der Produktseite von ST eines jeden Mikrocontrollers verlinkt.&lt;br /&gt;
&lt;br /&gt;
== Hardware Zugriffs-Libraries ==&lt;br /&gt;
=== CMSIS ===&lt;br /&gt;
&lt;br /&gt;
Die CMSIS (ARM® &#039;&#039;&#039;C&#039;&#039;&#039;ortex™ &#039;&#039;&#039;M&#039;&#039;&#039;icrocontroller &#039;&#039;&#039;S&#039;&#039;&#039;oftware &#039;&#039;&#039;I&#039;&#039;&#039;nterface &#039;&#039;&#039;S&#039;&#039;&#039;tandard) ist eine Library von ARM für den Zugriff auf die herstellerübergreifenden Funktionen des ARM-Cores. Hierzu gehört bei den Cortex-M4F-Cores auch die DSP und Floating-Point Funktionalität. Weiterhin existieren eine Zahl von Helferfunktionen für den NVIC, den Sys-Tick-Counter, sowie eine SystemInit-Funktion, welche sich um die PLL kümmert. &lt;br /&gt;
&lt;br /&gt;
Im Rahmen des CMSIS-Standards ([http://www.onARM.com www.onARM.com]) wurden die Headerdateien standardisiert, der Zugriff auf die Register erfolgt per &#039;&#039;&#039;Peripheral-&amp;gt;Register&#039;&#039;&#039;. Die CMSIS C-Dateien bzw. Header enthalten auch Anpassungen für die verschiedenen Compiler. Die Portierung eines Real-Time-Betriebsystems sollte unter Verwendung der CMSIS, für Chips der verschiedenen Hersteller, stark vereinfacht möglich sein (z.B. einheitliche Adressen für Core-Hardware/Sys-Tick-Counter).&lt;br /&gt;
&lt;br /&gt;
Die CMSIS ist im Download der ‎STM32 Standard Peripheral Library enthalten. Die Compiler-Hersteller liefern eine jeweils zur ihrer Tool-Version passende bzw. geprüfte Library (incl. CMSIS) aus. Diese Libs können, gegenüber den Downloads beim Chip-Hersteller, auch ältere Version beinhalten.&lt;br /&gt;
&lt;br /&gt;
=== ‎STM32 Standard Peripheral Library ===&lt;br /&gt;
&lt;br /&gt;
ST bietet für jede Controller-Familie eine umfangreiche zur CMSIS passende Peripherie-Bibliothek. Alle Funktionen um die Peripherie zu benutzen sind gekapselt in einfache Strukturen und Funktionsaufrufe. Somit muss man sich nicht selbst um die Peripherie-Register kümmern. Diese Library und ihre Dokumentation setzen das grundlegende Verständnis der Funktion des jeweiligen Peripheriemoduls voraus, wie es die o.a. Referenz und diverse Appnotes vermitteln. Die Library beinhaltet außerdem für fast jede Peripherie mehrere Beispiele.&lt;br /&gt;
Für die USB Schnittstelle gibt es noch eine extra Library, genauso wie für Ethernet.&lt;br /&gt;
&lt;br /&gt;
Auf der &amp;quot;Design Resources&amp;quot; Seite der Produktseite von ST eines jeden STM32 Mikrocontrollers kann die Library für den jeweiligen Controller heruntergeladen werden, z.B. [http://www.st.com/web/en/catalog/tools/PF257890 hier für den o.g. STM32F103RC].&lt;br /&gt;
&lt;br /&gt;
Library für STM32F4xx: [http://www.st.com/web/en/catalog/tools/PF257901# STSW-STM32065 STM32F4 DSP and standard peripherals library]&lt;br /&gt;
&lt;br /&gt;
=== ‎STM32Cube / HAL ===&lt;br /&gt;
&lt;br /&gt;
Wird in Zukunft die Standard Library ablösen.&lt;br /&gt;
* http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1897&lt;br /&gt;
&lt;br /&gt;
== Programmierung ==&lt;br /&gt;
Zur Programmierung der STM32 gibt es verschiedene Möglichkeiten, sowohl kommerzielle proprietäre als auch mit Freier Software.&lt;br /&gt;
&lt;br /&gt;
Der GCC (in seinen verschiedenen Binärdistributionen) ist der einzige ARM Compiler der [http://de.wikipedia.org/wiki/C%2B%2B11 C++11] unterstützt.&lt;br /&gt;
&lt;br /&gt;
=== Freie Software/Freeware ===&lt;br /&gt;
==== Selber zusammenstellen ====&lt;br /&gt;
Man nehme...:&lt;br /&gt;
* Eine Entwicklungsumgebung nach Wahl:&lt;br /&gt;
** [http://www.eclipse.org Eclipse] mit [http://www.eclipse.org/cdt/ C/C++ Development Tooling] und [http://gnuarmeclipse.livius.net/blog/ GNU ARM Plug-in] (Bei Verwendung vom GCC-ARM-Embedded als Toolchain &amp;quot;Sourcery G++ Lite&amp;quot; auswählen, dieser sieht für eclipse gleich aus) (Linux, Windows)&lt;br /&gt;
** [http://netbeans.org/ Netbeans] mit [http://plugins.netbeans.org/plugin/37426/gdbserver GDBserver-Plugin] (Linux, Windows)&lt;br /&gt;
** [http://www.kdevelop.org/ KDevelop] (Linux)&lt;br /&gt;
** [http://www.geany.org/ Geany] (Linux, Windows)&lt;br /&gt;
** Oder ein einfacher Texteditor&lt;br /&gt;
* Einen C,C++ Compiler:&lt;br /&gt;
** Eine der [[ARM_GCC#GCC_Bin.C3.A4rdistributionen|GCC-Binärdistributionen]], siehe auch [[#GCC|GCC]] (je nach Distribution Linux, Windows)&lt;br /&gt;
* Programmiersoftware zum Flashen des Target:&lt;br /&gt;
** [http://openocd.sourceforge.net/ OpenOCD] unterstützt viele Debug/Programmier-Adapter (Linux, Windows)&lt;br /&gt;
** [https://github.com/texane/stlink Texane stlink] funktioniert gut mit den ST-Link Adaptern wie sie zB. auf den STM32 Discovery Boards zu finden sind (Linux)&lt;br /&gt;
** Turtelizer2 oder andere JTAG Programmieradapter&lt;br /&gt;
** Bei Verwendung eines Segger J-Link, den [http://www.segger.com/admin/uploads/productDocs/UM08005_JLinkGDBServer.pdf Segger GDB-Server] in Verbindung mit dem beim GCC mitgelieferten GDB (Linux, Windows).&lt;br /&gt;
&lt;br /&gt;
==== Komplette IDEs ====&lt;br /&gt;
* [https://developer.mbed.org/platforms ARM mbed Developer Site] ist der ultimative Compiler für denjenigen, der nur mal schnüffeln will. Doppelklick auf das gewünschte Board, Beispielprogramm (rechts am Rand auswählen), kompilieren und über USB hochladen. Schon blinkt es! Wenn man ein Projekt dann lieber doch lokal bearbeiten möchte (z.B. um einen Debugger zu benutzen) dann kann man die Projekte über die Export Funktion herunterladen. Es werden verschiedene IDE sowie ein gcc Kommandozeilenprojekt unterstützt. Die mbed Library ist quelloffen und auf github gehostet.&lt;br /&gt;
* [http://www.codesourcery.com/sgpp/lite_edition.html Codesourcery Lite Edition] Mit dieser Umgebung muss man sich anfreunden können, was mir bisher nicht gelungen ist. Es sind nur wenig Beispielprojekte verfügbar. Nicht mehr kostenlos verfügbar.&lt;br /&gt;
* [http://www.coocox.org/ Coocox Eclipse IDE] kostenlose IDE für STM32F0/F1/F2/F3/F4. Basiert auf der ARM-GCC Toolchain und es gibt eine breite Unterstützung. Es ist sogar ein freies RTOS verfügbar. Beim Start der IDE muss man geduldig sein, was jedoch für alle Eclipse basierten IDEs gilt. Eine gute Wahl ohne Limits mit breiter Debugger-Unterstützung. Hilfreiche Infos gibt es [http://www.mikrocontroller.net/topic/214719?goto=new#2228482 hier] und [http://www.mikrocontroller.net/topic/214719?goto=new#2229943 hier] im Forum, Artikel: [[STM32 CooCox Installation]] &lt;br /&gt;
* [http://emide.org/ emIDE] kostenlose IDE von Segger. Die emIDE basiert auf Code::Blocks. Sie ist auf ARM-GCC aufgebaut und unterstützt eine große Zahl an unterschiedlichen JTAG/SWD Debugger - natürlich auch den J-Link aus gleichem Hause.  &lt;br /&gt;
* [http://www.emblocks.org EmBlocks] kostenlose IDE, Code::Blocks basiert, unterstützt STM32 L1/F0/F1/F2/F3/F4/W, integrierter Compiler (ARM-GCC), integrierter GDB-Debugger, Jlink/ST-Link, System view (Peripherie Register anzeigen) beim Debuggen, Project Wizard (Eigene Wizards können mit Squirrel geschrieben werden), Basiert auf Code::Blocks und gefällt mir recht gut da man ihn fast so gut nutzen kann wie die µVision von Keil, jedoch ohne deren Limit, http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks]&lt;br /&gt;
** heisst jetzt EmBitz beta 0.42 -&amp;gt; http://www.emblocks.org/web/downloads-main&lt;br /&gt;
* [http://cms.seng.de/service-support/downloads/ Entwicklungsumgebung GNU/Linux] für STM32F1 mit OpenOCD und Olimex ARM-USB-OCD-H, Bedienung über Eclipse IDE oder Kommandozeile.&lt;br /&gt;
* [http://www.openstm32.org/blog1-System-Workbench-for-STM32 System Workbench for STM32] (SW4STM32) ist eine uneingeschränkte und kostenlose IDE. Sie wird von [http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1533/PF261797 ST] offiziell unterstützt. Die Entwicklungsumgebung ist in der Version 1.0 seit 5.2.2015 erhältlich. Seit Februar 2016 ist eine Version für Linux verfügbar.&lt;br /&gt;
&lt;br /&gt;
==== Andere Programmiersprachen ====&lt;br /&gt;
&lt;br /&gt;
* [http://mecrisp.sourceforge.net Mecrisp-Stellaris], eine native Forth-Implementation für ARM Cortex M0/M3/M4. Es werden bereits mehrere STM32 Targets unterstützt und neue Portierungen sind herzlich willkommen. Auch Chips von TI, NXP und Freescale sind im aktuellen Paket enthalten.&lt;br /&gt;
&lt;br /&gt;
=== Kommerzielle Umgebungen ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.keil.com/arm/mdk.asp Keil µVision] (Demo max. 32KB Code/Free für STM32F0/STM32L0): Die sehr komfortable µVison IDE ist neben dem ARM Compiler per Menue auch für einen beliebigen GNU-Compiler konfigurierbar. Damit besteht das 32k-Limit nur noch für den integrierten Debugger / Simulator. In Verbindung mit einem ULINK2 ist die Umgebung schon sehr einfach zu bedienen - leider ist der Compiler mit großen Abstand der langsamste den ich je nutzte da er keine parallel Option wie der GNU-CC besitzt. Mit der µVision lässt sich kein fremdes File in den Controller in den Flashspeicher des Controllers schreiben. Für den Anfänger eine gute Wahl. Der Preis ist jedoch ein guter Grund auf andere freie IDEs zu wechseln. µVison selbst kann kostenlos mit dem MDK-Evaluationkit heruntergeladen werden. [https://www.keil.com/arm/demo/eval/arm.htm#DOWNLOAD download] Wer sich nur auf STM32 Cortex M0/L0 beschränkt kann die Keil MDK auch ohne 32K Begrenzung frei nutzen. [http://www2.keil.com/stmicroelectronics-stm32/mdk download]&lt;br /&gt;
* [http://www.iar.com/en/Products/IAR-Embedded-Workbench/ IAR-Embedded-Workbench] (Demo max. 32KB Code) [http://supp.iar.com/Download/SW/?item=EWARM-EVAL download]&lt;br /&gt;
* [http://www.isystem.com/download/winideaopen winIDEAOpen] Keine Code Limitierung, GCC und Testwerkzeug beinhaltet. Läuft mit dem iTag50 Adapter, Segger J-Link und dem ST-Link&lt;br /&gt;
* [http://www.raisonance.com Raisonance Ride7] (GCC Compiler, kostenlose Version auf Debugging von max. 32KB Code limitiert, keine Limitierung beim Complilieren)&lt;br /&gt;
* [http://www.atollic.com Atollic TrueStudio], auf Eclipse/GCC basierend. Aktuell ist V 5.4, diese hat kein Codesize Limit. Eingeschränkt sind Debug Optionen wie Variablen LiveWatch oder Tracing, was aber auch &#039;bessere&#039; Debugprobes erforderlich macht. Das Semihosting (printf über SWD/JTAG) fällt leider auch unter die Restriktionen der Lite Version. Atollic TrueStudio unterstützt viele verschiedene Hersteller von ARM MCUs, dadurch ist das Paket sehr umfangreich. In der Lite Version muss man sich beim Start für ein paar Sekunden einen Dialog mit dem Upgrade Angebot gefallen lassen.&lt;br /&gt;
* [http://www.rowley.co.uk/arm/ Rowley Crossworks] (Demo 30 Tage unbeschränkt, 150$ für nichtkommerzielle Nutzung, auf GCC basierend). Mir ist nicht klar warum man für diese IDE Geld bezahlen soll. Der GNU-Compiler ist frei und die Entwicklungsumgebungen die auf Eclipse basieren, ebenfalls. Allerdings ist diese Einstellungsarbeit schon was für den etwas erfahrenen Entwickler.&lt;br /&gt;
* [http://www.code-red-tech.com Code Red] (GCC basierend)&lt;br /&gt;
* [http://www.sisy.de/index.php?id=17&amp;amp;no_cache=1 SiSy ARM oder SiSy Micrcontroller++] (Demo verfügbar keine Gößenbegrenzung, basiert auf GNU-Compiler, grafische Programmierung mit UML möglich, integrierter Debugger)&lt;br /&gt;
* [http://www.comsytec.eu/epsdebugger.php EPS Debugger Plugin, für STM32 Development mit Code::Blocks]&lt;br /&gt;
* [http://www.mikroe.com MikroE bietet neben Pascal und Basic auch C mit kompletter Oberfläche mit Compiler etc. pp relativ günstig]&lt;br /&gt;
&lt;br /&gt;
=== STM32CubeMX ===&lt;br /&gt;
Dies ist eine Software von ST selbst, die die Auswahl und Konfiguration von STM32-Mikrocontrollern vereinfacht:&lt;br /&gt;
* Auswahl der Controller oder Entwicklungsboards mit einer parametrischen Suche&lt;br /&gt;
* grafische Konfiguration der Pins und Alternate Functions (inkl. Überprüfung auf Kollisionen - bei Entwicklungsboards sind gewisse Pins schon vorkonfiguriert und werden angezeigt)&lt;br /&gt;
* grafische Konfiguration des Clock-Trees&lt;br /&gt;
* Generierung von C-Code entsprechend der grafischen Konfiguration. Dieser funktioniert nur mit den neuen STM32CubeFx Libraries, nicht mit den alten Standard Peripheral Libraries.&lt;br /&gt;
* Simulation des Strom-Verbrauchs unter Auswahl verschiedenster Stromquellen und Batterien&lt;br /&gt;
Die Software kann [http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF259242 bei ST heruntergeladen] werden. Sie wird im Windows Executable Format angeboten und erweckt daher den Eindruck, ausschließlich für Windows geeignet zu sein, ist aber tatsächlich Java-basiert und daher seit Version 4.13 vollständig betriebssystem-unabhängig.&lt;br /&gt;
==== STM32CubeMX unter Linux ====&lt;br /&gt;
Ab der Version 4.13 liegt jetzt ein Linux-Installer mit bei.&lt;br /&gt;
&lt;br /&gt;
Unter Linux kann STM32CubeMX installiert werden, indem man das heruntergeladene .zip-Archiv entpackt, und den enthaltenen Installer per Java über ein Terminal startet:&lt;br /&gt;
&amp;lt;pre&amp;gt;java -jar SetupSTM32CubeMX-4.5.0.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Anlegen der Desktop/Startmenü-Shortcuts funktioniert unter Linux nicht richtig und kann daher deaktiviert werden. Um STM32CubeMX nach der Installation zu starten, wechselt man im Terminal in den Installationsort und gibt ein:&lt;br /&gt;
&amp;lt;pre&amp;gt;java -jar STM32CubeMX.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
Damit das funktioniert, muss die Oracle Java Runtime Environment 1.8 installiert sein (Siehe z.B. [http://wiki.ubuntuusers.de/Java/Installation/Oracle_Java/Java_8#Java-8-JRE hier] für Ubuntu). Nicht benötigt wird wine.&lt;br /&gt;
&lt;br /&gt;
Update:&lt;br /&gt;
In der Datei stm32cubemx.zip  md5sum: 86217b9f14b99b1133bda6e87dbd1270&lt;br /&gt;
http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF259242?icmp=pf259242_pron_pr_jun2014&amp;amp;sc=stm32cube-pr6#&lt;br /&gt;
befindet sich u.a. SetupSTM32CubeMX-4.13.0.linux (ist ein ELF 64-bit). Mit Ausführen wird cubemx standalone (nicht in Eclipse) im Pfad der Wahl installiert. Es reicht Java 1.7.xx, hier java -version: java version &amp;quot;1.7.0_95&amp;quot;&lt;br /&gt;
OpenJDK Runtime Environment (IcedTea 2.6.4) (suse-24.30.3-x86_64). Das Anlegen von Desktop/StartMenü Icons, Stichworte freedesktop.org, &amp;quot;Desktop Entry&amp;quot;, funktioniert. Man muss aber beachten, dass ein Symlink zum Starten nicht funktioniert. Stattdessen ist eine ausführbare Datei im Pfad anzulegen, z.B. /usr/local/bin/cubemx mit z.B dem Inhalt /array_data01/STM32CubeMX/STM32CubeMX&lt;br /&gt;
&lt;br /&gt;
==== STM32CubeMX unter Mac OS ====&lt;br /&gt;
Mit der Version 4.14 wird ein Setup-Programm für Mac OS angeboten, das sich in der stm32cubemx.zip Datei befindet (siehe auch Update zur Linux-Unterstützung).&lt;br /&gt;
&lt;br /&gt;
=== Tutorials für diverse Tool-Kombinationen ===&lt;br /&gt;
* [[STM32 Eclipse Installation|Windows,Linux, Eclipse + Yagarto/CodeSourcery + OpenOCD/ST-Link]]&lt;br /&gt;
* [[STM32 Eclipse JLink Linux/Windows|Windows,Linux, Eclipse + GCC-ARM-Embedded + JLink]]&lt;br /&gt;
* [[Linux auf STM32|Linux auf STM32 (ucLinux)]]&lt;br /&gt;
&lt;br /&gt;
* Windows&lt;br /&gt;
** Eclipse&lt;br /&gt;
*** [http://www.mikrocontroller.net/topic/216554 Windows, Eclipse, codesourcery, st-link ]&lt;br /&gt;
*** [http://www.firefly-power.de/ARM/debugging.html Eclipse Plugin &amp;quot;GDB Hardware Debugging&amp;quot; mit OpenOCD]&lt;br /&gt;
** Code::Blocks&lt;br /&gt;
*** [http://www.mikrocontroller.net/topic/265600 Windows, Code::Blocks, STM32F4]&lt;br /&gt;
** STM32 mit EmBlocks&lt;br /&gt;
*** [http://www.emblocks.org/web/downloads-main Download EmBlocks]&lt;br /&gt;
*** [https://www.youtube.com/watch?v=coHPJylnzC8 Video STM32 Project Wizzard in EmBlocks]&lt;br /&gt;
** Atollic TrueSTUDIO&lt;br /&gt;
*** [[STM32 LEDBlinken AtollicTrueStudio|Atollic TrueSTUDIO Installation + Demo]]&lt;br /&gt;
** MDK-ARM Lite mit Einstellungen für STM32F0/F4-Discovery Board&lt;br /&gt;
*** [https://www.keil.com/demo/eval/arm.htm KEIL MDK-ARM Download]&lt;br /&gt;
*** [https://www.youtube.com/watch?v=RXOOxby5nns&amp;amp;list=PL6-W3FoUyb48WFI5PQv3SDJj2G1t2FonV&amp;amp;index=1 Installations Video STM32F4 Discovery Board]&lt;br /&gt;
*** [https://www.youtube.com/watch?annotation_id=annotation_203294&amp;amp;feature=iv&amp;amp;index=4&amp;amp;list=PL6-W3FoUyb48WFI5PQv3SDJj2G1t2FonV&amp;amp;src_vid=sN4gDZ7H8gw&amp;amp;v=BeZcQjXxk9A Einstellungen STM32F0 Discovery Board Video]&lt;br /&gt;
** SiSy ARM, STM32&lt;br /&gt;
*** Download: [http://www.sisy.de/index.php?id=59 SiSy DEMO] kein Begrenzung der Codegröße&lt;br /&gt;
*** [http://www.youtube.com/watch?v=84Y3jYLWYpo Videobeispiel]&lt;br /&gt;
** Microsoft Visual Studio&lt;br /&gt;
*** [http://visualgdb.com/tutorials/arm/stm32/f4_discovery/ &amp;quot;STM32F4-Discovery tutorial with Visual Studio&amp;quot;]&lt;br /&gt;
* Ubuntu&lt;br /&gt;
** [http://cms.seng.de/service-support/downloads/ Installing a toolchain for Cortex-M3/STM32 on GNU/Linux] - How-to manual, für STM32F1 unter GNU/Linux mit OpenOCD und Olimex ARM-USB-OCD-H. Integrierte Make files, Linker Skripte, Startup-Code, diverse Tools und Demo-Projekt/Programm. Einbindung in Eclipse IDE oder Bedienung über Kommandozeile.&lt;br /&gt;
** [http://fun-tech.se/stm32/index.php Ubuntu, Selbstcompilierter GCC, STM32/Cortex-M3]&lt;br /&gt;
** [http://thetoolchain.com The ToolChain] - Automatisch installierende Entwicklungsumgebung mit eigenen und externen Treibern, Unterstützt QtCreator als IDE, Flexibel erweiterbar über Shellskripte&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/214719 Tipps für Installation mit Eclipse]&lt;br /&gt;
&lt;br /&gt;
===Programmieradapter===&lt;br /&gt;
* [http://www.segger.com/jlink-model-overview.html SEGGER J-LINK / J-TRACE] für u.a. alle ARM7/9/11, Cortex-M0/M1/M3/M4/A5/A8/A9/R4 als [http://www.segger.com/cms/j-link-edu.html Non-Commercial] J-LINK-EDU für ca. 50€ zu haben, läuft in µVision, IAR, GDB (Linux &amp;amp; Windows über einen eigenen [http://www.segger.com/admin/uploads/productDocs/UM08005_JLinkGDBServer.pdf GDB-Server]), Keil, ... Der J-Link ist mit Abstand der schnellste Debugger, den ich bisher testen konnte. Wer es beim Debuggen eilig hat, liegt mit dem J-Link von Segger richtig.&lt;br /&gt;
* Keil [http://www.keil.com/ulinkme/ ULINK-ME], [http://www.keil.com/arm/ulink2/ ULINK2], [http://www.keil.com/arm/ulinkpro/ ULINK pro] Wenn man die die µVision IDE nicht verlassen mag, kann man sich mit diesen Adaptern anfreunden, denn sie arbeiten nur mit dieser IDE zusammen. Sie benötigen keine USB-Treiber, da sie geschickt das HID-Device des Betriebssystems nutzen. Es lässt sich kein fremdes Binary oder Hex-File flashen. Der ULINK2 kostet genau soviel wie ein Segger J-Link Basic bei gleichem Funktionsumfang, der sich jedoch auch in Verbindung mit anderen IDEs (GDB, usw) einsetzen lässt.&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/development-tools/hardware-development-tools/development-tool-hardware-for-mcus/debug-hardware-for-mcus/debug-hardware-for-stm32-mcus/st-link.html ST-LINK],  [http://www2.st.com/content/st_com/en/products/development-tools/hardware-development-tools/development-tool-hardware-for-mcus/debug-hardware-for-mcus/debug-hardware-for-stm32-mcus/st-link-v2.html ST-LINK/V2]&lt;br /&gt;
* Jedes STM32 NUCLEO und DISCOVERY board hat einen ST-LINK für Programmierung/Debugging per SWD on-board (teilweise abbrechbar), welcher auch für eigene STM32 Target Hardware benutzt werden kann (ca. 12,- bis 19,-€, je nach Typ). Zwar ist er mit 1.8MHz Takt ein sehr langsamer Vertreter seiner Art, jedoch lassen sich mit ihm fremde Hex- und Binary-Files sowohl Debuggen als auch Flashen. Er unterstützt aber nur MCUs von ST. NXP, Atmel oder TI lassen sich damit nicht programmieren. Diese ST-LINK-Variante beherrscht nur SWD, kein JTAG und hat keine Treiber, die den Programmierprozessor vom Zielsystem galvanisch entkoppeln. Der ST-Link in der Adapterversion mit Gehäuse hat diese Nachteile nicht und kostet auch nur um 20€.  Unter Linux kann der Virtuellen COM-Port des ST-LINK/V2 mit Hilfe des cdc-acm Treibers aus dem Kernel angesprochen werden ([https://embeddedmicro.com/forum/viewtopic.php?t=82 siehe hier]). &#039;&#039;&#039;UPDATE:&#039;&#039;&#039; Die ST-LINK/V2-1 auf den NUCLEO und Discovery-Boards können jetzt auch auf J-Link OB geflasht werden. Details und Hinweise dazu [https://www.segger.com/jlink-st-link.html hier].&lt;br /&gt;
* [http://www.raisonance.com/~rlink-debugger-programmer__microcontrollers__tool~tool__T018:4cn9ziz4bnx6.html Raisonance RLink]&lt;br /&gt;
* [http://www.amontec.com Amontec] (2016-05: Website OFFLINE)&lt;br /&gt;
* [http://www.hjtag.com H-JTAG] nur noch STD- und PRO-Edition (Cortex-M0, Cortex-M3, kein M4), Personal-Edition (LPT-Port) war für ca. 60€ zu haben, läuft mit ADS, SDT, IAR, Vision und RVDS (möglicher Selbstbau der Personal-Edition siehe [http://nazya.com/freeshipping/single/4929017/orig_desc.html hier])&lt;br /&gt;
* [http://www.isystem.com/products/itag iTag] für 50€ bei [http://www.amazon.de/dp/B009XAQ9BW Amazon] bestellbar, alternativ als [http://isystem.com/products/hardware/cortex-debugger/itag/itag-instruction Eigenbauversion (offenes Design)] läuft mit der freien winIDEAiTag version (siehe oben)&lt;br /&gt;
&lt;br /&gt;
In der Regel haben die [[JTAG]] Adapter einen 20-poligen Stecker, den man direkt auf die Demo-Boards mit 20-poligem [[JTAG]]-Anschluss einstecken kann. Die Pinbelegung ist genormt, siehe Artikel [[JTAG]]. Die Discovery-Boards haben keinen separaten JTAG-Stecker, aber man kann sich zumindest für das STM32F4 Discovery einen Adapter Pinheader-&amp;gt;JTAG Stecker leicht selbst bauen.&lt;br /&gt;
&lt;br /&gt;
ST-Link Adapter können jetzt auch unter Linux mit neuer Firmware geflasht werden: [http://www2.st.com/content/st_com/en/products/embedded-software/development-tool-software/stsw-link007.html Download]. &lt;br /&gt;
&lt;br /&gt;
Andere [[JTAG]] Adapter wie z.B. der ULink2 von Keil funktionieren nur mit dem Keil Compiler. Leider kann dieser auch kein fremdes Binary oder Hex-File in den Controller schreiben.&lt;br /&gt;
&lt;br /&gt;
===Programmieradapter Open-Source===&lt;br /&gt;
&lt;br /&gt;
* [https://www.olimex.com/Products/ARM/JTAG/ARM-JTAG-COOCOX/ ARM-JTAG-COOCOX], CoLinkEX Nachbau von Olimex, unterstützt JTAG sowie SWD&lt;br /&gt;
** [http://www.coocox.org/colinkEx.htm unterstützte uC]&lt;br /&gt;
** unterstütze IDEs: [http://www.keil.com/arm/mdk.asp Keil MDK-ARM 4.03] oder neuer, [http://www.iar.com/en/Products/IAR-Embedded-Workbench/ IAR Embedded Workbench 5.xx] oder neuer sowie die [http://www.coocox.org/CooCox_CoIDE.htm CooCox CoIDE]&lt;br /&gt;
* [https://www.olimex.com/Products/ARM/JTAG/ Olimex] ARM-USB-OCD (ca. 60.-, hat zusätzlich einen Spannungsausgen und einen COM Port)&lt;br /&gt;
* [http://www.oocdlink.com/ OOCDLink]  [_Link ist derzeit nicht verfügbar_]&lt;br /&gt;
* [https://github.com/texane/stlink Stlink]&lt;br /&gt;
* [http://www.randomprojects.org/wiki/Floss-JTAG FLOSS-JTAG]&lt;br /&gt;
* [http://capitanio.org/mlink/ Linux Demo Code für die Discovery&#039;s ST-Link Programmierung]&lt;br /&gt;
&lt;br /&gt;
Der Controller hat auch einen fest eingebauten Boot-Lader. Damit läßt er sich auch über eine gewöhnliche serielle Schnittstelle programmieren, ohne dass man einen JTAG-Adapter benötigt. Dies erfordert ggf. entsprechende Konfiguration über die BOOTx-Pins und/oder die Option-Bytes, und ein Programm wie [https://code.google.com/p/stm32flash/ stm32flash].&lt;br /&gt;
&lt;br /&gt;
=== Demo-Projekte ===&lt;br /&gt;
&lt;br /&gt;
* Einführung in die GPIO Programmierung der STM32F10x und STM32F30x Prozessoren am Beispiel des STM32F3 Discovery Boards und Vergleich zur AVR IO Registerstruktur [http://www.mikrocontroller.net/topic/300472#new]&lt;br /&gt;
* [[prog_bsp_timer_1_timer2|Programmbeispiel für die Verwendung von Timer2 zusammen mit dem Interrupt]]&lt;br /&gt;
* [http://www.firefly-power.de/ARM/printf.html Printf() debugging mit minimalem Aufwand]&lt;br /&gt;
* [[STM32_BLDC_Control_with_HALL_Sensor|Programmbeispiel für BLDC Motoransteuerung (Timer 1) mit HALLSensor (Timer 3)]]&lt;br /&gt;
* [[Cortex_M3_OCM3U]]&lt;br /&gt;
* Martin Thomas hat ein umfangreiches Projekt erstellt, in der die Eclipse Einstellungen enthalten sind:&lt;br /&gt;
** [http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html &amp;quot;ChaN&#039;s FAT-Module with STM32 SPI&amp;quot;]&lt;br /&gt;
* [[STM32 USB-FS-Device Lib]]&lt;br /&gt;
* Modellbau-Sender auf STM32-Basis mit vielen Treibern [http://www.rcos.eu www.rcos.eu]&lt;br /&gt;
* Ausführliches [https://github.com/jkerdels/stm32edu Einstiegs-Tutorial] in Codeform für das [http://www.st.com/internet/evalboard/product/252419.jsp STM32F4 discovery board]&lt;br /&gt;
* [http://www.redacom.ch/keillab/ Schweizer Gondelbahnsteuerung über Webserver auf ETT STM32F ARM KIT Board in Keil RTOS] mit Webcam&lt;br /&gt;
* Die [http://ethernut.svn.sourceforge.net/viewvc/ethernut/trunk/ Ethernut SVN Version] unterstützt inzwischen viele STM32 Typen, viele Devices und einige STM32 Demoboards&lt;br /&gt;
* [http://mikrocontroller.bplaced.net/wordpress/?page_id=744 Uwe Becker&#039;s Libraries für den STM32F4]&lt;br /&gt;
* [http://mikrocontroller.bplaced.net/wordpress/?page_id=3290 Uwe Becker&#039;s STM32F429 Discovery Board Oszilloskop], hier der [http://www.mikrocontroller.net/topic/319831#new Thread]&lt;br /&gt;
* [http://mikrocontroller.bplaced.net/wordpress/?page_id=3424 Uwe Becker&#039;s STM32F429 Discovery Board ZX-Spectrum Emulator]&lt;br /&gt;
&lt;br /&gt;
== Debug- und Trace-Interface (CoreSight™ Debug and Trace Technologie)==&lt;br /&gt;
&lt;br /&gt;
Übersicht über beide Funktionalitäten und den Schnittstellen:&lt;br /&gt;
http://www.keil.com/support/man/docs/ulink2/ulink2_cs_core_sight.htm&lt;br /&gt;
&lt;br /&gt;
Die Coresight-Debug-Architektur ermöglicht ein nicht-invasives Debugging, d.h. es können während des Betriebes (meistens) ohne Beeinflussung des Prozessors Daten vom Speicher gelesen und in selbigen geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
=== Debugger Funktionen ===&lt;br /&gt;
&lt;br /&gt;
Der Debugger-Teil besitzt drei Funktionen:&lt;br /&gt;
* Run Control: z.B. Programm-Start, Stopp und Einzel-Schritte.&lt;br /&gt;
* (Program) Break Points: Ein Programm hält an, wenn der Programm Counter eine bestimmte Programm-Adresse erreicht.&lt;br /&gt;
** Die maximale Anzahl der gleichzeitig möglichen Break Points ist begrenzt (z.B. 6 bei einem STM32).&lt;br /&gt;
** Die Anzahl der Break Points ist nahezu unbegrenzt, wenn ein Debugger über den Memory Access (s.u.) sogenannte Flash Break Points unterstützt. Dabei wird ein geladenes Programm im Flash umprogrammiert, um den Debugger anzuhalten. Diese Funktionalität ist meistens ein kostenpflichtiges Zusatz-Feature des Debugger-Herstellers. &lt;br /&gt;
** Beinhaltet keine Data Watch Funktionalität, welche im Trace-Teil (DWT) realisiert wird.&lt;br /&gt;
* Memory Access: Lesen und Schreiben von Speicheradressen. &lt;br /&gt;
** Diese Funktionalität beinhaltet keine direkte Flash-Programmierung. Der Programmiervorgang für einen Flash ist herstellerspezifisch und muss von dem verwendeten Debugger unterstützt werden.&lt;br /&gt;
&lt;br /&gt;
=== Trace Funktionen ===&lt;br /&gt;
Die Trace-Funktionalität wird in drei Funktionen aufgeteilt:&lt;br /&gt;
* ETM (Embedded Trace Macrocell): Optional, nicht jede CPU besitzt diese Hardware (Kostenfaktor, Ausstattung).&lt;br /&gt;
* ITM (Instrumentation Trace Macrocell): Über diesen Kanal kann ein vereinfachtes Trace des Core ermöglicht werden, sowie &amp;quot;printf-ähnlich&amp;quot; Daten über den ITM Channel 0 geschickt und im Debugger ausgegeben werden.&lt;br /&gt;
* DWT (Data Watchpoint &amp;amp; Trace Unit): &lt;br /&gt;
** Data Watch: 4 Access-Break-Points ( z.B. der Debugger bleibt stehen, wenn das Programm auf einen Speicher zugreift oder der Wert einer Variablen einen bestimmten Wert annimmt). &lt;br /&gt;
** Trace Unit: Programmverlauf (durch Lesen des Program Counters) und Interrupt Aufrufe verfolgen, sowie Zeitmessungen.&lt;br /&gt;
&lt;br /&gt;
Einige der Trace-Funktionalitäten können über die JTAG-Schnittstelle angesprochen werden. Die schnelle Trace-Funktionalität (mit 4 bit Parallel-Port) steht nur mit der erweiterten DEBUG + ETM Schnittstelle zur Verfügung. Im Gegensatz zum Debugger-Teil (Run Control, Break Points und Memory Access) werden Trace-Funktionen nicht von allen Debuggern unterstützt. Debugger mit der vollen Trace-Funktionalität kosten deutlich mehr.&lt;br /&gt;
&lt;br /&gt;
* Beispiele für Trace-Port-Aktivierungen für verschiedene Hersteller: http://www.keil.com/support/man/docs/jlink/jlink_capture_tracedata.htm&lt;br /&gt;
&lt;br /&gt;
Die Aktivierung des parallelen Trace-Ports erfordert, je nach CPU Hersteller, zusätzliche Debugger-Makros für die Aktivierung und Port-Freischaltung. Zusätzlich sind die Schnittstellenauswahl und Einstellung (Frequenzen) im Entwicklungs-Tool (IDE) wichtig, um erfolgreich den Programm-Verlauf &amp;quot;tracen&amp;quot; zu können.&lt;br /&gt;
&lt;br /&gt;
=== Debug und Trace-Schnittstellen ===&lt;br /&gt;
Als Debug Interface stehen zwei Varianten zur Auswahl:&lt;br /&gt;
* [[JTAG]]: Dafür sind mindestens 6 Steuerleitungen nötig. Unterstützt Device Chaining: Mehrere verbundene Geräte können mit einem Debugger/Programmer gleichzeitig angesteuert werden.&lt;br /&gt;
* SWD (Serial Wire Debug): Hier mindestens 2  Steuerleitungen (3 mit SWO, zzgl GND und 3,3V). Die SWD Schnittstelle ist in der Regel schneller und kann auch Funktionen aus dem Trace-Teil beinhalten (z.B. ITM, dafür wird der SWO-Pin benötigt). Device Chaining ist mit dieser Schnittstelle nicht möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Standard-JTAG Steckerbelegungen: &lt;br /&gt;
http://www.keil.com/support/man/docs/ulink2/ulink2_hw_connectors.htm&lt;br /&gt;
&lt;br /&gt;
=== Der 10polige JTAG-Stecker von mmvisual ===&lt;br /&gt;
mmvisual hat mit dieser Steckerbelegung die Standard JTAG Schnittstelle erweitert:&lt;br /&gt;
&lt;br /&gt;
Ich habe diesen Part in den Artikel [http://www.mikrocontroller.net/articles/JTAG#Der_10-polige_JTAG_Stecker_von_mmvisual JTAG] verschoben.&lt;br /&gt;
Hinzu gekommen ist die Adapterplatine 10-Polig auf Standard JTAG 20 Polig mit TTL/V24 Wandler. [http://www.mikrocontroller.net/articles/JTAG#Die_Adapterplatine Siehe hier.]&lt;br /&gt;
&lt;br /&gt;
== Hardware-Beschaltung ==&lt;br /&gt;
&lt;br /&gt;
Der STM32 benötigt für den Betrieb nur (Minimalbeschaltung):&lt;br /&gt;
&lt;br /&gt;
* VCC 2..3,3V (je nach Typ)&lt;br /&gt;
* AVCC 2..3,3V (sehr wichtig, der STM32 lässt sich ohne diese Spannung nicht programmieren)&lt;br /&gt;
* GND&lt;br /&gt;
* Reset Pin 100nF nach GND (ein Pull-Up Widerstand von ca. 40k ist intern vorhanden)&lt;br /&gt;
* [[#Bootmodi|Boot-Pins]]&lt;br /&gt;
&lt;br /&gt;
ansonsten nur ein paar einzelne Cs 100nF an VCC/GND.&lt;br /&gt;
&lt;br /&gt;
Um Programmieren zu können wird entweder noch die serielle Schnittstelle (Programmieren über den vorprogrammierten Bootloader) oder JTAG oder die SWD Schnittstelle benötigt.&lt;br /&gt;
&lt;br /&gt;
=== Bootmodi ===&lt;br /&gt;
Unterschiedliche Bootmodi lassen sich mittels der PINs BOOT0 und BOOT1 auswählen . Siehe Application Note [https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Attachments/18225/AN2606.pdf AN2606]. Außer F1 besitzen neuere Familien ein SYSCFG_MEMR Register. In dieses Register kann man die gewünschten Boot0/1 Werte schreiben und nach einem Core-Reset (!= System_Reset) startet der Prozessor im gewünschten Mode. Eine Neu- bzw. Deinitialisierung der Peripherie empfiehlt sich! &lt;br /&gt;
&lt;br /&gt;
==== Boot from FLASH ====&lt;br /&gt;
Startadresse wird von 0x08000004 geladen&lt;br /&gt;
 BOOT0 Lo&lt;br /&gt;
 BOOT1 X &lt;br /&gt;
&lt;br /&gt;
==== Boot from SRAM ====&lt;br /&gt;
PC Startadresse wird an 0x200001E0 direkt angesprungen.&lt;br /&gt;
 BOOT0 Hi&lt;br /&gt;
 BOOT1 Hi&lt;br /&gt;
Da der interne FLASH der stm32f1x laut Datenblatt nur für 1000 Schreibvorgänge ausgelegt ist, kann mittels BOOT0 (High) und BOOT1 (High) auch aus dem zuvor mit dem Debugger (JTAG/SWD) beschriebenen SRAM booten. &lt;br /&gt;
Hierbei gilt zu beachten:&lt;br /&gt;
 VTOR auf die NVIC Tabelle im SRAM vor dem auslösen des ersten Interrupts remappen.&lt;br /&gt;
&lt;br /&gt;
 Um ein vergleichbares Startverhalten zum FLASH zu erreichen, empfiehlt es sich,&lt;br /&gt;
 0xF1E0F85F an 0x200001E0 zu schreiben. Diese implizite Ausführung von &amp;quot;ldr.w pc,&lt;br /&gt;
 [pc, #-0x01E0]&amp;quot; beim Start erzwingt ein laden der Startadresse von 0x20000004.&lt;br /&gt;
&lt;br /&gt;
==== Boot from SYSMEM (RS232, CAN und USB) ====&lt;br /&gt;
PC Startadresse wird von 0x1FFFF004 geladen&lt;br /&gt;
 BOOT0 Hi&lt;br /&gt;
 BOOT1 Lo&lt;br /&gt;
&lt;br /&gt;
Ab F2 gibt es auch ein SYSCFG_MEMRMR Register. Schreibt man hier den Wert für &amp;quot;System Flash&amp;quot; und macht einen Corereset (keinen Systemreset), so landet man auch im Bootloader, unabhängig vom Wert der Boot Pins.&lt;br /&gt;
&lt;br /&gt;
Auch ohne JTAG lässt sich ein STM32 programmieren (Bootloader-Aktivierung). Dabei stehen, je nach CPU-Typ, verschiedene Möglichkeiten zur Verfügung:&lt;br /&gt;
* RS-232 (bisher alle STMs)&lt;br /&gt;
* USB (alle USB fähigen CPUs &amp;gt; F103)&lt;br /&gt;
* CAN (wie USB nur in bestimmten MCUs)&lt;br /&gt;
&lt;br /&gt;
3 zusätzliche Verbindungen müssen auf dem Board gepatcht werden. Für einen Test geht es auch mit Tastern für RESET und BOOT0.&amp;lt;br&amp;gt;&lt;br /&gt;
RESET=RTS (L-aktiv)&amp;lt;br&amp;gt;&lt;br /&gt;
BOOT0=DTR (H-aktiv)&amp;lt;br&amp;gt;&lt;br /&gt;
BOOT1=LOW&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Details sind hier im Forum: [http://www.mikrocontroller.net/topic/141711 STM32 Programmiertool]&lt;br /&gt;
&lt;br /&gt;
Tools für den Download über den STM32-Bootloader:&lt;br /&gt;
* [http://www.st.com/web/en/catalog/tools/PF257525 STSW-MCU005 STM32 and STM8 Flash loader demonstrator]&lt;br /&gt;
* [https://sourceforge.net/projects/stm32flash/ stm32flash] - Open source flash program (RS-232)&lt;br /&gt;
* [http://dfu-util.sourceforge.net/ dfu-util] - Open source flash program (USB)&lt;br /&gt;
&lt;br /&gt;
== Bewertung ==&lt;br /&gt;
=== Vorteile ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile gegenüber ARM7:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Interrupt-Controller jetzt Teil des Prozessors (als Core Peripheral), die Vector Table ist jetzt eine echte Vektortabelle, keine Sprungliste wie bei ARM7. Durch Automatismen zwischen Core und NVIC (auto register save r0..r3, lr, sp, pc) bei Interrupt Entry wird eine deutlich schnellere Ausführungszeit bei Interrupts erreicht. Der Interrupt Code muss sich nicht mehr selbst um die Sicherung der o.g. Register kümmern und eine besondere Konfiguration der Handler im Compiler entfällt. Sind vor Beendigung einer ISR (d.h. Rücksprung zum User Code) weitere Interrupts pending, so werden diese ausgeführt, ohne dass eine komplette pop-push-sequenz der Register notwendig ist. Schön beschrieben ist es hier im [http://www.hitex.com/fileadmin/pdf/insiders-guides/stm32/isg-stm32-v18d-scr.pdf Insider&#039;s Guide] unter 2.4.5 / Seite 20 (der Link funktioniert nicht mehr, direkt nach isg-stm32-v18d-scr.pdf googlen kann helfen...).&lt;br /&gt;
* Thumb-2 Befehlssatz, deutlich schneller als Thumb-1 und ebenso kompakt&lt;br /&gt;
* Weniger Pins für Debugging benötigt durch SWD&lt;br /&gt;
* Mehr Hardware Breakpoints machen debuggen einfacher&lt;br /&gt;
* Software ist einfacher weil die Umschaltung zwischen ARM Mode und Thumb Mode wegfällt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile gegenüber LPC1700 und LPC1300:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Flexiblere Gehäuseformen mit mehr Peripherie bei kleinen Gehäusen&lt;br /&gt;
* FW-Lib für alle STM32 gleich, alle AppNotes/Demos beziehen sich auf diese eine FW-Lib was die Entwicklung der eigenen Applikation sehr beschleunigt.&lt;br /&gt;
* Genauerer und flexiblerer ADC, insbesondere gegenüber LPC1300&lt;br /&gt;
* Flexiblere Varianten der Peripherie &amp;gt;&amp;gt; bei weniger einen deutlichen Preisvorteil&lt;br /&gt;
* ab 0,85 EUR (Stand 2010) Allerdings gibts den LPC1100 mit Cortex-M0 schon ab 0,65 $!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile gegenüber SAM3/4:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Fast alle Pins sind 5-Volt tolerant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile gegenüber anderen &amp;quot;Kleinen&amp;quot; wie z.B. PIC, Atmel usw.&#039;&#039;&#039;&lt;br /&gt;
* nahezu gleicher Preis bei Hobby Anwendungen&lt;br /&gt;
* 32 Bit ohne Umwege in Assembler rechenbar&lt;br /&gt;
* Schnelle direkte Offset-Adressierung ermöglicht effizienten Zugriff auf Stack-Variablen, lokal gespeicherte Flash-Konstanten, struct/Array-Elemente&lt;br /&gt;
* Einfache einheitliche Adressierung des gesamten Adressraums, d.h. Pointer auf Peripherieregister, RAM &amp;amp; Flash können exakt gleich behandelt werden, keinerlei Banking/Umschalt-Mechanismen erforderlich auch bei großem Flash/RAM&lt;br /&gt;
* Interrupt-Prioritäten und Prioritätsgruppen&lt;br /&gt;
* Effiziente Pointerarithmetik da Registerbreite=Adressbreite&lt;br /&gt;
* bessere Peripherie wie USB, Ethernet, Vielzahl an Timern&lt;br /&gt;
* der ARM-Core hat eine höhere Taktfrequenz und kann gleichzeitig mehr in weniger Takten berechnen&lt;br /&gt;
* Hardware-Division, bei einigen FPU zur effizienten float-Berechnung&lt;br /&gt;
* Mit größerem Flash/RAM verfügbar&lt;br /&gt;
* Code kann direkt aus dem RAM ausgeführt werden, Speicherschutz und privilegierter Ausführungsmodus können &amp;quot;Kernel&amp;quot;- vor &amp;quot;Anwendungs&amp;quot;-Code schützen, somit wird das dynamische Nachladen von Anwendungen aus externem Speicher effizient &amp;amp; sicher möglich&lt;br /&gt;
* ... und weitere 1000 Punkte ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Links&#039;&#039;&#039;&lt;br /&gt;
* [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf Code Size Analyse zwischen verschiedenen µC]&lt;br /&gt;
&lt;br /&gt;
=== Nachteile ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nachteil gegenüber LPC1700:&#039;&#039;&#039;&lt;br /&gt;
* STM32F1xx: nur 72 MHz statt 100 MHz (LPC1759: 120 MHz) Taktfrequenz; STM32F2xx hat diesen Nachteil nicht (ebenfalls 120MHz, STM32F4xx mit 180MHz)&lt;br /&gt;
* Der LPC1700 besitzt deutlich mehr Mechanismen, um die Auswirkung der Waitstates des Flash-ROMs auf Code- und Datenzugriffe zu reduzieren und das bedeutet mehr Performance bei gleicher Taktfrequenz. Beim STM32F2 entfällt dieser Nachteil wohl aufgrund des ART Accelerators. &lt;br /&gt;
* Alle LPC1xxx haben 32 Bit Timer. Bei den STM32 haben das nur die STM32F2xx und STM32F4xx (2 Stück)&lt;br /&gt;
* I2S Einheit von ST hat keinen FIFO und im 24/32Bit Modus müssen 2x16Bit Halbwörter übertragen werden. Wobei allgemein bei neuen ARM Prozessoren die vorhandenen DMA-Kanäle (basierend auf eigenen BUS-Kanälen und Speicherzugriffen) FIFO in beliebiger Größe bedeutet. (Gilt nicht bei bestimmten STM32F4xx)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nachteil für Hobby-Anwender&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Nicht direkt &amp;quot;Steckbrettauglich&amp;quot;, da kein DIL Gehäuse verfügbar. Der ebay-Shop dipmicro führt jedoch sehr günstige Lötadapter für Umsetzung von LQFP48 auf DIP48. QFP64 in 0.5mm Pinabstand und nicht 0.8mm wie AVR. Von NXP gibt es Cortex-M0 µC im DIL Gehäuse.&lt;br /&gt;
&lt;br /&gt;
* Viel Peripherie, Clocks müssen alle richtig eingestellt werden, ggf. Anpassung des Startup Codes usw.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Errata, Tipps und Tricks ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* AD-Wandler PA0: Im Errata steht, dass hier Fehler in der Wandlung entstehen könnten, also einen anderen Pin verwenden.&lt;br /&gt;
* CAN-Bus PD0/PD1: Remap geht erst ab der 100-Pin-Version. Steht im RM0008 unter 9.3.3.: &amp;quot;CAN1 alternate function remapping&amp;quot;. Alle Infos von RM0008 9.3.x sind interessant&lt;br /&gt;
* CAN und USB sind bei der F1 Serie nur bei der &amp;quot;◦Connectivity-Line&amp;quot; gleichzeitig nutzbar. Siehe Datenblätter.&lt;br /&gt;
* Mit internem RC-Oszillator kann die CPU mit maximal 64MHz betrieben werden. Mit einem externen Quarz sind dann 72MHz möglich.&lt;br /&gt;
* Für USB Betrieb muss die CPU mit 48MHz oder 72MHz betrieben werden (bei STM32F1xx).&lt;br /&gt;
* Der Idle Interrupt vom Usart wird zwar ausgelöst, aber nicht vom entsprechenden Statusflag angezeigt&lt;br /&gt;
* Der DMA fängt beim aktivieren immer von vorn an zu zählen, auch wenn er nur kurz angehalten wurde&lt;br /&gt;
* STM32F2xx hat kein Flash Size Register, bei STM32F4xx ist zwar ein flash Size Register beschrieben, kollidiert aber in der Adresse mit einem anderen Register&lt;br /&gt;
* Derivate mit internem EEPROM und nur einer Speicherbank haben das &amp;quot;Feature&amp;quot; bei write/erase des Data-Flashes (EEPROM) einen kompletten stall der code execution zu verursachen (inkl. ISRs, DMA). Desgleichen bei write/erase des internen Flash (ISP-routinen, EEPROM-Emulation).&lt;br /&gt;
* Der I2C hat diverse Fehler, welche im Errata des jeweiligen Modells (z.B. [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/errata_sheet/CD00238166.pdf STM32F105xx and STM32F107xx Errata sheet] ) zu finden sind. Workarounds hierzu finden sich in der Application Note [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/CD00209826.pdf AN2824]. Am Besten benutzt man jedoch die I2C Communication peripheral application library (CPAL) von ST ([http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF258336 STSW-STM32127])&lt;br /&gt;
* [http://blog.frankvh.com/category/stm32/ weitere undokumentierte Features]&lt;br /&gt;
* Interrupt-Flags in Statusregistern der diversen Peripherals wie der Timer müssen zu &#039;&#039;&#039;Beginn&#039;&#039;&#039; (bzw. möglichst weit vor dem Return) der ISR zurückgesetzt werden, da die ISR sonst eventuell 2x ausgeführt wird (Siehe [https://my.st.com/public/Faq/Lists/faqlst/DispForm.aspx?ID=143&amp;amp;level=1&amp;amp;objectid=141 STM32 FAQ] und [http://www.mikrocontroller.net/topic/312393#new Forum]).&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
==== Allgemein ====&lt;br /&gt;
Standard-GPIOs des STM32 und im speziellen das BSRR&lt;br /&gt;
* Die Register bestehen aus zwei Teilen, der obere Teil BR0-15 signalisiert durch ein gesetztes Bit die zu löschenden Bits im IO-ODR-Register,der untere Teil BS0-15 signalisiert durch ein gesetztes Bit die zu setzenden Bits. Besonders ist, wenn beide Bits (oberer und unterer Teil) gesetzt sind hat das Set-Bit Priorität. Durch eine geschickte Kombination von oberen und unteren Teil kann man Speicherzugriffe Sparen. z.B. kann man solch ein Konstrukt zum ändern der unteren 8 Bit des IO-ODR-Registers &amp;quot;uint32_t temp = GPIOC-&amp;gt;ODR &amp;amp; 0xff00; GPIOC-&amp;gt;ODR = temp | (Eingabe &amp;amp; 0x00ff)&amp;quot; um einen Speicherzugriff verkürzen zu &amp;quot;GPIOC-&amp;gt;BSRR = (Eingabe &amp;amp; 0x00ff) | ((0x00ff) &amp;lt;&amp;lt; 16)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== GCC ====&lt;br /&gt;
Um den GCC direkt zu verwenden (zB. mit selbstgebautem makefile), falls man das nicht von einer Entwicklungsumgebung machen lässt, siehe zunächst [[ARM GCC]]. STM32-spezifisches ist:&lt;br /&gt;
* Wird die [[#.E2.80.8ESTM32_Standard_Peripheral_Library|STM32 Standard Peripheral Library]] und ein Quarz verwendet, so muss noch per Präprozessor-Definition die Frequenz des Quarzes angegeben werden mittels z.B. -DHSE_VALUE=8000000 für 8MHz (wie auf dem STM32F4 Discovery).&lt;br /&gt;
&lt;br /&gt;
===== Startupcode &amp;amp; Linkerscript =====&lt;br /&gt;
* Damit der compilierte Code an den richtigen Stellen im Controller landet (d.h. dem Flash) muss man dem Linker ein Linkerscript mitgeben. Dies geht per &amp;quot;-T &#039;&#039;pfad_zum_linkerscript.ld&#039;&#039;&amp;quot; an den Linker-Befehl. Im Archiv der [[#.E2.80.8ESTM32_Standard_Peripheral_Library|STM32 Standard Peripheral Library]] befindet sich ein Beispiel-Linkerscript für die Atollic TrueSTUDIO IDE, dieses kann direkt mit dem GCC verwendet werden. Beispielsweise für den STM32F4 befindet sich das Script im Pfad &amp;quot;/STM32F4xx_DSP_StdPeriph_Lib_V1.1.0/Project/STM32F4xx_StdPeriph_Templates/TrueSTUDIO/STM324x7I_EVAL/stm32_flash.ld&amp;quot; des Archives.&lt;br /&gt;
* Damit beim Starten die richtigen Initialisierungen vorgenommen werden (wie globale Variablen und bei C++ Konstruktoren globaler Objekt-Instanzen) muss als erstes ein Startupcode laufen, der dann die main()-Funktion aufruft. Der Startupcode ist meistens in Assembler geschrieben, C-Code ist aber auch möglich. Im Archiv der [[#.E2.80.8ESTM32_Standard_Peripheral_Library|STM32 Standard Peripheral Library]] befindet sich ein Beispiel-Startupcode für die Atollic TrueSTUDIO IDE, dieser kann direkt mit dem GCC verwendet werden. Beispielsweise für den STM32F4 befindet sich der Code in Assemblerform im Pfad &amp;quot;/STM32F4xx_DSP_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/TrueSTUDIO/startup_stm32f40xx.s&amp;quot; des Archives. Der Assemblercode kann per arm-none-eabi-as (Flags s.o.) assembliert werden, die resultierende .o -Datei normal mitgelinkt.&lt;br /&gt;
&lt;br /&gt;
Zusammen bieten die beiden Dateien der Anwendung ein Standard-C-Interface, d.h. man kann wie gewohnt globale Variablen verwenden und seinen Code in die main()-Funktion schreiben.&lt;br /&gt;
&lt;br /&gt;
=== Tipps für Umsteiger von Atmel/PIC/8051 ===&lt;br /&gt;
* Prozessortakt hat unterschiedliche Taktquellen und eine PLL.&lt;br /&gt;
* Alle Peripheriemodule haben einen extra Clock, den man aktivieren muss.&lt;br /&gt;
* Wenn man z.B. einen UART benutzen möchte, so muss man den Clock vom UART, Alternate Function IO (AFIO) und dem GPIO-Port aktivieren.&lt;br /&gt;
* Ansonsten hat man nahezu doppelt so viele Möglichkeiten in den Peripheriemodulen.&lt;br /&gt;
* Interrupt-Flags müssen in der ISR selber gelöscht werden&lt;br /&gt;
* Forum zu [http://www.mikrocontroller.net/topic/175888 Interrupts vs. Events]&lt;br /&gt;
&lt;br /&gt;
=== Errata vom STM32F4xx die nicht im Errata von ST stehen ===&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/267439#2788478 Aktivieren von DMA], wenn mehr als 3 DMA Kanäle aktiviert werden, kann es sein dass die nicht alle korrekt bedient werden. Auch klappt der DMA mit dem FSMC nicht immer zuverlässig. [https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2Fcortex_mx_stm32%2FWarning%20limit%20simultaneous%20DMAs%20to%202&amp;amp;FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B&amp;amp;currentviews=811 siehe hier] [http://blog.frankvh.com/2012/01/13/stm32f2xx-stm32f4xx-dma-maximum-transactions/ und hier]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/260637#2700761 Nerviger Bug in &amp;quot;stm32f4xx.h&amp;quot;] Änderung Struktur GPIO_TypeDef&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/261690#2714754 Batterie wird leer gezogen], nur bei manchen Chips mit Rev. A&lt;br /&gt;
* [http://www.efton.sk/STM32/STM32F4xx_doc_errors.txt Liste von Dokumentations-Fehlern]&lt;br /&gt;
&lt;br /&gt;
== Bezugsquellen ==&lt;br /&gt;
&lt;br /&gt;
=== Controller ===&lt;br /&gt;
&lt;br /&gt;
Versand Europaweit im endasmedia.ch Shop&lt;br /&gt;
* STM32F105 Controller für 2.50€ [http://shop.endasmedia.ch/index.php?id_product=8&amp;amp;controller=product&amp;amp;id_lang=1 shop.endasmedia.ch]&lt;br /&gt;
&lt;br /&gt;
Versandhäuser für Privatpersonen&lt;br /&gt;
* [http://www.reichelt.de/STM-Controller/2/index.html?;ACTION=2;LA=2;GROUPID=2950; Reichelt]&lt;br /&gt;
* [http://darisusgmbh.de/shop/index.php?cat=c2692_ARM-Cortex.html Darisus]&lt;br /&gt;
* [http://www.hbe-shop.de HBE (Farnell Programm für Private)] &lt;br /&gt;
* [http://www.sander-electronic.de/be00069.html Sander]&lt;br /&gt;
* [http://www.tme.eu/de/katalog/index.phtml#cleanParameters%3D1%26search%3DSTM32F10%26bf_szukaj%3D+ TME] &lt;br /&gt;
* [http://teske-electronics.de/index.php?cPath=3_9_53 Teske electronics]&lt;br /&gt;
* [http://de.rs-online.com/web/c/halbleiter/prozessoren-und-mikrocontroller/mikrocontroller/?sort-by=default&amp;amp;sort-order=default&amp;amp;applied-dimensions=4294417325&amp;amp;lastAttributeSelectedBlock=4294425895 RS-Online]&lt;br /&gt;
&lt;br /&gt;
Gewerblich liefern natürlich viele wie EBV, [http://de.futureelectronics.com Future Electronics], Mouser, Farnell, Digikey usw...&lt;br /&gt;
&lt;br /&gt;
=== Evaluation Boards ===&lt;br /&gt;
* Siehe [[:Kategorie:ARM-Boards]]&lt;br /&gt;
* [http://shop.embedded-projects.net/index.php?module=artikel&amp;amp;action=gruppe&amp;amp;id=14 Im Shop von Embedded Projects]&lt;br /&gt;
* [http://www.watterott.com/de/Boards-Kits/ARM/ARM-Cortex-M3 Cortex M3 bei Watterott]&lt;br /&gt;
* [http://www.raisonance.com/~primer-starter-kits__microcontrollers__tool~tool__T018:4enfvamuxbtp.html Primer und Primer2 von Raisonance]&lt;br /&gt;
* [http://www.sander-electronic.de/es0028.html Sander Electronic]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/MP32F103-Stick:_Ein_Mini-Mikrocontroller-Board_mit_USB_und_bis_zu_4MB_Datenspeicher Artikel im Wiki, ARM mit USB und 4MB Speicher]&lt;br /&gt;
* [http://www.futurlec.com/STM32_Development_Board.shtml Futurlec Evalboard, ebenso Header-Board]&lt;br /&gt;
* [http://www.propox.com/products/t_174.html Propox, Header-Boards für 103R und 103V sowie Trägerplatine dafür]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/Cortex_M3_OCM3U Cortex M3 Artikel im Wiki]&lt;br /&gt;
* [http://olimex.com/dev/index.html STM32 bei Olimex]&lt;br /&gt;
* [http://de.farnell.com/jsp/displayProduct.jsp?sku=1824325&amp;amp;action=view&amp;amp;CMP=GRHS-1000962 STM32Discovery bei Farnell] Mikrocontroller Board (STM32F100RBT6B) mit onboard USB-Programming Interface für ca. 12,50€&lt;br /&gt;
* [http://www.de.rs-online.com/web/p/products/7458434/ STM32Discovery bei RS-Components] 12,65 € +MwSt.&lt;br /&gt;
* [http://www.segor.de/#Q=STM32 VL DISCOVERY] STM32 Discovery bei Segor&lt;br /&gt;
* [http://www.watterott.com/de/STM32F4Discovery STM32F4DISCOVERY] STM32F4 Cortex M4 Controller mit JTAG-Debugger auf der Platine bei Watterott für 16,66EUR.&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/443910/ STM32F4 Discovery Kit bei Conrad] 17,11 €&lt;br /&gt;
* [http://www.ST.com/stm32l152c-discovery STM32 L1 Discovery] mit kleiner LCD-Anzeige; [http://www.ST.com/web/en/catalog/tools/PF250990 Weitere Informationen dazu]&lt;br /&gt;
* [http://www.mcu-raisonance.com/~open4-development-platform__microcontrollers__tool~tool__T018:g65gu6ghg2n.html/ Open 4 oder auch genannt Evo-Primer]&lt;br /&gt;
* [http://www.wayengineer.com/index.php?main_page=index&amp;amp;cPath=50_66&amp;amp;page=1&amp;amp;sort=3a WayEngineer]&lt;br /&gt;
* [http://thinkembedded.ch/ST-STMicroelectronics:::24.html Im Thinkembedded Shop] in der Schweiz / DiscoveryF4, div. ETT und Olimex Boarde ab 20,18 CHF / 16,15 EUR (inkl. MwSt.) zzgl. Versandkosten&lt;br /&gt;
* [http://shop.myavr.de/ARM-Produktlinie/STM32F4-Discovery.htm?sp=article.sp.php&amp;amp;artID=200072 Im myAVR Shop] DiscoveryF4 mit möglichem Zubehör 16,45 EUR (inkl. MwSt.) zzgl. Versandkosten&lt;br /&gt;
* [http://www.keil.com/boards/cortexm.asp Keil/ARM Demoboards]&lt;br /&gt;
* [http://www.phytec.de Phytec]&lt;br /&gt;
* [http://shop.myavr.de/index.php?sp=artlist_kat.sp.php&amp;amp;katID=37 verschiedene ARM Produkte und Erweiterungen bei myAVR]&lt;br /&gt;
* [http://re.reworld.eu/de/produkte/s64dil-405/index.htm S64DIL-405 STM32Fxxx ARM Cortex M3 Mikrocontrollermodul mit USB-Schnittstelle, Steckbretttauglich] (Leerplatine eignet sich auch für STM32F1xx Prozessoren.)&lt;br /&gt;
* [http://www.amazon.de/STM32F4-DISCOVERY-STM32F429-Cortex-M4-Development/dp/B00HGG0KHY STM32F429 DISCOVERY Cortex M4 mit 2,4&amp;quot; Touch-TFT, 3-Achs Sensor, 64 MBit SDRAM ab ~25 EUR bei Amazon, Ebay u.a.]&lt;br /&gt;
&lt;br /&gt;
== Weblinks, Foren, Communities, Tutorials ==&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks Tutorial]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/173753 Diskussion zum Artikel]&lt;br /&gt;
* [http://www.mikrocontroller.net/forum/mikrocontroller-elektronik?filter=ARM*+STM32*+Cortex* Suche im Forum]&lt;br /&gt;
* [[STM32 für Einsteiger]]&lt;br /&gt;
* [[STM32 CooCox Installation]]&lt;br /&gt;
* [https://my.st.com/public/STe2ecommunities/mcu/Lists/ARM%20CortexM3%20STM32/AllItems.aspx Forum auf der ST Homepage] &lt;br /&gt;
* [http://www.stm32circle.com/hom/index.php STM32 Community] &lt;br /&gt;
*[http://joe-c.de/pages/posts/einstieg_mikrocontroller_stm32f103_101.php Einstieg:  STM32board mit Kamera (deutsch)] &lt;br /&gt;
* [http://www.ebv.com/fileadmin/products/Press_Print/Brochures/Product_Brochures/EBV_Cortex%20Collection_V2.pdf Übersicht der Cortex Prozessoren und deren Hersteller (nicht nur ST, von EBV)]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/258652 Tutorial]&lt;br /&gt;
* [http://diller-technologies.de/stm32_wide.html STM32 Tutorial in Deutsch von Diller Technologies]&lt;br /&gt;
* [http://mySTM32.de STM32 C und C++ Tutorial in Deutsch ]&lt;br /&gt;
* [http://mikrocontroller.bplaced.net STM32F4 Quellcode-Librarys und CooCox-Projekte in Deutsch ]&lt;br /&gt;
* [http://myugl.de Tutorial für Grafik-Librarys und SiSy-Projekte in Deutsch ]&lt;br /&gt;
* [http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1533/PF251717 MicroXplorer MCU graphical configuration tool ]&lt;br /&gt;
* [http://www.harerod.de/CoreMark_STM32.pdf Testbericht über CoreMark 1.0 auf Cortex-M3/M4 mit verschiedenen Compiler- und MCU-Einstellungen]&lt;br /&gt;
* [http://klaus4.blogspot.com/2014/05/stm32f4-discovery-mit-opensource.html STM32-Toolchain mit Eclipse CDT 4.3, GnuArmEclipse, OpenOCD 0.8.0, Gnu Arm GCC 4.8, STM32CubeMX]&lt;br /&gt;
* [http://libopencm3.org/wiki/Main_Page libopenmc3 OpenSource libs für STM32 und ähnliche] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Kategorie:ARM]]&lt;br /&gt;
[[Kategorie:STM32]]&lt;br /&gt;
[[Kategorie:Mikrocontroller]]&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=STM32&amp;diff=93644</id>
		<title>STM32</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=STM32&amp;diff=93644"/>
		<updated>2016-08-17T06:08:08Z</updated>

		<summary type="html">&lt;p&gt;Boregard: lCorrected link to stm32flash (project moved to sourceforge)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;STM32 ist eine Mikrocontroller-Familie von [http://www.st.com/mcu/inchtml-pages-stm32.html ST] mit einer 32-Bit [[ARM]] Cortex-M0/M3/M4 CPU. Diese Architektur ist speziell für den Einsatz in Mikrocontrollern neu entwickelt und löst damit die bisherigen ARM7-basierten Controller weitestgehend ab. Den STM32 gibt es von ST in unzähligen Varianten mit variabler Peripherie und verschiedenen Gehäusegrößen und -formen. Durch die geringe Chipfläche des Cores ist es ST möglich, eine 32 Bit-CPU für weniger als 1&amp;amp;nbsp;€ anzubieten.&lt;br /&gt;
&lt;br /&gt;
[[Bild:stm32F103xc.png|thumb|right|340px|Blockdiagramm STM32F103xC/D/E]]&lt;br /&gt;
&lt;br /&gt;
== STM32-Familien ==&lt;br /&gt;
&lt;br /&gt;
Bisher gibt es elf STM32-Familien:&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f0-series.html STM32F0]&lt;br /&gt;
** Cortex M0&lt;br /&gt;
** Mikrocontroller zum Einstieg&lt;br /&gt;
** Bis 48MHz (38 DMIPS)&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f1-series.html STM32F1]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** Bis 72MHz (61 DMIPS)&lt;br /&gt;
**Verschiedene Unterfamilien:&lt;br /&gt;
*** Connectivity line&lt;br /&gt;
*** Performance line&lt;br /&gt;
*** USB Access line&lt;br /&gt;
*** Access Line&lt;br /&gt;
*** Value line&lt;br /&gt;
* [http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1575 STM32F2]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** Bis 120MHz (150 DMIPS)&lt;br /&gt;
** Wie die STM32F1 Serie, Camera-Interface, 32-Bit Timer, Crypto-Engine...&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f3-series.html STM32F3]&lt;br /&gt;
** Cortex M4F&lt;br /&gt;
** DSP und FPU&lt;br /&gt;
** Bis 72MHz (90 DMIPS)&lt;br /&gt;
** Fast 12-bit 5 MSPS and precise 16-bit sigma-delta ADCs&lt;br /&gt;
** Touch sensing controller (TSC)&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f4-series.html STM32F4]&lt;br /&gt;
** Cortex M4F&lt;br /&gt;
** DSP und FPU&lt;br /&gt;
** Bis 180MHz (225 DMIPS)&lt;br /&gt;
** Bis zu 2MB Flash&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f7-series.html STM32F7]&lt;br /&gt;
** Cortex M7&lt;br /&gt;
** DSP und FPU (Single/Double Precision)&lt;br /&gt;
** Bis 216MHz (462 DMIPS)&lt;br /&gt;
** Mehr Peripherie: SPDIF-IN/OUT, SAI, HDMI-CEC, Dual Quad SPI&lt;br /&gt;
** On-Chip Grafik-LCD-Controller&lt;br /&gt;
** DMAs auch für Ethernet, USB und Chrom-ART&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32l0-series.html STM32L0]&lt;br /&gt;
** Cortex M0+&lt;br /&gt;
** Low Power &lt;br /&gt;
** mit LCD Treiber&lt;br /&gt;
** Bis 32MHz (26 DMIPS)&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32l1-series.html STM32L1]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** Low Power &lt;br /&gt;
** mit LCD Treiber&lt;br /&gt;
** Bis 32MHz (33 DMIPS)&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32l4-series.html STM32L4]&lt;br /&gt;
** Cortex M4F&lt;br /&gt;
** DSP und FPU (Single Precision)&lt;br /&gt;
** Ultra Low Power (bis zu 8nA mit I/O Wake-Up)&lt;br /&gt;
** Bis 80MHz (100 DMIPS)&lt;br /&gt;
** 128KB...1MB Flash, 64/128KB SRAM&lt;br /&gt;
** optional Segment-LCD Treiber&lt;br /&gt;
** Quarzloser Betrieb auch mit CAN (1% ab Werk) oder USB (Synch über Host) möglich&lt;br /&gt;
** Digital-Filter für ΣΔ-Modulatoren&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32t-series.html STM32T]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** 72MHz&lt;br /&gt;
** Touch Sensing&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32w-series.html STM32W]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** BIS 24MHz&lt;br /&gt;
** RF-MCU &lt;br /&gt;
[http://www.st.com/web/en/catalog/mmc/FM141/SC1169 Hier eine Übersicht zum Auswählen eines STM32Fxxx]&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
* Cortex-M0 / Cortex-M3 / Cortex-M4F / Cortex-M7 Kern (mit FPU)&lt;br /&gt;
* 16KB ... 2MB  [[Flash-ROM]]&lt;br /&gt;
* 4KB ... 512KB [[Speicher#SRAM|SRAM]]&lt;br /&gt;
* 2KB ... 16KB [[Speicher#EEPROM|EEPROM]] (STM32L)&lt;br /&gt;
* SDRAM-Controller bei den [http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1577/LN1806 STM32F42xxx und STM32F43xxx], bis 512 MByte externer SDRAM addressierbar&lt;br /&gt;
* 512 one-time programmable Bytes(STM32F2/4)&lt;br /&gt;
* [[IC-Gehäuseformen | Gehäuse]] 20 ... 216 Pins als LCSP, TSSOP, QFN, LQFP und BGA&lt;br /&gt;
* Derzeit sind &#039;&#039;&#039;über 600&#039;&#039;&#039; [http://www.st.com/web/en/catalog/mmc/FM141/SC1169 STM32 Derivate/Varianten verfügbar]&lt;br /&gt;
* Bis 72MHz CPU-Takt, bis 120MHz beim STM32F2xx, bis 168/180 MHz beim STM32F4xx, wobei eine spezielle Prefetch-Hardware bis 120/168 MHz eine Geschwindigkeit erzielt, die 0 Wait-States entspricht. Der CPU-Takt wird über einen Multiplikator aus dem internen RC-Takt oder einem externen Quarz-Takt abgeleitet. Bis 216MHz CPU-Takt bei STM32F7xx.&lt;br /&gt;
* Externes Businterface (nur bei Gehäusen ab 100 Pin und nur bei STM32F4, STM32F2 und STM32F1 Performance line)&lt;br /&gt;
* LCD Treiber für bis zu 8x40 Segmente (nicht beim STM32F2xx)&lt;br /&gt;
* TFT Treiber bei [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f4-series/stm32f429-439.html STM32F429/STM32F439] [http://www2.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f4-series/stm32f469-479.html STM32F469/STM32F479]&lt;br /&gt;
* Spannungsbereich 1,65 ... 3,6V, nur eine Betriebsspannung nötig&lt;br /&gt;
* Temperaturbereich bis 125 °C&lt;br /&gt;
* Bis zu 168 IOs, viele davon [[Pegelwandler|5V-tolerant]]&lt;br /&gt;
* Interner, kalibrierter RC-Oszillator mit 8MHz (16MHz bei STM32F2/F4xx)&lt;br /&gt;
* Externer Quarz&lt;br /&gt;
* Real Time Clock mit eigenem Quarz und separater Stromversorgung&lt;br /&gt;
* Bis zu 16 [[Timer]], je Timer bis zu 4 IC/OC/PWM Ausgänge. Davon 2x Motion Control Timer (bei STM32F103xF/G), (bis zu 32 PWM Ausgänge)&lt;br /&gt;
* Systick Counter&lt;br /&gt;
* Bis zu 3 12-Bit [[AD-Wandler]] mit insgesamt 24 AD-Eingängen, integrierter [[Temperatursensor]], Referenzspannung Vrefint und VBatt Spannungsmessung (STM32F4xx)&lt;br /&gt;
* Bis zu 2 12-Bit [[DA-Wandler]] (bis zu 3 beim STM32F3xx)&lt;br /&gt;
* Bis zu 2 [[DMA]] Controller mit bis zu 12 Kanälen (16 beim STM32F2/4xx)&lt;br /&gt;
* Bis zu 2x [[I2C|I²C]]&lt;br /&gt;
* Bis zu 5x [[UART|USART]] mit LIN, IrDA und Modem Control (bis zu 8 beim STM32F2/F4xx)&lt;br /&gt;
* Bis zu 3x [[SPI]] (bis zu 6 beim STM32F4xx)&lt;br /&gt;
* Bis zu 2x [[I2S|I²S]]&lt;br /&gt;
* Bis zu 2x [[CAN#STMicroelectronics STM32 (Cortex M3/M4)|CAN]]&lt;br /&gt;
* Hardware [[CRC]] Unit, bei der STM32F3xx Serie mit einem einstellbaren Polynom &lt;br /&gt;
* Unique device ID register (96 Bits)&lt;br /&gt;
* TRNG - True Random Number Generator (STM32F2/4xx), basierend auf analoger Schaltung&lt;br /&gt;
* Cryptographic Processor (CRYP) (STM32F2/4xx)&lt;br /&gt;
* Hash Processor (HASH) (STM32F2/4xx)&lt;br /&gt;
* Kamera-Interface (DCMI) (STM32F2/4xx)&lt;br /&gt;
* [[USB]] 2.0 Full Speed / OTG&lt;br /&gt;
* [[USB]] 2.0 Hi Speed OTG mit extra PHY-Chip (STM32F2/4xx)&lt;br /&gt;
* SDIO Interface (z.B. SD-Card Reader)&lt;br /&gt;
* Ethernet&lt;br /&gt;
* Watchdog mit Window-Mode&lt;br /&gt;
* Jedes Peripheriemodul ist separat einschaltbar, wodurch sich erheblich [[Ultra low power|Strom sparen]] lässt&lt;br /&gt;
* [[JTAG]] und SWD (Serial Wire Debug) Interface&lt;br /&gt;
* Bis zu 6 Hardware-Breakpoints für Debuggen&lt;br /&gt;
* und vieles mehr ...&lt;br /&gt;
&lt;br /&gt;
== Struktur der Dokumentation ==&lt;br /&gt;
Die Dokumentation der STM32 ist im Vergleich zur [[AVR]]-Familie umfangreicher und komplexer. Sie teilt sich in mehrere Dokumente auf.&lt;br /&gt;
Als Beispiel der Dokumentation soll stellvertretend der [http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1031/LN1565/PF164486 STM32F103RC] genannt werden. Die Seite von ST beinhaltet alle nötigen Informationen passend zu diesem Prozessor.&lt;br /&gt;
&lt;br /&gt;
Diese Dokumente von ST beschreiben den Controller:&lt;br /&gt;
&lt;br /&gt;
* Im [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00191185.pdf STM32F103xC/D/E Datasheet] sind die speziellen Eigenschaften einer bestimmten Modellreihe beschrieben und die exakten Daten und Pinouts aufgeführt, sowie die Zuordnung Chipname - Flash/RAM-Größe. Die Peripheriemodule werden nur aufgeführt, nicht detailliert beschrieben.&lt;br /&gt;
* Im [http://www.st.com/content/ccc/resource/technical/document/reference_manual/59/b9/ba/7f/11/af/43/d5/CD00171190.pdf/files/CD00171190.pdf/jcr:content/translations/en.CD00171190.pdf Reference Manual (RM0008)] sind alle Peripheriemodule der jeweiligen STM32-Controllerfamilie im Detail beschrieben.&lt;br /&gt;
* Das [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0403c/index.html ARMv7M Architecture Reference Manual] beschreibt detailliert den Prozessorkern, wie das Exception Model, die CPU Instruktionen inklusive Encoding, etc.&lt;br /&gt;
* Das [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/programming_manual/CD00228163.pdf STM32 Cortex-M3 Programming Manual] ist eine Zusammenfassung des ARMv7M Architecture Reference Manual bezogen auf die STM32.&lt;br /&gt;
* Wer nicht die ST Firmware-Library verwendet, der benötigt zusätzlich das [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/programming_manual/CD00283419.pdf Flash Programming Manual] für die Betriebsart des Flash-ROMs, d.h. die frequenzabhängige Konfiguration der Waitstates.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich sollten auch die [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/errata_sheet/CD00197763.pdf Errata Sheets] beachtet werden. Empfohlen sei auch die Appnote &amp;quot;[http://www.st.com/web/en/resource/technical/document/application_note/CD00164185.pdf AN2586 Getting started with STM32F10xxx hardware development]&amp;quot;.&lt;br /&gt;
Die jeweiligen Dokumentations-PDFs sind auf der Produktseite von ST eines jeden Mikrocontrollers verlinkt.&lt;br /&gt;
&lt;br /&gt;
== Hardware Zugriffs-Libraries ==&lt;br /&gt;
=== CMSIS ===&lt;br /&gt;
&lt;br /&gt;
Die CMSIS (ARM® &#039;&#039;&#039;C&#039;&#039;&#039;ortex™ &#039;&#039;&#039;M&#039;&#039;&#039;icrocontroller &#039;&#039;&#039;S&#039;&#039;&#039;oftware &#039;&#039;&#039;I&#039;&#039;&#039;nterface &#039;&#039;&#039;S&#039;&#039;&#039;tandard) ist eine Library von ARM für den Zugriff auf die herstellerübergreifenden Funktionen des ARM-Cores. Hierzu gehört bei den Cortex-M4F-Cores auch die DSP und Floating-Point Funktionalität. Weiterhin existieren eine Zahl von Helferfunktionen für den NVIC, den Sys-Tick-Counter, sowie eine SystemInit-Funktion, welche sich um die PLL kümmert. &lt;br /&gt;
&lt;br /&gt;
Im Rahmen des CMSIS-Standards ([http://www.onARM.com www.onARM.com]) wurden die Headerdateien standardisiert, der Zugriff auf die Register erfolgt per &#039;&#039;&#039;Peripheral-&amp;gt;Register&#039;&#039;&#039;. Die CMSIS C-Dateien bzw. Header enthalten auch Anpassungen für die verschiedenen Compiler. Die Portierung eines Real-Time-Betriebsystems sollte unter Verwendung der CMSIS, für Chips der verschiedenen Hersteller, stark vereinfacht möglich sein (z.B. einheitliche Adressen für Core-Hardware/Sys-Tick-Counter).&lt;br /&gt;
&lt;br /&gt;
Die CMSIS ist im Download der ‎STM32 Standard Peripheral Library enthalten. Die Compiler-Hersteller liefern eine jeweils zur ihrer Tool-Version passende bzw. geprüfte Library (incl. CMSIS) aus. Diese Libs können, gegenüber den Downloads beim Chip-Hersteller, auch ältere Version beinhalten.&lt;br /&gt;
&lt;br /&gt;
=== ‎STM32 Standard Peripheral Library ===&lt;br /&gt;
&lt;br /&gt;
ST bietet für jede Controller-Familie eine umfangreiche zur CMSIS passende Peripherie-Bibliothek. Alle Funktionen um die Peripherie zu benutzen sind gekapselt in einfache Strukturen und Funktionsaufrufe. Somit muss man sich nicht selbst um die Peripherie-Register kümmern. Diese Library und ihre Dokumentation setzen das grundlegende Verständnis der Funktion des jeweiligen Peripheriemoduls voraus, wie es die o.a. Referenz und diverse Appnotes vermitteln. Die Library beinhaltet außerdem für fast jede Peripherie mehrere Beispiele.&lt;br /&gt;
Für die USB Schnittstelle gibt es noch eine extra Library, genauso wie für Ethernet.&lt;br /&gt;
&lt;br /&gt;
Auf der &amp;quot;Design Resources&amp;quot; Seite der Produktseite von ST eines jeden STM32 Mikrocontrollers kann die Library für den jeweiligen Controller heruntergeladen werden, z.B. [http://www.st.com/web/en/catalog/tools/PF257890 hier für den o.g. STM32F103RC].&lt;br /&gt;
&lt;br /&gt;
Library für STM32F4xx: [http://www.st.com/web/en/catalog/tools/PF257901# STSW-STM32065 STM32F4 DSP and standard peripherals library]&lt;br /&gt;
&lt;br /&gt;
=== ‎STM32Cube / HAL ===&lt;br /&gt;
&lt;br /&gt;
Wird in Zukunft die Standard Library ablösen.&lt;br /&gt;
* http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1897&lt;br /&gt;
&lt;br /&gt;
== Programmierung ==&lt;br /&gt;
Zur Programmierung der STM32 gibt es verschiedene Möglichkeiten, sowohl kommerzielle proprietäre als auch mit Freier Software.&lt;br /&gt;
&lt;br /&gt;
Der GCC (in seinen verschiedenen Binärdistributionen) ist der einzige ARM Compiler der [http://de.wikipedia.org/wiki/C%2B%2B11 C++11] unterstützt.&lt;br /&gt;
&lt;br /&gt;
=== Freie Software/Freeware ===&lt;br /&gt;
==== Selber zusammenstellen ====&lt;br /&gt;
Man nehme...:&lt;br /&gt;
* Eine Entwicklungsumgebung nach Wahl:&lt;br /&gt;
** [http://www.eclipse.org Eclipse] mit [http://www.eclipse.org/cdt/ C/C++ Development Tooling] und [http://gnuarmeclipse.livius.net/blog/ GNU ARM Plug-in] (Bei Verwendung vom GCC-ARM-Embedded als Toolchain &amp;quot;Sourcery G++ Lite&amp;quot; auswählen, dieser sieht für eclipse gleich aus) (Linux, Windows)&lt;br /&gt;
** [http://netbeans.org/ Netbeans] mit [http://plugins.netbeans.org/plugin/37426/gdbserver GDBserver-Plugin] (Linux, Windows)&lt;br /&gt;
** [http://www.kdevelop.org/ KDevelop] (Linux)&lt;br /&gt;
** [http://www.geany.org/ Geany] (Linux, Windows)&lt;br /&gt;
** Oder ein einfacher Texteditor&lt;br /&gt;
* Einen C,C++ Compiler:&lt;br /&gt;
** Eine der [[ARM_GCC#GCC_Bin.C3.A4rdistributionen|GCC-Binärdistributionen]], siehe auch [[#GCC|GCC]] (je nach Distribution Linux, Windows)&lt;br /&gt;
* Programmiersoftware zum Flashen des Target:&lt;br /&gt;
** [http://openocd.sourceforge.net/ OpenOCD] unterstützt viele Debug/Programmier-Adapter (Linux, Windows)&lt;br /&gt;
** [https://github.com/texane/stlink Texane stlink] funktioniert gut mit den ST-Link Adaptern wie sie zB. auf den STM32 Discovery Boards zu finden sind (Linux)&lt;br /&gt;
** Turtelizer2 oder andere JTAG Programmieradapter&lt;br /&gt;
** Bei Verwendung eines Segger J-Link, den [http://www.segger.com/admin/uploads/productDocs/UM08005_JLinkGDBServer.pdf Segger GDB-Server] in Verbindung mit dem beim GCC mitgelieferten GDB (Linux, Windows).&lt;br /&gt;
&lt;br /&gt;
==== Komplette IDEs ====&lt;br /&gt;
* [https://developer.mbed.org/platforms ARM mbed Developer Site] ist der ultimative Compiler für denjenigen, der nur mal schnüffeln will. Doppelklick auf das gewünschte Board, Beispielprogramm (rechts am Rand auswählen), kompilieren und über USB hochladen. Schon blinkt es! Wenn man ein Projekt dann lieber doch lokal bearbeiten möchte (z.B. um einen Debugger zu benutzen) dann kann man die Projekte über die Export Funktion herunterladen. Es werden verschiedene IDE sowie ein gcc Kommandozeilenprojekt unterstützt. Die mbed Library ist quelloffen und auf github gehostet.&lt;br /&gt;
* [http://www.codesourcery.com/sgpp/lite_edition.html Codesourcery Lite Edition] Mit dieser Umgebung muss man sich anfreunden können, was mir bisher nicht gelungen ist. Es sind nur wenig Beispielprojekte verfügbar. Nicht mehr kostenlos verfügbar.&lt;br /&gt;
* [http://www.coocox.org/ Coocox Eclipse IDE] kostenlose IDE für STM32F0/F1/F2/F3/F4. Basiert auf der ARM-GCC Toolchain und es gibt eine breite Unterstützung. Es ist sogar ein freies RTOS verfügbar. Beim Start der IDE muss man geduldig sein, was jedoch für alle Eclipse basierten IDEs gilt. Eine gute Wahl ohne Limits mit breiter Debugger-Unterstützung. Hilfreiche Infos gibt es [http://www.mikrocontroller.net/topic/214719?goto=new#2228482 hier] und [http://www.mikrocontroller.net/topic/214719?goto=new#2229943 hier] im Forum, Artikel: [[STM32 CooCox Installation]] &lt;br /&gt;
* [http://emide.org/ emIDE] kostenlose IDE von Segger. Die emIDE basiert auf Code::Blocks. Sie ist auf ARM-GCC aufgebaut und unterstützt eine große Zahl an unterschiedlichen JTAG/SWD Debugger - natürlich auch den J-Link aus gleichem Hause.  &lt;br /&gt;
* [http://www.emblocks.org EmBlocks] kostenlose IDE, Code::Blocks basiert, unterstützt STM32 L1/F0/F1/F2/F3/F4/W, integrierter Compiler (ARM-GCC), integrierter GDB-Debugger, Jlink/ST-Link, System view (Peripherie Register anzeigen) beim Debuggen, Project Wizard (Eigene Wizards können mit Squirrel geschrieben werden), Basiert auf Code::Blocks und gefällt mir recht gut da man ihn fast so gut nutzen kann wie die µVision von Keil, jedoch ohne deren Limit, http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks]&lt;br /&gt;
** heisst jetzt EmBitz beta 0.42 -&amp;gt; http://www.emblocks.org/web/downloads-main&lt;br /&gt;
* [http://cms.seng.de/service-support/downloads/ Entwicklungsumgebung GNU/Linux] für STM32F1 mit OpenOCD und Olimex ARM-USB-OCD-H, Bedienung über Eclipse IDE oder Kommandozeile.&lt;br /&gt;
* [http://www.openstm32.org/blog1-System-Workbench-for-STM32 System Workbench for STM32] (SW4STM32) ist eine uneingeschränkte und kostenlose IDE. Sie wird von [http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1533/PF261797 ST] offiziell unterstützt. Die Entwicklungsumgebung ist in der Version 1.0 seit 5.2.2015 erhältlich. Seit Februar 2016 ist eine Version für Linux verfügbar.&lt;br /&gt;
&lt;br /&gt;
==== Andere Programmiersprachen ====&lt;br /&gt;
&lt;br /&gt;
* [http://mecrisp.sourceforge.net Mecrisp-Stellaris], eine native Forth-Implementation für ARM Cortex M0/M3/M4. Es werden bereits mehrere STM32 Targets unterstützt und neue Portierungen sind herzlich willkommen. Auch Chips von TI, NXP und Freescale sind im aktuellen Paket enthalten.&lt;br /&gt;
&lt;br /&gt;
=== Kommerzielle Umgebungen ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.keil.com/arm/mdk.asp Keil µVision] (Demo max. 32KB Code/Free für STM32F0/STM32L0): Die sehr komfortable µVison IDE ist neben dem ARM Compiler per Menue auch für einen beliebigen GNU-Compiler konfigurierbar. Damit besteht das 32k-Limit nur noch für den integrierten Debugger / Simulator. In Verbindung mit einem ULINK2 ist die Umgebung schon sehr einfach zu bedienen - leider ist der Compiler mit großen Abstand der langsamste den ich je nutzte da er keine parallel Option wie der GNU-CC besitzt. Mit der µVision lässt sich kein fremdes File in den Controller in den Flashspeicher des Controllers schreiben. Für den Anfänger eine gute Wahl. Der Preis ist jedoch ein guter Grund auf andere freie IDEs zu wechseln. µVison selbst kann kostenlos mit dem MDK-Evaluationkit heruntergeladen werden. [https://www.keil.com/arm/demo/eval/arm.htm#DOWNLOAD download] Wer sich nur auf STM32 Cortex M0/L0 beschränkt kann die Keil MDK auch ohne 32K Begrenzung frei nutzen. [http://www2.keil.com/stmicroelectronics-stm32/mdk download]&lt;br /&gt;
* [http://www.iar.com/en/Products/IAR-Embedded-Workbench/ IAR-Embedded-Workbench] (Demo max. 32KB Code) [http://supp.iar.com/Download/SW/?item=EWARM-EVAL download]&lt;br /&gt;
* [http://www.isystem.com/download/winideaopen winIDEAOpen] Keine Code Limitierung, GCC und Testwerkzeug beinhaltet. Läuft mit dem iTag50 Adapter, Segger J-Link und dem ST-Link&lt;br /&gt;
* [http://www.raisonance.com Raisonance Ride7] (GCC Compiler, kostenlose Version auf Debugging von max. 32KB Code limitiert, keine Limitierung beim Complilieren)&lt;br /&gt;
* [http://www.atollic.com Atollic TrueStudio], auf Eclipse/GCC basierend. Aktuell ist V 5.4, diese hat kein Codesize Limit. Eingeschränkt sind Debug Optionen wie Variablen LiveWatch oder Tracing, was aber auch &#039;bessere&#039; Debugprobes erforderlich macht. Das Semihosting (printf über SWD/JTAG) fällt leider auch unter die Restriktionen der Lite Version. Atollic TrueStudio unterstützt viele verschiedene Hersteller von ARM MCUs, dadurch ist das Paket sehr umfangreich. In der Lite Version muss man sich beim Start für ein paar Sekunden einen Dialog mit dem Upgrade Angebot gefallen lassen.&lt;br /&gt;
* [http://www.rowley.co.uk/arm/ Rowley Crossworks] (Demo 30 Tage unbeschränkt, 150$ für nichtkommerzielle Nutzung, auf GCC basierend). Mir ist nicht klar warum man für diese IDE Geld bezahlen soll. Der GNU-Compiler ist frei und die Entwicklungsumgebungen die auf Eclipse basieren, ebenfalls. Allerdings ist diese Einstellungsarbeit schon was für den etwas erfahrenen Entwickler.&lt;br /&gt;
* [http://www.code-red-tech.com Code Red] (GCC basierend)&lt;br /&gt;
* [http://www.sisy.de/index.php?id=17&amp;amp;no_cache=1 SiSy ARM oder SiSy Micrcontroller++] (Demo verfügbar keine Gößenbegrenzung, basiert auf GNU-Compiler, grafische Programmierung mit UML möglich, integrierter Debugger)&lt;br /&gt;
* [http://www.comsytec.eu/epsdebugger.php EPS Debugger Plugin, für STM32 Development mit Code::Blocks]&lt;br /&gt;
* [http://www.mikroe.com MikroE bietet neben Pascal und Basic auch C mit kompletter Oberfläche mit Compiler etc. pp relativ günstig]&lt;br /&gt;
&lt;br /&gt;
=== STM32CubeMX ===&lt;br /&gt;
Dies ist eine Software von ST selbst, die die Auswahl und Konfiguration von STM32-Mikrocontrollern vereinfacht:&lt;br /&gt;
* Auswahl der Controller oder Entwicklungsboards mit einer parametrischen Suche&lt;br /&gt;
* grafische Konfiguration der Pins und Alternate Functions (inkl. Überprüfung auf Kollisionen - bei Entwicklungsboards sind gewisse Pins schon vorkonfiguriert und werden angezeigt)&lt;br /&gt;
* grafische Konfiguration des Clock-Trees&lt;br /&gt;
* Generierung von C-Code entsprechend der grafischen Konfiguration. Dieser funktioniert nur mit den neuen STM32CubeFx Libraries, nicht mit den alten Standard Peripheral Libraries.&lt;br /&gt;
* Simulation des Strom-Verbrauchs unter Auswahl verschiedenster Stromquellen und Batterien&lt;br /&gt;
Die Software kann [http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF259242 bei ST heruntergeladen] werden. Sie wird im Windows Executable Format angeboten und erweckt daher den Eindruck, ausschließlich für Windows geeignet zu sein, ist aber tatsächlich Java-basiert und daher seit Version 4.13 vollständig betriebssystem-unabhängig.&lt;br /&gt;
==== STM32CubeMX unter Linux ====&lt;br /&gt;
Ab der Version 4.13 liegt jetzt ein Linux-Installer mit bei.&lt;br /&gt;
&lt;br /&gt;
Unter Linux kann STM32CubeMX installiert werden, indem man das heruntergeladene .zip-Archiv entpackt, und den enthaltenen Installer per Java über ein Terminal startet:&lt;br /&gt;
&amp;lt;pre&amp;gt;java -jar SetupSTM32CubeMX-4.5.0.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Anlegen der Desktop/Startmenü-Shortcuts funktioniert unter Linux nicht richtig und kann daher deaktiviert werden. Um STM32CubeMX nach der Installation zu starten, wechselt man im Terminal in den Installationsort und gibt ein:&lt;br /&gt;
&amp;lt;pre&amp;gt;java -jar STM32CubeMX.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
Damit das funktioniert, muss die Oracle Java Runtime Environment 1.8 installiert sein (Siehe z.B. [http://wiki.ubuntuusers.de/Java/Installation/Oracle_Java/Java_8#Java-8-JRE hier] für Ubuntu). Nicht benötigt wird wine.&lt;br /&gt;
&lt;br /&gt;
Update:&lt;br /&gt;
In der Datei stm32cubemx.zip  md5sum: 86217b9f14b99b1133bda6e87dbd1270&lt;br /&gt;
http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF259242?icmp=pf259242_pron_pr_jun2014&amp;amp;sc=stm32cube-pr6#&lt;br /&gt;
befindet sich u.a. SetupSTM32CubeMX-4.13.0.linux (ist ein ELF 64-bit). Mit Ausführen wird cubemx standalone (nicht in Eclipse) im Pfad der Wahl installiert. Es reicht Java 1.7.xx, hier java -version: java version &amp;quot;1.7.0_95&amp;quot;&lt;br /&gt;
OpenJDK Runtime Environment (IcedTea 2.6.4) (suse-24.30.3-x86_64). Das Anlegen von Desktop/StartMenü Icons, Stichworte freedesktop.org, &amp;quot;Desktop Entry&amp;quot;, funktioniert. Man muss aber beachten, dass ein Symlink zum Starten nicht funktioniert. Stattdessen ist eine ausführbare Datei im Pfad anzulegen, z.B. /usr/local/bin/cubemx mit z.B dem Inhalt /array_data01/STM32CubeMX/STM32CubeMX&lt;br /&gt;
&lt;br /&gt;
==== STM32CubeMX unter Mac OS ====&lt;br /&gt;
Mit der Version 4.14 wird ein Setup-Programm für Mac OS angeboten, das sich in der stm32cubemx.zip Datei befindet (siehe auch Update zur Linux-Unterstützung).&lt;br /&gt;
&lt;br /&gt;
=== Tutorials für diverse Tool-Kombinationen ===&lt;br /&gt;
* [[STM32 Eclipse Installation|Windows,Linux, Eclipse + Yagarto/CodeSourcery + OpenOCD/ST-Link]]&lt;br /&gt;
* [[STM32 Eclipse JLink Linux/Windows|Windows,Linux, Eclipse + GCC-ARM-Embedded + JLink]]&lt;br /&gt;
* [[Linux auf STM32|Linux auf STM32 (ucLinux)]]&lt;br /&gt;
&lt;br /&gt;
* Windows&lt;br /&gt;
** Eclipse&lt;br /&gt;
*** [http://www.mikrocontroller.net/topic/216554 Windows, Eclipse, codesourcery, st-link ]&lt;br /&gt;
*** [http://www.firefly-power.de/ARM/debugging.html Eclipse Plugin &amp;quot;GDB Hardware Debugging&amp;quot; mit OpenOCD]&lt;br /&gt;
** Code::Blocks&lt;br /&gt;
*** [http://www.mikrocontroller.net/topic/265600 Windows, Code::Blocks, STM32F4]&lt;br /&gt;
** STM32 mit EmBlocks&lt;br /&gt;
*** [http://www.emblocks.org/web/downloads-main Download EmBlocks]&lt;br /&gt;
*** [https://www.youtube.com/watch?v=coHPJylnzC8 Video STM32 Project Wizzard in EmBlocks]&lt;br /&gt;
** Atollic TrueSTUDIO&lt;br /&gt;
*** [[STM32 LEDBlinken AtollicTrueStudio|Atollic TrueSTUDIO Installation + Demo]]&lt;br /&gt;
** MDK-ARM Lite mit Einstellungen für STM32F0/F4-Discovery Board&lt;br /&gt;
*** [https://www.keil.com/demo/eval/arm.htm KEIL MDK-ARM Download]&lt;br /&gt;
*** [https://www.youtube.com/watch?v=RXOOxby5nns&amp;amp;list=PL6-W3FoUyb48WFI5PQv3SDJj2G1t2FonV&amp;amp;index=1 Installations Video STM32F4 Discovery Board]&lt;br /&gt;
*** [https://www.youtube.com/watch?annotation_id=annotation_203294&amp;amp;feature=iv&amp;amp;index=4&amp;amp;list=PL6-W3FoUyb48WFI5PQv3SDJj2G1t2FonV&amp;amp;src_vid=sN4gDZ7H8gw&amp;amp;v=BeZcQjXxk9A Einstellungen STM32F0 Discovery Board Video]&lt;br /&gt;
** SiSy ARM, STM32&lt;br /&gt;
*** Download: [http://www.sisy.de/index.php?id=59 SiSy DEMO] kein Begrenzung der Codegröße&lt;br /&gt;
*** [http://www.youtube.com/watch?v=84Y3jYLWYpo Videobeispiel]&lt;br /&gt;
** Microsoft Visual Studio&lt;br /&gt;
*** [http://visualgdb.com/tutorials/arm/stm32/f4_discovery/ &amp;quot;STM32F4-Discovery tutorial with Visual Studio&amp;quot;]&lt;br /&gt;
* Ubuntu&lt;br /&gt;
** [http://cms.seng.de/service-support/downloads/ Installing a toolchain for Cortex-M3/STM32 on GNU/Linux] - How-to manual, für STM32F1 unter GNU/Linux mit OpenOCD und Olimex ARM-USB-OCD-H. Integrierte Make files, Linker Skripte, Startup-Code, diverse Tools und Demo-Projekt/Programm. Einbindung in Eclipse IDE oder Bedienung über Kommandozeile.&lt;br /&gt;
** [http://fun-tech.se/stm32/index.php Ubuntu, Selbstcompilierter GCC, STM32/Cortex-M3]&lt;br /&gt;
** [http://thetoolchain.com The ToolChain] - Automatisch installierende Entwicklungsumgebung mit eigenen und externen Treibern, Unterstützt QtCreator als IDE, Flexibel erweiterbar über Shellskripte&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/214719 Tipps für Installation mit Eclipse]&lt;br /&gt;
&lt;br /&gt;
===Programmieradapter===&lt;br /&gt;
* [http://www.segger.com/jlink-model-overview.html SEGGER J-LINK / J-TRACE] für u.a. alle ARM7/9/11, Cortex-M0/M1/M3/M4/A5/A8/A9/R4 als [http://www.segger.com/cms/j-link-edu.html Non-Commercial] J-LINK-EDU für ca. 50€ zu haben, läuft in µVision, IAR, GDB (Linux &amp;amp; Windows über einen eigenen [http://www.segger.com/admin/uploads/productDocs/UM08005_JLinkGDBServer.pdf GDB-Server]), Keil, ... Der J-Link ist mit Abstand der schnellste Debugger, den ich bisher testen konnte. Wer es beim Debuggen eilig hat, liegt mit dem J-Link von Segger richtig.&lt;br /&gt;
* Keil [http://www.keil.com/ulinkme/ ULINK-ME], [http://www.keil.com/arm/ulink2/ ULINK2], [http://www.keil.com/arm/ulinkpro/ ULINK pro] Wenn man die die µVision IDE nicht verlassen mag, kann man sich mit diesen Adaptern anfreunden, denn sie arbeiten nur mit dieser IDE zusammen. Sie benötigen keine USB-Treiber, da sie geschickt das HID-Device des Betriebssystems nutzen. Es lässt sich kein fremdes Binary oder Hex-File flashen. Der ULINK2 kostet genau soviel wie ein Segger J-Link Basic bei gleichem Funktionsumfang, der sich jedoch auch in Verbindung mit anderen IDEs (GDB, usw) einsetzen lässt.&lt;br /&gt;
* [http://www2.st.com/content/st_com/en/products/development-tools/hardware-development-tools/development-tool-hardware-for-mcus/debug-hardware-for-mcus/debug-hardware-for-stm32-mcus/st-link.html ST-LINK],  [http://www2.st.com/content/st_com/en/products/development-tools/hardware-development-tools/development-tool-hardware-for-mcus/debug-hardware-for-mcus/debug-hardware-for-stm32-mcus/st-link-v2.html ST-LINK/V2]&lt;br /&gt;
* Jedes STM32 NUCLEO und DISCOVERY board hat einen ST-LINK für Programmierung/Debugging per SWD on-board (teilweise abbrechbar), welcher auch für eigene STM32 Target Hardware benutzt werden kann (ca. 12,- bis 19,-€, je nach Typ). Zwar ist er mit 1.8MHz Takt ein sehr langsamer Vertreter seiner Art, jedoch lassen sich mit ihm fremde Hex- und Binary-Files sowohl Debuggen als auch Flashen. Er unterstützt aber nur MCUs von ST. NXP, Atmel oder TI lassen sich damit nicht programmieren. Diese ST-LINK-Variante beherrscht nur SWD, kein JTAG und hat keine Treiber, die den Programmierprozessor vom Zielsystem galvanisch entkoppeln. Der ST-Link in der Adapterversion mit Gehäuse hat diese Nachteile nicht und kostet auch nur um 20€.  Unter Linux kann der Virtuellen COM-Port des ST-LINK/V2 mit Hilfe des cdc-acm Treibers aus dem Kernel angesprochen werden ([https://embeddedmicro.com/forum/viewtopic.php?t=82 siehe hier]). &#039;&#039;&#039;UPDATE:&#039;&#039;&#039; Die ST-LINK/V2-1 auf den NUCLEO und Discovery-Boards können jetzt auch auf J-Link OB geflasht werden. Details und Hinweise dazu [https://www.segger.com/jlink-st-link.html hier].&lt;br /&gt;
* [http://www.raisonance.com/~rlink-debugger-programmer__microcontrollers__tool~tool__T018:4cn9ziz4bnx6.html Raisonance RLink]&lt;br /&gt;
* [http://www.amontec.com Amontec] (2016-05: Website OFFLINE)&lt;br /&gt;
* [http://www.hjtag.com H-JTAG] nur noch STD- und PRO-Edition (Cortex-M0, Cortex-M3, kein M4), Personal-Edition (LPT-Port) war für ca. 60€ zu haben, läuft mit ADS, SDT, IAR, Vision und RVDS (möglicher Selbstbau der Personal-Edition siehe [http://nazya.com/freeshipping/single/4929017/orig_desc.html hier])&lt;br /&gt;
* [http://www.isystem.com/products/itag iTag] für 50€ bei [http://www.amazon.de/dp/B009XAQ9BW Amazon] bestellbar, alternativ als [http://isystem.com/products/hardware/cortex-debugger/itag/itag-instruction Eigenbauversion (offenes Design)] läuft mit der freien winIDEAiTag version (siehe oben)&lt;br /&gt;
&lt;br /&gt;
In der Regel haben die [[JTAG]] Adapter einen 20-poligen Stecker, den man direkt auf die Demo-Boards mit 20-poligem [[JTAG]]-Anschluss einstecken kann. Die Pinbelegung ist genormt, siehe Artikel [[JTAG]]. Die Discovery-Boards haben keinen separaten JTAG-Stecker, aber man kann sich zumindest für das STM32F4 Discovery einen Adapter Pinheader-&amp;gt;JTAG Stecker leicht selbst bauen.&lt;br /&gt;
&lt;br /&gt;
ST-Link Adapter können jetzt auch unter Linux mit neuer Firmware geflasht werden: [http://www2.st.com/content/st_com/en/products/embedded-software/development-tool-software/stsw-link007.html Download]. &lt;br /&gt;
&lt;br /&gt;
Andere [[JTAG]] Adapter wie z.B. der ULink2 von Keil funktionieren nur mit dem Keil Compiler. Leider kann dieser auch kein fremdes Binary oder Hex-File in den Controller schreiben.&lt;br /&gt;
&lt;br /&gt;
===Programmieradapter Open-Source===&lt;br /&gt;
&lt;br /&gt;
* [https://www.olimex.com/Products/ARM/JTAG/ARM-JTAG-COOCOX/ ARM-JTAG-COOCOX], CoLinkEX Nachbau von Olimex, unterstützt JTAG sowie SWD&lt;br /&gt;
** [http://www.coocox.org/colinkEx.htm unterstützte uC]&lt;br /&gt;
** unterstütze IDEs: [http://www.keil.com/arm/mdk.asp Keil MDK-ARM 4.03] oder neuer, [http://www.iar.com/en/Products/IAR-Embedded-Workbench/ IAR Embedded Workbench 5.xx] oder neuer sowie die [http://www.coocox.org/CooCox_CoIDE.htm CooCox CoIDE]&lt;br /&gt;
* [https://www.olimex.com/Products/ARM/JTAG/ Olimex] ARM-USB-OCD (ca. 60.-, hat zusätzlich einen Spannungsausgen und einen COM Port)&lt;br /&gt;
* [http://www.oocdlink.com/ OOCDLink]  [_Link ist derzeit nicht verfügbar_]&lt;br /&gt;
* [https://github.com/texane/stlink Stlink]&lt;br /&gt;
* [http://www.randomprojects.org/wiki/Floss-JTAG FLOSS-JTAG]&lt;br /&gt;
* [http://capitanio.org/mlink/ Linux Demo Code für die Discovery&#039;s ST-Link Programmierung]&lt;br /&gt;
&lt;br /&gt;
Der Controller hat auch einen fest eingebauten Boot-Lader. Damit läßt er sich auch über eine gewöhnliche serielle Schnittstelle programmieren, ohne dass man einen JTAG-Adapter benötigt. Dies erfordert ggf. entsprechende Konfiguration über die BOOTx-Pins und/oder die Option-Bytes, und ein Programm wie [https://code.google.com/p/stm32flash/ stm32flash].&lt;br /&gt;
&lt;br /&gt;
=== Demo-Projekte ===&lt;br /&gt;
&lt;br /&gt;
* Einführung in die GPIO Programmierung der STM32F10x und STM32F30x Prozessoren am Beispiel des STM32F3 Discovery Boards und Vergleich zur AVR IO Registerstruktur [http://www.mikrocontroller.net/topic/300472#new]&lt;br /&gt;
* [[prog_bsp_timer_1_timer2|Programmbeispiel für die Verwendung von Timer2 zusammen mit dem Interrupt]]&lt;br /&gt;
* [http://www.firefly-power.de/ARM/printf.html Printf() debugging mit minimalem Aufwand]&lt;br /&gt;
* [[STM32_BLDC_Control_with_HALL_Sensor|Programmbeispiel für BLDC Motoransteuerung (Timer 1) mit HALLSensor (Timer 3)]]&lt;br /&gt;
* [[Cortex_M3_OCM3U]]&lt;br /&gt;
* Martin Thomas hat ein umfangreiches Projekt erstellt, in der die Eclipse Einstellungen enthalten sind:&lt;br /&gt;
** [http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html &amp;quot;ChaN&#039;s FAT-Module with STM32 SPI&amp;quot;]&lt;br /&gt;
* [[STM32 USB-FS-Device Lib]]&lt;br /&gt;
* Modellbau-Sender auf STM32-Basis mit vielen Treibern [http://www.rcos.eu www.rcos.eu]&lt;br /&gt;
* Ausführliches [https://github.com/jkerdels/stm32edu Einstiegs-Tutorial] in Codeform für das [http://www.st.com/internet/evalboard/product/252419.jsp STM32F4 discovery board]&lt;br /&gt;
* [http://www.redacom.ch/keillab/ Schweizer Gondelbahnsteuerung über Webserver auf ETT STM32F ARM KIT Board in Keil RTOS] mit Webcam&lt;br /&gt;
* Die [http://ethernut.svn.sourceforge.net/viewvc/ethernut/trunk/ Ethernut SVN Version] unterstützt inzwischen viele STM32 Typen, viele Devices und einige STM32 Demoboards&lt;br /&gt;
* [http://mikrocontroller.bplaced.net/wordpress/?page_id=744 Uwe Becker&#039;s Libraries für den STM32F4]&lt;br /&gt;
* [http://mikrocontroller.bplaced.net/wordpress/?page_id=3290 Uwe Becker&#039;s STM32F429 Discovery Board Oszilloskop], hier der [http://www.mikrocontroller.net/topic/319831#new Thread]&lt;br /&gt;
* [http://mikrocontroller.bplaced.net/wordpress/?page_id=3424 Uwe Becker&#039;s STM32F429 Discovery Board ZX-Spectrum Emulator]&lt;br /&gt;
&lt;br /&gt;
== Debug- und Trace-Interface (CoreSight™ Debug and Trace Technologie)==&lt;br /&gt;
&lt;br /&gt;
Übersicht über beide Funktionalitäten und den Schnittstellen:&lt;br /&gt;
http://www.keil.com/support/man/docs/ulink2/ulink2_cs_core_sight.htm&lt;br /&gt;
&lt;br /&gt;
Die Coresight-Debug-Architektur ermöglicht ein nicht-invasives Debugging, d.h. es können während des Betriebes (meistens) ohne Beeinflussung des Prozessors Daten vom Speicher gelesen und in selbigen geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
=== Debugger Funktionen ===&lt;br /&gt;
&lt;br /&gt;
Der Debugger-Teil besitzt drei Funktionen:&lt;br /&gt;
* Run Control: z.B. Programm-Start, Stopp und Einzel-Schritte.&lt;br /&gt;
* (Program) Break Points: Ein Programm hält an, wenn der Programm Counter eine bestimmte Programm-Adresse erreicht.&lt;br /&gt;
** Die maximale Anzahl der gleichzeitig möglichen Break Points ist begrenzt (z.B. 6 bei einem STM32).&lt;br /&gt;
** Die Anzahl der Break Points ist nahezu unbegrenzt, wenn ein Debugger über den Memory Access (s.u.) sogenannte Flash Break Points unterstützt. Dabei wird ein geladenes Programm im Flash umprogrammiert, um den Debugger anzuhalten. Diese Funktionalität ist meistens ein kostenpflichtiges Zusatz-Feature des Debugger-Herstellers. &lt;br /&gt;
** Beinhaltet keine Data Watch Funktionalität, welche im Trace-Teil (DWT) realisiert wird.&lt;br /&gt;
* Memory Access: Lesen und Schreiben von Speicheradressen. &lt;br /&gt;
** Diese Funktionalität beinhaltet keine direkte Flash-Programmierung. Der Programmiervorgang für einen Flash ist herstellerspezifisch und muss von dem verwendeten Debugger unterstützt werden.&lt;br /&gt;
&lt;br /&gt;
=== Trace Funktionen ===&lt;br /&gt;
Die Trace-Funktionalität wird in drei Funktionen aufgeteilt:&lt;br /&gt;
* ETM (Embedded Trace Macrocell): Optional, nicht jede CPU besitzt diese Hardware (Kostenfaktor, Ausstattung).&lt;br /&gt;
* ITM (Instrumentation Trace Macrocell): Über diesen Kanal kann ein vereinfachtes Trace des Core ermöglicht werden, sowie &amp;quot;printf-ähnlich&amp;quot; Daten über den ITM Channel 0 geschickt und im Debugger ausgegeben werden.&lt;br /&gt;
* DWT (Data Watchpoint &amp;amp; Trace Unit): &lt;br /&gt;
** Data Watch: 4 Access-Break-Points ( z.B. der Debugger bleibt stehen, wenn das Programm auf einen Speicher zugreift oder der Wert einer Variablen einen bestimmten Wert annimmt). &lt;br /&gt;
** Trace Unit: Programmverlauf (durch Lesen des Program Counters) und Interrupt Aufrufe verfolgen, sowie Zeitmessungen.&lt;br /&gt;
&lt;br /&gt;
Einige der Trace-Funktionalitäten können über die JTAG-Schnittstelle angesprochen werden. Die schnelle Trace-Funktionalität (mit 4 bit Parallel-Port) steht nur mit der erweiterten DEBUG + ETM Schnittstelle zur Verfügung. Im Gegensatz zum Debugger-Teil (Run Control, Break Points und Memory Access) werden Trace-Funktionen nicht von allen Debuggern unterstützt. Debugger mit der vollen Trace-Funktionalität kosten deutlich mehr.&lt;br /&gt;
&lt;br /&gt;
* Beispiele für Trace-Port-Aktivierungen für verschiedene Hersteller: http://www.keil.com/support/man/docs/jlink/jlink_capture_tracedata.htm&lt;br /&gt;
&lt;br /&gt;
Die Aktivierung des parallelen Trace-Ports erfordert, je nach CPU Hersteller, zusätzliche Debugger-Makros für die Aktivierung und Port-Freischaltung. Zusätzlich sind die Schnittstellenauswahl und Einstellung (Frequenzen) im Entwicklungs-Tool (IDE) wichtig, um erfolgreich den Programm-Verlauf &amp;quot;tracen&amp;quot; zu können.&lt;br /&gt;
&lt;br /&gt;
=== Debug und Trace-Schnittstellen ===&lt;br /&gt;
Als Debug Interface stehen zwei Varianten zur Auswahl:&lt;br /&gt;
* [[JTAG]]: Dafür sind mindestens 6 Steuerleitungen nötig. Unterstützt Device Chaining: Mehrere verbundene Geräte können mit einem Debugger/Programmer gleichzeitig angesteuert werden.&lt;br /&gt;
* SWD (Serial Wire Debug): Hier mindestens 2  Steuerleitungen (3 mit SWO, zzgl GND und 3,3V). Die SWD Schnittstelle ist in der Regel schneller und kann auch Funktionen aus dem Trace-Teil beinhalten (z.B. ITM, dafür wird der SWO-Pin benötigt). Device Chaining ist mit dieser Schnittstelle nicht möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Standard-JTAG Steckerbelegungen: &lt;br /&gt;
http://www.keil.com/support/man/docs/ulink2/ulink2_hw_connectors.htm&lt;br /&gt;
&lt;br /&gt;
=== Der 10polige JTAG-Stecker von mmvisual ===&lt;br /&gt;
mmvisual hat mit dieser Steckerbelegung die Standard JTAG Schnittstelle erweitert:&lt;br /&gt;
&lt;br /&gt;
Ich habe diesen Part in den Artikel [http://www.mikrocontroller.net/articles/JTAG#Der_10-polige_JTAG_Stecker_von_mmvisual JTAG] verschoben.&lt;br /&gt;
Hinzu gekommen ist die Adapterplatine 10-Polig auf Standard JTAG 20 Polig mit TTL/V24 Wandler. [http://www.mikrocontroller.net/articles/JTAG#Die_Adapterplatine Siehe hier.]&lt;br /&gt;
&lt;br /&gt;
== Hardware-Beschaltung ==&lt;br /&gt;
&lt;br /&gt;
Der STM32 benötigt für den Betrieb nur (Minimalbeschaltung):&lt;br /&gt;
&lt;br /&gt;
* VCC 2..3,3V (je nach Typ)&lt;br /&gt;
* AVCC 2..3,3V (sehr wichtig, der STM32 lässt sich ohne diese Spannung nicht programmieren)&lt;br /&gt;
* GND&lt;br /&gt;
* Reset Pin 100nF nach GND (ein Pull-Up Widerstand von ca. 40k ist intern vorhanden)&lt;br /&gt;
* [[#Bootmodi|Boot-Pins]]&lt;br /&gt;
&lt;br /&gt;
ansonsten nur ein paar einzelne Cs 100nF an VCC/GND.&lt;br /&gt;
&lt;br /&gt;
Um Programmieren zu können wird entweder noch die serielle Schnittstelle (Programmieren über den vorprogrammierten Bootloader) oder JTAG oder die SWD Schnittstelle benötigt.&lt;br /&gt;
&lt;br /&gt;
=== Bootmodi ===&lt;br /&gt;
Unterschiedliche Bootmodi lassen sich mittels der PINs BOOT0 und BOOT1 auswählen . Siehe Application Note [https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Attachments/18225/AN2606.pdf AN2606]. Außer F1 besitzen neuere Familien ein SYSCFG_MEMR Register. In dieses Register kann man die gewünschten Boot0/1 Werte schreiben und nach einem Core-Reset (!= System_Reset) startet der Prozessor im gewünschten Mode. Eine Neu- bzw. Deinitialisierung der Peripherie empfiehlt sich! &lt;br /&gt;
&lt;br /&gt;
==== Boot from FLASH ====&lt;br /&gt;
Startadresse wird von 0x08000004 geladen&lt;br /&gt;
 BOOT0 Lo&lt;br /&gt;
 BOOT1 X &lt;br /&gt;
&lt;br /&gt;
==== Boot from SRAM ====&lt;br /&gt;
PC Startadresse wird an 0x200001E0 direkt angesprungen.&lt;br /&gt;
 BOOT0 Hi&lt;br /&gt;
 BOOT1 Hi&lt;br /&gt;
Da der interne FLASH der stm32f1x laut Datenblatt nur für 1000 Schreibvorgänge ausgelegt ist, kann mittels BOOT0 (High) und BOOT1 (High) auch aus dem zuvor mit dem Debugger (JTAG/SWD) beschriebenen SRAM booten. &lt;br /&gt;
Hierbei gilt zu beachten:&lt;br /&gt;
 VTOR auf die NVIC Tabelle im SRAM vor dem auslösen des ersten Interrupts remappen.&lt;br /&gt;
&lt;br /&gt;
 Um ein vergleichbares Startverhalten zum FLASH zu erreichen, empfiehlt es sich,&lt;br /&gt;
 0xF1E0F85F an 0x200001E0 zu schreiben. Diese implizite Ausführung von &amp;quot;ldr.w pc,&lt;br /&gt;
 [pc, #-0x01E0]&amp;quot; beim Start erzwingt ein laden der Startadresse von 0x20000004.&lt;br /&gt;
&lt;br /&gt;
==== Boot from SYSMEM (RS232, CAN und USB) ====&lt;br /&gt;
PC Startadresse wird von 0x1FFFF004 geladen&lt;br /&gt;
 BOOT0 Hi&lt;br /&gt;
 BOOT1 Lo&lt;br /&gt;
&lt;br /&gt;
Ab F2 gibt es auch ein SYSCFG_MEMRMR Register. Schreibt man hier den Wert für &amp;quot;System Flash&amp;quot; und macht einen Corereset (keinen Systemreset), so landet man auch im Bootloader, unabhängig vom Wert der Boot Pins.&lt;br /&gt;
&lt;br /&gt;
Auch ohne JTAG lässt sich ein STM32 programmieren (Bootloader-Aktivierung). Dabei stehen, je nach CPU-Typ, verschiedene Möglichkeiten zur Verfügung:&lt;br /&gt;
* RS-232 (bisher alle STMs)&lt;br /&gt;
* USB (alle USB fähigen CPUs &amp;gt; F103)&lt;br /&gt;
* CAN (wie USB nur in bestimmten MCUs)&lt;br /&gt;
&lt;br /&gt;
3 zusätzliche Verbindungen müssen auf dem Board gepatcht werden. Für einen Test geht es auch mit Tastern für RESET und BOOT0.&amp;lt;br&amp;gt;&lt;br /&gt;
RESET=RTS (L-aktiv)&amp;lt;br&amp;gt;&lt;br /&gt;
BOOT0=DTR (H-aktiv)&amp;lt;br&amp;gt;&lt;br /&gt;
BOOT1=LOW&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Details sind hier im Forum: [http://www.mikrocontroller.net/topic/141711 STM32 Programmiertool]&lt;br /&gt;
&lt;br /&gt;
Tools für den Download über den STM32-Bootloader:&lt;br /&gt;
* [http://www.st.com/web/en/catalog/tools/PF257525 STSW-MCU005 STM32 and STM8 Flash loader demonstrator]&lt;br /&gt;
* [https://sourceforge.net/projects/stm32flash/ stm32flash] - Open source flash program (RS-232)&lt;br /&gt;
* [http://dfu-util.sourceforge.net/ dfu-util] - Open source flash program (USB)&lt;br /&gt;
&lt;br /&gt;
== Bewertung ==&lt;br /&gt;
=== Vorteile ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile gegenüber ARM7:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Interrupt-Controller jetzt Teil des Prozessors (als Core Peripheral), die Vector Table ist jetzt eine echte Vektortabelle, keine Sprungliste wie bei ARM7. Durch Automatismen zwischen Core und NVIC (auto register save r0..r3, lr, sp, pc) bei Interrupt Entry wird eine deutlich schnellere Ausführungszeit bei Interrupts erreicht. Der Interrupt Code muss sich nicht mehr selbst um die Sicherung der o.g. Register kümmern und eine besondere Konfiguration der Handler im Compiler entfällt. Sind vor Beendigung einer ISR (d.h. Rücksprung zum User Code) weitere Interrupts pending, so werden diese ausgeführt, ohne dass eine komplette pop-push-sequenz der Register notwendig ist. Schön beschrieben ist es hier im [http://www.hitex.com/fileadmin/pdf/insiders-guides/stm32/isg-stm32-v18d-scr.pdf Insider&#039;s Guide] unter 2.4.5 / Seite 20.&lt;br /&gt;
* Thumb-2 Befehlssatz, deutlich schneller als Thumb-1 und ebenso kompakt&lt;br /&gt;
* Weniger Pins für Debugging benötigt durch SWD&lt;br /&gt;
* Mehr Hardware Breakpoints machen debuggen einfacher&lt;br /&gt;
* Software ist einfacher weil die Umschaltung zwischen ARM Mode und Thumb Mode wegfällt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile gegenüber LPC1700 und LPC1300:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Flexiblere Gehäuseformen mit mehr Peripherie bei kleinen Gehäusen&lt;br /&gt;
* FW-Lib für alle STM32 gleich, alle AppNotes/Demos beziehen sich auf diese eine FW-Lib was die Entwicklung der eigenen Applikation sehr beschleunigt.&lt;br /&gt;
* Genauerer und flexiblerer ADC, insbesondere gegenüber LPC1300&lt;br /&gt;
* Flexiblere Varianten der Peripherie &amp;gt;&amp;gt; bei weniger einen deutlichen Preisvorteil&lt;br /&gt;
* ab 0,85 EUR (Stand 2010) Allerdings gibts den LPC1100 mit Cortex-M0 schon ab 0,65 $!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile gegenüber SAM3/4:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Fast alle Pins sind 5-Volt tolerant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile gegenüber anderen &amp;quot;Kleinen&amp;quot; wie z.B. PIC, Atmel usw.&#039;&#039;&#039;&lt;br /&gt;
* nahezu gleicher Preis bei Hobby Anwendungen&lt;br /&gt;
* 32 Bit ohne Umwege in Assembler rechenbar&lt;br /&gt;
* Schnelle direkte Offset-Adressierung ermöglicht effizienten Zugriff auf Stack-Variablen, lokal gespeicherte Flash-Konstanten, struct/Array-Elemente&lt;br /&gt;
* Einfache einheitliche Adressierung des gesamten Adressraums, d.h. Pointer auf Peripherieregister, RAM &amp;amp; Flash können exakt gleich behandelt werden, keinerlei Banking/Umschalt-Mechanismen erforderlich auch bei großem Flash/RAM&lt;br /&gt;
* Interrupt-Prioritäten und Prioritätsgruppen&lt;br /&gt;
* Effiziente Pointerarithmetik da Registerbreite=Adressbreite&lt;br /&gt;
* bessere Peripherie wie USB, Ethernet, Vielzahl an Timern&lt;br /&gt;
* der ARM-Core hat eine höhere Taktfrequenz und kann gleichzeitig mehr in weniger Takten berechnen&lt;br /&gt;
* Hardware-Division, bei einigen FPU zur effizienten float-Berechnung&lt;br /&gt;
* Mit größerem Flash/RAM verfügbar&lt;br /&gt;
* Code kann direkt aus dem RAM ausgeführt werden, Speicherschutz und privilegierter Ausführungsmodus können &amp;quot;Kernel&amp;quot;- vor &amp;quot;Anwendungs&amp;quot;-Code schützen, somit wird das dynamische Nachladen von Anwendungen aus externem Speicher effizient &amp;amp; sicher möglich&lt;br /&gt;
* ... und weitere 1000 Punkte ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Links&#039;&#039;&#039;&lt;br /&gt;
* [http://www.arm.com/files/pdf/ARM_Microcontroller_Code_Size_%28full%29.pdf Code Size Analyse zwischen verschiedenen µC]&lt;br /&gt;
&lt;br /&gt;
=== Nachteile ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nachteil gegenüber LPC1700:&#039;&#039;&#039;&lt;br /&gt;
* STM32F1xx: nur 72 MHz statt 100 MHz (LPC1759: 120 MHz) Taktfrequenz; STM32F2xx hat diesen Nachteil nicht (ebenfalls 120MHz, STM32F4xx mit 180MHz)&lt;br /&gt;
* Der LPC1700 besitzt deutlich mehr Mechanismen, um die Auswirkung der Waitstates des Flash-ROMs auf Code- und Datenzugriffe zu reduzieren und das bedeutet mehr Performance bei gleicher Taktfrequenz. Beim STM32F2 entfällt dieser Nachteil wohl aufgrund des ART Accelerators. &lt;br /&gt;
* Alle LPC1xxx haben 32 Bit Timer. Bei den STM32 haben das nur die STM32F2xx und STM32F4xx (2 Stück)&lt;br /&gt;
* I2S Einheit von ST hat keinen FIFO und im 24/32Bit Modus müssen 2x16Bit Halbwörter übertragen werden. Wobei allgemein bei neuen ARM Prozessoren die vorhandenen DMA-Kanäle (basierend auf eigenen BUS-Kanälen und Speicherzugriffen) FIFO in beliebiger Größe bedeutet. (Gilt nicht bei bestimmten STM32F4xx)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nachteil für Hobby-Anwender&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Nicht direkt &amp;quot;Steckbrettauglich&amp;quot;, da kein DIL Gehäuse verfügbar. Der ebay-Shop dipmicro führt jedoch sehr günstige Lötadapter für Umsetzung von LQFP48 auf DIP48. QFP64 in 0.5mm Pinabstand und nicht 0.8mm wie AVR. Von NXP gibt es Cortex-M0 µC im DIL Gehäuse.&lt;br /&gt;
&lt;br /&gt;
* Viel Peripherie, Clocks müssen alle richtig eingestellt werden, ggf. Anpassung des Startup Codes usw.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Errata, Tipps und Tricks ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* AD-Wandler PA0: Im Errata steht, dass hier Fehler in der Wandlung entstehen könnten, also einen anderen Pin verwenden.&lt;br /&gt;
* CAN-Bus PD0/PD1: Remap geht erst ab der 100-Pin-Version. Steht im RM0008 unter 9.3.3.: &amp;quot;CAN1 alternate function remapping&amp;quot;. Alle Infos von RM0008 9.3.x sind interessant&lt;br /&gt;
* CAN und USB sind bei der F1 Serie nur bei der &amp;quot;◦Connectivity-Line&amp;quot; gleichzeitig nutzbar. Siehe Datenblätter.&lt;br /&gt;
* Mit internem RC-Oszillator kann die CPU mit maximal 64MHz betrieben werden. Mit einem externen Quarz sind dann 72MHz möglich.&lt;br /&gt;
* Für USB Betrieb muss die CPU mit 48MHz oder 72MHz betrieben werden (bei STM32F1xx).&lt;br /&gt;
* Der Idle Interrupt vom Usart wird zwar ausgelöst, aber nicht vom entsprechenden Statusflag angezeigt&lt;br /&gt;
* Der DMA fängt beim aktivieren immer von vorn an zu zählen, auch wenn er nur kurz angehalten wurde&lt;br /&gt;
* STM32F2xx hat kein Flash Size Register, bei STM32F4xx ist zwar ein flash Size Register beschrieben, kollidiert aber in der Adresse mit einem anderen Register&lt;br /&gt;
* Derivate mit internem EEPROM und nur einer Speicherbank haben das &amp;quot;Feature&amp;quot; bei write/erase des Data-Flashes (EEPROM) einen kompletten stall der code execution zu verursachen (inkl. ISRs, DMA). Desgleichen bei write/erase des internen Flash (ISP-routinen, EEPROM-Emulation).&lt;br /&gt;
* Der I2C hat diverse Fehler, welche im Errata des jeweiligen Modells (z.B. [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/errata_sheet/CD00238166.pdf STM32F105xx and STM32F107xx Errata sheet] ) zu finden sind. Workarounds hierzu finden sich in der Application Note [http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/CD00209826.pdf AN2824]. Am Besten benutzt man jedoch die I2C Communication peripheral application library (CPAL) von ST ([http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF258336 STSW-STM32127])&lt;br /&gt;
* [http://blog.frankvh.com/category/stm32/ weitere undokumentierte Features]&lt;br /&gt;
* Interrupt-Flags in Statusregistern der diversen Peripherals wie der Timer müssen zu &#039;&#039;&#039;Beginn&#039;&#039;&#039; (bzw. möglichst weit vor dem Return) der ISR zurückgesetzt werden, da die ISR sonst eventuell 2x ausgeführt wird (Siehe [https://my.st.com/public/Faq/Lists/faqlst/DispForm.aspx?ID=143&amp;amp;level=1&amp;amp;objectid=141 STM32 FAQ] und [http://www.mikrocontroller.net/topic/312393#new Forum]).&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
==== Allgemein ====&lt;br /&gt;
Standard-GPIOs des STM32 und im speziellen das BSRR&lt;br /&gt;
* Die Register bestehen aus zwei Teilen, der obere Teil BR0-15 signalisiert durch ein gesetztes Bit die zu löschenden Bits im IO-ODR-Register,der untere Teil BS0-15 signalisiert durch ein gesetztes Bit die zu setzenden Bits. Besonders ist, wenn beide Bits (oberer und unterer Teil) gesetzt sind hat das Set-Bit Priorität. Durch eine geschickte Kombination von oberen und unteren Teil kann man Speicherzugriffe Sparen. z.B. kann man solch ein Konstrukt zum ändern der unteren 8 Bit des IO-ODR-Registers &amp;quot;uint32_t temp = GPIOC-&amp;gt;ODR &amp;amp; 0xff00; GPIOC-&amp;gt;ODR = temp | (Eingabe &amp;amp; 0x00ff)&amp;quot; um einen Speicherzugriff verkürzen zu &amp;quot;GPIOC-&amp;gt;BSRR = (Eingabe &amp;amp; 0x00ff) | ((0x00ff) &amp;lt;&amp;lt; 16)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== GCC ====&lt;br /&gt;
Um den GCC direkt zu verwenden (zB. mit selbstgebautem makefile), falls man das nicht von einer Entwicklungsumgebung machen lässt, siehe zunächst [[ARM GCC]]. STM32-spezifisches ist:&lt;br /&gt;
* Wird die [[#.E2.80.8ESTM32_Standard_Peripheral_Library|STM32 Standard Peripheral Library]] und ein Quarz verwendet, so muss noch per Präprozessor-Definition die Frequenz des Quarzes angegeben werden mittels z.B. -DHSE_VALUE=8000000 für 8MHz (wie auf dem STM32F4 Discovery).&lt;br /&gt;
&lt;br /&gt;
===== Startupcode &amp;amp; Linkerscript =====&lt;br /&gt;
* Damit der compilierte Code an den richtigen Stellen im Controller landet (d.h. dem Flash) muss man dem Linker ein Linkerscript mitgeben. Dies geht per &amp;quot;-T &#039;&#039;pfad_zum_linkerscript.ld&#039;&#039;&amp;quot; an den Linker-Befehl. Im Archiv der [[#.E2.80.8ESTM32_Standard_Peripheral_Library|STM32 Standard Peripheral Library]] befindet sich ein Beispiel-Linkerscript für die Atollic TrueSTUDIO IDE, dieses kann direkt mit dem GCC verwendet werden. Beispielsweise für den STM32F4 befindet sich das Script im Pfad &amp;quot;/STM32F4xx_DSP_StdPeriph_Lib_V1.1.0/Project/STM32F4xx_StdPeriph_Templates/TrueSTUDIO/STM324x7I_EVAL/stm32_flash.ld&amp;quot; des Archives.&lt;br /&gt;
* Damit beim Starten die richtigen Initialisierungen vorgenommen werden (wie globale Variablen und bei C++ Konstruktoren globaler Objekt-Instanzen) muss als erstes ein Startupcode laufen, der dann die main()-Funktion aufruft. Der Startupcode ist meistens in Assembler geschrieben, C-Code ist aber auch möglich. Im Archiv der [[#.E2.80.8ESTM32_Standard_Peripheral_Library|STM32 Standard Peripheral Library]] befindet sich ein Beispiel-Startupcode für die Atollic TrueSTUDIO IDE, dieser kann direkt mit dem GCC verwendet werden. Beispielsweise für den STM32F4 befindet sich der Code in Assemblerform im Pfad &amp;quot;/STM32F4xx_DSP_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/TrueSTUDIO/startup_stm32f40xx.s&amp;quot; des Archives. Der Assemblercode kann per arm-none-eabi-as (Flags s.o.) assembliert werden, die resultierende .o -Datei normal mitgelinkt.&lt;br /&gt;
&lt;br /&gt;
Zusammen bieten die beiden Dateien der Anwendung ein Standard-C-Interface, d.h. man kann wie gewohnt globale Variablen verwenden und seinen Code in die main()-Funktion schreiben.&lt;br /&gt;
&lt;br /&gt;
=== Tipps für Umsteiger von Atmel/PIC/8051 ===&lt;br /&gt;
* Prozessortakt hat unterschiedliche Taktquellen und eine PLL.&lt;br /&gt;
* Alle Peripheriemodule haben einen extra Clock, den man aktivieren muss.&lt;br /&gt;
* Wenn man z.B. einen UART benutzen möchte, so muss man den Clock vom UART, Alternate Function IO (AFIO) und dem GPIO-Port aktivieren.&lt;br /&gt;
* Ansonsten hat man nahezu doppelt so viele Möglichkeiten in den Peripheriemodulen.&lt;br /&gt;
* Interrupt-Flags müssen in der ISR selber gelöscht werden&lt;br /&gt;
* Forum zu [http://www.mikrocontroller.net/topic/175888 Interrupts vs. Events]&lt;br /&gt;
&lt;br /&gt;
=== Errata vom STM32F4xx die nicht im Errata von ST stehen ===&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/267439#2788478 Aktivieren von DMA], wenn mehr als 3 DMA Kanäle aktiviert werden, kann es sein dass die nicht alle korrekt bedient werden. Auch klappt der DMA mit dem FSMC nicht immer zuverlässig. [https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2Fcortex_mx_stm32%2FWarning%20limit%20simultaneous%20DMAs%20to%202&amp;amp;FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B&amp;amp;currentviews=811 siehe hier] [http://blog.frankvh.com/2012/01/13/stm32f2xx-stm32f4xx-dma-maximum-transactions/ und hier]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/260637#2700761 Nerviger Bug in &amp;quot;stm32f4xx.h&amp;quot;] Änderung Struktur GPIO_TypeDef&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/261690#2714754 Batterie wird leer gezogen], nur bei manchen Chips mit Rev. A&lt;br /&gt;
* [http://www.efton.sk/STM32/STM32F4xx_doc_errors.txt Liste von Dokumentations-Fehlern]&lt;br /&gt;
&lt;br /&gt;
== Bezugsquellen ==&lt;br /&gt;
&lt;br /&gt;
=== Controller ===&lt;br /&gt;
&lt;br /&gt;
Versand Europaweit im endasmedia.ch Shop&lt;br /&gt;
* STM32F105 Controller für 2.50€ [http://shop.endasmedia.ch/index.php?id_product=8&amp;amp;controller=product&amp;amp;id_lang=1 shop.endasmedia.ch]&lt;br /&gt;
&lt;br /&gt;
Versandhäuser für Privatpersonen&lt;br /&gt;
* [http://www.reichelt.de/STM-Controller/2/index.html?;ACTION=2;LA=2;GROUPID=2950; Reichelt]&lt;br /&gt;
* [http://darisusgmbh.de/shop/index.php?cat=c2692_ARM-Cortex.html Darisus]&lt;br /&gt;
* [http://www.hbe-shop.de HBE (Farnell Programm für Private)] &lt;br /&gt;
* [http://www.sander-electronic.de/be00069.html Sander]&lt;br /&gt;
* [http://www.tme.eu/de/katalog/index.phtml#cleanParameters%3D1%26search%3DSTM32F10%26bf_szukaj%3D+ TME] &lt;br /&gt;
* [http://teske-electronics.de/index.php?cPath=3_9_53 Teske electronics]&lt;br /&gt;
* [http://de.rs-online.com/web/c/halbleiter/prozessoren-und-mikrocontroller/mikrocontroller/?sort-by=default&amp;amp;sort-order=default&amp;amp;applied-dimensions=4294417325&amp;amp;lastAttributeSelectedBlock=4294425895 RS-Online]&lt;br /&gt;
&lt;br /&gt;
Gewerblich liefern natürlich viele wie EBV, [http://de.futureelectronics.com Future Electronics], Mouser, Farnell, Digikey usw...&lt;br /&gt;
&lt;br /&gt;
=== Evaluation Boards ===&lt;br /&gt;
* Siehe [[:Kategorie:ARM-Boards]]&lt;br /&gt;
* [http://shop.embedded-projects.net/index.php?module=artikel&amp;amp;action=gruppe&amp;amp;id=14 Im Shop von Embedded Projects]&lt;br /&gt;
* [http://www.watterott.com/de/Boards-Kits/ARM/ARM-Cortex-M3 Cortex M3 bei Watterott]&lt;br /&gt;
* [http://www.raisonance.com/~primer-starter-kits__microcontrollers__tool~tool__T018:4enfvamuxbtp.html Primer und Primer2 von Raisonance]&lt;br /&gt;
* [http://www.sander-electronic.de/es0028.html Sander Electronic]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/MP32F103-Stick:_Ein_Mini-Mikrocontroller-Board_mit_USB_und_bis_zu_4MB_Datenspeicher Artikel im Wiki, ARM mit USB und 4MB Speicher]&lt;br /&gt;
* [http://www.futurlec.com/STM32_Development_Board.shtml Futurlec Evalboard, ebenso Header-Board]&lt;br /&gt;
* [http://www.propox.com/products/t_174.html Propox, Header-Boards für 103R und 103V sowie Trägerplatine dafür]&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/Cortex_M3_OCM3U Cortex M3 Artikel im Wiki]&lt;br /&gt;
* [http://olimex.com/dev/index.html STM32 bei Olimex]&lt;br /&gt;
* [http://de.farnell.com/jsp/displayProduct.jsp?sku=1824325&amp;amp;action=view&amp;amp;CMP=GRHS-1000962 STM32Discovery bei Farnell] Mikrocontroller Board (STM32F100RBT6B) mit onboard USB-Programming Interface für ca. 12,50€&lt;br /&gt;
* [http://www.de.rs-online.com/web/p/products/7458434/ STM32Discovery bei RS-Components] 12,65 € +MwSt.&lt;br /&gt;
* [http://www.segor.de/#Q=STM32 VL DISCOVERY] STM32 Discovery bei Segor&lt;br /&gt;
* [http://www.watterott.com/de/STM32F4Discovery STM32F4DISCOVERY] STM32F4 Cortex M4 Controller mit JTAG-Debugger auf der Platine bei Watterott für 16,66EUR.&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/443910/ STM32F4 Discovery Kit bei Conrad] 17,11 €&lt;br /&gt;
* [http://www.ST.com/stm32l152c-discovery STM32 L1 Discovery] mit kleiner LCD-Anzeige; [http://www.ST.com/web/en/catalog/tools/PF250990 Weitere Informationen dazu]&lt;br /&gt;
* [http://www.mcu-raisonance.com/~open4-development-platform__microcontrollers__tool~tool__T018:g65gu6ghg2n.html/ Open 4 oder auch genannt Evo-Primer]&lt;br /&gt;
* [http://www.wayengineer.com/index.php?main_page=index&amp;amp;cPath=50_66&amp;amp;page=1&amp;amp;sort=3a WayEngineer]&lt;br /&gt;
* [http://thinkembedded.ch/ST-STMicroelectronics:::24.html Im Thinkembedded Shop] in der Schweiz / DiscoveryF4, div. ETT und Olimex Boarde ab 20,18 CHF / 16,15 EUR (inkl. MwSt.) zzgl. Versandkosten&lt;br /&gt;
* [http://shop.myavr.de/ARM-Produktlinie/STM32F4-Discovery.htm?sp=article.sp.php&amp;amp;artID=200072 Im myAVR Shop] DiscoveryF4 mit möglichem Zubehör 16,45 EUR (inkl. MwSt.) zzgl. Versandkosten&lt;br /&gt;
* [http://www.keil.com/boards/cortexm.asp Keil/ARM Demoboards]&lt;br /&gt;
* [http://www.phytec.de Phytec]&lt;br /&gt;
* [http://shop.myavr.de/index.php?sp=artlist_kat.sp.php&amp;amp;katID=37 verschiedene ARM Produkte und Erweiterungen bei myAVR]&lt;br /&gt;
* [http://re.reworld.eu/de/produkte/s64dil-405/index.htm S64DIL-405 STM32Fxxx ARM Cortex M3 Mikrocontrollermodul mit USB-Schnittstelle, Steckbretttauglich] (Leerplatine eignet sich auch für STM32F1xx Prozessoren.)&lt;br /&gt;
* [http://www.amazon.de/STM32F4-DISCOVERY-STM32F429-Cortex-M4-Development/dp/B00HGG0KHY STM32F429 DISCOVERY Cortex M4 mit 2,4&amp;quot; Touch-TFT, 3-Achs Sensor, 64 MBit SDRAM ab ~25 EUR bei Amazon, Ebay u.a.]&lt;br /&gt;
&lt;br /&gt;
== Weblinks, Foren, Communities, Tutorials ==&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks Tutorial]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/173753 Diskussion zum Artikel]&lt;br /&gt;
* [http://www.mikrocontroller.net/forum/mikrocontroller-elektronik?filter=ARM*+STM32*+Cortex* Suche im Forum]&lt;br /&gt;
* [[STM32 für Einsteiger]]&lt;br /&gt;
* [[STM32 CooCox Installation]]&lt;br /&gt;
* [https://my.st.com/public/STe2ecommunities/mcu/Lists/ARM%20CortexM3%20STM32/AllItems.aspx Forum auf der ST Homepage] &lt;br /&gt;
* [http://www.stm32circle.com/hom/index.php STM32 Community] &lt;br /&gt;
*[http://joe-c.de/pages/posts/einstieg_mikrocontroller_stm32f103_101.php Einstieg:  STM32board mit Kamera (deutsch)] &lt;br /&gt;
* [http://www.ebv.com/fileadmin/products/Press_Print/Brochures/Product_Brochures/EBV_Cortex%20Collection_V2.pdf Übersicht der Cortex Prozessoren und deren Hersteller (nicht nur ST, von EBV)]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/258652 Tutorial]&lt;br /&gt;
* [http://diller-technologies.de/stm32_wide.html STM32 Tutorial in Deutsch von Diller Technologies]&lt;br /&gt;
* [http://mySTM32.de STM32 C und C++ Tutorial in Deutsch ]&lt;br /&gt;
* [http://mikrocontroller.bplaced.net STM32F4 Quellcode-Librarys und CooCox-Projekte in Deutsch ]&lt;br /&gt;
* [http://myugl.de Tutorial für Grafik-Librarys und SiSy-Projekte in Deutsch ]&lt;br /&gt;
* [http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1533/PF251717 MicroXplorer MCU graphical configuration tool ]&lt;br /&gt;
* [http://www.harerod.de/CoreMark_STM32.pdf Testbericht über CoreMark 1.0 auf Cortex-M3/M4 mit verschiedenen Compiler- und MCU-Einstellungen]&lt;br /&gt;
* [http://klaus4.blogspot.com/2014/05/stm32f4-discovery-mit-opensource.html STM32-Toolchain mit Eclipse CDT 4.3, GnuArmEclipse, OpenOCD 0.8.0, Gnu Arm GCC 4.8, STM32CubeMX]&lt;br /&gt;
* [http://libopencm3.org/wiki/Main_Page libopenmc3 OpenSource libs für STM32 und ähnliche] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Kategorie:ARM]]&lt;br /&gt;
[[Kategorie:STM32]]&lt;br /&gt;
[[Kategorie:Mikrocontroller]]&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_Bootloader_FastBoot_von_Peter_Dannegger&amp;diff=69661</id>
		<title>AVR Bootloader FastBoot von Peter Dannegger</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_Bootloader_FastBoot_von_Peter_Dannegger&amp;diff=69661"/>
		<updated>2012-12-07T17:23:24Z</updated>

		<summary type="html">&lt;p&gt;Boregard: noch ein Link auf github für Linux SW&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von Karsten Donat&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Bootloader? ==&lt;br /&gt;
&lt;br /&gt;
Der Bootloader ist selbst ein kleines Programm. Es wird beim Start des Controllers zuerst ausgeführt. Damit sich das PC-Programm für das Firmware-Update melden kann, wartet der Bootloader  eine gewisse Zeit (hier 0,33 Sekunden) auf ein Zeichen über die serielle Schnittstelle (UART RS232, USB). Kommt dies Zeichen, wird die neue Firmware gebrannt. Andernfalls wird das eigentliche Programm des Controllers ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Anwendungsprogramm geht natürlich der Platz verloren, den der Bootloader benötigt. Da Peters Bootloader jedoch in ein 512Bytes (256 Worte!) großes Segment passt, stört das nicht weiter.&lt;br /&gt;
&lt;br /&gt;
Normalerweise wird der Programmcode des Mikrocontrollers mit einem ISP-Dongle in den Flash gebrannt. Aus verschiedenen Gründen kann dies jedoch nicht möglich/ gewünscht sein:&lt;br /&gt;
* Geschwindigkeit: Der ISP-Dongle kann langsam sein (z.&amp;amp;nbsp;B. myAVR mit aktuellem AVRDude)&lt;br /&gt;
* PINs: Man braucht die PINs und will ISP abschalten (Fuses, aber Vorsicht!, danach kann man nur mit dem Bootloader oder einem [[AVR HV-Programmer]] noch an den Flash-Speicher)&lt;br /&gt;
* Komfort: Man möchte dem Kunden/Nutzer die Möglichkeit geben, eine neue Firmware selbst einzuspielen. In der Regel hat dieser jedoch keinen ISP-Dongle zur Hand. Eine RS232- oder USB-Schnittstelle ist aber oftmals vorhanden.&lt;br /&gt;
* Sicherheit: Man möchte dem Kunden nicht die Firmware in deassemblierbarer Form geben (über geänderten Bootloader kann die Datei verschlüsselt sein).&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Automatische Erkennung der vom PC verwendeten Baudrate&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/73196#610574 Ein] oder zwei Wire Betrieb&lt;br /&gt;
* Support für viele verschiedene AVRs wie: tiny13, tiny2313, tiny25, tiny261, tiny44, tiny45, tiny461, tiny84, tiny85, tiny861, mega48, mega8, mega8515, mega8525, mega88, mega16, mega162, mega168, mega32, mega64, mega644, mega128, mega1281, mega2561.&lt;br /&gt;
* Passwortschutz gegen unberechtigtes Umprogrammieren (aber keine Verschlüsselung des Programms).&lt;br /&gt;
* Freie Software - unter GPL lizenziert ([http://www.mikrocontroller.net/topic/73196?goto=848377#848377 Link]). Das eigentliche Anwendungsprogramm, das über den Bootloader geladen wird muß deswegen *nicht* unter der GPL stehen und dessen Quelltext auch *nicht* veröffentlicht werden ([http://www.mikrocontroller.net/topic/73196?goto=950943#950943 Link]).&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an das zu ladende Programm ==&lt;br /&gt;
Bei AVRs ohne &amp;quot;boot reset vector fuse&amp;quot; (BOOTRST) wie beispielsweise ATtinys und kleinen ATmegas (ATmega48) muß der erste Befehl ein RJMP sein. Für C-Programme ist das automatisch sichergestellt (und für Assembler-Programme leicht selbst sicherzustellen).&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* Thread zum Bootloader: [http://www.mikrocontroller.net/topic/73196 http://www.mikrocontroller.net/topic/73196]&lt;br /&gt;
&lt;br /&gt;
* Version 2.1 des Bootloaders incl. DOS Host-Software (Forumsbeitrag): [http://www.mikrocontroller.net/topic/goto_post/850843]&lt;br /&gt;
* Version 2.1 des Bootloaders für AVR-GCC-Toolchain (Forumsbeitrag): [http://www.mikrocontroller.net/topic/goto_post/1824790]&lt;br /&gt;
* Protokollbeschreibung Host&amp;lt;-&amp;gt;Target (Forumsbeitrag): [http://www.mikrocontroller.net/topic/goto_post/685654]&lt;br /&gt;
* Schaltbild für One-Wire-Betrieb (Forumsbeitrag): [http://www.mikrocontroller.net/topic/goto_post/610574]&lt;br /&gt;
* Linux Host-SW für Version 2.1 mit One-Wire (Forumsbeitrag): [http://www.mikrocontroller.net/topic/73196?goto=2320796#2320796], source in [https://github.com/Boregard/FBoot-Linux github].&lt;br /&gt;
* Linux und MAC-OSX Host-SW für V2.1 ohne One-Wire (nur mit Anmeldung zu erreichen): [http://www.avrfreaks.net/index.php?module=Freaks%20Academy&amp;amp;func=viewItem&amp;amp;item_type=project&amp;amp;item_id=1927 http://www.avrfreaks.net/index.php?module=Freaks%20Academy&amp;amp;func=viewItem&amp;amp;item_type=project&amp;amp;item_id=1927]&lt;br /&gt;
* Host-SW in Python für Version 1.7: [http://www.kreatives-chaos.com/artikel/fastboot17-frontend-python http://www.kreatives-chaos.com/artikel/fastboot17-frontend-python]&lt;br /&gt;
* Host-SW Win32 für Version 1.7: [http://www.mikrocontroller.net/topic/goto_post/698193]&lt;br /&gt;
* Host-SW Win64 für Version 2.1: [http://www.mikrocontroller.net/topic/goto_post/2349817] [http://derluz.de/fboot64/ http://derluz.de/fboot64/]&lt;br /&gt;
* Host-SW Win64 für Version 2.1: [http://www.mikrocontroller.net/topic/goto_post/1855508] dev-cpp build von [http://www.mikrocontroller.net/user/show/maltep87 maltep87]&lt;br /&gt;
* Host-SW mit GUI für Version 2.1: [http://www.mikrocontroller.net/topic/goto_post/2827323] [http://www.leo-andres.de/2012/09/updateloader-benutzeroberflache-fur-avr-bootloader/ www.leo-andres.de]&lt;br /&gt;
&lt;br /&gt;
* Atmel AVR-Studio (um Bootloader zu assemblieren): [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725]&lt;br /&gt;
* ATMega IDE 2007: [http://www.KarstenDonat.de/AVR http://www.KarstenDonat.de/AVR]&lt;br /&gt;
&lt;br /&gt;
* Ältere Version dieser Anleitung als PDF: [http://www.KarstenDonat.de/AVR/Bootloader.pdf http://www.KarstenDonat.de/AVR/Bootloader.pdf]&lt;br /&gt;
&lt;br /&gt;
== Bootloader anpassen ==&lt;br /&gt;
&lt;br /&gt;
=== CPU auswählen – BOOTLOAD.ASM ===&lt;br /&gt;
&lt;br /&gt;
Die CPU (der Atmel auf dem der Bootloader laufen soll) wird durch Einkommentieren der zugehörigen Include-Files ausgewählt. Im Beispiel für einen ATtiny45.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
;           select the appropriate include file:&lt;br /&gt;
;.include &amp;quot;tn13def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn2313def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn25def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn261def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn44def.inc&amp;quot;&lt;br /&gt;
.include &amp;quot;tn45def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn461def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;m48def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn84def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn85def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn861def.inc&amp;quot;&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei nicht vergessen, die bisher (per Default) ausgewählte CPU ATmega168 auszukommentieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
;.include &amp;quot;m168def.inc&amp;quot;&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== UART Port und Pins festlegen – BOOTLOAD.ASM ===&lt;br /&gt;
&lt;br /&gt;
Da die verwendeten Pins für die Schnittstelle frei wählbar sind, müssen diese noch eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
STX_PORT: Hier den Sendeport angeben. Für die Pins des Hardware-UARTs des M8 wäre das Port D. Es müssen zwar nicht dieselben Pins sein, wenn man sie aber ohnehin als Schnittstelle nutzt, ist es sinnvoll, sie auszuwählen.  Verwendet wird immer ein im Bootloader integrierter Software-UART, der auf beliebigen I/O-Pins lauschen kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ    STX_PORT        = PORTD&lt;br /&gt;
.equ    STX             = PD1&lt;br /&gt;
&lt;br /&gt;
.equ    SRX_PORT        = PORTD&lt;br /&gt;
.equ    SRX             = PD0&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&#039;&#039;Beispiel für gleiche Bepinnung wie Hardware-UART im ATMega 8, 48, 168&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Für One-Wire-Betrieb muß für TX und RX zweimal der gleiche Pin angeben werden. Beim Assemblieren wird das erkannt und One-Wire aktiviert - es ist keine weitere Änderung nötig.&lt;br /&gt;
&lt;br /&gt;
=== CPU-Frequenz und Wartezeit festlegen - FASTLOAD.H ===&lt;br /&gt;
&lt;br /&gt;
Bei XTAL die benutzte Frequenz des Controllers einstellen (jungfräuliche AVRs haben oft intern 1MHz aktiviert!).&lt;br /&gt;
Im Standard Makefile von WinAVR steht die Frequenz unter F_CPU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ	XTAL		= 8000000   ; 8MHz, not critical&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um die Wartezeit auf das Firmware-Update beim Booten anzupassen:&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ	BootDelay	= XTAL / 3  ; 0.33s&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Assemblieren des Bootloaders ==&lt;br /&gt;
&lt;br /&gt;
Da der Bootloader in Assembler geschrieben ist, kann WinAVR nicht so ohne weiteres damit umgehen.&lt;br /&gt;
Das einfachste ist, sich das AVRStudio von Atmel herunterzuladen [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725]&lt;br /&gt;
&lt;br /&gt;
Im Unterverzeichnis AvrAssembler2 befindet sich der benötigte Assembler. Das Einfachste ist, sich die unter &amp;quot;Appnotes&amp;quot; benötigte Include Datei des jeweiligen Controllers (oder das komplette Verzeichnis) und die avrasm2.exe ins Verzeichnis des Bootloaders zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Danach wird der Assembler aufgerufen (m8.asm für ATMega 8) und der Bootloader kompiliert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
avrasm2 -fI BOOTLOAD.ASM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist wichtig, dass die Includes des avrasm2 und nicht die der alten Version verwendet werden, da es sonst beim Assemblieren zu dem Fehler &lt;br /&gt;
&amp;quot;&#039;&#039;fastload.h(112): error: Use of undefined or forward referenced symbol &#039;SRAM_START&#039; in .org&#039;&#039;&amp;quot;&lt;br /&gt;
kommt.&lt;br /&gt;
&lt;br /&gt;
Das AVRStudio lässt sich unter Linux auch mit WINE installieren (die IDE des AVR Studio 4 geht allerdings nur mit ein paar Tricks aus der AppDB - ist für das Assemblieren des Bootloaders aber nicht nötig). Wenn &amp;quot;avrasm2.exe&amp;quot; und die zum AVR passende Include-Datei (beispielsweise &amp;quot;tn45def.inc&amp;quot; für ATtiny45) im gleichen Verzeichnis wie die restlichen Dateien des Bootloaders liegen, kann der Bootloader mit folgendem Befehl assembliert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wine avrasm2.exe -fI BOOTLOAD.ASM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Brennen des Bootloaders ==&lt;br /&gt;
&lt;br /&gt;
Der nun erzeugte Bootloader wird mit dem vorhanden ISP Dongle in den AVR gebrannt (Intel Hex Format):&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;avrdude&amp;quot; -p m8 -c avr910 -P com1 -U flash:w:&amp;quot;C:\Test\m8 3686400.hex&amp;quot;:i -U flash:v:&amp;quot;C:\Test\m8 3686400.hex&amp;quot;:i -y&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brennen mit AVRDude auf COM 1 und einem AVR910 kompatiblen Dongle (z.&amp;amp;nbsp;B. myAVR USB)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Einstellen der Fuses ==&lt;br /&gt;
&lt;br /&gt;
Damit der Bootloader zu Beginn gestartet wird, müssen die entsprechenden Fuses gesetzt werden. Möglich ist dies u.a. mit der AVRDude GUI.&lt;br /&gt;
* BOOTRST muss auf 0 gestellt werden (aktiviert den Bootloader)&lt;br /&gt;
* BOOTSZ muss auf 256 Worte (= 512 Byte) (oder dem minimal möglichen Wert, wenn AVR nur größere Bootloader Regionen unterstützt) gestellt werden. Beispielsweise ist für den ATMega8 der Wert 10.&lt;br /&gt;
&lt;br /&gt;
Bei einigen Controllern wie z.&amp;amp;nbsp;B. dem ATMega 48 wird das Flag&lt;br /&gt;
* Selfprogramming enabled gesetzt.&lt;br /&gt;
&lt;br /&gt;
Auf dieser [http://www.engbedded.com/fusecalc/ Website (Fusecalc)] kann man sich die Fuses elegant zusammenstellen und erhält gleich die Parameter für avrdude. Eine schnelle und *sichere* Alternative zum fehlerträchtigen &amp;quot;Kaputtflashen&amp;quot; von Atmels.&lt;br /&gt;
&lt;br /&gt;
== Brennen des eigentlichen Programmes ==&lt;br /&gt;
&lt;br /&gt;
Damit das Programm mit Peters Tool in den Controller geladen werden kann, muss es im Intel HEX Format vorliegen. Im makefile Template von WinAVR (und auch der ATMegaIDE) ist dies standardmäßig eingestellt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
# Output format. (can be srec, ihex, binary)&lt;br /&gt;
FORMAT = ihex&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird Peters Firmware-Update Tool aufgerufen (hier COM2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fboot /C2 /Pmain.hex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;hier wird die main.hex als Hauptprogramm gebrannt&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wichtig hierbei ist, dass der Dateiname der alten DOS Konvention entspricht. Also keine langen Dateinamen.&lt;br /&gt;
&lt;br /&gt;
Peters Firmware-Update Tool lässt sich unter Linux leider nicht mit WINE starten, dafür aber mit DOSBOX. Der Aufruf ist dann der gleiche wie unter Windows.&lt;br /&gt;
&lt;br /&gt;
Wenn noch keine Firmware im Controller ist (direkt nach dem Installieren des Bootloaders), startet der Brennvorgang automatisch. Andernfalls wartet das Programm auf den Reset des Controllers. Peters Tool arbeitet nur mit COM1 bis COM4 zusammen. Also ggf. den USB Adapter im Gerätemanager umstellen.&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe sieht dann wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\DOCUME~1\zzzzzz\Desktop\avr\_soft\fboot18&amp;gt;fboot18 /Ptest.hex /b9600 /c1&lt;br /&gt;
COM 1 at 9600 Baud: Connected (One wire)&lt;br /&gt;
Bootloader V1.8&lt;br /&gt;
Target: 1E9108&lt;br /&gt;
Buffer: 32 Byte&lt;br /&gt;
Size available: 1534 Byte&lt;br /&gt;
Program test.hex: 00000 - 00073 successful&lt;br /&gt;
CRC: o.k.&lt;br /&gt;
Elapsed time: 1.43 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Linux steht ebenfalls ein [https://github.com/Boregard/FBoot-Linux Programmiertool] (aus diesem [http://www.mikrocontroller.net/topic/73196#1067153 Beitrag]) für die aktuelle Version 2.1 des Bootloaders für die Kommandozeile zur Verfügung, das auch den One-Wire-Betrieb unterstützt.&lt;br /&gt;
&lt;br /&gt;
Es lässt sich nach dem Entpacken durch ein simples &amp;quot;make&amp;quot; übersetzen. Die Verwendung ist analog zum DOS-Tool:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./bootloader -d /dev/ttyS0 -b 115200 -p tiny45test.hex&lt;br /&gt;
&lt;br /&gt;
=================================================&lt;br /&gt;
|           BOOTLOADER, Target: V2.1            |&lt;br /&gt;
=================================================&lt;br /&gt;
Port    : /dev/ttyS0&lt;br /&gt;
Baudrate: 115200&lt;br /&gt;
File    : tiny45test.hex&lt;br /&gt;
Reading : tiny45test.hex... File read.&lt;br /&gt;
Size    : 2717 Bytes&lt;br /&gt;
Program device.&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Waiting for device... connected (one wire)!&lt;br /&gt;
Bootloader    : V2.1&lt;br /&gt;
Target        : 1E9206 ATtiny45&lt;br /&gt;
Buffer        : 64 Byte&lt;br /&gt;
Size available: 3582 Byte&lt;br /&gt;
CRC enabled and OK.&lt;br /&gt;
Programming   : 00000 - 00A9D&lt;br /&gt;
Writing | ##################################### | 100%&lt;br /&gt;
Elapsed time: 0.79 seconds, 3439 Bytes/sec.&lt;br /&gt;
&lt;br /&gt;
 ++++++++++ Device successfully programmed! ++++++++++&lt;br /&gt;
&lt;br /&gt;
...starting application&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bootloader-Support in ATMegaIDE 2007 ==&lt;br /&gt;
&lt;br /&gt;
Die IDE kann wahlweise mit AVRDude und einem entsprechenden ISP-Dongle oder mit dem Bootloader das Programm in den Flash brennen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Anpassen des Programms ===&lt;br /&gt;
Um das Firmware Update komfortabler zu gestalten, kann ein Software-Reset eingebaut werden, der per RS232- bzw. USB-Schnittstelle oder Tastendruck ausgelöst wird.&lt;br /&gt;
&lt;br /&gt;
==== Tastendruck ====&lt;br /&gt;
In der mitgelieferten Standard.h gibt es den Befehl void Reset();. Er löst mit Hilfe des Watchdog-Timers einen Hardwarereset aus. Man kann jetzt z.&amp;amp;nbsp;B. auf einen bestimmten Tastendruck (-kombination) hin diesen Reset ausführen.&lt;br /&gt;
&lt;br /&gt;
==== RS232/USB ====&lt;br /&gt;
Alternativ kann ein entsprechender Befehl über die RS232 gesendet werden. Standardmäßig ist dies 0xFF ‚R‘.&lt;br /&gt;
&lt;br /&gt;
=== Einstellungen in der IDE ===&lt;br /&gt;
&lt;br /&gt;
Der Bootloader Support kann bei den Projekt-Eigenschaften eingestellt werden. Beim Brennen wird er dann automatisch benutzt.&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== Komfortables Stand-Alone Firmware-Update ===&lt;br /&gt;
&lt;br /&gt;
Basierend auf dem Code der IDE wird es im September noch ein Standalone-Programm für das Firmware-Update geben. Es wird auch ein entsprechendes Protokoll zur Versionskontrolle haben (die bisherige Soft- und viel wichtiger Hardwareversion wird überprüft). Eine Verschlüsselung der Firmware-Datei ist in Planung.&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Erzeugen des Bootloaders ===&lt;br /&gt;
Sobald ich Zeit habe kommt in die IDE auch die Möglichkeit, die Anpassungen des Bootloaders von der IDE durchführen zu lassen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Programmer und -Bootloader|B]]&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_Bootloader_FastBoot_von_Peter_Dannegger&amp;diff=69660</id>
		<title>AVR Bootloader FastBoot von Peter Dannegger</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_Bootloader_FastBoot_von_Peter_Dannegger&amp;diff=69660"/>
		<updated>2012-12-07T17:19:41Z</updated>

		<summary type="html">&lt;p&gt;Boregard: Linux bootloader Link auf github geändert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von Karsten Donat&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Bootloader? ==&lt;br /&gt;
&lt;br /&gt;
Der Bootloader ist selbst ein kleines Programm. Es wird beim Start des Controllers zuerst ausgeführt. Damit sich das PC-Programm für das Firmware-Update melden kann, wartet der Bootloader  eine gewisse Zeit (hier 0,33 Sekunden) auf ein Zeichen über die serielle Schnittstelle (UART RS232, USB). Kommt dies Zeichen, wird die neue Firmware gebrannt. Andernfalls wird das eigentliche Programm des Controllers ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Anwendungsprogramm geht natürlich der Platz verloren, den der Bootloader benötigt. Da Peters Bootloader jedoch in ein 512Bytes (256 Worte!) großes Segment passt, stört das nicht weiter.&lt;br /&gt;
&lt;br /&gt;
Normalerweise wird der Programmcode des Mikrocontrollers mit einem ISP-Dongle in den Flash gebrannt. Aus verschiedenen Gründen kann dies jedoch nicht möglich/ gewünscht sein:&lt;br /&gt;
* Geschwindigkeit: Der ISP-Dongle kann langsam sein (z.&amp;amp;nbsp;B. myAVR mit aktuellem AVRDude)&lt;br /&gt;
* PINs: Man braucht die PINs und will ISP abschalten (Fuses, aber Vorsicht!, danach kann man nur mit dem Bootloader oder einem [[AVR HV-Programmer]] noch an den Flash-Speicher)&lt;br /&gt;
* Komfort: Man möchte dem Kunden/Nutzer die Möglichkeit geben, eine neue Firmware selbst einzuspielen. In der Regel hat dieser jedoch keinen ISP-Dongle zur Hand. Eine RS232- oder USB-Schnittstelle ist aber oftmals vorhanden.&lt;br /&gt;
* Sicherheit: Man möchte dem Kunden nicht die Firmware in deassemblierbarer Form geben (über geänderten Bootloader kann die Datei verschlüsselt sein).&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Automatische Erkennung der vom PC verwendeten Baudrate&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/73196#610574 Ein] oder zwei Wire Betrieb&lt;br /&gt;
* Support für viele verschiedene AVRs wie: tiny13, tiny2313, tiny25, tiny261, tiny44, tiny45, tiny461, tiny84, tiny85, tiny861, mega48, mega8, mega8515, mega8525, mega88, mega16, mega162, mega168, mega32, mega64, mega644, mega128, mega1281, mega2561.&lt;br /&gt;
* Passwortschutz gegen unberechtigtes Umprogrammieren (aber keine Verschlüsselung des Programms).&lt;br /&gt;
* Freie Software - unter GPL lizenziert ([http://www.mikrocontroller.net/topic/73196?goto=848377#848377 Link]). Das eigentliche Anwendungsprogramm, das über den Bootloader geladen wird muß deswegen *nicht* unter der GPL stehen und dessen Quelltext auch *nicht* veröffentlicht werden ([http://www.mikrocontroller.net/topic/73196?goto=950943#950943 Link]).&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an das zu ladende Programm ==&lt;br /&gt;
Bei AVRs ohne &amp;quot;boot reset vector fuse&amp;quot; (BOOTRST) wie beispielsweise ATtinys und kleinen ATmegas (ATmega48) muß der erste Befehl ein RJMP sein. Für C-Programme ist das automatisch sichergestellt (und für Assembler-Programme leicht selbst sicherzustellen).&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* Thread zum Bootloader: [http://www.mikrocontroller.net/topic/73196 http://www.mikrocontroller.net/topic/73196]&lt;br /&gt;
&lt;br /&gt;
* Version 2.1 des Bootloaders incl. DOS Host-Software (Forumsbeitrag): [http://www.mikrocontroller.net/topic/goto_post/850843]&lt;br /&gt;
* Version 2.1 des Bootloaders für AVR-GCC-Toolchain (Forumsbeitrag): [http://www.mikrocontroller.net/topic/goto_post/1824790]&lt;br /&gt;
* Protokollbeschreibung Host&amp;lt;-&amp;gt;Target (Forumsbeitrag): [http://www.mikrocontroller.net/topic/goto_post/685654]&lt;br /&gt;
* Schaltbild für One-Wire-Betrieb (Forumsbeitrag): [http://www.mikrocontroller.net/topic/goto_post/610574]&lt;br /&gt;
&lt;br /&gt;
* Linux Host-SW für Version 2.1 mit One-Wire (Forumsbeitrag): [http://www.mikrocontroller.net/topic/73196?goto=2320796#2320796]&lt;br /&gt;
* Linux und MAC-OSX Host-SW für V2.1 ohne One-Wire (nur mit Anmeldung zu erreichen): [http://www.avrfreaks.net/index.php?module=Freaks%20Academy&amp;amp;func=viewItem&amp;amp;item_type=project&amp;amp;item_id=1927 http://www.avrfreaks.net/index.php?module=Freaks%20Academy&amp;amp;func=viewItem&amp;amp;item_type=project&amp;amp;item_id=1927]&lt;br /&gt;
* Host-SW in Python für Version 1.7: [http://www.kreatives-chaos.com/artikel/fastboot17-frontend-python http://www.kreatives-chaos.com/artikel/fastboot17-frontend-python]&lt;br /&gt;
* Host-SW Win32 für Version 1.7: [http://www.mikrocontroller.net/topic/goto_post/698193]&lt;br /&gt;
* Host-SW Win64 für Version 2.1: [http://www.mikrocontroller.net/topic/goto_post/2349817] [http://derluz.de/fboot64/ http://derluz.de/fboot64/]&lt;br /&gt;
* Host-SW Win64 für Version 2.1: [http://www.mikrocontroller.net/topic/goto_post/1855508] dev-cpp build von [http://www.mikrocontroller.net/user/show/maltep87 maltep87]&lt;br /&gt;
* Host-SW mit GUI für Version 2.1: [http://www.mikrocontroller.net/topic/goto_post/2827323] [http://www.leo-andres.de/2012/09/updateloader-benutzeroberflache-fur-avr-bootloader/ www.leo-andres.de]&lt;br /&gt;
&lt;br /&gt;
* Atmel AVR-Studio (um Bootloader zu assemblieren): [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725]&lt;br /&gt;
* ATMega IDE 2007: [http://www.KarstenDonat.de/AVR http://www.KarstenDonat.de/AVR]&lt;br /&gt;
&lt;br /&gt;
* Ältere Version dieser Anleitung als PDF: [http://www.KarstenDonat.de/AVR/Bootloader.pdf http://www.KarstenDonat.de/AVR/Bootloader.pdf]&lt;br /&gt;
&lt;br /&gt;
== Bootloader anpassen ==&lt;br /&gt;
&lt;br /&gt;
=== CPU auswählen – BOOTLOAD.ASM ===&lt;br /&gt;
&lt;br /&gt;
Die CPU (der Atmel auf dem der Bootloader laufen soll) wird durch Einkommentieren der zugehörigen Include-Files ausgewählt. Im Beispiel für einen ATtiny45.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
;           select the appropriate include file:&lt;br /&gt;
;.include &amp;quot;tn13def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn2313def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn25def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn261def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn44def.inc&amp;quot;&lt;br /&gt;
.include &amp;quot;tn45def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn461def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;m48def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn84def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn85def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn861def.inc&amp;quot;&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei nicht vergessen, die bisher (per Default) ausgewählte CPU ATmega168 auszukommentieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
;.include &amp;quot;m168def.inc&amp;quot;&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== UART Port und Pins festlegen – BOOTLOAD.ASM ===&lt;br /&gt;
&lt;br /&gt;
Da die verwendeten Pins für die Schnittstelle frei wählbar sind, müssen diese noch eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
STX_PORT: Hier den Sendeport angeben. Für die Pins des Hardware-UARTs des M8 wäre das Port D. Es müssen zwar nicht dieselben Pins sein, wenn man sie aber ohnehin als Schnittstelle nutzt, ist es sinnvoll, sie auszuwählen.  Verwendet wird immer ein im Bootloader integrierter Software-UART, der auf beliebigen I/O-Pins lauschen kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ    STX_PORT        = PORTD&lt;br /&gt;
.equ    STX             = PD1&lt;br /&gt;
&lt;br /&gt;
.equ    SRX_PORT        = PORTD&lt;br /&gt;
.equ    SRX             = PD0&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&#039;&#039;Beispiel für gleiche Bepinnung wie Hardware-UART im ATMega 8, 48, 168&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Für One-Wire-Betrieb muß für TX und RX zweimal der gleiche Pin angeben werden. Beim Assemblieren wird das erkannt und One-Wire aktiviert - es ist keine weitere Änderung nötig.&lt;br /&gt;
&lt;br /&gt;
=== CPU-Frequenz und Wartezeit festlegen - FASTLOAD.H ===&lt;br /&gt;
&lt;br /&gt;
Bei XTAL die benutzte Frequenz des Controllers einstellen (jungfräuliche AVRs haben oft intern 1MHz aktiviert!).&lt;br /&gt;
Im Standard Makefile von WinAVR steht die Frequenz unter F_CPU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ	XTAL		= 8000000   ; 8MHz, not critical&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um die Wartezeit auf das Firmware-Update beim Booten anzupassen:&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ	BootDelay	= XTAL / 3  ; 0.33s&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Assemblieren des Bootloaders ==&lt;br /&gt;
&lt;br /&gt;
Da der Bootloader in Assembler geschrieben ist, kann WinAVR nicht so ohne weiteres damit umgehen.&lt;br /&gt;
Das einfachste ist, sich das AVRStudio von Atmel herunterzuladen [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725]&lt;br /&gt;
&lt;br /&gt;
Im Unterverzeichnis AvrAssembler2 befindet sich der benötigte Assembler. Das Einfachste ist, sich die unter &amp;quot;Appnotes&amp;quot; benötigte Include Datei des jeweiligen Controllers (oder das komplette Verzeichnis) und die avrasm2.exe ins Verzeichnis des Bootloaders zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Danach wird der Assembler aufgerufen (m8.asm für ATMega 8) und der Bootloader kompiliert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
avrasm2 -fI BOOTLOAD.ASM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist wichtig, dass die Includes des avrasm2 und nicht die der alten Version verwendet werden, da es sonst beim Assemblieren zu dem Fehler &lt;br /&gt;
&amp;quot;&#039;&#039;fastload.h(112): error: Use of undefined or forward referenced symbol &#039;SRAM_START&#039; in .org&#039;&#039;&amp;quot;&lt;br /&gt;
kommt.&lt;br /&gt;
&lt;br /&gt;
Das AVRStudio lässt sich unter Linux auch mit WINE installieren (die IDE des AVR Studio 4 geht allerdings nur mit ein paar Tricks aus der AppDB - ist für das Assemblieren des Bootloaders aber nicht nötig). Wenn &amp;quot;avrasm2.exe&amp;quot; und die zum AVR passende Include-Datei (beispielsweise &amp;quot;tn45def.inc&amp;quot; für ATtiny45) im gleichen Verzeichnis wie die restlichen Dateien des Bootloaders liegen, kann der Bootloader mit folgendem Befehl assembliert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wine avrasm2.exe -fI BOOTLOAD.ASM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Brennen des Bootloaders ==&lt;br /&gt;
&lt;br /&gt;
Der nun erzeugte Bootloader wird mit dem vorhanden ISP Dongle in den AVR gebrannt (Intel Hex Format):&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;avrdude&amp;quot; -p m8 -c avr910 -P com1 -U flash:w:&amp;quot;C:\Test\m8 3686400.hex&amp;quot;:i -U flash:v:&amp;quot;C:\Test\m8 3686400.hex&amp;quot;:i -y&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brennen mit AVRDude auf COM 1 und einem AVR910 kompatiblen Dongle (z.&amp;amp;nbsp;B. myAVR USB)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Einstellen der Fuses ==&lt;br /&gt;
&lt;br /&gt;
Damit der Bootloader zu Beginn gestartet wird, müssen die entsprechenden Fuses gesetzt werden. Möglich ist dies u.a. mit der AVRDude GUI.&lt;br /&gt;
* BOOTRST muss auf 0 gestellt werden (aktiviert den Bootloader)&lt;br /&gt;
* BOOTSZ muss auf 256 Worte (= 512 Byte) (oder dem minimal möglichen Wert, wenn AVR nur größere Bootloader Regionen unterstützt) gestellt werden. Beispielsweise ist für den ATMega8 der Wert 10.&lt;br /&gt;
&lt;br /&gt;
Bei einigen Controllern wie z.&amp;amp;nbsp;B. dem ATMega 48 wird das Flag&lt;br /&gt;
* Selfprogramming enabled gesetzt.&lt;br /&gt;
&lt;br /&gt;
Auf dieser [http://www.engbedded.com/fusecalc/ Website (Fusecalc)] kann man sich die Fuses elegant zusammenstellen und erhält gleich die Parameter für avrdude. Eine schnelle und *sichere* Alternative zum fehlerträchtigen &amp;quot;Kaputtflashen&amp;quot; von Atmels.&lt;br /&gt;
&lt;br /&gt;
== Brennen des eigentlichen Programmes ==&lt;br /&gt;
&lt;br /&gt;
Damit das Programm mit Peters Tool in den Controller geladen werden kann, muss es im Intel HEX Format vorliegen. Im makefile Template von WinAVR (und auch der ATMegaIDE) ist dies standardmäßig eingestellt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
# Output format. (can be srec, ihex, binary)&lt;br /&gt;
FORMAT = ihex&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird Peters Firmware-Update Tool aufgerufen (hier COM2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fboot /C2 /Pmain.hex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;hier wird die main.hex als Hauptprogramm gebrannt&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wichtig hierbei ist, dass der Dateiname der alten DOS Konvention entspricht. Also keine langen Dateinamen.&lt;br /&gt;
&lt;br /&gt;
Peters Firmware-Update Tool lässt sich unter Linux leider nicht mit WINE starten, dafür aber mit DOSBOX. Der Aufruf ist dann der gleiche wie unter Windows.&lt;br /&gt;
&lt;br /&gt;
Wenn noch keine Firmware im Controller ist (direkt nach dem Installieren des Bootloaders), startet der Brennvorgang automatisch. Andernfalls wartet das Programm auf den Reset des Controllers. Peters Tool arbeitet nur mit COM1 bis COM4 zusammen. Also ggf. den USB Adapter im Gerätemanager umstellen.&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe sieht dann wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\DOCUME~1\zzzzzz\Desktop\avr\_soft\fboot18&amp;gt;fboot18 /Ptest.hex /b9600 /c1&lt;br /&gt;
COM 1 at 9600 Baud: Connected (One wire)&lt;br /&gt;
Bootloader V1.8&lt;br /&gt;
Target: 1E9108&lt;br /&gt;
Buffer: 32 Byte&lt;br /&gt;
Size available: 1534 Byte&lt;br /&gt;
Program test.hex: 00000 - 00073 successful&lt;br /&gt;
CRC: o.k.&lt;br /&gt;
Elapsed time: 1.43 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Linux steht ebenfalls ein [https://github.com/Boregard/FBoot-Linux Programmiertool] (aus diesem [http://www.mikrocontroller.net/topic/73196#1067153 Beitrag]) für die aktuelle Version 2.1 des Bootloaders für die Kommandozeile zur Verfügung, das auch den One-Wire-Betrieb unterstützt.&lt;br /&gt;
&lt;br /&gt;
Es lässt sich nach dem Entpacken durch ein simples &amp;quot;make&amp;quot; übersetzen. Die Verwendung ist analog zum DOS-Tool:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./bootloader -d /dev/ttyS0 -b 115200 -p tiny45test.hex&lt;br /&gt;
&lt;br /&gt;
=================================================&lt;br /&gt;
|           BOOTLOADER, Target: V2.1            |&lt;br /&gt;
=================================================&lt;br /&gt;
Port    : /dev/ttyS0&lt;br /&gt;
Baudrate: 115200&lt;br /&gt;
File    : tiny45test.hex&lt;br /&gt;
Reading : tiny45test.hex... File read.&lt;br /&gt;
Size    : 2717 Bytes&lt;br /&gt;
Program device.&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Waiting for device... connected (one wire)!&lt;br /&gt;
Bootloader    : V2.1&lt;br /&gt;
Target        : 1E9206 ATtiny45&lt;br /&gt;
Buffer        : 64 Byte&lt;br /&gt;
Size available: 3582 Byte&lt;br /&gt;
CRC enabled and OK.&lt;br /&gt;
Programming   : 00000 - 00A9D&lt;br /&gt;
Writing | ##################################### | 100%&lt;br /&gt;
Elapsed time: 0.79 seconds, 3439 Bytes/sec.&lt;br /&gt;
&lt;br /&gt;
 ++++++++++ Device successfully programmed! ++++++++++&lt;br /&gt;
&lt;br /&gt;
...starting application&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bootloader-Support in ATMegaIDE 2007 ==&lt;br /&gt;
&lt;br /&gt;
Die IDE kann wahlweise mit AVRDude und einem entsprechenden ISP-Dongle oder mit dem Bootloader das Programm in den Flash brennen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Anpassen des Programms ===&lt;br /&gt;
Um das Firmware Update komfortabler zu gestalten, kann ein Software-Reset eingebaut werden, der per RS232- bzw. USB-Schnittstelle oder Tastendruck ausgelöst wird.&lt;br /&gt;
&lt;br /&gt;
==== Tastendruck ====&lt;br /&gt;
In der mitgelieferten Standard.h gibt es den Befehl void Reset();. Er löst mit Hilfe des Watchdog-Timers einen Hardwarereset aus. Man kann jetzt z.&amp;amp;nbsp;B. auf einen bestimmten Tastendruck (-kombination) hin diesen Reset ausführen.&lt;br /&gt;
&lt;br /&gt;
==== RS232/USB ====&lt;br /&gt;
Alternativ kann ein entsprechender Befehl über die RS232 gesendet werden. Standardmäßig ist dies 0xFF ‚R‘.&lt;br /&gt;
&lt;br /&gt;
=== Einstellungen in der IDE ===&lt;br /&gt;
&lt;br /&gt;
Der Bootloader Support kann bei den Projekt-Eigenschaften eingestellt werden. Beim Brennen wird er dann automatisch benutzt.&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== Komfortables Stand-Alone Firmware-Update ===&lt;br /&gt;
&lt;br /&gt;
Basierend auf dem Code der IDE wird es im September noch ein Standalone-Programm für das Firmware-Update geben. Es wird auch ein entsprechendes Protokoll zur Versionskontrolle haben (die bisherige Soft- und viel wichtiger Hardwareversion wird überprüft). Eine Verschlüsselung der Firmware-Datei ist in Planung.&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Erzeugen des Bootloaders ===&lt;br /&gt;
Sobald ich Zeit habe kommt in die IDE auch die Möglichkeit, die Anpassungen des Bootloaders von der IDE durchführen zu lassen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Programmer und -Bootloader|B]]&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_Bootloader_FastBoot_von_Peter_Dannegger&amp;diff=59902</id>
		<title>AVR Bootloader FastBoot von Peter Dannegger</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_Bootloader_FastBoot_von_Peter_Dannegger&amp;diff=59902"/>
		<updated>2011-08-26T08:47:54Z</updated>

		<summary type="html">&lt;p&gt;Boregard: neue Linux Version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von Karsten Donat&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Bootloader? ==&lt;br /&gt;
&lt;br /&gt;
Der Bootloader ist selbst ein kleines Programm. Es wird beim Start des Controllers zuerst ausgeführt. Damit sich das PC-Programm für das Firmware-Update melden kann, wartet der Bootloader  eine gewisse Zeit (hier 0,33 Sekunden) auf ein Zeichen über die serielle Schnittstelle (UART RS232, USB). Kommt dies Zeichen, wird die neue Firmware gebrannt. Andernfalls wird das eigentliche Programm des Controllers ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Anwendungsprogramm geht natürlich der Platz verloren, den der Bootloader benötigt. Da Peters Bootloader jedoch in ein 512Bytes (256 Worte!) großes Segment passt, stört das nicht weiter.&lt;br /&gt;
&lt;br /&gt;
Normalerweise wird der Programmcode des Mikrocontrollers mit einem ISP-Dongle in den Flash gebrannt. Aus verschiedenen Gründen kann dies jedoch nicht möglich/ gewünscht sein:&lt;br /&gt;
* Geschwindigkeit: Der ISP-Dongle kann langsam sein (z.&amp;amp;nbsp;B. myAVR mit aktuellem AVRDude)&lt;br /&gt;
* PINs: Man braucht die PINs und will ISP abschalten (Fuses, aber Vorsicht!, danach kann man nur mit dem Bootloader oder einem [[AVR HV-Programmer]] noch an den Flash-Speicher)&lt;br /&gt;
* Komfort: Man möchte dem Kunden/Nutzer die Möglichkeit geben, eine neue Firmware selbst einzuspielen. In der Regel hat dieser jedoch keinen ISP-Dongle zur Hand. Eine RS232- oder USB-Schnittstelle ist aber oftmals vorhanden.&lt;br /&gt;
* Sicherheit: Man möchte dem Kunden nicht die Firmware in deassemblierbarer Form geben (über geänderten Bootloader kann die Datei verschlüsselt sein).&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Automatische Erkennung der vom PC verwendeten Baudrate&lt;br /&gt;
* Ein oder zwei Wire Betrieb&lt;br /&gt;
* Support für viele verschiedene AVRs wie: tiny13, tiny2313, tiny25, tiny261, tiny44, tiny45, tiny461, tiny84, tiny85, tiny861, mega48, mega8, mega8515, mega8525, mega88, mega16, mega162, mega168, mega32, mega64, mega644, mega128, mega1281, mega2561.&lt;br /&gt;
* Passwortschutz gegen unberechtigtes Umprogrammieren (aber keine Verschlüsselung des Programms).&lt;br /&gt;
* Freie Software - unter GPL lizenziert ([http://www.mikrocontroller.net/topic/73196?goto=848377#848377 Link]). Das eigentliche Anwendungsprogramm, das über den Bootloader geladen wird muß deswegen *nicht* unter der GPL stehen und dessen Quelltext auch *nicht* veröffentlicht werden ([http://www.mikrocontroller.net/topic/73196?goto=950943#950943 Link]).&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an das zu ladende Programm ==&lt;br /&gt;
Bei AVRs ohne &amp;quot;boot reset vector fuse&amp;quot; (BOOTRST) wie beispielsweise ATtinys und kleinen ATmegas (ATmega48) muß der erste Befehl ein RJMP sein. Für C-Programme ist das automatisch sichergestellt (und für Assembler-Programme leicht selbst sicherzustellen).&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* Thread zum Bootloader: [http://www.mikrocontroller.net/topic/73196 http://www.mikrocontroller.net/topic/73196]&lt;br /&gt;
&lt;br /&gt;
* Version 2.1 des Bootloaders incl. DOS Host-Software (Forumsbeitrag): [http://www.mikrocontroller.net/topic/73196?goto=850650#850843]&lt;br /&gt;
* Version 2.1 des Bootloaders für AVR-GCC-Toolchain (Forumsbeitrag): [http://www.mikrocontroller.net/topic/146638#1824790]&lt;br /&gt;
* Protokollbeschreibung Host&amp;lt;-&amp;gt;Target (Forumsbeitrag): [http://www.mikrocontroller.net/topic/73196?goto=685654#685654]&lt;br /&gt;
* Schaltbild für One-Wire-Betrieb (Forumsbeitrag): [http://www.mikrocontroller.net/topic/73196?goto=610574#610574]&lt;br /&gt;
&lt;br /&gt;
* Linux Host-SW für Version 2.1 mit One-Wire (Forumsbeitrag): [http://www.mikrocontroller.net/topic/73196?goto=2320796#2320796]&lt;br /&gt;
* Linux und MAC-OSX Host-SW für V2.1 ohne One-Wire (nur mit Anmeldung zu erreichen): [http://www.avrfreaks.net/index.php?module=Freaks%20Academy&amp;amp;func=viewItem&amp;amp;item_type=project&amp;amp;item_id=1927 http://www.avrfreaks.net/index.php?module=Freaks%20Academy&amp;amp;func=viewItem&amp;amp;item_type=project&amp;amp;item_id=1927]&lt;br /&gt;
* Host-SW in Python für Version 1.7: [http://www.kreatives-chaos.com/artikel/fastboot17-frontend-python http://www.kreatives-chaos.com/artikel/fastboot17-frontend-python]&lt;br /&gt;
* Host-SW Win32 für Version 1.7: [http://www.mikrocontroller.net/topic/73196?goto=698193#698193]&lt;br /&gt;
&lt;br /&gt;
* Atmel AVR-Studio (um Bootloader zu assemblieren): [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725]&lt;br /&gt;
* ATMega IDE 2007: [http://www.KarstenDonat.de/AVR http://www.KarstenDonat.de/AVR]&lt;br /&gt;
&lt;br /&gt;
* Ältere Version dieser Anleitung als PDF: [http://www.KarstenDonat.de/AVR/Bootloader.pdf http://www.KarstenDonat.de/AVR/Bootloader.pdf]&lt;br /&gt;
&lt;br /&gt;
== Bootloader anpassen ==&lt;br /&gt;
&lt;br /&gt;
=== CPU auswählen – BOOTLOAD.ASM ===&lt;br /&gt;
&lt;br /&gt;
Die CPU (der Atmel auf dem der Bootloader laufen soll) wird durch Einkommentieren der zugehörigen Include-Files ausgewählt. Im Beispiel für einen ATtiny45.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
;           select the appropriate include file:&lt;br /&gt;
;.include &amp;quot;tn13def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn2313def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn25def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn261def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn44def.inc&amp;quot;&lt;br /&gt;
.include &amp;quot;tn45def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn461def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;m48def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn84def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn85def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn861def.inc&amp;quot;&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei nicht vergessen, die bisher (per Default) ausgewählte CPU ATmega168 auszukommentieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
;.include &amp;quot;m168def.inc&amp;quot;&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== UART Port und Pins festlegen – BOOTLOAD.ASM ===&lt;br /&gt;
&lt;br /&gt;
Da die verwendeten Pins für die Schnittstelle frei wählbar sind, müssen diese noch eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
STX_PORT: Hier den Sendeport angeben. Für die Pins des Hardware-UARTs des M8 wäre das Port D. Es müssen zwar nicht dieselben Pins sein, wenn man sie aber ohnehin als Schnittstelle nutzt, ist es sinnvoll, sie auszuwählen.  Verwendet wird immer ein im Bootloader integrierter Software-UART, der auf beliebigen I/O-Pins lauschen kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ    STX_PORT        = PORTD&lt;br /&gt;
.equ    STX             = PD1&lt;br /&gt;
&lt;br /&gt;
.equ    SRX_PORT        = PORTD&lt;br /&gt;
.equ    SRX             = PD0&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&#039;&#039;Beispiel für gleiche Bepinnung wie Hardware-UART im ATMega 8, 48, 168&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Für One-Wire-Betrieb muß für TX und RX zweimal der gleiche Pin angeben werden. Beim Assemblieren wird das erkannt und One-Wire aktiviert - es ist keine weitere Änderung nötig.&lt;br /&gt;
&lt;br /&gt;
=== CPU-Frequenz und Wartezeit festlegen - FASTLOAD.H ===&lt;br /&gt;
&lt;br /&gt;
Bei XTAL die benutzte Frequenz des Controllers einstellen (jungfräuliche AVRs haben oft intern 1MHz aktiviert!).&lt;br /&gt;
Im Standard Makefile von WinAVR steht die Frequenz unter F_CPU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ	XTAL		= 8000000   ; 8MHz, not critical&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um die Wartezeit auf das Firmware-Update beim Booten anzupassen:&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ	BootDelay	= XTAL / 3  ; 0.33s&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Assemblieren des Bootloaders ==&lt;br /&gt;
&lt;br /&gt;
Da der Bootloader in Assembler geschrieben ist, kann WinAVR nicht so ohne weiteres damit umgehen.&lt;br /&gt;
Das einfachste ist, sich das AVRStudio von Atmel herunterzuladen [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725]&lt;br /&gt;
&lt;br /&gt;
Im Unterverzeichnis AvrAssembler2 befindet sich der benötigte Assembler. Das Einfachste ist, sich die unter &amp;quot;Appnotes&amp;quot; benötigte Include Datei des jeweiligen Controllers (oder das komplette Verzeichnis) und die avrasm2.exe ins Verzeichnis des Bootloaders zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Danach wird der Assembler aufgerufen (m8.asm für ATMega 8) und der Bootloader kompiliert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
avrasm2 -fI BOOTLOAD.ASM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist wichtig, dass die Includes des avrasm2 und nicht die der alten Version verwendet werden, da es sonst beim Assemblieren zu dem Fehler &lt;br /&gt;
&amp;quot;&#039;&#039;fastload.h(112): error: Use of undefined or forward referenced symbol &#039;SRAM_START&#039; in .org&#039;&#039;&amp;quot;&lt;br /&gt;
kommt.&lt;br /&gt;
&lt;br /&gt;
Das AVRStudio lässt sich unter Linux auch mit WINE installieren (die IDE des AVR Studio 4 geht allerdings nur mit ein paar Tricks aus der AppDB - ist für das Assemblieren des Bootloaders aber nicht nötig). Wenn &amp;quot;avrasm2.exe&amp;quot; und die zum AVR passende Include-Datei (beispielsweise &amp;quot;tn45def.inc&amp;quot; für ATtiny45) im gleichen Verzeichnis wie die restlichen Dateien des Bootloaders liegen, kann der Bootloader mit folgendem Befehl assembliert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wine avrasm2.exe -fI BOOTLOAD.ASM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Brennen des Bootloaders ==&lt;br /&gt;
&lt;br /&gt;
Der nun erzeugte Bootloader wird mit dem vorhanden ISP Dongle in den AVR gebrannt (Intel Hex Format):&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;avrdude&amp;quot; -p m8 -c avr910 -P com1 -U flash:w:&amp;quot;C:\Test\m8 3686400.hex&amp;quot;:i -U flash:v:&amp;quot;C:\Test\m8 3686400.hex&amp;quot;:i -y&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brennen mit AVRDude auf COM 1 und einem AVR910 kompatiblen Dongle (z.&amp;amp;nbsp;B. myAVR USB)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Einstellen der Fuses ==&lt;br /&gt;
&lt;br /&gt;
Damit der Bootloader zu Beginn gestartet wird, müssen die entsprechenden Fuses gesetzt werden. Möglich ist dies u.a. mit der AVRDude GUI.&lt;br /&gt;
* BOOTRST muss auf 0 gestellt werden (aktiviert den Bootloader)&lt;br /&gt;
* BOOTSZ muss auf 256 Worte (= 512 Byte) (oder dem minimal möglichen Wert, wenn AVR nur größere Bootloader Regionen unterstützt) gestellt werden. Beispielsweise ist für den ATMega8 der Wert 10.&lt;br /&gt;
&lt;br /&gt;
Bei einigen Controllern wie z.&amp;amp;nbsp;B. dem ATMega 48 wird das Flag&lt;br /&gt;
* Selfprogramming enabled gesetzt.&lt;br /&gt;
&lt;br /&gt;
Auf dieser [http://www.engbedded.com/fusecalc/ Website (Fusecalc)] kann man sich die Fuses elegant zusammenstellen und erhält gleich die Parameter für avrdude. Eine schnelle und *sichere* Alternative zum fehlerträchtigen &amp;quot;Kaputtflashen&amp;quot; von Atmels.&lt;br /&gt;
&lt;br /&gt;
=== Fuses mit myAVR ändern ===&lt;br /&gt;
&lt;br /&gt;
Der myAVR Dongle unterstützt mit AVRDude leider keine Fuses. Abhilfe liefert hier jedoch das myAVR Workpad Plus. Die Demo-Version (reicht hierfür) kann unter&lt;br /&gt;
&lt;br /&gt;
[http://www.myavr.info/download/myAVR_WorkpadPLUS_Demo.exe http://www.myavr.info/download/myAVR_WorkpadPLUS_Demo.exe]&lt;br /&gt;
&lt;br /&gt;
heruntergeladen werden. Nach dem Installieren und Starten im Menü Extras – Fuse- und Lock-Bits wählen. Das Programm ermittelt automatisch den aktuellen Status. Je nach Controller steht der Bootloader Support unter High oder Extended Fuses.&lt;br /&gt;
&lt;br /&gt;
== Brennen des eigentlichen Programmes ==&lt;br /&gt;
&lt;br /&gt;
Damit das Programm mit Peters Tool in den Controller geladen werden kann, muss es im Intel HEX Format vorliegen. Im makefile Template von WinAVR (und auch der ATMegaIDE) ist dies standardmäßig eingestellt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
# Output format. (can be srec, ihex, binary)&lt;br /&gt;
FORMAT = ihex&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird Peters Firmware-Update Tool aufgerufen (hier COM2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fboot /C2 /Pmain.hex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;hier wird die main.hex als Hauptprogramm gebrannt&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wichtig hierbei ist, dass der Dateiname der alten DOS Konvention entspricht. Also keine langen Dateinamen.&lt;br /&gt;
&lt;br /&gt;
Peters Firmware-Update Tool lässt sich unter Linux leider nicht mit WINE starten, dafür aber mit DOSBOX. Der Aufruf ist dann der gleiche wie unter Windows.&lt;br /&gt;
&lt;br /&gt;
Wenn noch keine Firmware im Controller ist (direkt nach dem Installieren des Bootloaders), startet der Brennvorgang automatisch. Andernfalls wartet das Programm auf den Reset des Controllers. Peters Tool arbeitet nur mit COM1 bis COM4 zusammen. Also ggf. den USB Adapter im Gerätemanager umstellen.&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe sieht dann wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\DOCUME~1\zzzzzz\Desktop\avr\_soft\fboot18&amp;gt;fboot18 /Ptest.hex /b9600 /c1&lt;br /&gt;
COM 1 at 9600 Baud: Connected (One wire)&lt;br /&gt;
Bootloader V1.8&lt;br /&gt;
Target: 1E9108&lt;br /&gt;
Buffer: 32 Byte&lt;br /&gt;
Size available: 1534 Byte&lt;br /&gt;
Program test.hex: 00000 - 00073 successful&lt;br /&gt;
CRC: o.k.&lt;br /&gt;
Elapsed time: 1.43 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Linux steht ebenfalls ein [http://www.mikrocontroller.net/attachment/43211/lboot.tgz Programmiertool] (aus diesem [http://www.mikrocontroller.net/topic/73196#1067153 Beitrag]) für die aktuelle Version 2.1 des Bootloaders für die Kommandozeile zur Verfügung, das auch den One-Wire-Betrieb unterstützt.&lt;br /&gt;
&lt;br /&gt;
Es lässt sich nach dem Entpacken durch ein simples &amp;quot;make&amp;quot; übersetzen. Die Verwendung ist analog zum DOS-Tool:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./bootloader -d /dev/ttyS0 -b 115200 -p tiny45test.hex&lt;br /&gt;
&lt;br /&gt;
=================================================&lt;br /&gt;
|           BOOTLOADER, Target: V2.1            |&lt;br /&gt;
=================================================&lt;br /&gt;
Port    : /dev/ttyS0&lt;br /&gt;
Baudrate: 115200&lt;br /&gt;
File    : tiny45test.hex&lt;br /&gt;
Reading : tiny45test.hex... File read.&lt;br /&gt;
Size    : 2717 Bytes&lt;br /&gt;
Program device.&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Waiting for device... connected (one wire)!&lt;br /&gt;
Bootloader    : V2.1&lt;br /&gt;
Target        : 1E9206 ATtiny45&lt;br /&gt;
Buffer        : 64 Byte&lt;br /&gt;
Size available: 3582 Byte&lt;br /&gt;
CRC enabled and OK.&lt;br /&gt;
Programming   : 00000 - 00A9D&lt;br /&gt;
Writing | ##################################### | 100%&lt;br /&gt;
Elapsed time: 0.79 seconds, 3439 Bytes/sec.&lt;br /&gt;
&lt;br /&gt;
 ++++++++++ Device successfully programmed! ++++++++++&lt;br /&gt;
&lt;br /&gt;
...starting application&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bootloader-Support in ATMegaIDE 2007 ==&lt;br /&gt;
&lt;br /&gt;
Die IDE kann wahlweise mit AVRDude und einem entsprechenden ISP-Dongle oder mit dem Bootloader das Programm in den Flash brennen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Anpassen des Programms ===&lt;br /&gt;
Um das Firmware Update komfortabler zu gestalten, kann ein Software-Reset eingebaut werden, der per RS232- bzw. USB-Schnittstelle oder Tastendruck ausgelöst wird.&lt;br /&gt;
&lt;br /&gt;
==== Tastendruck ====&lt;br /&gt;
In der mitgelieferten Standard.h gibt es den Befehl void Reset();. Er löst mit Hilfe des Watchdog-Timers einen Hardwarereset aus. Man kann jetzt z.&amp;amp;nbsp;B. auf einen bestimmten Tastendruck (-kombination) hin diesen Reset ausführen.&lt;br /&gt;
&lt;br /&gt;
==== RS232/USB ====&lt;br /&gt;
Alternativ kann ein entsprechender Befehl über die RS232 gesendet werden. Standardmäßig ist dies 0xFF ‚R‘.&lt;br /&gt;
&lt;br /&gt;
=== Einstellungen in der IDE ===&lt;br /&gt;
&lt;br /&gt;
Der Bootloader Support kann bei den Projekt-Eigenschaften eingestellt werden. Beim Brennen wird er dann automatisch benutzt.&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== Komfortables Stand-Alone Firmware-Update ===&lt;br /&gt;
&lt;br /&gt;
Basierend auf dem Code der IDE wird es im September noch ein Standalone-Programm für das Firmware-Update geben. Es wird auch ein entsprechendes Protokoll zur Versionskontrolle haben (die bisherige Soft- und viel wichtiger Hardwareversion wird überprüft). Eine Verschlüsselung der Firmware-Datei ist in Planung.&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Erzeugen des Bootloaders ===&lt;br /&gt;
Sobald ich Zeit habe kommt in die IDE auch die Möglichkeit, die Anpassungen des Bootloaders von der IDE durchführen zu lassen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Programmer und -Bootloader|B]]&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_Bootloader_FastBoot_von_Peter_Dannegger&amp;diff=53042</id>
		<title>AVR Bootloader FastBoot von Peter Dannegger</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_Bootloader_FastBoot_von_Peter_Dannegger&amp;diff=53042"/>
		<updated>2010-11-29T09:54:55Z</updated>

		<summary type="html">&lt;p&gt;Boregard: Link auf Linux-client jetzt auf neue Version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von Karsten Donat&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Bootloader? ==&lt;br /&gt;
&lt;br /&gt;
Der Bootloader ist selbst ein kleines Programm. Es wird beim Start des Controllers zuerst ausgeführt. Damit sich das PC-Programm für das Firmware-Update melden kann, wartet der Bootloader  eine gewisse Zeit (hier 0,33 Sekunden) auf ein Zeichen über die serielle Schnittstelle (UART RS232, USB). Kommt dies Zeichen, wird die neue Firmware gebrannt. Andernfalls wird das eigentliche Programm des Controllers ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Dem eigentlichen Anwendungsprogramm geht natürlich der Platz verloren, den der Bootloader benötigt. Da Peters Bootloader jedoch in ein 512Bytes (256 Worte!) großes Segment passt, stört das nicht weiter.&lt;br /&gt;
&lt;br /&gt;
Normalerweise wird der Programmcode des Mikrocontrollers mit einem ISP-Dongle in den Flash gebrannt. Aus verschiedenen Gründen kann dies jedoch nicht möglich/ gewünscht sein:&lt;br /&gt;
* Geschwindigkeit: Der ISP-Dongle kann langsam sein (z.&amp;amp;nbsp;B. myAVR mit aktuellem AVRDude)&lt;br /&gt;
* PINs: Man braucht die PINs und will ISP abschalten (Fuses, aber Vorsicht!, danach kann man nur mit dem Bootloader oder einem [[AVR HV-Programmer]] noch an den Flash-Speicher)&lt;br /&gt;
* Komfort: Man möchte dem Kunden/Nutzer die Möglichkeit geben, eine neue Firmware selbst einzuspielen. In der Regel hat dieser jedoch keinen ISP-Dongle zur Hand. Eine RS232- oder USB-Schnittstelle ist aber oftmals vorhanden.&lt;br /&gt;
* Sicherheit: Man möchte dem Kunden nicht die Firmware in deassemblierbarer Form geben (über geänderten Bootloader kann die Datei verschlüsselt sein).&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Automatische Erkennung der vom PC verwendeten Baudrate&lt;br /&gt;
* Ein oder zwei Wire Betrieb&lt;br /&gt;
* Support für viele verschiedene AVRs wie: tiny13, tiny2313, tiny25, tiny261, tiny44, tiny45, tiny461, tiny84, tiny85, tiny861, mega48, mega8, mega8515, mega8525, mega88, mega16, mega162, mega168, mega32, mega64, mega644, mega128, mega1281, mega2561.&lt;br /&gt;
* Passwortschutz gegen unberechtigtes Umprogrammieren (aber keine Verschlüsselung des Programms).&lt;br /&gt;
* Freie Software - unter GPL lizenziert ([http://www.mikrocontroller.net/topic/73196?goto=848377#848377 Link]). Das eigentliche Anwendungsprogramm, das über den Bootloader geladen wird muß deswegen *nicht* unter der GPL stehen und dessen Quelltext auch *nicht* veröffentlicht werden ([http://www.mikrocontroller.net/topic/73196?goto=950943#950943 Link]).&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an das zu ladende Programm ==&lt;br /&gt;
Bei AVRs ohne &amp;quot;boot reset vector fuse&amp;quot; (BOOTRST) wie beispielsweise ATtinys und kleinen ATmegas (ATmega48) muß der erste Befehl ein RJMP sein. Für C-Programme ist das automatisch sichergestellt (und für Assembler-Programme leicht selbst sicherzustellen).&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* Thread zum Bootloader: [http://www.mikrocontroller.net/topic/73196 http://www.mikrocontroller.net/topic/73196]&lt;br /&gt;
&lt;br /&gt;
* Version 2.1 des Bootloaders incl. DOS Host-Software (Forumsbeitrag): [http://www.mikrocontroller.net/topic/73196?goto=850650#850843]&lt;br /&gt;
* Version 2.1 des Bootloaders für AVR-GCC-Toolchain (Forumsbeitrag): [http://www.mikrocontroller.net/topic/146638#1824790]&lt;br /&gt;
* Protokollbeschreibung Host&amp;lt;-&amp;gt;Target (Forumsbeitrag): [http://www.mikrocontroller.net/topic/73196?goto=685654#685654]&lt;br /&gt;
* Schaltbild für One-Wire-Betrieb (Forumsbeitrag): [http://www.mikrocontroller.net/topic/73196?goto=610574#610574]&lt;br /&gt;
&lt;br /&gt;
* Linux Host-SW für Version 2.1 mit One-Wire (Forumsbeitrag): [http://www.mikrocontroller.net/topic/73196?goto=1955077#1955077]&lt;br /&gt;
* Linux und MAC-OSX Host-SW für V2.1 ohne One-Wire (nur mit Anmeldung zu erreichen): [http://www.avrfreaks.net/index.php?module=Freaks%20Academy&amp;amp;func=viewItem&amp;amp;item_type=project&amp;amp;item_id=1927 http://www.avrfreaks.net/index.php?module=Freaks%20Academy&amp;amp;func=viewItem&amp;amp;item_type=project&amp;amp;item_id=1927]&lt;br /&gt;
* Host-SW in Python für Version 1.7: [http://www.kreatives-chaos.com/artikel/fastboot17-frontend-python http://www.kreatives-chaos.com/artikel/fastboot17-frontend-python]&lt;br /&gt;
* Host-SW Win32 für Version 1.7: [http://www.mikrocontroller.net/topic/73196?goto=698193#698193]&lt;br /&gt;
&lt;br /&gt;
* Atmel AVR-Studio (um Bootloader zu assemblieren): [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725]&lt;br /&gt;
* ATMega IDE 2007: [http://www.KarstenDonat.de/AVR http://www.KarstenDonat.de/AVR]&lt;br /&gt;
&lt;br /&gt;
* Ältere Version dieser Anleitung als PDF: [http://www.KarstenDonat.de/AVR/Bootloader.pdf http://www.KarstenDonat.de/AVR/Bootloader.pdf]&lt;br /&gt;
&lt;br /&gt;
== Bootloader anpassen ==&lt;br /&gt;
&lt;br /&gt;
=== CPU auswählen – BOOTLOAD.ASM ===&lt;br /&gt;
&lt;br /&gt;
Die CPU (der Atmel auf dem der Bootloader laufen soll) wird durch Einkommentieren der zugehörigen Include-Files ausgewählt. Im Beispiel für einen ATtiny45.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
;           select the appropriate include file:&lt;br /&gt;
;.include &amp;quot;tn13def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn2313def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn25def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn261def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn44def.inc&amp;quot;&lt;br /&gt;
.include &amp;quot;tn45def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn461def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;m48def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn84def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn85def.inc&amp;quot;&lt;br /&gt;
;.include &amp;quot;tn861def.inc&amp;quot;&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei nicht vergessen, die bisher (per Default) ausgewählte CPU ATmega168 auszukommentieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
;.include &amp;quot;m168def.inc&amp;quot;&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== UART Port und Pins festlegen – BOOTLOAD.ASM ===&lt;br /&gt;
&lt;br /&gt;
Da die verwendeten Pins für die Schnittstelle frei wählbar sind, müssen diese noch eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
STX_PORT: Hier den Sendeport angeben. Für die Pins des Hardware-UARTs des M8 wäre das Port D. Es müssen zwar nicht dieselben Pins sein, wenn man sie aber ohnehin als Schnittstelle nutzt, ist es sinnvoll, sie auszuwählen.  Verwendet wird immer ein im Bootloader integrierter Software-UART, der auf beliebigen I/O-Pins lauschen kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ    STX_PORT        = PORTD&lt;br /&gt;
.equ    STX             = PD1&lt;br /&gt;
&lt;br /&gt;
.equ    SRX_PORT        = PORTD&lt;br /&gt;
.equ    SRX             = PD0&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&#039;&#039;Beispiel für gleiche Bepinnung wie Hardware-UART im ATMega 8, 48, 168&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Für One-Wire-Betrieb muß für TX und RX zweimal der gleiche Pin angeben werden. Beim Assemblieren wird das erkannt und One-Wire aktiviert - es ist keine weitere Änderung nötig.&lt;br /&gt;
&lt;br /&gt;
=== CPU-Frequenz und Wartezeit festlegen - FASTLOAD.H ===&lt;br /&gt;
&lt;br /&gt;
Bei XTAL die benutzte Frequenz des Controllers einstellen (jungfräuliche AVRs haben oft intern 1MHz aktiviert!).&lt;br /&gt;
Im Standard Makefile von WinAVR steht die Frequenz unter F_CPU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ	XTAL		= 8000000   ; 8MHz, not critical&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um die Wartezeit auf das Firmware-Update beim Booten anzupassen:&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
.equ	BootDelay	= XTAL / 3  ; 0.33s&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Assemblieren des Bootloaders ==&lt;br /&gt;
&lt;br /&gt;
Da der Bootloader in Assembler geschrieben ist, kann WinAVR nicht so ohne weiteres damit umgehen.&lt;br /&gt;
Das einfachste ist, sich das AVRStudio von Atmel herunterzuladen [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725]&lt;br /&gt;
&lt;br /&gt;
Im Unterverzeichnis AvrAssembler2 befindet sich der benötigte Assembler. Das Einfachste ist, sich die unter &amp;quot;Appnotes&amp;quot; benötigte Include Datei des jeweiligen Controllers (oder das komplette Verzeichnis) und die avrasm2.exe ins Verzeichnis des Bootloaders zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Danach wird der Assembler aufgerufen (m8.asm für ATMega 8) und der Bootloader kompiliert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
avrasm2 -fI BOOTLOAD.ASM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist wichtig, dass die Includes des avrasm2 und nicht die der alten Version verwendet werden, da es sonst beim Assemblieren zu dem Fehler &lt;br /&gt;
&amp;quot;&#039;&#039;fastload.h(112): error: Use of undefined or forward referenced symbol &#039;SRAM_START&#039; in .org&#039;&#039;&amp;quot;&lt;br /&gt;
kommt.&lt;br /&gt;
&lt;br /&gt;
Das AVRStudio lässt sich unter Linux auch mit WINE installieren (die IDE des AVR Studio 4 geht allerdings nur mit ein paar Tricks aus der AppDB - ist für das Assemblieren des Bootloaders aber nicht nötig). Wenn &amp;quot;avrasm2.exe&amp;quot; und die zum AVR passende Include-Datei (beispielsweise &amp;quot;tn45def.inc&amp;quot; für ATtiny45) im gleichen Verzeichnis wie die restlichen Dateien des Bootloaders liegen, kann der Bootloader mit folgendem Befehl assembliert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wine avrasm2.exe -fI BOOTLOAD.ASM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Brennen des Bootloaders ==&lt;br /&gt;
&lt;br /&gt;
Der nun erzeugte Bootloader wird mit dem vorhanden ISP Dongle in den AVR gebrannt (Intel Hex Format):&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;avrdude&amp;quot; -p m8 -c avr910 -P com1 -U flash:w:&amp;quot;C:\Test\m8 3686400.hex&amp;quot;:i -U flash:v:&amp;quot;C:\Test\m8 3686400.hex&amp;quot;:i -y&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brennen mit AVRDude auf COM 1 und einem AVR910 kompatiblen Dongle (z.&amp;amp;nbsp;B. myAVR USB)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Einstellen der Fuses ==&lt;br /&gt;
&lt;br /&gt;
Damit der Bootloader zu Beginn gestartet wird, müssen die entsprechenden Fuses gesetzt werden. Möglich ist dies u.a. mit der AVRDude GUI.&lt;br /&gt;
* BOOTRST muss auf 0 gestellt werden (aktiviert den Bootloader)&lt;br /&gt;
* BOOTSZ muss auf 256 Worte (= 512 Byte) (oder dem minimal möglichen Wert, wenn AVR nur größere Bootloader Regionen unterstützt) gestellt werden. Beispielsweise ist für den ATMega8 der Wert 10.&lt;br /&gt;
&lt;br /&gt;
Bei einigen Controllern wie z.&amp;amp;nbsp;B. dem ATMega 48 wird das Flag&lt;br /&gt;
* Selfprogramming enabled gesetzt.&lt;br /&gt;
&lt;br /&gt;
Auf dieser [http://www.engbedded.com/fusecalc/ Website (Fusecalc)] kann man sich die Fuses elegant zusammenstellen und erhält gleich die Parameter für avrdude. Eine schnelle und *sichere* Alternative zum fehlerträchtigen &amp;quot;Kaputtflashen&amp;quot; von Atmels.&lt;br /&gt;
&lt;br /&gt;
=== Fuses mit myAVR ändern ===&lt;br /&gt;
&lt;br /&gt;
Der myAVR Dongle unterstützt mit AVRDude leider keine Fuses. Abhilfe liefert hier jedoch das myAVR Workpad Plus. Die Demo-Version (reicht hierfür) kann unter&lt;br /&gt;
&lt;br /&gt;
[http://www.myavr.info/download/myAVR_WorkpadPLUS_Demo.exe http://www.myavr.info/download/myAVR_WorkpadPLUS_Demo.exe]&lt;br /&gt;
&lt;br /&gt;
heruntergeladen werden. Nach dem Installieren und Starten im Menü Extras – Fuse- und Lock-Bits wählen. Das Programm ermittelt automatisch den aktuellen Status. Je nach Controller steht der Bootloader Support unter High oder Extended Fuses.&lt;br /&gt;
&lt;br /&gt;
== Brennen des eigentlichen Programmes ==&lt;br /&gt;
&lt;br /&gt;
Damit das Programm mit Peters Tool in den Controller geladen werden kann, muss es im Intel HEX Format vorliegen. Im makefile Template von WinAVR (und auch der ATMegaIDE) ist dies standardmäßig eingestellt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
# Output format. (can be srec, ihex, binary)&lt;br /&gt;
FORMAT = ihex&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird Peters Firmware-Update Tool aufgerufen (hier COM2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fboot /C2 /Pmain.hex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;hier wird die main.hex als Hauptprogramm gebrannt&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wichtig hierbei ist, dass der Dateiname der alten DOS Konvention entspricht. Also keine langen Dateinamen.&lt;br /&gt;
&lt;br /&gt;
Peters Firmware-Update Tool lässt sich unter Linux leider nicht mit WINE starten, dafür aber mit DOSBOX. Der Aufruf ist dann der gleiche wie unter Windows.&lt;br /&gt;
&lt;br /&gt;
Wenn noch keine Firmware im Controller ist (direkt nach dem Installieren des Bootloaders), startet der Brennvorgang automatisch. Andernfalls wartet das Programm auf den Reset des Controllers. Peters Tool arbeitet nur mit COM1 bis COM4 zusammen. Also ggf. den USB Adapter im Gerätemanager umstellen.&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe sieht dann wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\DOCUME~1\zzzzzz\Desktop\avr\_soft\fboot18&amp;gt;fboot18 /Ptest.hex /b9600 /c1&lt;br /&gt;
COM 1 at 9600 Baud: Connected (One wire)&lt;br /&gt;
Bootloader V1.8&lt;br /&gt;
Target: 1E9108&lt;br /&gt;
Buffer: 32 Byte&lt;br /&gt;
Size available: 1534 Byte&lt;br /&gt;
Program test.hex: 00000 - 00073 successful&lt;br /&gt;
CRC: o.k.&lt;br /&gt;
Elapsed time: 1.43 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Linux steht ebenfalls ein [http://www.mikrocontroller.net/attachment/43211/lboot.tgz Programmiertool] (aus diesem [http://www.mikrocontroller.net/topic/73196#1067153 Beitrag]) für die aktuelle Version 2.1 des Bootloaders für die Kommandozeile zur Verfügung, das auch den One-Wire-Betrieb unterstützt.&lt;br /&gt;
&lt;br /&gt;
Es lässt sich nach dem Entpacken durch ein simples &amp;quot;make&amp;quot; übersetzen. Die Verwendung ist analog zum DOS-Tool:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./bootloader -d /dev/ttyS0 -b 115200 -p tiny45test.hex&lt;br /&gt;
&lt;br /&gt;
=================================================&lt;br /&gt;
|           BOOTLOADER, Target: V2.1            |&lt;br /&gt;
=================================================&lt;br /&gt;
Port    : /dev/ttyS0&lt;br /&gt;
Baudrate: 115200&lt;br /&gt;
File    : tiny45test.hex&lt;br /&gt;
Reading : tiny45test.hex... File read.&lt;br /&gt;
Size    : 2717 Bytes&lt;br /&gt;
Program device.&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
Waiting for device... connected (one wire)!&lt;br /&gt;
Bootloader    : V2.1&lt;br /&gt;
Target        : 1E9206 ATtiny45&lt;br /&gt;
Buffer        : 64 Byte&lt;br /&gt;
Size available: 3582 Byte&lt;br /&gt;
CRC enabled and OK.&lt;br /&gt;
Programming   : 00000 - 00A9D&lt;br /&gt;
Writing | ##################################### | 100%&lt;br /&gt;
Elapsed time: 0.79 seconds, 3439 Bytes/sec.&lt;br /&gt;
&lt;br /&gt;
 ++++++++++ Device successfully programmed! ++++++++++&lt;br /&gt;
&lt;br /&gt;
...starting application&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bootloader-Support in ATMegaIDE 2007 ==&lt;br /&gt;
&lt;br /&gt;
Die IDE kann wahlweise mit AVRDude und einem entsprechenden ISP-Dongle oder mit dem Bootloader das Programm in den Flash brennen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Anpassen des Programms ===&lt;br /&gt;
Um das Firmware Update komfortabler zu gestalten, kann ein Software-Reset eingebaut werden, der per RS232- bzw. USB-Schnittstelle oder Tastendruck ausgelöst wird.&lt;br /&gt;
&lt;br /&gt;
==== Tastendruck ====&lt;br /&gt;
In der mitgelieferten Standard.h gibt es den Befehl void Reset();. Er löst mit Hilfe des Watchdog-Timers einen Hardwarereset aus. Man kann jetzt z.&amp;amp;nbsp;B. auf einen bestimmten Tastendruck (-kombination) hin diesen Reset ausführen.&lt;br /&gt;
&lt;br /&gt;
==== RS232/USB ====&lt;br /&gt;
Alternativ kann ein entsprechender Befehl über die RS232 gesendet werden. Standardmäßig ist dies 0xFF ‚R‘.&lt;br /&gt;
&lt;br /&gt;
=== Einstellungen in der IDE ===&lt;br /&gt;
&lt;br /&gt;
Der Bootloader Support kann bei den Projekt-Eigenschaften eingestellt werden. Beim Brennen wird er dann automatisch benutzt.&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== Komfortables Stand-Alone Firmware-Update ===&lt;br /&gt;
&lt;br /&gt;
Basierend auf dem Code der IDE wird es im September noch ein Standalone-Programm für das Firmware-Update geben. Es wird auch ein entsprechendes Protokoll zur Versionskontrolle haben (die bisherige Soft- und viel wichtiger Hardwareversion wird überprüft). Eine Verschlüsselung der Firmware-Datei ist in Planung.&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Erzeugen des Bootloaders ===&lt;br /&gt;
Sobald ich Zeit habe kommt in die IDE auch die Möglichkeit, die Anpassungen des Bootloaders von der IDE durchführen zu lassen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Programmer und -Bootloader|B]]&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVRDUDE&amp;diff=44001</id>
		<title>AVRDUDE</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVRDUDE&amp;diff=44001"/>
		<updated>2010-03-03T07:12:15Z</updated>

		<summary type="html">&lt;p&gt;Boregard: USB Programmer unter Linux als non-root&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
AVRDUDE (http://www.nongnu.org/avrdude/) ist eine Programmiersoftware für Atmel [[AVR]] Controller. &lt;br /&gt;
&lt;br /&gt;
Funktionen unter Anderem: &lt;br /&gt;
&lt;br /&gt;
* Übertragen von Programmcode in den Flash-Speicher&lt;br /&gt;
* Auslesen ungeschützen Codes aus dem Flash&lt;br /&gt;
* Setzen und Lesen von Fuse- und Lockbits (Siehe auch: [[AVR_Fuses#Vergleich_der_Fuses_bei_verschiedenen_Programmen|Vergleich der Fuses bei verschiedenen Programmen]])&lt;br /&gt;
* Schreiben und Lesen des EEPROMs&lt;br /&gt;
&lt;br /&gt;
AVRDUDE kann das [[STK500]] (auch mit Firmware 2.x als stk500v2), das Atmel AVRISP (auch mit Firmware 2.x als avrispv2 o.ä.), das Atmel AVRISP MKII (USB Ansteuerung mittels lib-usb bzw. lib-usb-W32), [[AVR_In_System_Programmer#USB | AVR910-kompatible]] Programmierer, den [[AVR Butterfly]]/AVR109-kompatible Bootloader, [[STK200]]-Programmierdongles und verschiedene andere Parallelport-Adapter sowie &amp;quot;serielle Statusportprogrammierer&amp;quot; (Siprog) ansteuern. Auch das Atmel JTAGICE (oder Nachbauten wie Bootice oder Evertool), Atmel JTAGICE-MKII und der AVR Dragon können als Programmierhardware genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Das Programm ist unter MS-Windows (Cygwin nicht erforderlich), Linux, BSD, Solaris und Mac OS X lauffähig. Die Version für MS-Windows ist im [[WinAVR]]-Paket enthalten. Der Quellcode ist frei verfügbar (Lizenz beachten).&lt;br /&gt;
&lt;br /&gt;
Da alle AVRDUDE-Funktionen über Kommandozeilenparamter gesteuert werden können, eignet es sich gut zur Integration in Makefiles. Beispiele finden sich in der Makefile-Vorlage von [[WinAVR]] und Mfile. &lt;br /&gt;
&lt;br /&gt;
Die gesamte Konfiguration liegt in einer Textdatei (avrdude.conf), so dass sich bei Bedarf ein beliebiger neuer Parallelport-Programmierdongle oder auch ein noch nicht unterstützter AVR-Controller ergänzen lassen. Die Syntax für die Definition eines AVR-Controllers lehnt sich an die Datenblatt-Tabelle für die serielle Programmierung an, so dass man praktisch nur das Datenblatt &amp;quot;intelligent&amp;quot; abtippen muss.&lt;br /&gt;
&lt;br /&gt;
Für die Ansteuerung von Parallelport-Adaptern unter MS-Windows NT/2000/XP wird ein spezieller Porttreiber (giveio) mitgeliefert. Bei der Installation von [[WinAVR]] wird giveio bereits mitinstalliert. &lt;br /&gt;
&lt;br /&gt;
Programmer mit üblicher serieller Schnittstelle (RS232) benötigen keine zusätzliche Software oder Treiber zum Betrieb mit AVRDUDE. &lt;br /&gt;
&lt;br /&gt;
Für Hardware mit USB-Anschluss muss die lib-usb bzw. lib-usb-win32 installiert sein.&lt;br /&gt;
&lt;br /&gt;
===GUIs===&lt;br /&gt;
Bei [[WinAVR]] wird die grafische Oberfläche avrdude-gui.exe mitgeliefert.&lt;br /&gt;
&lt;br /&gt;
Für Windows, Linux und andere Betriebssysteme gibt zwei weitere GUIs: den in Java geschriebene [[Burn-o-mat|AVR Burn-O-Mat]] und den [http://www.soft-land.de/index.php?page=avrburner avrburner].&lt;br /&gt;
&lt;br /&gt;
GUIs vereinfachen vor allem Programmieren der Fuses.&lt;br /&gt;
&lt;br /&gt;
== Kurzanleitung für Linux und STK200 ==&lt;br /&gt;
&lt;br /&gt;
Dazu muss erst ein Hardware-Link auf die Printerport-Treiber eingerichtet werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mknod /dev/parport0 c 99 0&lt;br /&gt;
chmod a+rw /dev/parport0&lt;br /&gt;
avrdude -p m8535 -c stk200 -e -U qqtraff.hex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch : &lt;br /&gt;
* [[AVR_In_System_Programmer#STK200-kompatibel]]&lt;br /&gt;
&lt;br /&gt;
== Tipps + Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== [[AVR_In_System_Programmer#Parallelport|Parallelport-Programmer]] an aktuellen PCs ===&lt;br /&gt;
Aktuelle PCs sind einfach zu schnell mit dem Bitgewackel an der parallelen Schnittstelle, vor allem für AVRs, die noch mit den 1 MHz im Auslieferungszustand laufen (maximal zulässiger ISP-Takt &amp;lt; 250 kHz). Neuere Versionen von avrdude unterstützen zu diesem Zweck eine Option &#039;&#039;&#039;-i &amp;lt;N&amp;gt;&#039;&#039;&#039;, wobei &amp;lt;N&amp;gt; die Anzahl der Mikrosekunden bezeichnet, die beim Bitwackeln zusätzlich zu warten ist. Einfach mal mit -i 10 anfangen und dann entweder die Fuses auf die Ziel-Taktfrequenz umstellen (falls diese wesentlich höher sein wird als die 1 MHz), oder sukkzessive mit kleineren Werten testen ([http://www.mikrocontroller.net/topic/83524#699933 Forenbeitrag von Jörg]).&lt;br /&gt;
&lt;br /&gt;
Unter WinXPsp2 auf einem Thinkpad T40 lies sich die &amp;quot;avrdude: AVR device not responding&amp;quot;-Meldung beheben durch Ändern von Gerätemanager--&amp;gt;Ltp1--&amp;gt;Eigenschaften--&amp;gt;Anschlusseinstellungen--&amp;gt;Interrupt-nie-verwenden in &amp;quot;Jeden dem Anschluss zugewiesenem Interrupt verwenden&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===USB Programmer===&lt;br /&gt;
Ein Selbstbau USB-Programmer ist unter&lt;br /&gt;
[http://www.rototron.info/?Page=USBAVR/USBAVR.aspx http://www.rototron.info]&lt;br /&gt;
zu finden. Er läuft auch unter VISTA und benötigt mit der neuesten AVRDUDE Version keinen Treiber, da er im HID-Modus betrieben wird.&lt;br /&gt;
&lt;br /&gt;
==== libusb0.dll wird bei WinAvr 20070525 nicht gefunden====&lt;br /&gt;
[http://www.mikrocontroller.net/topic/83524#701461 Forenbeitrag von Paul]: Habe leider noch etwas zu bemängeln, und zwar meckerte avrdude, dass es die &amp;quot;libusb0.dll&amp;quot; nicht fand. Musste dann erst noch manuell den Pfad c:\winavr\utils\libusb\bin in die autoxecec.bat eintragen. Siehe auch [http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;p=373283 Diskussion bei www.avrfreaks.net]&lt;br /&gt;
&lt;br /&gt;
====Aufruf unter Linux als user (non-root)====&lt;br /&gt;
Unter Linux kann häufig avrdude nur als user &#039;root&#039; auf des USB programmer zugreifen. Als normaler User bekommt man eine Fehlermeldung wie:&lt;br /&gt;
 #avrdude -c usbtiny -p m8&lt;br /&gt;
 &lt;br /&gt;
 avrdude: error: usbtiny_transmit: error sending control message: Operation not permitted&lt;br /&gt;
&lt;br /&gt;
Dies liegt daran, daß die device-nodes, die beim Einstecken des USB-Programmers von udev angelegt werden, root zugeordnet sind.&lt;br /&gt;
Man kann dies ändern, indem man udev-Regeln für die verwendeten Programmer anlegt.&lt;br /&gt;
Unter Debian muß man dazu nur eine neue Datei, z.B. 015_usbprog.rules unter /etc/udev/rules.d anlegen, z.B. mit folgenden Inhalt:&lt;br /&gt;
 # Atmel AVR ISP mkII&lt;br /&gt;
 ATTRS{idVendor}==&amp;quot;03eb&amp;quot;, ATTRS{idProduct}==&amp;quot;2104&amp;quot;, GROUP=&amp;quot;users&amp;quot;, MODE=&amp;quot;0660&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 # usbprog bootloader&lt;br /&gt;
 ATTRS{idVendor}==&amp;quot;1781&amp;quot;, ATTRS{idProduct}==&amp;quot;0c62&amp;quot;, GROUP=&amp;quot;users&amp;quot;, MODE=&amp;quot;0660&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # USBasp programmer&lt;br /&gt;
 ATTRS{idVendor}==&amp;quot;16c0&amp;quot;, ATTRS{idProduct}==&amp;quot;05dc&amp;quot;, GROUP=&amp;quot;users&amp;quot;, MODE=&amp;quot;0660&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # USBtiny programmer&lt;br /&gt;
 ATTRS{idVendor}==&amp;quot;1781&amp;quot;, ATTRS{idProduct}==&amp;quot;0c9f&amp;quot;, GROUP=&amp;quot;users&amp;quot;, MODE=&amp;quot;0660&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hiermit werden der AVR ISP mkII, der usbprog Bootloader, USBasp und USBtiny bekannt gemacht, so daß alle User in der Grupp &amp;quot;users&amp;quot; darauf zugreifen können.&lt;br /&gt;
Für weitere Programmer muß man entsprechende Zeile (mit ATTRS...) anlegen und die passenden Vendor und Product IDs eintragen.&lt;br /&gt;
&lt;br /&gt;
=== Anzeige unterstützter AVRs ===&lt;br /&gt;
Wie die anderen Atmels bei avrdude heißen zeigt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
avrdude -?&lt;br /&gt;
avrdude -p ?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Anschluss an COM10 und höher (Windows) ===&lt;br /&gt;
&lt;br /&gt;
Wenn AVRDUDE unter Windows an COM10 und höher betrieben werden soll, ist eine andere Schreibweise für die Schnittstelle in der Kommandozeile nötig. Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
avrdude -c stk500v2 -p m16 -P \\.\com13 -uF -vvvv 2&amp;gt; logfile.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird statt der gewohnten Schreibweise &#039;&#039;&#039;com13&#039;&#039;&#039; die spezielle Schreibweise  &#039;&#039;&#039;\\.\com13&#039;&#039;&#039; verwendet und es wird mit &#039;&#039;-vvvv 2&amp;gt; logfile.txt&#039;&#039; eine ausführliche Debugausgabe für Fragen im Forum erzeugt. Näheres hierzu in der  [http://www.mikrocontroller.net/topic/90401 Forumsdiskussion].&lt;br /&gt;
&lt;br /&gt;
=== AVRISPmkII + AVRDUDE + Window Vista (32) ===&lt;br /&gt;
&lt;br /&gt;
http://www.mikrocontroller.net/topic/126594#1157327&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;avrdude was compiled without usb support&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
WinAVR-20100110 enthält eine AVRDUDE Version ohne USB Support [http://www.mikrocontroller.net/topic/163022#1554907]. Abhilfe: Ältere Version nehmen oder selbst Kompilieren [http://www.mikrocontroller.net/topic/163675#1561957].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* Offizielle AVRDUDE Homepage unter http://www.nongnu.org/avrdude/&lt;br /&gt;
* User Manual (engl.) unter http://www.nongnu.org/avrdude/user-manual/avrdude.html#Top&lt;br /&gt;
* Kompilierte Windows Version mit USB Support http://yuki-lab.jp/hw/avrdude-GUI/avrdude-5.5-win32-bin.zip&lt;br /&gt;
* Wer Interesse an der modifizierten Version von AVRDUDE und des AVR910-Programmer hat, kann sich bei http://www.fischl.de/thomas/elektronik/avr910e/ informieren. Der Programmer bleibt auch mit der Modifikation weiterhin kompatibel zu anderer Programmiersoftware.&lt;br /&gt;
* [[Burn-o-mat|AVR Burn-O-Mat]] GUI (Graphic User Interface) für AVRDUDE http://burn-o-mat.net mit FUSE-Editor (Java, für Windows und Linux)&lt;br /&gt;
* [http://myavr.de/myForum/viewtopic.php?t=1913 mysmartusb AVR910-Devcodes] für moderne AVRs (Firmware 2.3). Kann zur Anpassung von AVRDUDE in avrdude.conf verwendet werden.&lt;br /&gt;
* [http://www.soft-land.de/index.php?page=avrburner AVRBurner] Ponyprog ähnliche Oberfläche für AVRDUDE.&lt;br /&gt;
* [http://www.microstar.ir/download/SinaProg.zip SinaProg] SinaProg - avrdude GUI mit AVR Fuse Calculator.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Programmer und -Bootloader]]&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Word_Clock&amp;diff=43052</id>
		<title>Word Clock</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Word_Clock&amp;diff=43052"/>
		<updated>2010-02-09T06:56:08Z</updated>

		<summary type="html">&lt;p&gt;Boregard: /* Technische Daten der SMD RGB PLCC-6 LEDs */ use standard table header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Was ist das? =&lt;br /&gt;
&lt;br /&gt;
[[Datei:wordclock-frontplatte-v2.png| |WordClock]]&lt;br /&gt;
&lt;br /&gt;
Es geht hier um folgenden Thread [1], in dem der Bau einer Uhr disktuiert wird. Als Inspiration kann diese [2] dienen. Es wird keine patentrechtlich bedenkliche Kopie :-)&amp;lt;br&amp;gt;&lt;br /&gt;
[1] [http://www.mikrocontroller.net/topic/156661 Beitrag: Brauche Hilfe beim Bau einer Uhr]&amp;lt;br&amp;gt;&lt;br /&gt;
[2] [http://www.qlocktwo.com http://www.qlocktwo.com]&lt;br /&gt;
&lt;br /&gt;
== Funktionalitäten ==&lt;br /&gt;
* Speichern der Uhrzeit über Real Time Clock&lt;br /&gt;
* Optionaler DCF77-Funkempfang&lt;br /&gt;
* Automatische Helligkeitsanpassung an das Umgebungslicht&lt;br /&gt;
* Anzeige der Uhrzeit durch RGB-LED-beleuchtete Buchstaben, d.h. es sind beliebige Farben möglich&lt;br /&gt;
* Bedienung über Infrarot-Fernbedienung: Helligkeit, Farbe, Uhrzeit und Ausgabeformat (&amp;quot;viertel vor acht&amp;quot; oder &amp;quot;dreiviertel acht&amp;quot;)&lt;br /&gt;
* Farbe einstellbar oder änderbar durch automatisch wechselndes HUE-Fading&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
* Atmega88 oder Atmega168&lt;br /&gt;
* 24-Bit-Schieberegister an SPI für 24 Wörter&lt;br /&gt;
* 4 Output-Pins für Minutenanzeige&lt;br /&gt;
* 4 weitere GPOS - für allgemeine Zwecke&lt;br /&gt;
* RGB-Steuerung über PWM gegen GND, d.h. 32x3-Matrix&lt;br /&gt;
&lt;br /&gt;
== Schaltung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:wordclock-schmal-schaltung.png|miniatur|Schaltbild V1.0]]&lt;br /&gt;
&lt;br /&gt;
Das Schaltbild ist für die Prototypen-Platine als auch für die endgültige Version 1.0 (schmale Platine) identisch. Lediglich der Pullup-Widerstand R7 am DCF-Anschluss ist weggefallen und ab Version 0.9 der Software auch nicht mehr am Prototypen nötig.&lt;br /&gt;
&lt;br /&gt;
Eine größere Sammelbestellung wurde im Januar 2010 organisiert, siehe auch &#039;&#039;&#039;[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_der_Platine Sammelbestellung der Platine]&#039;&#039;&#039;. Es sind keine Platinen mehr übrig.&lt;br /&gt;
&lt;br /&gt;
Hier die zugehörige Schaltung V1.0 als PDF: &#039;&#039;&#039;[[Media:wordclock-schmal.pdf]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Für eine einfarbige Variante reicht der Warenkorb mit dem ATmega 88:&lt;br /&gt;
Eine vollständige Liste zur Bestellung der nötigen Bauteile ist bei Reichelt abgelegt: &#039;&#039;&#039;[https://secure.reichelt.de/?;ACTION=20;LA=5010;AWKID=209167;PROVID=2084 Warenkorb-Mono]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Für die RBG-Version wird der ATmega 168 benötigt. Einen angepassten Warenkorb ist wieder bei Reichelt hinterlegt: &#039;&#039;&#039;[https://secure.reichelt.de/?;ACTION=20;LA=5010;AWKID=209168;PROVID=2084 Warenkorb-RGB]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Derzeit ist der TSOP 1736 bei Reichelt nicht lieferbar. Laut telefonischer Auskunft (Stand: 19.01.2010), ist dieser im Moment im Rückstand. Ein Liefertermin ist bei Reichelt nicht bekannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stand: 02.02.2010 Da nach wie vor der TSOP1736 nicht lieferbar ist, wurde der Warenkorb um den TSOP1738 erweitert.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinweis zum TSOP1738 &amp;gt;&amp;gt; http://www.mikrocontroller.net/topic/156661#1580976&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Liste bezieht sich sowohl auf den Prototypen als auf die endgültige (schmalere) Version.&lt;br /&gt;
&lt;br /&gt;
== Bestückung ==&lt;br /&gt;
&lt;br /&gt;
Hier eine kurze Beschreibung zur Bestückung:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prototyp:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock.png|miniatur|Bestückte Platine (Prototyp)]]&lt;br /&gt;
&lt;br /&gt;
* Links: Anschluss für stehende Lithium-Knopfbatterie CR2032 (die drei abgebildeten Stifte sind natürlich nicht notwendig, die Batterie wird direkt eingelötet)&lt;br /&gt;
* Unten links: Anschluss für DCF77-Modul und für Testzwecke RX &amp;amp; TX&lt;br /&gt;
* Oben Mitte: TSOP1736 für Infrarot-Empfang&lt;br /&gt;
* Oben links und rechts: Wannenstecker für insg. 32 Ausgabekanäle: OUT0-OUT23 (für die Wörter), OUTL1-OUTL4 (für die Minuten) und OUTG1-OUTG4 (für General-Purpose-Ausgabezwecke - noch nicht definiert)&lt;br /&gt;
* Rechts: Anschlussklemmen für Versorgungsspannung 7-12V und die drei PWM-Kanäle Rot, Grün und Blau&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Endgültige Version (schmale Ausführung):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-schmal.png|miniatur|Bestückte Platine (endgültige Version)]]&lt;br /&gt;
&lt;br /&gt;
* Oben Mitte: Anschluss für stehende Lithium-Knopfbatterie CR2032 (die drei abgebildeten Stifte sind natürlich nicht notwendig, die Batterie wird direkt eingelötet)&lt;br /&gt;
* Unten 3-polige Stiftleiste: Anschluss für DCF77-Modul&lt;br /&gt;
* Unten 2-polige Stiftleiste: RX &amp;amp; TX (für Testzwecke)&lt;br /&gt;
* Unten rechts: TSOP1736 für Infrarot-Empfang&lt;br /&gt;
* Darüber: 2-polige Stiftleiste für LDR (Helligkeitsmessung)&lt;br /&gt;
* Oben links und rechts: Wannenstecker für insg. 32 Ausgabekanäle: OUT0-OUT23 (für die Wörter), OUTL1-OUTL4 (für die Minuten) und OUTG1-OUTG4 (für General-Purpose-Ausgabezwecke)&lt;br /&gt;
* Rechts: Anschlussklemmen für Versorgungsspannung 7-12V und die drei PWM-Kanäle Rot, Grün und Blau.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung: die Reihenfolge der Schraubklemmen-Anschlüsse hat sich bei der endgültigen gegenüber der Prototyp-Version geändert, siehe weiter unten!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der IR-Empfänger TSOP1736 muss hinter einem nicht benutzten Buchstaben angebracht werden. Deshalb braucht man ihn nicht unbedingt auf die Platine löten, sondern kann ihn auch über ein 3-poliges Kabel mit der Platine verbinden. Das Kabel sollte aber nicht zu lang sein, da der TSOP immer gern seinen Elko in der Nähe hat.&lt;br /&gt;
&lt;br /&gt;
Da die Routine zur automatischen Helligkeitsregelung noch nicht ausgetestet ist, sollte man den Widerstand R6 (Pulldown für LDR) zunächst noch nicht bestücken, bis klar ist, welcher Wert der optimale für den gewählten LDR ist.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-bestueckungsdruck.png|miniatur|Bestückungsaufdruck der Prototyp-Platine]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FOLGENDES GILT NUR FÜR DEN PROTOTYPEN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Durch einen Fehler in der Target3001-Bibliothek hat die Prototypen-Platine einen Fehler, der aber leicht behebbar ist:&#039;&#039;&#039; Die Einstecklöcher für die 3 MOSFETs IRLU2905 besitzen auf der Unterseite keine Lötpunkte. Daher müssen die IRLUs an die oben liegenden Lötpunkte festgelötet werden. Auf der unteren Seite bilden die Bohrlöcher leider einen Kurzschluss mit der unten liegenden Massefläche.&lt;br /&gt;
&lt;br /&gt;
Deshalb müssen vorher(!) die Löcher für die IRLU-Beinchen mit einem spitzen Gegenstand auf der Unterseite von dem Kurzschluss mit der unteren Massefläche befreit werden. Dazu geht man folgendermaßen vor:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-anschluesse.png|miniatur|Anschlüsse der Prototyp-Platine]]&lt;br /&gt;
&lt;br /&gt;
Spitzen Gegenstand (z.B. Teppichmesser, Spitze einer kleinen Kneifzange) von unten(!) ins Loch stecken und zwei- bis dreimal dreimal im Bohrloch drehen, damit die Verbindung der unteren Massefläche zur Durchkontaktierung unterbrochen wird. Anschließend mit dem Ohmmeter prüfen, ob der Kurzschluss behoben ist. Insgesamt sind es 6 Löcher, die so behandelt werden müssen, diese betreffen jeweils die Pins 1 und 2 der drei IRLU-MOSFETs. Pin3 muss nicht bearbeitet werden, da hier sowieso die Masse angeschlossen werden muss,&lt;br /&gt;
siehe auch das nächste Bild unten.&lt;br /&gt;
&lt;br /&gt;
Ist der Kurzschluss zur unteren Massefläche behoben, sollte man die IRLU-Beinchen trotzdem nicht durch das Bohrloch stecken, sondern:&lt;br /&gt;
&lt;br /&gt;
* Beinchen kürzen, vielleicht die Enden (wegen der Stabilität) 2mm umbiegen&lt;br /&gt;
* Oben in SMD-Manier anlöten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Im rechts stehenden Bild sind nicht nur die Lage der Anschlüsse verdeutlicht, sondern auch die Bohrlöcher für die IRLU-MOSFETs rot umkringelt, welche man von der Unterseite(!) her &amp;quot;behandeln&amp;quot; muss. Beim Prototypen müssen die IRLUs so angelötet werden, dass das Metall zur Schraubklemme zeigt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestückung und Anschlüsse der endgültigen Version:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-schmal-bestueckungsdruck.png|miniatur|Bestückungsaufdruck der endgültigen (schmaleren) Platine]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-schmal-bestueckt.jpg|miniatur|Bestückung: Orientierung der IRLUs beachten!]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-schmal-anschluesse.png|miniatur|Anschlüsse]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WICHTIG für die Version 1.0:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der oberste IRLU2905 muss anders herum eingelötet werden (Metall Richtung Spannungsregler) als die beiden unteren (Metall Richtung Schraubklemme). Siehe auch Foto rechts.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Die Reihenfolge der Schraubklemmen-Anschlüsse hat sich gegenüber dem Prototypen geändert, bitte unbedingt die Reihenfolge beachten!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Möchte man einfarbige LEDs verwenden und auf die RGB-Steuerung verzichten, schließt man einfach zwei der drei RGB-PWM-Kanäle nicht an und verwendet stattdessen nur PWMR zur PWM-Steuerung. Die 2 zu PWMG und PWMB gehörenden IRLUs und die angeschlossenen 4 Widerstände am Gate der IRLUs kann man dann auch weglassen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestückungsliste:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diese Liste bezieht sich sowohl auf den Prototypen als auch auf die endgültige (schmalere) Version.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Name                Wert&lt;br /&gt;
 C1,C3,C4,C6,C8,C9   100NF&lt;br /&gt;
 C10,C11,C12,C13     100NF&lt;br /&gt;
 C2                  4,7µF&lt;br /&gt;
 C5,C7               47µF&lt;br /&gt;
 D1                  1N4001&lt;br /&gt;
 IC1                 ATMEGA88&lt;br /&gt;
 IC2                 7805&lt;br /&gt;
 IC3                 TSOP1736&lt;br /&gt;
 IC4,IC5,IC6         74HCT595N&lt;br /&gt;
 IC7                 DS1307&lt;br /&gt;
 IC8,IC9,IC10,IC11   UDN2981A&lt;br /&gt;
 K4                  Wannenstecker 10&lt;br /&gt;
 K7,K8               Wannenstecker16&lt;br /&gt;
 K6                  LDR&lt;br /&gt;
 KL1                 KLEMME5POL&lt;br /&gt;
 Q1                  32,768KHz&lt;br /&gt;
 R1,R6,R8,R10,R12    10K&lt;br /&gt;
 R7                  10K, entfällt!&lt;br /&gt;
 R2                  100&lt;br /&gt;
 R3,R4               4K7&lt;br /&gt;
 R5,R9,R11           82&lt;br /&gt;
 T1,T2,T3            IRLU2905&lt;br /&gt;
&lt;br /&gt;
== FAQ zur Bestückung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-schmal-bestueckt.jpg|miniatur|Bestückung: Orientierung der IRLUs (ganz rechts) beachten!]]&lt;br /&gt;
&lt;br /&gt;
 Q: Wie herum müssen die IRLUs eingelötet werden?&lt;br /&gt;
 A: Beim Prototypen: Alle drei mit der Metallseite zur Schraubklemme hin, Pin1&lt;br /&gt;
    ist also immer &amp;quot;oben&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
    Bei V1.0 (schmale Version): Der oberste kommt mit der Metallseite nach&lt;br /&gt;
    links (Richtung Spannungsregler), Pin 1 ist hier der untere. Die anderen&lt;br /&gt;
    beiden IRLUs werden mit der Metallseite Richtung Schraubklemme eingelötet,&lt;br /&gt;
    siehe auch Foto rechts. Hier ist jeweils Pin 1 der obere.&lt;br /&gt;
&lt;br /&gt;
 Q: Welche ICs sollte ich sockeln?&lt;br /&gt;
 A: Wenn durch einen versehentlichen Kurzschluss bei der Freiluftverdrahtung der&lt;br /&gt;
    LEDs ein UDN2981 abfackelt, ist das ägerlich. Daher sollte man zumindest&lt;br /&gt;
    die UDNs und den ATMega sockeln. Besser ist es natürlich, alle zu sockeln.&lt;br /&gt;
&lt;br /&gt;
 Q: Bei dem ATMega und der RTC ist nicht ersichtlich, wie herum sie eingebaut&lt;br /&gt;
    werden müssen?&lt;br /&gt;
 A: Doch, kann man sehen: Der Lötpunkt von Pin1 ist immer rechteckig, die&lt;br /&gt;
    anderen sind oval. Das gilt übrigens für fast alle Bauteile, auch die Wannen.&lt;br /&gt;
&lt;br /&gt;
 Q: Ich möchte oben statt der abgebildeten zwei 2x8-poligen Stiftleisten 16-polige&lt;br /&gt;
    Wannenstecker nehmen. Wie herum kommen dann die oberen Wannen drauf?&lt;br /&gt;
 A: Mit der Kerbe nach unten, sieht man auch am rechteckigen Lötpunkt - und&lt;br /&gt;
    auch auf dem Foto rechts.&lt;br /&gt;
&lt;br /&gt;
 Q: Kann ich auf die Batterie verzichten, weil ich DCF77 einsetze bzw. nach&lt;br /&gt;
    einem Stromausfall die Uhr per Fernbedienung selbst neu stellen möchte?&lt;br /&gt;
 A: Wenn man keine Batterie einsetzt, sollte man VBat der RTC DS1307 mit GND&lt;br /&gt;
    verbinden. Das geht am einfachsten an den auf der Platine vorgesehenen&lt;br /&gt;
    Batterieanschlüssen: einfach K1 (Bat+) und K3 (Bat-) mit einem Stück Draht&lt;br /&gt;
    überbrücken. Übrigens: die Batterie hält lt. Datenblatt des DS1307&lt;br /&gt;
    10 Jahre, es ist also durchaus sinnvoll, diese auch zu bestücken.&lt;br /&gt;
&lt;br /&gt;
 Q: Zur Zeit ist der Infrarot-Empfänger TSOP1736 nur schlecht erhältlich.&lt;br /&gt;
    Gibt es dazu eine Alternative?&lt;br /&gt;
 A: Als Ersatz kann man auch den TSOP1738 nehmen. Dieser hat bei Fernbedienungen&lt;br /&gt;
    mit einer Modulationsfrequenz kleiner/gleich 36kHz zwar eine geringere&lt;br /&gt;
    Reichweite, bei Fernbedienungen mit einer Modulationsfrequenz größer/gleich&lt;br /&gt;
    38kHz jedoch sogar eine höhere.&lt;br /&gt;
&lt;br /&gt;
 Q: Kann ich (aus Kostengründen) auch einfarbige LEDs verwenden?&lt;br /&gt;
 A: Ja, einfach zwei der drei RGB-PWM-Kanäle nicht anschließen und nur PWMR (für Rot) benutzen.&lt;br /&gt;
    Die 2 zu PWMG und PWMB gehörenden IRLUs und die angeschlossenen 4 Widerstände am Gate der IRLUs&lt;br /&gt;
    kann man dann auch weglassen.&lt;br /&gt;
&lt;br /&gt;
== Anschluss eines DCF77-Moduls ==&lt;br /&gt;
&lt;br /&gt;
Der Anschluss eines DCF77-Moduls ist optional. Wird ein DCF77-Modul angeschlossen, kann mittels einer LED der DCF77-Empfang angezeigt werden. Die LED blinkt dann im Sekundenrhytmus und zeigt direkt die empfangenen DCF77-Impulse. Der Empfang wird kurze Zeit nach dem Einschalten aktiviert bzw. jede Stunde wiederholt. &lt;br /&gt;
&lt;br /&gt;
Die DCF77-LED kann folgendermaßen angeschlossen werden:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wannen.png|miniatur|Anschlüsse der Wannenstecker]]&lt;br /&gt;
&lt;br /&gt;
RGB-LED in Farbe:&lt;br /&gt;
&lt;br /&gt;
            /---|&amp;gt;|----| R |---- PWMR&lt;br /&gt;
 OUTG4   +--|---|&amp;gt;|----| R |---- PWMG&lt;br /&gt;
            \---|&amp;gt;|----| R |---- PWMB&lt;br /&gt;
&lt;br /&gt;
Einfarbige LED gedimmt:&lt;br /&gt;
&lt;br /&gt;
 OUTG4   +--|---|&amp;gt;|----| R |---- PWMR&lt;br /&gt;
&lt;br /&gt;
Einfarbige LED immer gleich hell:&lt;br /&gt;
&lt;br /&gt;
 OUTG4   +--|---|&amp;gt;|----| R |---- GND&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bei Anschluss des DCF77-Moduls von Reichelt ist folgendes zu beachten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 - Prototyp-Platine: Der Pull-Up-Widerstand R7 darf nicht eingelötet werden&lt;br /&gt;
   bzw. muss nachträglich wieder von der Platine entfernt werden - z.B. durch&lt;br /&gt;
   Abkneifen der Widerstandsdrähte mit einer Kneifzange. Grund: Das&lt;br /&gt;
   Reichelt-Modul hat keinen Open-Collector-Ausgang, sondern einen sehr&lt;br /&gt;
   schwachen Ausgang, welcher durch den Pullup-Widerstand permanent auf High&lt;br /&gt;
   gezogen wird.&lt;br /&gt;
&lt;br /&gt;
 - Es sollte direkt auf den Lötaugen des Reichelt-DCF77-Moduls ein&lt;br /&gt;
   Abblock-Kondensator von 100nF zwischen den Pins +UB und GND aufgelötet&lt;br /&gt;
   werden&lt;br /&gt;
&lt;br /&gt;
 - Der Eingang PON muss offen bleiben - entgegen den (falschen) Angaben&lt;br /&gt;
   im Reichelt Datenblatt!&lt;br /&gt;
&lt;br /&gt;
 - Das DCF77-Modul von Reichelt braucht eine Synchronisierungszeit von&lt;br /&gt;
   mindestens 10 Sekunden. Erst dann arbeitet der Empfänger.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beim Anschluss des Conrad-Moduls ArtNr. 641138 ist folgendes zu beachten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 - Prototyp: Der Pullup-Widerstand R7 muss unbedingt eingelötet sein&lt;br /&gt;
&lt;br /&gt;
 - Es muss der nicht-invertierte Open-Collector-Ausgang Pin 3 als Signal&lt;br /&gt;
   an die WordClock angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Zur Info (10.01.2010): Torsten Giese hat die DCF77-Routinen so erweitert, dass die verschiedenen DCF77-Modultypen (mit/ohne open Collector, active low/high)&lt;br /&gt;
automatisch erkannt werden. Kommt mit Software-Version 0.9. Dann muss der Widerstand R7 für &#039;&#039;&#039;alle&#039;&#039;&#039; Varianten fehlen. Daher ist er auch in der endgültigen Platinen-Version entfallen.&lt;br /&gt;
&lt;br /&gt;
== Anschluss der LEDs ==&lt;br /&gt;
=== Zuordnung der Kanäle ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wannen.png|miniatur|Anschlüsse der Wannenstecker]]&lt;br /&gt;
&lt;br /&gt;
Folgende Tabelle enthält die Zuordnung der Wörter zu den Pins der Wannenstecker.&lt;br /&gt;
Die Bezeichnungen der Pins entsprechen dem Schaltplan.&lt;br /&gt;
Zu beachten ist, dass die Reihenfolge der Wörter nichts mit der Anordnung auf der Frontplatte zu tun haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Zuordnung Pins&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Wort || Anschluss&lt;br /&gt;
|-&lt;br /&gt;
| ES || OUT0&lt;br /&gt;
|-&lt;br /&gt;
| IST || OUT0&lt;br /&gt;
|-&lt;br /&gt;
| FÜNF || OUT1&lt;br /&gt;
|-&lt;br /&gt;
| ZEHN || OUT2&lt;br /&gt;
|-&lt;br /&gt;
| VOR || OUT3&lt;br /&gt;
|-&lt;br /&gt;
| DREI || OUT4&lt;br /&gt;
|-&lt;br /&gt;
| VIERTEL || OUT5&lt;br /&gt;
|-&lt;br /&gt;
| NACH || OUT6&lt;br /&gt;
|-&lt;br /&gt;
| VOR || OUT7&lt;br /&gt;
|-&lt;br /&gt;
| HALB || OUT8&lt;br /&gt;
|-&lt;br /&gt;
| S || OUT9&lt;br /&gt;
|-&lt;br /&gt;
| EIN || OUT10&lt;br /&gt;
|-&lt;br /&gt;
| ZWEI || OUT11&lt;br /&gt;
|-&lt;br /&gt;
| DREI || OUT12&lt;br /&gt;
|-&lt;br /&gt;
| VIER || OUT13&lt;br /&gt;
|-&lt;br /&gt;
| FÜNF || OUT14&lt;br /&gt;
|-&lt;br /&gt;
| SECHS || OUT15&lt;br /&gt;
|-&lt;br /&gt;
| SIEBEN || OUT16&lt;br /&gt;
|-&lt;br /&gt;
| ACHT || OUT17&lt;br /&gt;
|-&lt;br /&gt;
| NEUN || OUT18&lt;br /&gt;
|-&lt;br /&gt;
| ZEHN || OUT19&lt;br /&gt;
|-&lt;br /&gt;
| ELF || OUT20&lt;br /&gt;
|-&lt;br /&gt;
| ZWÖLF || OUT21&lt;br /&gt;
|-&lt;br /&gt;
| UHR || OUT22&lt;br /&gt;
|-&lt;br /&gt;
| min1 || OUTL1&lt;br /&gt;
|-&lt;br /&gt;
| min2 || OUTL2&lt;br /&gt;
|-&lt;br /&gt;
| min3 || OUTL3&lt;br /&gt;
|-&lt;br /&gt;
| min3 || OUTL4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Beschaltungsvarianten der LEDs===&lt;br /&gt;
&lt;br /&gt;
Da die Schaltung genügend Power hat, um eine Unmenge an RGB-LEDs zu treiben, gibt es folgende 3 Möglichkeiten, die auch mixbar sind:&lt;br /&gt;
&lt;br /&gt;
1. Pro Wort für jeden Buchstaben eine RGB-LED (mit gemeinsamer Anode) in&lt;br /&gt;
Parallelschaltung (natürlich mit geeignetem Vorwiderstand pro LED)&lt;br /&gt;
&lt;br /&gt;
Prinzip (am Beispiel des Wortes &amp;quot;VIER&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
         /---|&amp;gt;|----| R1R |---- PWMR&lt;br /&gt;
      +--|---|&amp;gt;|----| R1G |---- PWMG     &amp;quot;V&amp;quot;&lt;br /&gt;
      |  \---|&amp;gt;|----| R1B |---- PWMB&lt;br /&gt;
      |&lt;br /&gt;
      |  /---|&amp;gt;|----| R2R |---- PWMR&lt;br /&gt;
      +--|---|&amp;gt;|----| R2G |---- PWMG     &amp;quot;I&amp;quot;&lt;br /&gt;
      |  \---|&amp;gt;|----| R2B |---- PWMB&lt;br /&gt;
 OUTx-+&lt;br /&gt;
      |  /---|&amp;gt;|----| R3R |---- PWMR&lt;br /&gt;
      +--|---|&amp;gt;|----| R3G |---- PWMG     &amp;quot;E&amp;quot;&lt;br /&gt;
      |  \---|&amp;gt;|----| R3B |---- PWMB&lt;br /&gt;
      |&lt;br /&gt;
      |  /---|&amp;gt;|----| R4R |---- PWMR&lt;br /&gt;
      +--|---|&amp;gt;|----| R4G |---- PWMG     &amp;quot;R&amp;quot;&lt;br /&gt;
         \---|&amp;gt;|----| R4B |---- PWMB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Pro Wort für jeden Buchstaben eine RGB-LED in Reihenschaltung (mit&lt;br /&gt;
nur 1 Vorwiderstand für die ganze Reihe, bzw. 3 wegen RGB). Das geht&lt;br /&gt;
aber nur, wenn die RGB-LEDs unabhängige Anoden und Kathoden haben (ja,&lt;br /&gt;
die gibt es).&lt;br /&gt;
&lt;br /&gt;
Prinzip:&lt;br /&gt;
                         &amp;quot;V&amp;quot;    &amp;quot;I&amp;quot;    &amp;quot;E&amp;quot;    &amp;quot;R&amp;quot;&lt;br /&gt;
         /----| R1R |----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|---- PWMR&lt;br /&gt;
 OUTx --+-----| R1G |----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|---- PWMG&lt;br /&gt;
         \----| R1B |----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|---- PWMB&lt;br /&gt;
&lt;br /&gt;
Theoretisch könnte man solche Streifen als Platine herstellen, welche man dann immer auf die gewünschte Länge kürzt, als 1, 2, 3 ... 7 Buchstaben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Pro Wort nur eine LED. Für längere Wörter (ab 3 bis 4 Buchstaben) kann man natürlich auch 2 LEDs parallel oder in Reihe schalten, siehe 1. und 2.&lt;br /&gt;
&lt;br /&gt;
Prinzip:&lt;br /&gt;
          &amp;quot;V I E R&amp;quot;&lt;br /&gt;
         /---|&amp;gt;|----| R1R |---- PWMR&lt;br /&gt;
 OUTx +-+----|&amp;gt;|----| R1G |---- PWMG&lt;br /&gt;
         \---|&amp;gt;|----| R1B |---- PWMB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei Verwendung von einfarbigen LEDs vereinfachen sich die Prinzip-Schaltungen wie folgt:&lt;br /&gt;
&lt;br /&gt;
1. Parallelschaltung, eine LED pro Buchstabe im Wort:&lt;br /&gt;
&lt;br /&gt;
       /----|&amp;gt;|----| R1 |---- PWMR     &amp;quot;V&amp;quot;&lt;br /&gt;
      +-----|&amp;gt;|----| R2 |---- PWMR     &amp;quot;I&amp;quot;&lt;br /&gt;
 OUTx-+&lt;br /&gt;
      +-----|&amp;gt;|----| R3 |---- PWMR     &amp;quot;E&amp;quot;&lt;br /&gt;
       \----|&amp;gt;|----| R4 |---- PWMR     &amp;quot;R&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Reihenschaltung, eine LED pro Buchstabe im Wort:&lt;br /&gt;
&lt;br /&gt;
                       &amp;quot;V&amp;quot;    &amp;quot;I&amp;quot;    &amp;quot;E&amp;quot;    &amp;quot;R&amp;quot;&lt;br /&gt;
 OUTx ----| R1 |----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|---- PWMR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Pro (kurzem) Wort nur eine LED:&lt;br /&gt;
&lt;br /&gt;
          &amp;quot;V I E R&amp;quot;&lt;br /&gt;
 OUTx +------|&amp;gt;|----| R1 |---- PWMR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Berechnen der Vorwiderstände kann z.B. dieser Rechner&lt;br /&gt;
verwendet werden: &#039;&#039;&#039;[http://www.elektronik-kompendium.de/sites/bau/1109111.htm Vorwiderstands-Rechner]&#039;&#039;&#039; oder &#039;&#039;&#039;[http://www.modding-faq.de/index.php?artid=506 Vorwiderstands-Rechner mit Unterstützung für Reihenschaltung]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verwendet man SMD-LEDs mit einem Abstrahlwinkel von 120°, kann man mit einer LED bei einem Abstand von ca. 3,5 cm immer zwei Buchstaben ausleuchten. Wenn man jedes Buchstabenpaar mit einer SMD-LED beleuchtet, dann benötigt man jeweils:&lt;br /&gt;
&lt;br /&gt;
* 1 LED für 1er und 2er-Wort&lt;br /&gt;
* 2 LEDs für 3er und 4er Wort&lt;br /&gt;
* 3 LEDs für 5er und 6er Wort und&lt;br /&gt;
* 4 LEDs für 7er Wort &lt;br /&gt;
&lt;br /&gt;
Das macht dann, inkl. der 4 Minutenpunkte, insgesamt 55 LEDs.&lt;br /&gt;
&lt;br /&gt;
Bedingung ist aber ein Diffusor direkt hinter den Buchstaben, damit die LEDs selbst nicht sichtbar sind.&lt;br /&gt;
&lt;br /&gt;
== Sammelbestellung der Platine ==&lt;br /&gt;
Stand Januar 2010:&lt;br /&gt;
&lt;br /&gt;
Es gab Ende 2009 eine Vorabbestellung in kleinerer Auflage (lediglich 20 Platinen), damit die Entwickler schon mal testen und entwickeln konnten. Leider fiel durch die geringe Stückzahl der Preis entsprechend hoch aus. Die Prototypen-Serie ist mittlerweile vergriffen.&lt;br /&gt;
&lt;br /&gt;
Die neue Sammelbestellung der endgültigen WordClock-Platinen ging am 15.01.2010 raus. Es wurden 200 Platinen bestellt. Die Komplettlieferung ist am Donnerstag, dem 28.01.2010, eingetroffen. Der größte Teil der Platinen wurden am Samstag, den 30.01.2010, an die jeweiligen Leute weiterversandt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aktueller Zählerstand der Interessenten am 19.01.2010: 200 Platinen. Es sind sind also keine mehr verfügbar. Diejenigen Platinen, die durch Absagen wieder frei wurden, wurden mittlerweile für nachrückende Interessenten auf der Warteliste reserviert.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selbstverständlich weisen diese Platinen-Version auch nicht mehr den Kurzschluss auf, den die Prototypen-Platine hatte. Die Platine ist wesentlich schmaler als der Prototyp. Maße: 146mm x 35,6mm.&lt;br /&gt;
&lt;br /&gt;
Da die 200 Platinen der Sammelbestellung sehr schnell vergeben waren, wird über eine weitere Sammelbestellung nachgedacht.&lt;br /&gt;
&lt;br /&gt;
== Frontplatte ==&lt;br /&gt;
=== Konzept ===&lt;br /&gt;
&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/156661#1481337 Brauche Hilfe beim Bau einer Uhr]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bei interesse an einer Frontplatte kann man mir (Benutzer [http://www.mikrocontroller.net/user/show/ukw ukw]) eine Nachricht hinterlassen,&lt;br /&gt;
siehe auch [http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_Frontplatte Sammelbestellung Frontplatte].&lt;br /&gt;
&lt;br /&gt;
2 Versionen sind vorgesehen, jeweils in 45cm x 45cm&lt;br /&gt;
&lt;br /&gt;
* Deutsch mit Bezeichnung &amp;quot;viertel vor&amp;quot; und &amp;quot;drei Viertel&amp;quot; - per Software einstellbar&lt;br /&gt;
* Englisch&lt;br /&gt;
&lt;br /&gt;
Die Minutenanzeige (1 - 4 Minuten) werden jeweils mit einem Punkt an der Ecke der Frontplatte dargestellt.&lt;br /&gt;
&lt;br /&gt;
==== Deutsch ====&lt;br /&gt;
&lt;br /&gt;
 E S K I S T A F Ü N F    &amp;lt;nowiki&amp;gt;==&amp;gt; ES IST FÜNF&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Z W A N Z I G Z E H N    &amp;lt;nowiki&amp;gt;==&amp;gt; ZWANZIG ZEHN&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 D R E I V I E R T E L    &amp;lt;nowiki&amp;gt;==&amp;gt; DREI|VIERTEL&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 R H N A C H V O R T G    &amp;lt;nowiki&amp;gt;==&amp;gt; NACH VOR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 K H A L B R Z W Ö L F    &amp;lt;nowiki&amp;gt;==&amp;gt; HALB ZWÖLF&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Z W E I N S I E B E N    &amp;lt;nowiki&amp;gt;==&amp;gt; ZW|EI|N|S|IEBEN&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 F Ü N F Z E H N E L F    &amp;lt;nowiki&amp;gt;==&amp;gt; FÜNF ZEHN ELF&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 V I E R K N E U N J M    &amp;lt;nowiki&amp;gt;==&amp;gt; VIER NEUN&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 W A C H T D R E I R S    &amp;lt;nowiki&amp;gt;==&amp;gt; ACHT DREI&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 B S E C H S F M U H R    &amp;lt;nowiki&amp;gt;==&amp;gt; SECHS UHR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folgende Schreibweisen werden unterstützt:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wessi-Modus:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  es ist ein uhr&lt;br /&gt;
  es ist fünf nach eins&lt;br /&gt;
  es ist zehn nach eins&lt;br /&gt;
  es ist viertel nach eins&lt;br /&gt;
  es ist zehn vor halb zwei&lt;br /&gt;
  es ist fünf vor halb zwei&lt;br /&gt;
  es ist halb zwei&lt;br /&gt;
  es ist fünf nach halb zwei&lt;br /&gt;
  es ist zehn nach halb zwei&lt;br /&gt;
  es ist viertel vor zwei&lt;br /&gt;
  es ist zehn vor zwei&lt;br /&gt;
  es ist fünf vor zwei&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rhein-Ruhr-Modus:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  es ist ein uhr&lt;br /&gt;
  es ist fünf nach eins&lt;br /&gt;
  es ist zehn nach eins&lt;br /&gt;
  es ist viertel nach eins&lt;br /&gt;
  es ist zwanzig nach eins&lt;br /&gt;
  es ist fünf vor halb zwei&lt;br /&gt;
  es ist halb zwei&lt;br /&gt;
  es ist fünf nach halb zwei&lt;br /&gt;
  es ist zwanzig vor zwei&lt;br /&gt;
  es ist viertel vor zwei&lt;br /&gt;
  es ist zehn vor zwei&lt;br /&gt;
  es ist fünf vor zwei&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ossi-Modus:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  es ist ein uhr&lt;br /&gt;
  es ist fünf nach eins&lt;br /&gt;
  es ist zehn nach eins&lt;br /&gt;
  es ist viertel zwei&lt;br /&gt;
  es ist zehn vor halb zwei&lt;br /&gt;
  es ist fünf vor halb zwei&lt;br /&gt;
  es ist halb zwei&lt;br /&gt;
  es ist fünf nach halb zwei&lt;br /&gt;
  es ist zehn nach halb zwei&lt;br /&gt;
  es ist dreiviertel zwei&lt;br /&gt;
  es ist zehn vor zwei&lt;br /&gt;
  es ist fünf vor zwei&lt;br /&gt;
&lt;br /&gt;
Hier der aktuelle Entwurf der Buchstaben-Anordnung als Bild: &#039;&#039;&#039;[[Media:WordclockFront_gerV2.pdf‎]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Englisch ====&lt;br /&gt;
&lt;br /&gt;
 I T K I S G H A L F E   &amp;lt;nowiki&amp;gt;==&amp;gt;  it_is half&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 T E N Y Q U A R T E R   &amp;lt;nowiki&amp;gt;==&amp;gt;  ten quarter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 D T W E N T Y F I V E   &amp;lt;nowiki&amp;gt;==&amp;gt;  twenty|five&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 T O P A S T E F O U R   &amp;lt;nowiki&amp;gt;==&amp;gt;  to past four&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 F I V E T W O N I N E   &amp;lt;nowiki&amp;gt;==&amp;gt;  five two nine&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 T H R E E T W E L V E   &amp;lt;nowiki&amp;gt;==&amp;gt;  three twelve&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 B E L E V E N O N E S   &amp;lt;nowiki&amp;gt;==&amp;gt;  eleven one&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 S E V E N W E I G H T   &amp;lt;nowiki&amp;gt;==&amp;gt;  seven eight&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 I T E N S I X T I E S   &amp;lt;nowiki&amp;gt;==&amp;gt;  ten six&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 T I N E O I C L O C K   &amp;lt;nowiki&amp;gt;==&amp;gt;  o_clock&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und als Bild: &#039;&#039;&#039;[[Media:WordclockFront_eng.pdf]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Sammelbestellung Frontplatte ===&lt;br /&gt;
&lt;br /&gt;
Seit 20. Januar liegt ein Angebot einer Digitaldruck-Firma vor, welche eine Plexi-Scheibe (3mm) in 45cm x 45cm anbietet. Dabei wird die Scheibe von hinten zunächst mit einer 4-fach-Schicht schwarzer Farbe bedruckt. Lediglich die Buchstaben und Minutenpunkte bleiben frei. Anschließend kommen noch 2 Schichten weiße Farbe komplett deckend über die schwarze Farbe, sodass diese Schichten als Diffusor wirken.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-blau-hinter-weiss.jpg‎|miniatur|Wordclock blaue RGB-LEDs hinter weissem Diffusor.jpg‎]]&lt;br /&gt;
[[Datei:Wordclock-rot-hinter-weiss.jpg‎|miniatur|Wordclock rote RGB-LEDs hinter weissem Diffusor]]&lt;br /&gt;
&lt;br /&gt;
Das Angebot beträgt &#039;&#039;&#039;32 Euro inkl. MwSt.&#039;&#039;&#039; pro Platte bei Abnahme von 100 Stück.&lt;br /&gt;
&lt;br /&gt;
Folgende Varianten sind vorgesehen:&lt;br /&gt;
&lt;br /&gt;
  - A: 45cm x 45cm mit weißer Schicht als Diffusor&lt;br /&gt;
  - B: 45cm x 45cm mit transparenten Buchstaben (ohne weiße Schicht)&lt;br /&gt;
  - C: 30cm x 30cm mit weißer Schicht als Diffusor&lt;br /&gt;
  - D: 30cm x 30cm mit transparenten Buchstaben (ohne weiße Schicht)&lt;br /&gt;
&lt;br /&gt;
Um herauszufinden, wieviele Leute tatsächlich an einer Sammelbestellung interessiert sind, kann man mir (Benutzer [http://www.mikrocontroller.net/user/show/ukw ukw]) eine Nachricht hinterlassen. Bitte die Stückzahl und die Variante nennen!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stand 08.02.2010: A: 75   B: 9   C: 5   D: 2, insgesamt also: 91&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ich werde versuchen, die Anzahl möglichst jeden Tag zu aktualisieren.&lt;br /&gt;
&lt;br /&gt;
Sobald die 100 erreicht sind, wende ich mich nochmal an die Firma, um auch Angebote über die Varianten einzuholen. Anschließend wird dann die Sammelbestellung anlaufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung: Die beiden Bilder rechts zeigen das auf 25cm x 25cm verkleinerte Muster mit Diffusor (Variante A) - jedoch ohne Minutenpunkte, welche für die endgültige Version natürlich vorgesehen sind.&#039;&#039;&#039; Dass einige Nachbar-Buchstaben schwach mitleuchten, liegt an meinem (schlechten) Prototyp-Aufbau: die Nachbarzellen wurden nur unzureichend optisch abgeschirmt, da ich einfach 2 U-Profile, die gerade in der Nähe lagen, als optische Begrenzer unter die Platte gelegt habe.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Sammelbestellung Frontplatte Edelstahl ===&lt;br /&gt;
&lt;br /&gt;
Alternativ zur Plexiglasvariante wurde im Forum über eine Edelstahlfrontblende diskutiert. Es liegt ein Angebot für folgende Ausführung vor:&lt;br /&gt;
&lt;br /&gt;
  - Abmaße: ca. 450x450x1 mm &lt;br /&gt;
  - gelasert gem. dxf Vorgabe, &lt;br /&gt;
  - Material 1.4301-2G, &lt;br /&gt;
  - eins. K320 geschliffen/gebürstet+foliert, &lt;br /&gt;
  - ohne weitere Nachbearbeitung, &lt;br /&gt;
&lt;br /&gt;
Verwendet wird hierbei die Schriftart Laser Sans Serif. Die Schriftart hat Stege, so dass freie Inselteile (z.B. Innenteil O) nicht lose sind.&lt;br /&gt;
Die Buchstaben werden entsprechend ausgelasert und müssen von hinten noch mit einem Diffusor versehen werden. Der Diffusor ist nicht Bestandteil des Angebots.&lt;br /&gt;
&lt;br /&gt;
Preise (Stand 25.01.2010).&lt;br /&gt;
&lt;br /&gt;
  10 Stück   31,00 €&lt;br /&gt;
  54 Stück   25,60 €&lt;br /&gt;
  108 Stück  24,90 €&lt;br /&gt;
&lt;br /&gt;
Jeweils zzgl. MwSt, Verpackung und Versand.&lt;br /&gt;
&lt;br /&gt;
Eine Anfrage nach einem Musterexemplar mit Version V2.1 läuft zur Zeit. Sollte ich das bekommen, werde ich Fotos einstellen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stand 08.02.2010: 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bei Interesse an einer Blende bitte eine Nachricht hinterlassen (Benutzer [http://www.mikrocontroller.net/user/show/andreasp andreasp]).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Sammelbestellung LEDs &amp;amp; Streifenplatinen ===&lt;br /&gt;
==== Streifenplatinen ====&lt;br /&gt;
Wie im Forum angekündigt, läuft im Moment eine Vorabanfrage bezüglich einer Sammelbestellung für die SMD RGB LEDs sowie der passenden Streifenleiterplatten.&lt;br /&gt;
Die Platine hat ein Maß von 314 x 12 mm&lt;br /&gt;
&lt;br /&gt;
Die Streifenplatine wird so ausschauen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:LED_Streifen_V6_1.png|750px|Streifenplatine für SMD RGB LEDs Version 6]]&lt;br /&gt;
&lt;br /&gt;
Ausschnitt vergrößert dargestellt:&lt;br /&gt;
&lt;br /&gt;
[[Datei:LED_Streifen_V6_1_schnitt.png|Aussschnitt]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Technische Daten der SMD RGB PLCC-6 LEDs ====&lt;br /&gt;
Spezifikation&lt;br /&gt;
* Source Material: InGaN&lt;br /&gt;
* Emitting Colour: SMD SMT 5050 RGB&lt;br /&gt;
* LENS Type: Water clear&lt;br /&gt;
* Reverse Voltage: 5.0 V&lt;br /&gt;
* Viewing Angle: 140 degree&lt;br /&gt;
* Lead Soldering Temp: 260°C for 5 seconds&lt;br /&gt;
&lt;br /&gt;
Absolute Maximum Rating (Ta = 250C)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PARAMETER || Symbol || RED || GREEN || BLUE || UNITS&lt;br /&gt;
|-&lt;br /&gt;
| Power Dissipation || PO || align=&amp;quot;right&amp;quot; | 80 || align=&amp;quot;right&amp;quot; | 95 || align=&amp;quot;right&amp;quot; | 85 || mW&lt;br /&gt;
|-&lt;br /&gt;
| DC Current || IF || align=&amp;quot;right&amp;quot; | 20 || align=&amp;quot;right&amp;quot; | 20 || align=&amp;quot;right&amp;quot; | 20 || mA&lt;br /&gt;
|-&lt;br /&gt;
| Peak Forward Current || IFP || align=&amp;quot;right&amp;quot; | 100 || align=&amp;quot;right&amp;quot; | 100 || align=&amp;quot;right&amp;quot; | 100 || mA&lt;br /&gt;
|-&lt;br /&gt;
| Reverse Voltage || VR || align=&amp;quot;right&amp;quot; | 5 || align=&amp;quot;right&amp;quot; | 5 || align=&amp;quot;right&amp;quot; | 5 || V&lt;br /&gt;
|-&lt;br /&gt;
| Operating Temperature || Topr || colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | -25 to +85 || °C&lt;br /&gt;
|-&lt;br /&gt;
| Storage Temperature || Tstg ||  colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | -40 to +85 || °C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Electro-optical Characteristics (Ta = 250C)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PARAMETER || SYMBOL || CONDITIONS || MIN. || TYP. || MAX. || UNIT&lt;br /&gt;
|-&lt;br /&gt;
| Forward Voltage (B) || VF || IF = 20mA || align=&amp;quot;right&amp;quot; | 3.4 || align=&amp;quot;right&amp;quot; | 3.6 || align=&amp;quot;right&amp;quot; | 3.8 || V&lt;br /&gt;
|-&lt;br /&gt;
| Forward Voltage (G) || VF || IF = 20mA || align=&amp;quot;right&amp;quot; | 3.4 || align=&amp;quot;right&amp;quot; | 3.6 || align=&amp;quot;right&amp;quot; | 3.8 || V&lt;br /&gt;
|-&lt;br /&gt;
| Forward Voltage (R) || VF || IF = 20mA || align=&amp;quot;right&amp;quot; | 1.9 || align=&amp;quot;right&amp;quot; | 2.1 || align=&amp;quot;right&amp;quot; | 2.5 || V&lt;br /&gt;
|-&lt;br /&gt;
| Dominant Wavelength (B) || lD || IF = 20mA || align=&amp;quot;right&amp;quot; | 465 || align=&amp;quot;right&amp;quot; | 470 || align=&amp;quot;right&amp;quot; | 175 || nm&lt;br /&gt;
|-&lt;br /&gt;
| Dominant Wavelength (G) || lD || IF = 20mA || align=&amp;quot;right&amp;quot; | 515 || align=&amp;quot;right&amp;quot; | 520 || align=&amp;quot;right&amp;quot; | 525 || nm&lt;br /&gt;
|-&lt;br /&gt;
| Dominant Wavelength (R) || lD || IF = 20mA || align=&amp;quot;right&amp;quot; | 625 || align=&amp;quot;right&amp;quot; | 630 || align=&amp;quot;right&amp;quot; | 635 || nm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Datei:plcc6_smd_RGB.JPG]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Sammelbestellung ====&lt;br /&gt;
&lt;br /&gt;
Folgende Angebote stehen zur Verfügung:&lt;br /&gt;
* Paket 1: SMD RGB LEDs im 100er Päckchen für 24,00 Eur&lt;br /&gt;
* Paket 2: Streifenplatinen im 10er Pack für 5,90 Eur&lt;br /&gt;
* Paket 3: Komplettpaket besteht aus Paket1 + Paket2 + Hühnerfutter für 31,08 Eur&lt;br /&gt;
&lt;br /&gt;
Da für die WordClock nur 96 LEDs benötigt werden, sind in den oben genannten Paketen &amp;quot;nur&amp;quot; 100 LEDs enthalten!&lt;br /&gt;
&lt;br /&gt;
Wer zusätzlich LEDs benötigt, kann diese bei mir zum Stückpreis von 0,24 Eur erhalten. Hierzu bitte einfach eine PN ([http://www.mikrocontroller.net/user/show/wawibu wawibu]) an mich.&lt;br /&gt;
&lt;br /&gt;
Falls jemand nur LEDs haben möchte, so kann ich diese auch entsprechend - so lange der Vorrat reicht - anbieten. &lt;br /&gt;
&lt;br /&gt;
Beitrag im Marktplatz: http://www.mikrocontroller.net/topic/166284&lt;br /&gt;
&lt;br /&gt;
Das Paket 1 versende ich im Luftpolsterumschlag für 1,80 Eur. &lt;br /&gt;
Paket 2 und 3 versende ich im Karton für 5,20 Eur.&lt;br /&gt;
&lt;br /&gt;
Die Versandkosten fallen natürlich nur einmal an. Bei einer Kombination der Pakete fällen die höheren Versandkosten an.&lt;br /&gt;
&lt;br /&gt;
Beispiele für die Versandkosten:&lt;br /&gt;
* 1x Paket 1 = 1,80 Eur&lt;br /&gt;
* 5x Paket 1 = 1,80 Eur&lt;br /&gt;
* 1x Paket 2 = 5,20 Eur&lt;br /&gt;
* 1x Paket 1 und 1x Paket 2 = 5,20 Eur&lt;br /&gt;
* 3x Paket 2 und 2x Paket 3 = 5,20 Eur&lt;br /&gt;
&lt;br /&gt;
Wer interesse hat, schreibt mir bitte eine PN ([http://www.mikrocontroller.net/user/show/wawibu wawibu]).&lt;br /&gt;
&lt;br /&gt;
Forumsbeitrag: http://www.mikrocontroller.net/topic/156661#1561973&lt;br /&gt;
&lt;br /&gt;
Stand (03.02.2010):&lt;br /&gt;
* Paket 1:  18x&lt;br /&gt;
* Paket 2:  27x&lt;br /&gt;
* Paket 3: 114x&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Die emails an die Vorbesteller wurde heute (29.01.2010) versendet. Die Frist zur &#039;&#039;&#039;verbindlichen Zusage&#039;&#039;&#039; läuft am &#039;&#039;&#039;12.Februar 2010&#039;&#039;&#039; aus. Alle die sich bis dahin gemeldet haben, sind bei der Bestellung dabei.&lt;br /&gt;
&lt;br /&gt;
Link zur Mail:&lt;br /&gt;
http://www.mikrocontroller.net/topic/156661#1575610&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
== Module ==&lt;br /&gt;
&lt;br /&gt;
=== DCF77 ===&lt;br /&gt;
&lt;br /&gt;
Zur Programmierung siehe den Artikel [[DCF77-Funkwecker_mit_AVR]]. Im Abschnitt &#039;&#039;Programmierung&#039;&#039; ist das Funksignal dokumentiert, zusammen mit einem Beispiel (Bitstrom und Bedeutung).&lt;br /&gt;
&lt;br /&gt;
Codebeispiel siehe &#039;&#039;&#039;[[http://www.mikrocontroller.net/topic/25071 DCF_77]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Torsten Giese ([http://www.mikrocontroller.net/user/show/wawibu wawibu])&lt;br /&gt;
&lt;br /&gt;
=== Automatische Helligkeitsregelung ===&lt;br /&gt;
&lt;br /&gt;
Die Helligkeit des Displays wird über einen LDR gesteuert.&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Rene H. ([http://www.mikrocontroller.net/user/show/promeus promeus])&lt;br /&gt;
&lt;br /&gt;
=== RTC ===&lt;br /&gt;
&lt;br /&gt;
Vorgesehen ist die Verwendung eines batteriegepufferten DS1307 - über I2C angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Frank M. ([http://www.mikrocontroller.net/user/show/ukw ukw])&lt;br /&gt;
&lt;br /&gt;
=== IR ===&lt;br /&gt;
&lt;br /&gt;
Es werden folgende Infrarot-Protokolle verstanden:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Protokoll || Hersteller&lt;br /&gt;
|-&lt;br /&gt;
| SIRCS || Sony&lt;br /&gt;
|-&lt;br /&gt;
| NEC || NEC, Yamaha, Canon, Tevion, Harman/Kardon, Hitachi, JVC, Pioneer, Toshiba, Xoro, Orion, NoName und viele weitere japanische Hersteller.&lt;br /&gt;
|-&lt;br /&gt;
| SAMSUNG || Samsung&lt;br /&gt;
|-&lt;br /&gt;
| MATSUSHITA || Matsushita&lt;br /&gt;
|-&lt;br /&gt;
| KASEIKYO || Panasonic, Denon und andere japanische Hersteller, welche Mitglied der &amp;quot;Japan&#039;s Association for Electric Home Application&amp;quot; sind.&lt;br /&gt;
|-&lt;br /&gt;
| RECS80 || Philips, Nokia, Thomson, Nordmende, Telefunken, Saba&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Über die automatische Erkennung des Protokolls werden die nötigen Tastatur-Befehl-Bits aus den Infrarot-Daten extrahiert - ohne Kenntnis, welche Tasten da eigentlich tatsächlich gedrückt wurden. So eine Tabelle würde den Speicher des µCs sprengen. Deshalb passiert die Zuordnung der Tasten zu WordClock-Befehlen in einer kleinen Anlern-Prozedur, die einmal nach dem ersten Boot-Vorgang ausgeführt werden muss.&lt;br /&gt;
&lt;br /&gt;
Mittlerweile gibt es einen eigenen Artikel zum Infrarot-Fernbedienungs-Decoder, siehe [http://www.mikrocontroller.net/articles/IRMP IRMP]&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Frank M. ([http://www.mikrocontroller.net/user/show/ukw ukw])&lt;br /&gt;
&lt;br /&gt;
=== PWM ===&lt;br /&gt;
&lt;br /&gt;
Die PWM steuert die 3 RGB-Kanäle. Damit ist freie Farbenwahl möglich.&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Frank M. ([http://www.mikrocontroller.net/user/show/ukw ukw])&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
Das Display wird nicht als 10x11-Matrix angesteuert, sondern wortweise. Dies war nötig, weil hier RGB-LEDs zum Einsatz kommen, um beliebige Farben anzuzeigen. Daraus ergibt sich dann für die Wörter eine 24x3-Matrix. Ebenso können die Minutenpunkte farbig angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Die Farben sind kein Muss - in der Minimalbeschaltung können auch einfarbige LEDs zum Einsatz kommen.&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Vlad Tepesch ([http://www.mikrocontroller.net/user/show/vlad_tepesch vlad_tepesch])&lt;br /&gt;
&lt;br /&gt;
=== Benutzer-Interaktion ===&lt;br /&gt;
&lt;br /&gt;
Mit der Fernbedienung wird folgendes möglich sein:&lt;br /&gt;
&lt;br /&gt;
 * Einmaliges Anlernen der Fernbedienung&lt;br /&gt;
 * Anpassen der automatischen Helligkeitssteuerung&lt;br /&gt;
 * Einstellen des Farbprogramms (Übergänge etc)&lt;br /&gt;
 * Stellen der Uhr (wenn kein DCF77-Modul angeschlossen)&lt;br /&gt;
 * ...&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Vlad Tepesch ([http://www.mikrocontroller.net/user/show/vlad_tepesch vlad_tepesch])&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Hier eine &#039;&#039;&#039;Vorabversion&#039;&#039;&#039; des Quellcodes zum Projekt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Media:Wordclock-08-src.zip]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bitte 00README.txt lesen!&lt;br /&gt;
&lt;br /&gt;
= Abstimmungen =&lt;br /&gt;
Eine Stimme ist ein Strich. Nach 5 Strichen bitte ein Leerzeichen einfügen.&amp;lt;br&amp;gt;&lt;br /&gt;
DCF: ||||| ||||| ||||| ||||| ||||| ||||| ||||| &amp;lt;br&amp;gt;&lt;br /&gt;
ethernet ntp client: ||||| |&amp;lt;br&amp;gt;&lt;br /&gt;
IR für Fernbedienung: ||||| ||||| |||&amp;lt;br&amp;gt;&lt;br /&gt;
Bewegungsmelder: ||||| |||&amp;lt;br&amp;gt;&lt;br /&gt;
Bluetooth: |&amp;lt;br&amp;gt;&lt;br /&gt;
IR zum PC für Kommunikation/Bootloader |&amp;lt;br&amp;gt;&lt;br /&gt;
RFM12 für Kommunikation/Bootloader |&amp;lt;br&amp;gt;&lt;br /&gt;
NTP Server (um eine genaue Zeit ins Netzwerk zu verteilen) |&amp;lt;br&amp;gt;&lt;br /&gt;
usw: |&amp;lt;br&amp;gt;&lt;br /&gt;
Ambilight: ||||| ||||| |&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Word Clock als PC-Programm =&lt;br /&gt;
[http://bralug.de/wiki/Wort_Uhr Hier] ist der [http://bralug.de/wiki/Wort_Uhr Quelltext] zu einer X11-Version der Word Clock zu finden.&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Word_Clock&amp;diff=43051</id>
		<title>Word Clock</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Word_Clock&amp;diff=43051"/>
		<updated>2010-02-09T06:48:34Z</updated>

		<summary type="html">&lt;p&gt;Boregard: /* Technische Daten der SMD RGB PLCC-6 LEDs */  -&amp;gt; change to WIKI table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Was ist das? =&lt;br /&gt;
&lt;br /&gt;
[[Datei:wordclock-frontplatte-v2.png| |WordClock]]&lt;br /&gt;
&lt;br /&gt;
Es geht hier um folgenden Thread [1], in dem der Bau einer Uhr disktuiert wird. Als Inspiration kann diese [2] dienen. Es wird keine patentrechtlich bedenkliche Kopie :-)&amp;lt;br&amp;gt;&lt;br /&gt;
[1] [http://www.mikrocontroller.net/topic/156661 Beitrag: Brauche Hilfe beim Bau einer Uhr]&amp;lt;br&amp;gt;&lt;br /&gt;
[2] [http://www.qlocktwo.com http://www.qlocktwo.com]&lt;br /&gt;
&lt;br /&gt;
== Funktionalitäten ==&lt;br /&gt;
* Speichern der Uhrzeit über Real Time Clock&lt;br /&gt;
* Optionaler DCF77-Funkempfang&lt;br /&gt;
* Automatische Helligkeitsanpassung an das Umgebungslicht&lt;br /&gt;
* Anzeige der Uhrzeit durch RGB-LED-beleuchtete Buchstaben, d.h. es sind beliebige Farben möglich&lt;br /&gt;
* Bedienung über Infrarot-Fernbedienung: Helligkeit, Farbe, Uhrzeit und Ausgabeformat (&amp;quot;viertel vor acht&amp;quot; oder &amp;quot;dreiviertel acht&amp;quot;)&lt;br /&gt;
* Farbe einstellbar oder änderbar durch automatisch wechselndes HUE-Fading&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
* Atmega88 oder Atmega168&lt;br /&gt;
* 24-Bit-Schieberegister an SPI für 24 Wörter&lt;br /&gt;
* 4 Output-Pins für Minutenanzeige&lt;br /&gt;
* 4 weitere GPOS - für allgemeine Zwecke&lt;br /&gt;
* RGB-Steuerung über PWM gegen GND, d.h. 32x3-Matrix&lt;br /&gt;
&lt;br /&gt;
== Schaltung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:wordclock-schmal-schaltung.png|miniatur|Schaltbild V1.0]]&lt;br /&gt;
&lt;br /&gt;
Das Schaltbild ist für die Prototypen-Platine als auch für die endgültige Version 1.0 (schmale Platine) identisch. Lediglich der Pullup-Widerstand R7 am DCF-Anschluss ist weggefallen und ab Version 0.9 der Software auch nicht mehr am Prototypen nötig.&lt;br /&gt;
&lt;br /&gt;
Eine größere Sammelbestellung wurde im Januar 2010 organisiert, siehe auch &#039;&#039;&#039;[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_der_Platine Sammelbestellung der Platine]&#039;&#039;&#039;. Es sind keine Platinen mehr übrig.&lt;br /&gt;
&lt;br /&gt;
Hier die zugehörige Schaltung V1.0 als PDF: &#039;&#039;&#039;[[Media:wordclock-schmal.pdf]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Für eine einfarbige Variante reicht der Warenkorb mit dem ATmega 88:&lt;br /&gt;
Eine vollständige Liste zur Bestellung der nötigen Bauteile ist bei Reichelt abgelegt: &#039;&#039;&#039;[https://secure.reichelt.de/?;ACTION=20;LA=5010;AWKID=209167;PROVID=2084 Warenkorb-Mono]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Für die RBG-Version wird der ATmega 168 benötigt. Einen angepassten Warenkorb ist wieder bei Reichelt hinterlegt: &#039;&#039;&#039;[https://secure.reichelt.de/?;ACTION=20;LA=5010;AWKID=209168;PROVID=2084 Warenkorb-RGB]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Derzeit ist der TSOP 1736 bei Reichelt nicht lieferbar. Laut telefonischer Auskunft (Stand: 19.01.2010), ist dieser im Moment im Rückstand. Ein Liefertermin ist bei Reichelt nicht bekannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stand: 02.02.2010 Da nach wie vor der TSOP1736 nicht lieferbar ist, wurde der Warenkorb um den TSOP1738 erweitert.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hinweis zum TSOP1738 &amp;gt;&amp;gt; http://www.mikrocontroller.net/topic/156661#1580976&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Liste bezieht sich sowohl auf den Prototypen als auf die endgültige (schmalere) Version.&lt;br /&gt;
&lt;br /&gt;
== Bestückung ==&lt;br /&gt;
&lt;br /&gt;
Hier eine kurze Beschreibung zur Bestückung:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prototyp:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock.png|miniatur|Bestückte Platine (Prototyp)]]&lt;br /&gt;
&lt;br /&gt;
* Links: Anschluss für stehende Lithium-Knopfbatterie CR2032 (die drei abgebildeten Stifte sind natürlich nicht notwendig, die Batterie wird direkt eingelötet)&lt;br /&gt;
* Unten links: Anschluss für DCF77-Modul und für Testzwecke RX &amp;amp; TX&lt;br /&gt;
* Oben Mitte: TSOP1736 für Infrarot-Empfang&lt;br /&gt;
* Oben links und rechts: Wannenstecker für insg. 32 Ausgabekanäle: OUT0-OUT23 (für die Wörter), OUTL1-OUTL4 (für die Minuten) und OUTG1-OUTG4 (für General-Purpose-Ausgabezwecke - noch nicht definiert)&lt;br /&gt;
* Rechts: Anschlussklemmen für Versorgungsspannung 7-12V und die drei PWM-Kanäle Rot, Grün und Blau&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Endgültige Version (schmale Ausführung):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-schmal.png|miniatur|Bestückte Platine (endgültige Version)]]&lt;br /&gt;
&lt;br /&gt;
* Oben Mitte: Anschluss für stehende Lithium-Knopfbatterie CR2032 (die drei abgebildeten Stifte sind natürlich nicht notwendig, die Batterie wird direkt eingelötet)&lt;br /&gt;
* Unten 3-polige Stiftleiste: Anschluss für DCF77-Modul&lt;br /&gt;
* Unten 2-polige Stiftleiste: RX &amp;amp; TX (für Testzwecke)&lt;br /&gt;
* Unten rechts: TSOP1736 für Infrarot-Empfang&lt;br /&gt;
* Darüber: 2-polige Stiftleiste für LDR (Helligkeitsmessung)&lt;br /&gt;
* Oben links und rechts: Wannenstecker für insg. 32 Ausgabekanäle: OUT0-OUT23 (für die Wörter), OUTL1-OUTL4 (für die Minuten) und OUTG1-OUTG4 (für General-Purpose-Ausgabezwecke)&lt;br /&gt;
* Rechts: Anschlussklemmen für Versorgungsspannung 7-12V und die drei PWM-Kanäle Rot, Grün und Blau.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung: die Reihenfolge der Schraubklemmen-Anschlüsse hat sich bei der endgültigen gegenüber der Prototyp-Version geändert, siehe weiter unten!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der IR-Empfänger TSOP1736 muss hinter einem nicht benutzten Buchstaben angebracht werden. Deshalb braucht man ihn nicht unbedingt auf die Platine löten, sondern kann ihn auch über ein 3-poliges Kabel mit der Platine verbinden. Das Kabel sollte aber nicht zu lang sein, da der TSOP immer gern seinen Elko in der Nähe hat.&lt;br /&gt;
&lt;br /&gt;
Da die Routine zur automatischen Helligkeitsregelung noch nicht ausgetestet ist, sollte man den Widerstand R6 (Pulldown für LDR) zunächst noch nicht bestücken, bis klar ist, welcher Wert der optimale für den gewählten LDR ist.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-bestueckungsdruck.png|miniatur|Bestückungsaufdruck der Prototyp-Platine]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FOLGENDES GILT NUR FÜR DEN PROTOTYPEN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Durch einen Fehler in der Target3001-Bibliothek hat die Prototypen-Platine einen Fehler, der aber leicht behebbar ist:&#039;&#039;&#039; Die Einstecklöcher für die 3 MOSFETs IRLU2905 besitzen auf der Unterseite keine Lötpunkte. Daher müssen die IRLUs an die oben liegenden Lötpunkte festgelötet werden. Auf der unteren Seite bilden die Bohrlöcher leider einen Kurzschluss mit der unten liegenden Massefläche.&lt;br /&gt;
&lt;br /&gt;
Deshalb müssen vorher(!) die Löcher für die IRLU-Beinchen mit einem spitzen Gegenstand auf der Unterseite von dem Kurzschluss mit der unteren Massefläche befreit werden. Dazu geht man folgendermaßen vor:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-anschluesse.png|miniatur|Anschlüsse der Prototyp-Platine]]&lt;br /&gt;
&lt;br /&gt;
Spitzen Gegenstand (z.B. Teppichmesser, Spitze einer kleinen Kneifzange) von unten(!) ins Loch stecken und zwei- bis dreimal dreimal im Bohrloch drehen, damit die Verbindung der unteren Massefläche zur Durchkontaktierung unterbrochen wird. Anschließend mit dem Ohmmeter prüfen, ob der Kurzschluss behoben ist. Insgesamt sind es 6 Löcher, die so behandelt werden müssen, diese betreffen jeweils die Pins 1 und 2 der drei IRLU-MOSFETs. Pin3 muss nicht bearbeitet werden, da hier sowieso die Masse angeschlossen werden muss,&lt;br /&gt;
siehe auch das nächste Bild unten.&lt;br /&gt;
&lt;br /&gt;
Ist der Kurzschluss zur unteren Massefläche behoben, sollte man die IRLU-Beinchen trotzdem nicht durch das Bohrloch stecken, sondern:&lt;br /&gt;
&lt;br /&gt;
* Beinchen kürzen, vielleicht die Enden (wegen der Stabilität) 2mm umbiegen&lt;br /&gt;
* Oben in SMD-Manier anlöten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Im rechts stehenden Bild sind nicht nur die Lage der Anschlüsse verdeutlicht, sondern auch die Bohrlöcher für die IRLU-MOSFETs rot umkringelt, welche man von der Unterseite(!) her &amp;quot;behandeln&amp;quot; muss. Beim Prototypen müssen die IRLUs so angelötet werden, dass das Metall zur Schraubklemme zeigt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestückung und Anschlüsse der endgültigen Version:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-schmal-bestueckungsdruck.png|miniatur|Bestückungsaufdruck der endgültigen (schmaleren) Platine]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-schmal-bestueckt.jpg|miniatur|Bestückung: Orientierung der IRLUs beachten!]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-schmal-anschluesse.png|miniatur|Anschlüsse]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WICHTIG für die Version 1.0:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der oberste IRLU2905 muss anders herum eingelötet werden (Metall Richtung Spannungsregler) als die beiden unteren (Metall Richtung Schraubklemme). Siehe auch Foto rechts.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Die Reihenfolge der Schraubklemmen-Anschlüsse hat sich gegenüber dem Prototypen geändert, bitte unbedingt die Reihenfolge beachten!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Möchte man einfarbige LEDs verwenden und auf die RGB-Steuerung verzichten, schließt man einfach zwei der drei RGB-PWM-Kanäle nicht an und verwendet stattdessen nur PWMR zur PWM-Steuerung. Die 2 zu PWMG und PWMB gehörenden IRLUs und die angeschlossenen 4 Widerstände am Gate der IRLUs kann man dann auch weglassen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestückungsliste:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diese Liste bezieht sich sowohl auf den Prototypen als auch auf die endgültige (schmalere) Version.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Name                Wert&lt;br /&gt;
 C1,C3,C4,C6,C8,C9   100NF&lt;br /&gt;
 C10,C11,C12,C13     100NF&lt;br /&gt;
 C2                  4,7µF&lt;br /&gt;
 C5,C7               47µF&lt;br /&gt;
 D1                  1N4001&lt;br /&gt;
 IC1                 ATMEGA88&lt;br /&gt;
 IC2                 7805&lt;br /&gt;
 IC3                 TSOP1736&lt;br /&gt;
 IC4,IC5,IC6         74HCT595N&lt;br /&gt;
 IC7                 DS1307&lt;br /&gt;
 IC8,IC9,IC10,IC11   UDN2981A&lt;br /&gt;
 K4                  Wannenstecker 10&lt;br /&gt;
 K7,K8               Wannenstecker16&lt;br /&gt;
 K6                  LDR&lt;br /&gt;
 KL1                 KLEMME5POL&lt;br /&gt;
 Q1                  32,768KHz&lt;br /&gt;
 R1,R6,R8,R10,R12    10K&lt;br /&gt;
 R7                  10K, entfällt!&lt;br /&gt;
 R2                  100&lt;br /&gt;
 R3,R4               4K7&lt;br /&gt;
 R5,R9,R11           82&lt;br /&gt;
 T1,T2,T3            IRLU2905&lt;br /&gt;
&lt;br /&gt;
== FAQ zur Bestückung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-schmal-bestueckt.jpg|miniatur|Bestückung: Orientierung der IRLUs (ganz rechts) beachten!]]&lt;br /&gt;
&lt;br /&gt;
 Q: Wie herum müssen die IRLUs eingelötet werden?&lt;br /&gt;
 A: Beim Prototypen: Alle drei mit der Metallseite zur Schraubklemme hin, Pin1&lt;br /&gt;
    ist also immer &amp;quot;oben&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
    Bei V1.0 (schmale Version): Der oberste kommt mit der Metallseite nach&lt;br /&gt;
    links (Richtung Spannungsregler), Pin 1 ist hier der untere. Die anderen&lt;br /&gt;
    beiden IRLUs werden mit der Metallseite Richtung Schraubklemme eingelötet,&lt;br /&gt;
    siehe auch Foto rechts. Hier ist jeweils Pin 1 der obere.&lt;br /&gt;
&lt;br /&gt;
 Q: Welche ICs sollte ich sockeln?&lt;br /&gt;
 A: Wenn durch einen versehentlichen Kurzschluss bei der Freiluftverdrahtung der&lt;br /&gt;
    LEDs ein UDN2981 abfackelt, ist das ägerlich. Daher sollte man zumindest&lt;br /&gt;
    die UDNs und den ATMega sockeln. Besser ist es natürlich, alle zu sockeln.&lt;br /&gt;
&lt;br /&gt;
 Q: Bei dem ATMega und der RTC ist nicht ersichtlich, wie herum sie eingebaut&lt;br /&gt;
    werden müssen?&lt;br /&gt;
 A: Doch, kann man sehen: Der Lötpunkt von Pin1 ist immer rechteckig, die&lt;br /&gt;
    anderen sind oval. Das gilt übrigens für fast alle Bauteile, auch die Wannen.&lt;br /&gt;
&lt;br /&gt;
 Q: Ich möchte oben statt der abgebildeten zwei 2x8-poligen Stiftleisten 16-polige&lt;br /&gt;
    Wannenstecker nehmen. Wie herum kommen dann die oberen Wannen drauf?&lt;br /&gt;
 A: Mit der Kerbe nach unten, sieht man auch am rechteckigen Lötpunkt - und&lt;br /&gt;
    auch auf dem Foto rechts.&lt;br /&gt;
&lt;br /&gt;
 Q: Kann ich auf die Batterie verzichten, weil ich DCF77 einsetze bzw. nach&lt;br /&gt;
    einem Stromausfall die Uhr per Fernbedienung selbst neu stellen möchte?&lt;br /&gt;
 A: Wenn man keine Batterie einsetzt, sollte man VBat der RTC DS1307 mit GND&lt;br /&gt;
    verbinden. Das geht am einfachsten an den auf der Platine vorgesehenen&lt;br /&gt;
    Batterieanschlüssen: einfach K1 (Bat+) und K3 (Bat-) mit einem Stück Draht&lt;br /&gt;
    überbrücken. Übrigens: die Batterie hält lt. Datenblatt des DS1307&lt;br /&gt;
    10 Jahre, es ist also durchaus sinnvoll, diese auch zu bestücken.&lt;br /&gt;
&lt;br /&gt;
 Q: Zur Zeit ist der Infrarot-Empfänger TSOP1736 nur schlecht erhältlich.&lt;br /&gt;
    Gibt es dazu eine Alternative?&lt;br /&gt;
 A: Als Ersatz kann man auch den TSOP1738 nehmen. Dieser hat bei Fernbedienungen&lt;br /&gt;
    mit einer Modulationsfrequenz kleiner/gleich 36kHz zwar eine geringere&lt;br /&gt;
    Reichweite, bei Fernbedienungen mit einer Modulationsfrequenz größer/gleich&lt;br /&gt;
    38kHz jedoch sogar eine höhere.&lt;br /&gt;
&lt;br /&gt;
 Q: Kann ich (aus Kostengründen) auch einfarbige LEDs verwenden?&lt;br /&gt;
 A: Ja, einfach zwei der drei RGB-PWM-Kanäle nicht anschließen und nur PWMR (für Rot) benutzen.&lt;br /&gt;
    Die 2 zu PWMG und PWMB gehörenden IRLUs und die angeschlossenen 4 Widerstände am Gate der IRLUs&lt;br /&gt;
    kann man dann auch weglassen.&lt;br /&gt;
&lt;br /&gt;
== Anschluss eines DCF77-Moduls ==&lt;br /&gt;
&lt;br /&gt;
Der Anschluss eines DCF77-Moduls ist optional. Wird ein DCF77-Modul angeschlossen, kann mittels einer LED der DCF77-Empfang angezeigt werden. Die LED blinkt dann im Sekundenrhytmus und zeigt direkt die empfangenen DCF77-Impulse. Der Empfang wird kurze Zeit nach dem Einschalten aktiviert bzw. jede Stunde wiederholt. &lt;br /&gt;
&lt;br /&gt;
Die DCF77-LED kann folgendermaßen angeschlossen werden:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wannen.png|miniatur|Anschlüsse der Wannenstecker]]&lt;br /&gt;
&lt;br /&gt;
RGB-LED in Farbe:&lt;br /&gt;
&lt;br /&gt;
            /---|&amp;gt;|----| R |---- PWMR&lt;br /&gt;
 OUTG4   +--|---|&amp;gt;|----| R |---- PWMG&lt;br /&gt;
            \---|&amp;gt;|----| R |---- PWMB&lt;br /&gt;
&lt;br /&gt;
Einfarbige LED gedimmt:&lt;br /&gt;
&lt;br /&gt;
 OUTG4   +--|---|&amp;gt;|----| R |---- PWMR&lt;br /&gt;
&lt;br /&gt;
Einfarbige LED immer gleich hell:&lt;br /&gt;
&lt;br /&gt;
 OUTG4   +--|---|&amp;gt;|----| R |---- GND&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bei Anschluss des DCF77-Moduls von Reichelt ist folgendes zu beachten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 - Prototyp-Platine: Der Pull-Up-Widerstand R7 darf nicht eingelötet werden&lt;br /&gt;
   bzw. muss nachträglich wieder von der Platine entfernt werden - z.B. durch&lt;br /&gt;
   Abkneifen der Widerstandsdrähte mit einer Kneifzange. Grund: Das&lt;br /&gt;
   Reichelt-Modul hat keinen Open-Collector-Ausgang, sondern einen sehr&lt;br /&gt;
   schwachen Ausgang, welcher durch den Pullup-Widerstand permanent auf High&lt;br /&gt;
   gezogen wird.&lt;br /&gt;
&lt;br /&gt;
 - Es sollte direkt auf den Lötaugen des Reichelt-DCF77-Moduls ein&lt;br /&gt;
   Abblock-Kondensator von 100nF zwischen den Pins +UB und GND aufgelötet&lt;br /&gt;
   werden&lt;br /&gt;
&lt;br /&gt;
 - Der Eingang PON muss offen bleiben - entgegen den (falschen) Angaben&lt;br /&gt;
   im Reichelt Datenblatt!&lt;br /&gt;
&lt;br /&gt;
 - Das DCF77-Modul von Reichelt braucht eine Synchronisierungszeit von&lt;br /&gt;
   mindestens 10 Sekunden. Erst dann arbeitet der Empfänger.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beim Anschluss des Conrad-Moduls ArtNr. 641138 ist folgendes zu beachten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 - Prototyp: Der Pullup-Widerstand R7 muss unbedingt eingelötet sein&lt;br /&gt;
&lt;br /&gt;
 - Es muss der nicht-invertierte Open-Collector-Ausgang Pin 3 als Signal&lt;br /&gt;
   an die WordClock angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Zur Info (10.01.2010): Torsten Giese hat die DCF77-Routinen so erweitert, dass die verschiedenen DCF77-Modultypen (mit/ohne open Collector, active low/high)&lt;br /&gt;
automatisch erkannt werden. Kommt mit Software-Version 0.9. Dann muss der Widerstand R7 für &#039;&#039;&#039;alle&#039;&#039;&#039; Varianten fehlen. Daher ist er auch in der endgültigen Platinen-Version entfallen.&lt;br /&gt;
&lt;br /&gt;
== Anschluss der LEDs ==&lt;br /&gt;
=== Zuordnung der Kanäle ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wannen.png|miniatur|Anschlüsse der Wannenstecker]]&lt;br /&gt;
&lt;br /&gt;
Folgende Tabelle enthält die Zuordnung der Wörter zu den Pins der Wannenstecker.&lt;br /&gt;
Die Bezeichnungen der Pins entsprechen dem Schaltplan.&lt;br /&gt;
Zu beachten ist, dass die Reihenfolge der Wörter nichts mit der Anordnung auf der Frontplatte zu tun haben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Zuordnung Pins&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Wort || Anschluss&lt;br /&gt;
|-&lt;br /&gt;
| ES || OUT0&lt;br /&gt;
|-&lt;br /&gt;
| IST || OUT0&lt;br /&gt;
|-&lt;br /&gt;
| FÜNF || OUT1&lt;br /&gt;
|-&lt;br /&gt;
| ZEHN || OUT2&lt;br /&gt;
|-&lt;br /&gt;
| VOR || OUT3&lt;br /&gt;
|-&lt;br /&gt;
| DREI || OUT4&lt;br /&gt;
|-&lt;br /&gt;
| VIERTEL || OUT5&lt;br /&gt;
|-&lt;br /&gt;
| NACH || OUT6&lt;br /&gt;
|-&lt;br /&gt;
| VOR || OUT7&lt;br /&gt;
|-&lt;br /&gt;
| HALB || OUT8&lt;br /&gt;
|-&lt;br /&gt;
| S || OUT9&lt;br /&gt;
|-&lt;br /&gt;
| EIN || OUT10&lt;br /&gt;
|-&lt;br /&gt;
| ZWEI || OUT11&lt;br /&gt;
|-&lt;br /&gt;
| DREI || OUT12&lt;br /&gt;
|-&lt;br /&gt;
| VIER || OUT13&lt;br /&gt;
|-&lt;br /&gt;
| FÜNF || OUT14&lt;br /&gt;
|-&lt;br /&gt;
| SECHS || OUT15&lt;br /&gt;
|-&lt;br /&gt;
| SIEBEN || OUT16&lt;br /&gt;
|-&lt;br /&gt;
| ACHT || OUT17&lt;br /&gt;
|-&lt;br /&gt;
| NEUN || OUT18&lt;br /&gt;
|-&lt;br /&gt;
| ZEHN || OUT19&lt;br /&gt;
|-&lt;br /&gt;
| ELF || OUT20&lt;br /&gt;
|-&lt;br /&gt;
| ZWÖLF || OUT21&lt;br /&gt;
|-&lt;br /&gt;
| UHR || OUT22&lt;br /&gt;
|-&lt;br /&gt;
| min1 || OUTL1&lt;br /&gt;
|-&lt;br /&gt;
| min2 || OUTL2&lt;br /&gt;
|-&lt;br /&gt;
| min3 || OUTL3&lt;br /&gt;
|-&lt;br /&gt;
| min3 || OUTL4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Beschaltungsvarianten der LEDs===&lt;br /&gt;
&lt;br /&gt;
Da die Schaltung genügend Power hat, um eine Unmenge an RGB-LEDs zu treiben, gibt es folgende 3 Möglichkeiten, die auch mixbar sind:&lt;br /&gt;
&lt;br /&gt;
1. Pro Wort für jeden Buchstaben eine RGB-LED (mit gemeinsamer Anode) in&lt;br /&gt;
Parallelschaltung (natürlich mit geeignetem Vorwiderstand pro LED)&lt;br /&gt;
&lt;br /&gt;
Prinzip (am Beispiel des Wortes &amp;quot;VIER&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
         /---|&amp;gt;|----| R1R |---- PWMR&lt;br /&gt;
      +--|---|&amp;gt;|----| R1G |---- PWMG     &amp;quot;V&amp;quot;&lt;br /&gt;
      |  \---|&amp;gt;|----| R1B |---- PWMB&lt;br /&gt;
      |&lt;br /&gt;
      |  /---|&amp;gt;|----| R2R |---- PWMR&lt;br /&gt;
      +--|---|&amp;gt;|----| R2G |---- PWMG     &amp;quot;I&amp;quot;&lt;br /&gt;
      |  \---|&amp;gt;|----| R2B |---- PWMB&lt;br /&gt;
 OUTx-+&lt;br /&gt;
      |  /---|&amp;gt;|----| R3R |---- PWMR&lt;br /&gt;
      +--|---|&amp;gt;|----| R3G |---- PWMG     &amp;quot;E&amp;quot;&lt;br /&gt;
      |  \---|&amp;gt;|----| R3B |---- PWMB&lt;br /&gt;
      |&lt;br /&gt;
      |  /---|&amp;gt;|----| R4R |---- PWMR&lt;br /&gt;
      +--|---|&amp;gt;|----| R4G |---- PWMG     &amp;quot;R&amp;quot;&lt;br /&gt;
         \---|&amp;gt;|----| R4B |---- PWMB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Pro Wort für jeden Buchstaben eine RGB-LED in Reihenschaltung (mit&lt;br /&gt;
nur 1 Vorwiderstand für die ganze Reihe, bzw. 3 wegen RGB). Das geht&lt;br /&gt;
aber nur, wenn die RGB-LEDs unabhängige Anoden und Kathoden haben (ja,&lt;br /&gt;
die gibt es).&lt;br /&gt;
&lt;br /&gt;
Prinzip:&lt;br /&gt;
                         &amp;quot;V&amp;quot;    &amp;quot;I&amp;quot;    &amp;quot;E&amp;quot;    &amp;quot;R&amp;quot;&lt;br /&gt;
         /----| R1R |----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|---- PWMR&lt;br /&gt;
 OUTx --+-----| R1G |----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|---- PWMG&lt;br /&gt;
         \----| R1B |----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|---- PWMB&lt;br /&gt;
&lt;br /&gt;
Theoretisch könnte man solche Streifen als Platine herstellen, welche man dann immer auf die gewünschte Länge kürzt, als 1, 2, 3 ... 7 Buchstaben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Pro Wort nur eine LED. Für längere Wörter (ab 3 bis 4 Buchstaben) kann man natürlich auch 2 LEDs parallel oder in Reihe schalten, siehe 1. und 2.&lt;br /&gt;
&lt;br /&gt;
Prinzip:&lt;br /&gt;
          &amp;quot;V I E R&amp;quot;&lt;br /&gt;
         /---|&amp;gt;|----| R1R |---- PWMR&lt;br /&gt;
 OUTx +-+----|&amp;gt;|----| R1G |---- PWMG&lt;br /&gt;
         \---|&amp;gt;|----| R1B |---- PWMB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei Verwendung von einfarbigen LEDs vereinfachen sich die Prinzip-Schaltungen wie folgt:&lt;br /&gt;
&lt;br /&gt;
1. Parallelschaltung, eine LED pro Buchstabe im Wort:&lt;br /&gt;
&lt;br /&gt;
       /----|&amp;gt;|----| R1 |---- PWMR     &amp;quot;V&amp;quot;&lt;br /&gt;
      +-----|&amp;gt;|----| R2 |---- PWMR     &amp;quot;I&amp;quot;&lt;br /&gt;
 OUTx-+&lt;br /&gt;
      +-----|&amp;gt;|----| R3 |---- PWMR     &amp;quot;E&amp;quot;&lt;br /&gt;
       \----|&amp;gt;|----| R4 |---- PWMR     &amp;quot;R&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Reihenschaltung, eine LED pro Buchstabe im Wort:&lt;br /&gt;
&lt;br /&gt;
                       &amp;quot;V&amp;quot;    &amp;quot;I&amp;quot;    &amp;quot;E&amp;quot;    &amp;quot;R&amp;quot;&lt;br /&gt;
 OUTx ----| R1 |----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|----|&amp;gt;|---- PWMR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Pro (kurzem) Wort nur eine LED:&lt;br /&gt;
&lt;br /&gt;
          &amp;quot;V I E R&amp;quot;&lt;br /&gt;
 OUTx +------|&amp;gt;|----| R1 |---- PWMR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Berechnen der Vorwiderstände kann z.B. dieser Rechner&lt;br /&gt;
verwendet werden: &#039;&#039;&#039;[http://www.elektronik-kompendium.de/sites/bau/1109111.htm Vorwiderstands-Rechner]&#039;&#039;&#039; oder &#039;&#039;&#039;[http://www.modding-faq.de/index.php?artid=506 Vorwiderstands-Rechner mit Unterstützung für Reihenschaltung]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verwendet man SMD-LEDs mit einem Abstrahlwinkel von 120°, kann man mit einer LED bei einem Abstand von ca. 3,5 cm immer zwei Buchstaben ausleuchten. Wenn man jedes Buchstabenpaar mit einer SMD-LED beleuchtet, dann benötigt man jeweils:&lt;br /&gt;
&lt;br /&gt;
* 1 LED für 1er und 2er-Wort&lt;br /&gt;
* 2 LEDs für 3er und 4er Wort&lt;br /&gt;
* 3 LEDs für 5er und 6er Wort und&lt;br /&gt;
* 4 LEDs für 7er Wort &lt;br /&gt;
&lt;br /&gt;
Das macht dann, inkl. der 4 Minutenpunkte, insgesamt 55 LEDs.&lt;br /&gt;
&lt;br /&gt;
Bedingung ist aber ein Diffusor direkt hinter den Buchstaben, damit die LEDs selbst nicht sichtbar sind.&lt;br /&gt;
&lt;br /&gt;
== Sammelbestellung der Platine ==&lt;br /&gt;
Stand Januar 2010:&lt;br /&gt;
&lt;br /&gt;
Es gab Ende 2009 eine Vorabbestellung in kleinerer Auflage (lediglich 20 Platinen), damit die Entwickler schon mal testen und entwickeln konnten. Leider fiel durch die geringe Stückzahl der Preis entsprechend hoch aus. Die Prototypen-Serie ist mittlerweile vergriffen.&lt;br /&gt;
&lt;br /&gt;
Die neue Sammelbestellung der endgültigen WordClock-Platinen ging am 15.01.2010 raus. Es wurden 200 Platinen bestellt. Die Komplettlieferung ist am Donnerstag, dem 28.01.2010, eingetroffen. Der größte Teil der Platinen wurden am Samstag, den 30.01.2010, an die jeweiligen Leute weiterversandt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aktueller Zählerstand der Interessenten am 19.01.2010: 200 Platinen. Es sind sind also keine mehr verfügbar. Diejenigen Platinen, die durch Absagen wieder frei wurden, wurden mittlerweile für nachrückende Interessenten auf der Warteliste reserviert.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selbstverständlich weisen diese Platinen-Version auch nicht mehr den Kurzschluss auf, den die Prototypen-Platine hatte. Die Platine ist wesentlich schmaler als der Prototyp. Maße: 146mm x 35,6mm.&lt;br /&gt;
&lt;br /&gt;
Da die 200 Platinen der Sammelbestellung sehr schnell vergeben waren, wird über eine weitere Sammelbestellung nachgedacht.&lt;br /&gt;
&lt;br /&gt;
== Frontplatte ==&lt;br /&gt;
=== Konzept ===&lt;br /&gt;
&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/156661#1481337 Brauche Hilfe beim Bau einer Uhr]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bei interesse an einer Frontplatte kann man mir (Benutzer [http://www.mikrocontroller.net/user/show/ukw ukw]) eine Nachricht hinterlassen,&lt;br /&gt;
siehe auch [http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_Frontplatte Sammelbestellung Frontplatte].&lt;br /&gt;
&lt;br /&gt;
2 Versionen sind vorgesehen, jeweils in 45cm x 45cm&lt;br /&gt;
&lt;br /&gt;
* Deutsch mit Bezeichnung &amp;quot;viertel vor&amp;quot; und &amp;quot;drei Viertel&amp;quot; - per Software einstellbar&lt;br /&gt;
* Englisch&lt;br /&gt;
&lt;br /&gt;
Die Minutenanzeige (1 - 4 Minuten) werden jeweils mit einem Punkt an der Ecke der Frontplatte dargestellt.&lt;br /&gt;
&lt;br /&gt;
==== Deutsch ====&lt;br /&gt;
&lt;br /&gt;
 E S K I S T A F Ü N F    &amp;lt;nowiki&amp;gt;==&amp;gt; ES IST FÜNF&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Z W A N Z I G Z E H N    &amp;lt;nowiki&amp;gt;==&amp;gt; ZWANZIG ZEHN&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 D R E I V I E R T E L    &amp;lt;nowiki&amp;gt;==&amp;gt; DREI|VIERTEL&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 R H N A C H V O R T G    &amp;lt;nowiki&amp;gt;==&amp;gt; NACH VOR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 K H A L B R Z W Ö L F    &amp;lt;nowiki&amp;gt;==&amp;gt; HALB ZWÖLF&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Z W E I N S I E B E N    &amp;lt;nowiki&amp;gt;==&amp;gt; ZW|EI|N|S|IEBEN&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 F Ü N F Z E H N E L F    &amp;lt;nowiki&amp;gt;==&amp;gt; FÜNF ZEHN ELF&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 V I E R K N E U N J M    &amp;lt;nowiki&amp;gt;==&amp;gt; VIER NEUN&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 W A C H T D R E I R S    &amp;lt;nowiki&amp;gt;==&amp;gt; ACHT DREI&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 B S E C H S F M U H R    &amp;lt;nowiki&amp;gt;==&amp;gt; SECHS UHR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folgende Schreibweisen werden unterstützt:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wessi-Modus:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  es ist ein uhr&lt;br /&gt;
  es ist fünf nach eins&lt;br /&gt;
  es ist zehn nach eins&lt;br /&gt;
  es ist viertel nach eins&lt;br /&gt;
  es ist zehn vor halb zwei&lt;br /&gt;
  es ist fünf vor halb zwei&lt;br /&gt;
  es ist halb zwei&lt;br /&gt;
  es ist fünf nach halb zwei&lt;br /&gt;
  es ist zehn nach halb zwei&lt;br /&gt;
  es ist viertel vor zwei&lt;br /&gt;
  es ist zehn vor zwei&lt;br /&gt;
  es ist fünf vor zwei&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rhein-Ruhr-Modus:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  es ist ein uhr&lt;br /&gt;
  es ist fünf nach eins&lt;br /&gt;
  es ist zehn nach eins&lt;br /&gt;
  es ist viertel nach eins&lt;br /&gt;
  es ist zwanzig nach eins&lt;br /&gt;
  es ist fünf vor halb zwei&lt;br /&gt;
  es ist halb zwei&lt;br /&gt;
  es ist fünf nach halb zwei&lt;br /&gt;
  es ist zwanzig vor zwei&lt;br /&gt;
  es ist viertel vor zwei&lt;br /&gt;
  es ist zehn vor zwei&lt;br /&gt;
  es ist fünf vor zwei&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ossi-Modus:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  es ist ein uhr&lt;br /&gt;
  es ist fünf nach eins&lt;br /&gt;
  es ist zehn nach eins&lt;br /&gt;
  es ist viertel zwei&lt;br /&gt;
  es ist zehn vor halb zwei&lt;br /&gt;
  es ist fünf vor halb zwei&lt;br /&gt;
  es ist halb zwei&lt;br /&gt;
  es ist fünf nach halb zwei&lt;br /&gt;
  es ist zehn nach halb zwei&lt;br /&gt;
  es ist dreiviertel zwei&lt;br /&gt;
  es ist zehn vor zwei&lt;br /&gt;
  es ist fünf vor zwei&lt;br /&gt;
&lt;br /&gt;
Hier der aktuelle Entwurf der Buchstaben-Anordnung als Bild: &#039;&#039;&#039;[[Media:WordclockFront_gerV2.pdf‎]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Englisch ====&lt;br /&gt;
&lt;br /&gt;
 I T K I S G H A L F E   &amp;lt;nowiki&amp;gt;==&amp;gt;  it_is half&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 T E N Y Q U A R T E R   &amp;lt;nowiki&amp;gt;==&amp;gt;  ten quarter&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 D T W E N T Y F I V E   &amp;lt;nowiki&amp;gt;==&amp;gt;  twenty|five&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 T O P A S T E F O U R   &amp;lt;nowiki&amp;gt;==&amp;gt;  to past four&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 F I V E T W O N I N E   &amp;lt;nowiki&amp;gt;==&amp;gt;  five two nine&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 T H R E E T W E L V E   &amp;lt;nowiki&amp;gt;==&amp;gt;  three twelve&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 B E L E V E N O N E S   &amp;lt;nowiki&amp;gt;==&amp;gt;  eleven one&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 S E V E N W E I G H T   &amp;lt;nowiki&amp;gt;==&amp;gt;  seven eight&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 I T E N S I X T I E S   &amp;lt;nowiki&amp;gt;==&amp;gt;  ten six&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 T I N E O I C L O C K   &amp;lt;nowiki&amp;gt;==&amp;gt;  o_clock&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und als Bild: &#039;&#039;&#039;[[Media:WordclockFront_eng.pdf]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Sammelbestellung Frontplatte ===&lt;br /&gt;
&lt;br /&gt;
Seit 20. Januar liegt ein Angebot einer Digitaldruck-Firma vor, welche eine Plexi-Scheibe (3mm) in 45cm x 45cm anbietet. Dabei wird die Scheibe von hinten zunächst mit einer 4-fach-Schicht schwarzer Farbe bedruckt. Lediglich die Buchstaben und Minutenpunkte bleiben frei. Anschließend kommen noch 2 Schichten weiße Farbe komplett deckend über die schwarze Farbe, sodass diese Schichten als Diffusor wirken.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock-blau-hinter-weiss.jpg‎|miniatur|Wordclock blaue RGB-LEDs hinter weissem Diffusor.jpg‎]]&lt;br /&gt;
[[Datei:Wordclock-rot-hinter-weiss.jpg‎|miniatur|Wordclock rote RGB-LEDs hinter weissem Diffusor]]&lt;br /&gt;
&lt;br /&gt;
Das Angebot beträgt &#039;&#039;&#039;32 Euro inkl. MwSt.&#039;&#039;&#039; pro Platte bei Abnahme von 100 Stück.&lt;br /&gt;
&lt;br /&gt;
Folgende Varianten sind vorgesehen:&lt;br /&gt;
&lt;br /&gt;
  - A: 45cm x 45cm mit weißer Schicht als Diffusor&lt;br /&gt;
  - B: 45cm x 45cm mit transparenten Buchstaben (ohne weiße Schicht)&lt;br /&gt;
  - C: 30cm x 30cm mit weißer Schicht als Diffusor&lt;br /&gt;
  - D: 30cm x 30cm mit transparenten Buchstaben (ohne weiße Schicht)&lt;br /&gt;
&lt;br /&gt;
Um herauszufinden, wieviele Leute tatsächlich an einer Sammelbestellung interessiert sind, kann man mir (Benutzer [http://www.mikrocontroller.net/user/show/ukw ukw]) eine Nachricht hinterlassen. Bitte die Stückzahl und die Variante nennen!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stand 08.02.2010: A: 75   B: 9   C: 5   D: 2, insgesamt also: 91&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ich werde versuchen, die Anzahl möglichst jeden Tag zu aktualisieren.&lt;br /&gt;
&lt;br /&gt;
Sobald die 100 erreicht sind, wende ich mich nochmal an die Firma, um auch Angebote über die Varianten einzuholen. Anschließend wird dann die Sammelbestellung anlaufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung: Die beiden Bilder rechts zeigen das auf 25cm x 25cm verkleinerte Muster mit Diffusor (Variante A) - jedoch ohne Minutenpunkte, welche für die endgültige Version natürlich vorgesehen sind.&#039;&#039;&#039; Dass einige Nachbar-Buchstaben schwach mitleuchten, liegt an meinem (schlechten) Prototyp-Aufbau: die Nachbarzellen wurden nur unzureichend optisch abgeschirmt, da ich einfach 2 U-Profile, die gerade in der Nähe lagen, als optische Begrenzer unter die Platte gelegt habe.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Sammelbestellung Frontplatte Edelstahl ===&lt;br /&gt;
&lt;br /&gt;
Alternativ zur Plexiglasvariante wurde im Forum über eine Edelstahlfrontblende diskutiert. Es liegt ein Angebot für folgende Ausführung vor:&lt;br /&gt;
&lt;br /&gt;
  - Abmaße: ca. 450x450x1 mm &lt;br /&gt;
  - gelasert gem. dxf Vorgabe, &lt;br /&gt;
  - Material 1.4301-2G, &lt;br /&gt;
  - eins. K320 geschliffen/gebürstet+foliert, &lt;br /&gt;
  - ohne weitere Nachbearbeitung, &lt;br /&gt;
&lt;br /&gt;
Verwendet wird hierbei die Schriftart Laser Sans Serif. Die Schriftart hat Stege, so dass freie Inselteile (z.B. Innenteil O) nicht lose sind.&lt;br /&gt;
Die Buchstaben werden entsprechend ausgelasert und müssen von hinten noch mit einem Diffusor versehen werden. Der Diffusor ist nicht Bestandteil des Angebots.&lt;br /&gt;
&lt;br /&gt;
Preise (Stand 25.01.2010).&lt;br /&gt;
&lt;br /&gt;
  10 Stück   31,00 €&lt;br /&gt;
  54 Stück   25,60 €&lt;br /&gt;
  108 Stück  24,90 €&lt;br /&gt;
&lt;br /&gt;
Jeweils zzgl. MwSt, Verpackung und Versand.&lt;br /&gt;
&lt;br /&gt;
Eine Anfrage nach einem Musterexemplar mit Version V2.1 läuft zur Zeit. Sollte ich das bekommen, werde ich Fotos einstellen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stand 08.02.2010: 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bei Interesse an einer Blende bitte eine Nachricht hinterlassen (Benutzer [http://www.mikrocontroller.net/user/show/andreasp andreasp]).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Sammelbestellung LEDs &amp;amp; Streifenplatinen ===&lt;br /&gt;
==== Streifenplatinen ====&lt;br /&gt;
Wie im Forum angekündigt, läuft im Moment eine Vorabanfrage bezüglich einer Sammelbestellung für die SMD RGB LEDs sowie der passenden Streifenleiterplatten.&lt;br /&gt;
Die Platine hat ein Maß von 314 x 12 mm&lt;br /&gt;
&lt;br /&gt;
Die Streifenplatine wird so ausschauen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:LED_Streifen_V6_1.png|750px|Streifenplatine für SMD RGB LEDs Version 6]]&lt;br /&gt;
&lt;br /&gt;
Ausschnitt vergrößert dargestellt:&lt;br /&gt;
&lt;br /&gt;
[[Datei:LED_Streifen_V6_1_schnitt.png|Aussschnitt]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Technische Daten der SMD RGB PLCC-6 LEDs ====&lt;br /&gt;
Spezifikation&lt;br /&gt;
* Source Material: InGaN&lt;br /&gt;
* Emitting Colour: SMD SMT 5050 RGB&lt;br /&gt;
* LENS Type: Water clear&lt;br /&gt;
* Reverse Voltage: 5.0 V&lt;br /&gt;
* Viewing Angle: 140 degree&lt;br /&gt;
* Lead Soldering Temp: 260°C for 5 seconds&lt;br /&gt;
&lt;br /&gt;
Absolute Maximum Rating (Ta = 250C)&lt;br /&gt;
&lt;br /&gt;
:{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | PARAMETER !! style=&amp;quot;background:#efefef;&amp;quot; | Symbol !! style=&amp;quot;background:#efefef;&amp;quot; | RED !! style=&amp;quot;background:#efefef;&amp;quot; | GREEN !! style=&amp;quot;background:#efefef;&amp;quot; | BLUE !! style=&amp;quot;background:#efefef;&amp;quot; | UNITS&lt;br /&gt;
|-&lt;br /&gt;
| Power Dissipation || PO || align=&amp;quot;right&amp;quot; | 80 || align=&amp;quot;right&amp;quot; | 95 || align=&amp;quot;right&amp;quot; | 85 || mW&lt;br /&gt;
|-&lt;br /&gt;
| DC Current || IF || align=&amp;quot;right&amp;quot; | 20 || align=&amp;quot;right&amp;quot; | 20 || align=&amp;quot;right&amp;quot; | 20 || mA&lt;br /&gt;
|-&lt;br /&gt;
| Peak Forward Current || IFP || align=&amp;quot;right&amp;quot; | 100 || align=&amp;quot;right&amp;quot; | 100 || align=&amp;quot;right&amp;quot; | 100 || mA&lt;br /&gt;
|-&lt;br /&gt;
| Reverse Voltage || VR || align=&amp;quot;right&amp;quot; | 5 || align=&amp;quot;right&amp;quot; | 5 || align=&amp;quot;right&amp;quot; | 5 || V&lt;br /&gt;
|-&lt;br /&gt;
| Operating Temperature || Topr || colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | -25 to +85 || °C&lt;br /&gt;
|-&lt;br /&gt;
| Storage Temperature || Tstg ||  colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | -40 to +85 || °C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Electro-optical Characteristics (Ta = 250C)&lt;br /&gt;
&lt;br /&gt;
:{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot; | PARAMETER !! style=&amp;quot;background:#efefef;&amp;quot; | SYMBOL !! style=&amp;quot;background:#efefef;&amp;quot; | CONDITIONS !! style=&amp;quot;background:#efefef;&amp;quot; | MIN. !! style=&amp;quot;background:#efefef;&amp;quot; | TYP. !! style=&amp;quot;background:#efefef;&amp;quot; | MAX. !! style=&amp;quot;background:#efefef;&amp;quot; | UNIT&lt;br /&gt;
|-&lt;br /&gt;
| Forward Voltage (B) || VF || IF = 20mA || align=&amp;quot;right&amp;quot; | 3.4 || align=&amp;quot;right&amp;quot; | 3.6 || align=&amp;quot;right&amp;quot; | 3.8 || V&lt;br /&gt;
|-&lt;br /&gt;
| Forward Voltage (G) || VF || IF = 20mA || align=&amp;quot;right&amp;quot; | 3.4 || align=&amp;quot;right&amp;quot; | 3.6 || align=&amp;quot;right&amp;quot; | 3.8 || V&lt;br /&gt;
|-&lt;br /&gt;
| Forward Voltage (R) || VF || IF = 20mA || align=&amp;quot;right&amp;quot; | 1.9 || align=&amp;quot;right&amp;quot; | 2.1 || align=&amp;quot;right&amp;quot; | 2.5 || V&lt;br /&gt;
|-&lt;br /&gt;
| Dominant Wavelength (B) || lD || IF = 20mA || align=&amp;quot;right&amp;quot; | 465 || align=&amp;quot;right&amp;quot; | 470 || align=&amp;quot;right&amp;quot; | 175 || nm&lt;br /&gt;
|-&lt;br /&gt;
| Dominant Wavelength (G) || lD || IF = 20mA || align=&amp;quot;right&amp;quot; | 515 || align=&amp;quot;right&amp;quot; | 520 || align=&amp;quot;right&amp;quot; | 525 || nm&lt;br /&gt;
|-&lt;br /&gt;
| Dominant Wavelength (R) || lD || IF = 20mA || align=&amp;quot;right&amp;quot; | 625 || align=&amp;quot;right&amp;quot; | 630 || align=&amp;quot;right&amp;quot; | 635 || nm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Datei:plcc6_smd_RGB.JPG]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Sammelbestellung ====&lt;br /&gt;
&lt;br /&gt;
Folgende Angebote stehen zur Verfügung:&lt;br /&gt;
* Paket 1: SMD RGB LEDs im 100er Päckchen für 24,00 Eur&lt;br /&gt;
* Paket 2: Streifenplatinen im 10er Pack für 5,90 Eur&lt;br /&gt;
* Paket 3: Komplettpaket besteht aus Paket1 + Paket2 + Hühnerfutter für 31,08 Eur&lt;br /&gt;
&lt;br /&gt;
Da für die WordClock nur 96 LEDs benötigt werden, sind in den oben genannten Paketen &amp;quot;nur&amp;quot; 100 LEDs enthalten!&lt;br /&gt;
&lt;br /&gt;
Wer zusätzlich LEDs benötigt, kann diese bei mir zum Stückpreis von 0,24 Eur erhalten. Hierzu bitte einfach eine PN ([http://www.mikrocontroller.net/user/show/wawibu wawibu]) an mich.&lt;br /&gt;
&lt;br /&gt;
Falls jemand nur LEDs haben möchte, so kann ich diese auch entsprechend - so lange der Vorrat reicht - anbieten. &lt;br /&gt;
&lt;br /&gt;
Beitrag im Marktplatz: http://www.mikrocontroller.net/topic/166284&lt;br /&gt;
&lt;br /&gt;
Das Paket 1 versende ich im Luftpolsterumschlag für 1,80 Eur. &lt;br /&gt;
Paket 2 und 3 versende ich im Karton für 5,20 Eur.&lt;br /&gt;
&lt;br /&gt;
Die Versandkosten fallen natürlich nur einmal an. Bei einer Kombination der Pakete fällen die höheren Versandkosten an.&lt;br /&gt;
&lt;br /&gt;
Beispiele für die Versandkosten:&lt;br /&gt;
* 1x Paket 1 = 1,80 Eur&lt;br /&gt;
* 5x Paket 1 = 1,80 Eur&lt;br /&gt;
* 1x Paket 2 = 5,20 Eur&lt;br /&gt;
* 1x Paket 1 und 1x Paket 2 = 5,20 Eur&lt;br /&gt;
* 3x Paket 2 und 2x Paket 3 = 5,20 Eur&lt;br /&gt;
&lt;br /&gt;
Wer interesse hat, schreibt mir bitte eine PN ([http://www.mikrocontroller.net/user/show/wawibu wawibu]).&lt;br /&gt;
&lt;br /&gt;
Forumsbeitrag: http://www.mikrocontroller.net/topic/156661#1561973&lt;br /&gt;
&lt;br /&gt;
Stand (03.02.2010):&lt;br /&gt;
* Paket 1:  18x&lt;br /&gt;
* Paket 2:  27x&lt;br /&gt;
* Paket 3: 114x&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Die emails an die Vorbesteller wurde heute (29.01.2010) versendet. Die Frist zur &#039;&#039;&#039;verbindlichen Zusage&#039;&#039;&#039; läuft am &#039;&#039;&#039;12.Februar 2010&#039;&#039;&#039; aus. Alle die sich bis dahin gemeldet haben, sind bei der Bestellung dabei.&lt;br /&gt;
&lt;br /&gt;
Link zur Mail:&lt;br /&gt;
http://www.mikrocontroller.net/topic/156661#1575610&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
== Module ==&lt;br /&gt;
&lt;br /&gt;
=== DCF77 ===&lt;br /&gt;
&lt;br /&gt;
Zur Programmierung siehe den Artikel [[DCF77-Funkwecker_mit_AVR]]. Im Abschnitt &#039;&#039;Programmierung&#039;&#039; ist das Funksignal dokumentiert, zusammen mit einem Beispiel (Bitstrom und Bedeutung).&lt;br /&gt;
&lt;br /&gt;
Codebeispiel siehe &#039;&#039;&#039;[[http://www.mikrocontroller.net/topic/25071 DCF_77]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Torsten Giese ([http://www.mikrocontroller.net/user/show/wawibu wawibu])&lt;br /&gt;
&lt;br /&gt;
=== Automatische Helligkeitsregelung ===&lt;br /&gt;
&lt;br /&gt;
Die Helligkeit des Displays wird über einen LDR gesteuert.&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Rene H. ([http://www.mikrocontroller.net/user/show/promeus promeus])&lt;br /&gt;
&lt;br /&gt;
=== RTC ===&lt;br /&gt;
&lt;br /&gt;
Vorgesehen ist die Verwendung eines batteriegepufferten DS1307 - über I2C angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Frank M. ([http://www.mikrocontroller.net/user/show/ukw ukw])&lt;br /&gt;
&lt;br /&gt;
=== IR ===&lt;br /&gt;
&lt;br /&gt;
Es werden folgende Infrarot-Protokolle verstanden:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Protokoll || Hersteller&lt;br /&gt;
|-&lt;br /&gt;
| SIRCS || Sony&lt;br /&gt;
|-&lt;br /&gt;
| NEC || NEC, Yamaha, Canon, Tevion, Harman/Kardon, Hitachi, JVC, Pioneer, Toshiba, Xoro, Orion, NoName und viele weitere japanische Hersteller.&lt;br /&gt;
|-&lt;br /&gt;
| SAMSUNG || Samsung&lt;br /&gt;
|-&lt;br /&gt;
| MATSUSHITA || Matsushita&lt;br /&gt;
|-&lt;br /&gt;
| KASEIKYO || Panasonic, Denon und andere japanische Hersteller, welche Mitglied der &amp;quot;Japan&#039;s Association for Electric Home Application&amp;quot; sind.&lt;br /&gt;
|-&lt;br /&gt;
| RECS80 || Philips, Nokia, Thomson, Nordmende, Telefunken, Saba&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Über die automatische Erkennung des Protokolls werden die nötigen Tastatur-Befehl-Bits aus den Infrarot-Daten extrahiert - ohne Kenntnis, welche Tasten da eigentlich tatsächlich gedrückt wurden. So eine Tabelle würde den Speicher des µCs sprengen. Deshalb passiert die Zuordnung der Tasten zu WordClock-Befehlen in einer kleinen Anlern-Prozedur, die einmal nach dem ersten Boot-Vorgang ausgeführt werden muss.&lt;br /&gt;
&lt;br /&gt;
Mittlerweile gibt es einen eigenen Artikel zum Infrarot-Fernbedienungs-Decoder, siehe [http://www.mikrocontroller.net/articles/IRMP IRMP]&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Frank M. ([http://www.mikrocontroller.net/user/show/ukw ukw])&lt;br /&gt;
&lt;br /&gt;
=== PWM ===&lt;br /&gt;
&lt;br /&gt;
Die PWM steuert die 3 RGB-Kanäle. Damit ist freie Farbenwahl möglich.&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Frank M. ([http://www.mikrocontroller.net/user/show/ukw ukw])&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
Das Display wird nicht als 10x11-Matrix angesteuert, sondern wortweise. Dies war nötig, weil hier RGB-LEDs zum Einsatz kommen, um beliebige Farben anzuzeigen. Daraus ergibt sich dann für die Wörter eine 24x3-Matrix. Ebenso können die Minutenpunkte farbig angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Die Farben sind kein Muss - in der Minimalbeschaltung können auch einfarbige LEDs zum Einsatz kommen.&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Vlad Tepesch ([http://www.mikrocontroller.net/user/show/vlad_tepesch vlad_tepesch])&lt;br /&gt;
&lt;br /&gt;
=== Benutzer-Interaktion ===&lt;br /&gt;
&lt;br /&gt;
Mit der Fernbedienung wird folgendes möglich sein:&lt;br /&gt;
&lt;br /&gt;
 * Einmaliges Anlernen der Fernbedienung&lt;br /&gt;
 * Anpassen der automatischen Helligkeitssteuerung&lt;br /&gt;
 * Einstellen des Farbprogramms (Übergänge etc)&lt;br /&gt;
 * Stellen der Uhr (wenn kein DCF77-Modul angeschlossen)&lt;br /&gt;
 * ...&lt;br /&gt;
&lt;br /&gt;
Software-Entwickler: Vlad Tepesch ([http://www.mikrocontroller.net/user/show/vlad_tepesch vlad_tepesch])&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Hier eine &#039;&#039;&#039;Vorabversion&#039;&#039;&#039; des Quellcodes zum Projekt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Media:Wordclock-08-src.zip]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bitte 00README.txt lesen!&lt;br /&gt;
&lt;br /&gt;
= Abstimmungen =&lt;br /&gt;
Eine Stimme ist ein Strich. Nach 5 Strichen bitte ein Leerzeichen einfügen.&amp;lt;br&amp;gt;&lt;br /&gt;
DCF: ||||| ||||| ||||| ||||| ||||| ||||| ||||| &amp;lt;br&amp;gt;&lt;br /&gt;
ethernet ntp client: ||||| |&amp;lt;br&amp;gt;&lt;br /&gt;
IR für Fernbedienung: ||||| ||||| |||&amp;lt;br&amp;gt;&lt;br /&gt;
Bewegungsmelder: ||||| |||&amp;lt;br&amp;gt;&lt;br /&gt;
Bluetooth: |&amp;lt;br&amp;gt;&lt;br /&gt;
IR zum PC für Kommunikation/Bootloader |&amp;lt;br&amp;gt;&lt;br /&gt;
RFM12 für Kommunikation/Bootloader |&amp;lt;br&amp;gt;&lt;br /&gt;
NTP Server (um eine genaue Zeit ins Netzwerk zu verteilen) |&amp;lt;br&amp;gt;&lt;br /&gt;
usw: |&amp;lt;br&amp;gt;&lt;br /&gt;
Ambilight: ||||| ||||| |&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Word Clock als PC-Programm =&lt;br /&gt;
[http://bralug.de/wiki/Wort_Uhr Hier] ist der [http://bralug.de/wiki/Wort_Uhr Quelltext] zu einer X11-Version der Word Clock zu finden.&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_-_Die_genaue_Sekunde_/_RTC&amp;diff=42650</id>
		<title>AVR - Die genaue Sekunde / RTC</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_-_Die_genaue_Sekunde_/_RTC&amp;diff=42650"/>
		<updated>2010-01-28T13:31:03Z</updated>

		<summary type="html">&lt;p&gt;Boregard: /* Durchlaufender Hardwarezähler und fortlaufende Addition */  -&amp;gt; formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Oftmals sieht man Projekte, bei denen ein externer RTC-Baustein (engl. &#039;&#039;&#039;R&#039;&#039;&#039;eal &#039;&#039;&#039;T&#039;&#039;&#039;ime &#039;&#039;&#039;C&#039;&#039;&#039;lock, Echtzeituhr; z.B. PCF8583 mit [[I2C]]-Anschluss [http://www-us.semiconductors.philips.com/acrobat/datasheets/PCF8583_5.pdf Datenblatt (PDF)]) angeschlossen ist, ohne dessen Vorteil wirklich zu nutzen.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten Vorteile einer externen RTC sind &lt;br /&gt;
# Die Zeitzählung läuft während eines Ausfalls der Hauptstromversorgung über eine kleine Stützbatterie bei geringem Strombedarf weiter.&lt;br /&gt;
# Es gibt hochgenaue RTCs, die man im Gegensatz zu Selbstbaulösungen nicht abgleichen muss.&lt;br /&gt;
# Der Strombedarf eines externen RTC ist in der Regel etwas niedriger als die RTC Funktion eines Prozessors. Als Vergleich diene ein DS1302(300nA@2V) zu einem Mega32(5uA@2.7V) als nicht ganz neuer Vertreter, bzw. ein Mega324P(500nA@1.8V) als moderner Vertreter. Dieser Vorteil kommt bei Datenschreibern (engl. data logger) zum Tragen, welche die meiste Zeit inaktiv im [[Sleep Mode]] sind.&lt;br /&gt;
&lt;br /&gt;
In allen anderen Fällen ist die zusätzliche Hardware nicht unbedingt nötig und man kann eine präzise Zeitbasis bequem mit dem Hauptquarz des Mikrokontrollers programmieren. Daraus ergeben sich sogar noch zusätzliche Vorteile, wie eine geringere Temperaturabhängigkeit und höhere Güte, die Quarze im MHz-Bereich gegenüber Quarzen im kHz-Bereich besitzen. Ich möchte hiermit die Angst vor dem bisschen Mathematik nehmen, welche zur Berechnung der Teilerfaktoren benötigt wird.&lt;br /&gt;
&lt;br /&gt;
==Lösung==&lt;br /&gt;
&lt;br /&gt;
Speziell für den AVR kommen Quarze im Bereich 1MHz bis 16MHz zum Einsatz, d.h. in einer Sekunde werden 1.000.000 bis 16.000.000 Zyklen durchlaufen (Zyklen pro Sekunde = Frequenz). Möchte man eine Sekunde messen, kann man somit die entsprechende Anzahl Zyklen von Null an hochzählen oder von dem entsprechenden Wert bis auf 0 runterzählen. Für das Zählen bietet sich im µC der Compare-Modus eines Timers an.&lt;br /&gt;
&lt;br /&gt;
Die obigen Zahlen lassen sich jedoch nicht in einer 16 Bit Variablen ausdrücken da sie zu gross sind und somit ist ein direktes Setzen des Compare-Wertes des Timers T1 im AVR nicht möglich. Deshalb unterteilt man die Quarzfrequenz in zwei Faktoren; der erste (Softwareteiler) bestimmt die Periode des Timers T1 und der zweite den Reloadwert eines Registers, welches im Timerinterrupt runtergezählt wird.&lt;br /&gt;
&lt;br /&gt;
==Beispiel== &lt;br /&gt;
&lt;br /&gt;
Im Beispiel AVR wird ein 11,0592-MHz-Quarz verwendet, was einem üblichen [[Baudratenquarz]] entspricht, d.h. damit können die UART-Standardbaudraten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
Der Softwareteiler wird mit 256 gewählt, d.h. 256 Timerinterrupts pro Sekunde, und kann somit mit nur einem einzigen Byte realisiert werden. Für größere Werte muß der Softwareteiler als int (2 Byte) deklariert werden. Bei kleineren Werten als 256 muss man beachten, dass der zweite Faktor immer noch in 2 Byte passt, um als Comparewert für den 16-Bit-Timer 1 verwendet werden zu können. &lt;br /&gt;
&lt;br /&gt;
Die Timerroutine wird in einer Sekunde Softwareteiler-Mal aufgerufen. Mit diesen 256 Hz ergibt sich eine Timerinterruptzeit von ca. 4ms, die auch sehr gut zum Entprellen von Tasten benutzt werden kann. Eine Entprellroutine kann also bequem in den Timerinterrupt mit eingefügt werden. Beachten muss man nur noch, dass das Nullsetzen des Timers erst einen Zyklus nach dem Comparematch erfolgt. D.h. der Comparewert ist der gewünschte Teilerfaktor minus eins.&lt;br /&gt;
&lt;br /&gt;
==Berechnung==&lt;br /&gt;
&lt;br /&gt;
Die Berechnung des Comparewertes ist sehr einfach: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
Comparewert OCR1A = 11059200 / 256 - 1 = 43199, Rest 0. &lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da haben wir ja noch mal Glück gehabt, es gibt keinen Rest bei der Division und die Sekunde ist exakt&lt;br /&gt;
256 * 43200 = 11059200 Zyklen lang.&amp;lt;br&amp;gt;&lt;br /&gt;
Theoretisch.&amp;lt;br&amp;gt;&lt;br /&gt;
Denn selbst wenn auf dem Quarz eine Frequenz von 11,0592 Mhz aufgedruckt ist, so schwingt er doch auf&lt;br /&gt;
einer etwas anderen Frequenz. Der Grund dafür sind Fertigungstoleranzen und natürlich die Tatsache, &lt;br /&gt;
dass die Frequenz eines Quarzes auch von der Temperatur abhängig ist. Es gilt also zunächst einmal&lt;br /&gt;
herauszufinden, auf welcher Frequenz der Quarz wirklich schwingt.&lt;br /&gt;
&lt;br /&gt;
Dazu wird eine Uhr programmiert und mit dem theoretischen Wert laufen gelassen. Nun habe ich die Uhr&lt;br /&gt;
einen Tag laufen lassen und festgestellt, dass sie 1,5 s nach geht (Dazu kann man beispielsweise die Tagesschau nutzen, welche jeden Tag um 20:00 (+einer konstanten Zeitverschiebung durch das Übertragungsmedium SAT,DVB-T, ...) beginnt und sogar eine Uhr dabei einblendet). D.h. die Quarzfrequenz beträgt in&lt;br /&gt;
Wirklichkeit: &lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
11059200 * (1 - 1,5 / 24 / 60 / 60) = 11059008 Hz. &lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Ausführliche Rechnung:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
(Zyklen in 24h - Zyklen Verspätung) / Sekunden pro 24h = korrekte Frequenz&lt;br /&gt;
((24 * 60 * 60 * 256 * 43200) - (1,5 * 256 * 43200)) / (24 * 60 * 60) = 11059008 Hz.&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also die ganze Rechnung nochmal: &lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
OCR1A = 11059008 / 256 - 1 = 43198, Rest 64. &lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Nun haben wir einen Rest und es würden uns jede Sekunde 64 Zyklen fehlen. Das geht natürlich nicht. &lt;br /&gt;
&lt;br /&gt;
Deshalb wird jedesmal, wenn der Softwareteiler Null ist und die Sekunde weitergezählt wird, ein&lt;br /&gt;
anderer Comparewert geladen. Dieser ist dann um den Rest größer. Und beim nächsten Timerinterrupt&lt;br /&gt;
wird dann wieder der Comparewert geladen, der das Ergebnis der Division war. &lt;br /&gt;
&lt;br /&gt;
Es ergeben sich somit: &lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
255 * (43198 + 1) + 1 * (43198 + 64  + 1) = 11059008 Zyklen&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Exakt so, wie wir es wollten.&lt;br /&gt;
&lt;br /&gt;
==Das Programm== &lt;br /&gt;
&lt;br /&gt;
Nachfolgend nun das C-Programm. Da wir ja alle nicht gerne rechnen, lassen wir das einfach den C-Compiler erledigen. D.h. wir brauchen nur noch per Definition für XTAL den entsprechenden Wert eintragen und der Compiler rechnet alle nötigen Konstanten ganz alleine aus. &lt;br /&gt;
&lt;br /&gt;
So ein Compiler ist auch ziemlich faul, der merkt sofort, wenn die Operanden für eine Berechnung alles Konstanten sind. Und ehe er sich damit abquält, extra Code für diese Berechnungen zu erzeugen, rechnet er es lieber selber aus und fügt das Ergebnis direkt in den Code ein. &lt;br /&gt;
&lt;br /&gt;
Der Assembler kann auch 32-Bit Konstanten-Berechnungen ausführen. Allerdings muß man dann die entsprechenden Präprozessoroperationen benutzen. Man könnte auch eine Divisionsroutine aufrufen, aber dann würde ja echter Code erzeugt. &lt;br /&gt;
&lt;br /&gt;
===Beispiel in C===&lt;br /&gt;
&lt;br /&gt;
Wichtig: Ab Ver.1.4.0 haben sich Namen/Funktionen geändert: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;There are currently two different styles present for naming the vectors. One form uses names starting with SIG_, followed by a relatively verbose but arbitrarily chosen name describing the interrupt vector. This has been the only available style in avr-libc up to version 1.2.x.&lt;br /&gt;
&lt;br /&gt;
Starting with avr-libc version 1.4.0, a second style of interrupt vector names has been added, where a short phrase for the vector description is followed by _vect. The short phrase matches the vector name as described in the datasheet of the respective device (and in Atmel&#039;s XML files), with spaces replaced by an underscore and other non-alphanumeric characters dropped. Using the suffix _vect is intented to improve portability to other C compilers available for the AVR that use a similar naming convention....&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Quelle: http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*          Precise 1 Second Timebase           */&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*              Author: Peter Dannegger                                 */&lt;br /&gt;
/*                      danni@specs.de                                  */&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
// Target: Mega8, 2313&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;signal.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ifndef OCR1A&lt;br /&gt;
#define OCR1A OCR1  // 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef WGM12&lt;br /&gt;
#define WGM12 CTC1  // 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef PINC&lt;br /&gt;
#define KEY_INPUT   PIND    // 2313&lt;br /&gt;
#else&lt;br /&gt;
#define KEY_INPUT   PINC    // Mega8&lt;br /&gt;
#endif&lt;br /&gt;
#define LED_DIR     DDRB&lt;br /&gt;
&lt;br /&gt;
//#define XTAL      11059201L   // nominal value&lt;br /&gt;
#define XTAL        11059008L   // after measuring deviation: 1.5s/d&lt;br /&gt;
&lt;br /&gt;
#define DEBOUNCE    256L        // debounce clock (256Hz = 4msec)&lt;br /&gt;
&lt;br /&gt;
#define uchar unsigned char&lt;br /&gt;
#define uint unsigned int&lt;br /&gt;
&lt;br /&gt;
uchar prescaler;&lt;br /&gt;
uchar volatile second;          // count seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIGNAL (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
{&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*          Insert Key Debouncing Here          */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
#if XTAL % DEBOUNCE                     // bei rest&lt;br /&gt;
  OCR1A = XTAL / DEBOUNCE - 1;      // compare DEBOUNCE - 1 times&lt;br /&gt;
#endif&lt;br /&gt;
  if( --prescaler == 0 ){&lt;br /&gt;
    prescaler = (uchar)DEBOUNCE;&lt;br /&gt;
    second++;               // exact one second over&lt;br /&gt;
#if XTAL % DEBOUNCE         // handle remainder&lt;br /&gt;
    OCR1A = XTAL / DEBOUNCE + XTAL % DEBOUNCE - 1; // compare once per second&lt;br /&gt;
#endif&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  LED_DIR = 0xFF;&lt;br /&gt;
  while( KEY_INPUT &amp;amp; 1 );               // start with key 0 pressed&lt;br /&gt;
&lt;br /&gt;
  TCCR1B = (1&amp;lt;&amp;lt;WGM12) | (1&amp;lt;&amp;lt;CS10);      // divide by 1&lt;br /&gt;
                    // clear on compare&lt;br /&gt;
  OCR1A = XTAL / DEBOUNCE - 1;          // Output Compare Register&lt;br /&gt;
  TCNT1 = 0;                            // Timmer startet mit 0&lt;br /&gt;
  second = 0;&lt;br /&gt;
  prescaler = (uchar)DEBOUNCE;          //software teiler&lt;br /&gt;
&lt;br /&gt;
  TIMSK = 1&amp;lt;&amp;lt;OCIE1A;                    // beim Vergleichswertes Compare Match                    &lt;br /&gt;
                                        // Interrupt (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
  sei();&lt;br /&gt;
&lt;br /&gt;
  for(;;){&lt;br /&gt;
    if( second == 60 )&lt;br /&gt;
      second = 0;&lt;br /&gt;
    PORTB = second;         // display second (binary)&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Beispiel in Assembler===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;avrasm&amp;gt;&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;*          Precise 1 Second Timebase           */&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;*              Author: Peter Dannegger                                 */&lt;br /&gt;
;*                      danni@specs.de                                  */&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
.nolist&lt;br /&gt;
.include &amp;quot;m8def.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
.equ    xtal      = 11059008&lt;br /&gt;
.equ    debounce  = 256&lt;br /&gt;
.equ    remainder = xtal - xtal / debounce * debounce&lt;br /&gt;
&lt;br /&gt;
.def    isreg     = r15&lt;br /&gt;
.def    wr0       = r16&lt;br /&gt;
.def    iwr0      = r17&lt;br /&gt;
.def    prescaler = r18&lt;br /&gt;
.def    second    = r19&lt;br /&gt;
&lt;br /&gt;
.list&lt;br /&gt;
    rjmp    init&lt;br /&gt;
.org    OC1Aaddr&lt;br /&gt;
    rjmp    OC1Aint&lt;br /&gt;
;-------------------------------------------------------------------------&lt;br /&gt;
OC1Aint:&lt;br /&gt;
    in  isreg, sreg&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
;*          Insert Key Debouncing Here          */&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
&lt;br /&gt;
    ldi iwr0, high( xtal / debounce - 1 )&lt;br /&gt;
    out ocr1ah, iwr0&lt;br /&gt;
    ldi iwr0, low( xtal / debounce - 1 )&lt;br /&gt;
    out ocr1al, iwr0&lt;br /&gt;
&lt;br /&gt;
    dec prescaler&lt;br /&gt;
    brne    _oci1&lt;br /&gt;
&lt;br /&gt;
    ldi prescaler, debounce&lt;br /&gt;
    inc second&lt;br /&gt;
&lt;br /&gt;
    ldi iwr0, high( xtal / debounce + remainder - 1 )&lt;br /&gt;
    out ocr1ah, iwr0&lt;br /&gt;
    ldi iwr0, low( xtal / debounce + remainder - 1 )&lt;br /&gt;
    out ocr1al, iwr0&lt;br /&gt;
_oci1:&lt;br /&gt;
    out sreg, isreg&lt;br /&gt;
    reti&lt;br /&gt;
;-------------------------------------------------------------------------&lt;br /&gt;
init:&lt;br /&gt;
    ldi wr0, 0xFF&lt;br /&gt;
    out ddrb, wr0&lt;br /&gt;
    sbic    pinc, 0&lt;br /&gt;
    rjmp    init&lt;br /&gt;
&lt;br /&gt;
    ldi wr0, high( ramend )&lt;br /&gt;
    out sph, wr0&lt;br /&gt;
    ldi wr0, low( ramend )&lt;br /&gt;
    out spl, wr0&lt;br /&gt;
&lt;br /&gt;
    ldi wr0, 1&amp;lt;&amp;lt;WGM12^1&amp;lt;&amp;lt;CS10&lt;br /&gt;
    out TCCR1B, wr0&lt;br /&gt;
&lt;br /&gt;
    ldi wr0, high( xtal / debounce - 1 )&lt;br /&gt;
    out ocr1ah, wr0&lt;br /&gt;
    ldi wr0, low( xtal / debounce - 1 )&lt;br /&gt;
    out ocr1al, wr0&lt;br /&gt;
    out tcnt1l, wr0&lt;br /&gt;
    ldi prescaler, debounce&lt;br /&gt;
&lt;br /&gt;
    ldi wr0, 1&amp;lt;&amp;lt;OCIE1A&lt;br /&gt;
    out TIMSK, wr0&lt;br /&gt;
    sei&lt;br /&gt;
main:&lt;br /&gt;
    ldi second, 0&lt;br /&gt;
_mai1:&lt;br /&gt;
    cpi second, 60&lt;br /&gt;
    breq    main&lt;br /&gt;
    out ddrb, second&lt;br /&gt;
    rjmp    _mai1&lt;br /&gt;
;------------------------------------&lt;br /&gt;
&amp;lt;/avrasm&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verbesserte Version mit durchlaufendem Hardwarezähler===&lt;br /&gt;
&lt;br /&gt;
Hier sind trotzdem kleine Verbesserungsvorschläge.&lt;br /&gt;
&lt;br /&gt;
Wird im Timer die Option &amp;quot;Clear On Compare Match&amp;quot; verwendet, so verliert man den Overflow Interrupt. Oder möchte man nebenher noch eine Zeit mit dem Capture Interrupt messen, so benötigt man einen durchlaufenden Timer. Um dies zu erreichen, wird OCR1A nicht fest eingestellt, sondern bei jedem Aufruf um den gleichen Wert erhöht.&lt;br /&gt;
&lt;br /&gt;
In Peters Code wurde der Rest auf einmal abgearbeitet. Damit erspart man sich bei jedem Interrupt einen Vergleich und die Verarbeitungszeit verkürzt sich in seinem Code. Der Unterschied zwischen kurzem und langem Interrupt ist hier der Rest. Bei den geänderten Codeschnipseln wird der Rest gleichmäßiger abgearbeitet. Der Unterschied zwischen kurzem und langem Interrupt beträgt 1 Takt.&lt;br /&gt;
&lt;br /&gt;
ungetesteter Code für den durchlaufenden Timer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
SIGNAL (SIG_OUTPUT_COMPARE1A) {&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*      Insert Key Debouncing Here      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
  if( --prescaler == 0 ){ &lt;br /&gt;
    prescaler = (uchar) DEBOUNCE;&lt;br /&gt;
    second++;      // exact one second over  &lt;br /&gt;
  }  &lt;br /&gt;
#if XTAL % DEBOUNCE&lt;br /&gt;
  if (prescaler &amp;lt;= XTAL % DEBOUNCE)&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE +1;   /* um 1 Takt längere Periode um den Rest abzutragen */&lt;br /&gt;
  else&lt;br /&gt;
#endif&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE;   /* kurze Periode */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Durchlaufender Hardwarezähler und fortlaufende Addition===&lt;br /&gt;
&lt;br /&gt;
Gänzlich ohne Hin- und Hertogglen eines Bits kommt man aus, wenn irgendein Timer mit einer Überlauf-Interruptfrequenz &amp;gt; 1Hz arbeitet. Dann kann die ISR eine 32-bit-Konstante auf einen 32-bit-Akkumulator addieren; bei Überlauf ist eine Sekunde vergangen. Zugegeben, es gibt &amp;quot;lange&amp;quot; und &amp;quot;kurze&amp;quot; Sekunden, aber der Fehler summiert sich nicht, und der Code ist sehr einfach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier ein Beispiel:&lt;br /&gt;
&lt;br /&gt;
Es gibt ein Programm gettick(), das einen Wert holt. Dieser Wert wird von Zeit zu Zeit von der Hardware (Beispiel AVR: der Timer) oder dem Betriebssystem (Beispiel Linux: gettick ruft getmsec, getmsec ruft gettimeofday)&lt;br /&gt;
&lt;br /&gt;
Dieser aufgerufene Wert sollte pro Sekunde um TICKPERSEC erhöht werden, was aber mit einer gewissen Ungenauigkeit geschieht.&lt;br /&gt;
&lt;br /&gt;
Die Laufzeitkorrektur wird dadurch ausgeführt, dass der von gettick() zurückgegebene Wert mit einem Faktor TFAK multipliziert wird. Der Faktor sollte so gewählt werden, dass:&lt;br /&gt;
&lt;br /&gt;
* Das Ergebnis actual_value immer in 32 Bit hineinpasst.&lt;br /&gt;
* Die Multiplikation durch Schiebeopertionen ersetzt werden kann, weil der Faktor eine 2-er-Potenz ist. (Das erledigt avr-gcc)&lt;br /&gt;
&lt;br /&gt;
Immer wenn tsdaytim_calibrated() erkennt, dass eine Sekunde vergangen, wird last_value um die Zahl onesecond erhöht.&lt;br /&gt;
&lt;br /&gt;
Der Zahlenwert onsecond wird mit TICKPERSEC*TFAK initalisiert und kann angezeigt oder neu eingegeben werden (Die Bedienung der seriellen Schnittstelle hierfür ist in diesem Beispiel nicht enthalten).&lt;br /&gt;
&lt;br /&gt;
Wenn festgestellt wird, dass die Uhr pro Zeit (P) um (E) zu schnell geht, dann kann der Wert onsecond korrigiert werden.&lt;br /&gt;
&lt;br /&gt;
c = d *  (P+E)/P&lt;br /&gt;
Beispiel Pro 7 Tage 120 Sekunden zu viel:&lt;br /&gt;
&lt;br /&gt;
7 Tage = 7*86400= 604800 sekunden&lt;br /&gt;
c = 992000000 * (604800+120)/604800=991803175&lt;br /&gt;
Dann wird die Uhr genauer gehen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
/****************************************************************/&lt;br /&gt;
/* File home/cc/qq/danclock.cpp                                 */&lt;br /&gt;
/*          Precise 1 Second Timebase                           */&lt;br /&gt;
/*                                                              */&lt;br /&gt;
/*      Author: Peter Dannegger / Hjherbert                     */&lt;br /&gt;
/*          danni@specs.de                                      */&lt;br /&gt;
/*                                                              */&lt;br /&gt;
/****************************************************************/&lt;br /&gt;
// Target: atmega8, (2313?)&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;
// #include &amp;lt;avr/signal.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ifndef OCR1A&lt;br /&gt;
#define OCR1A OCR1  // 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef WGM12&lt;br /&gt;
#define WGM12 CTC1  // 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef PINC&lt;br /&gt;
#define KEY_INPUT   PIND    // 2313&lt;br /&gt;
#else&lt;br /&gt;
#define KEY_INPUT   PINC    // Mega8&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
//#define F_CPU     11059201L   // nominal value&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define DIVISOR 256&lt;br /&gt;
&lt;br /&gt;
#define TICKPERSEC  (F_CPU/DIVISOR)&lt;br /&gt;
&lt;br /&gt;
uint8_t volatile second;            // count seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// TFAK ? TICKPERSEC must not exceed 2^32&lt;br /&gt;
#define TM (0x7FFFFFFFUL/2/TICKPERSEC)  // max of TFAK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define TFAK ( (  (TM&amp;gt;&amp;gt;1) | (TM&amp;gt;&amp;gt;2) | (TM&amp;gt;&amp;gt;3)  | (TM&amp;gt;&amp;gt;4)  | (TM&amp;gt;&amp;gt;5)  | (TM&amp;gt;&amp;gt;6)  | (TM&amp;gt;&amp;gt;7) \&lt;br /&gt;
                | (TM&amp;gt;&amp;gt;8) | (TM&amp;gt;&amp;gt;9) | (TM&amp;gt;&amp;gt;10) | (TM&amp;gt;&amp;gt;11)  | (TM&amp;gt;&amp;gt;12)  | (TM&amp;gt;&amp;gt;13)  | (TM&amp;gt;&amp;gt;14)  | (TM&amp;gt;&amp;gt;15) \&lt;br /&gt;
                | (TM&amp;gt;&amp;gt;16) | (TM&amp;gt;&amp;gt;17) | (TM&amp;gt;&amp;gt;18) | (TM&amp;gt;&amp;gt;19)  | (TM&amp;gt;&amp;gt;20)  | (TM&amp;gt;&amp;gt;21)  | (TM&amp;gt;&amp;gt;22)  | (TM&amp;gt;&amp;gt;23) \&lt;br /&gt;
                | (TM&amp;gt;&amp;gt;24) | (TM&amp;gt;&amp;gt;25) | (TM&amp;gt;&amp;gt;26) | (TM&amp;gt;&amp;gt;27)  | (TM&amp;gt;&amp;gt;28)  | (TM&amp;gt;&amp;gt;29)  | (TM&amp;gt;&amp;gt;30)  | (TM&amp;gt;&amp;gt;31) \&lt;br /&gt;
               ) + 1 )&lt;br /&gt;
// TFAK is a power the biggest power of two which is less than TM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
uint32_t onesecond = 1*TICKPERSEC*TFAK ;    // correct this value if see the clock is late / too fast&lt;br /&gt;
uint32_t last_value ;&lt;br /&gt;
uint32_t ticks ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIGNAL (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
{&lt;br /&gt;
    ++ticks ;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
uint32_t gettick( void )&lt;br /&gt;
{&lt;br /&gt;
    uint32_t l ;&lt;br /&gt;
    cli();&lt;br /&gt;
    l = ticks ;&lt;br /&gt;
    sei();&lt;br /&gt;
    return l ;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void tsdaytim_calibrated(void)&lt;br /&gt;
// Keep the time-of-the-day actual&lt;br /&gt;
// Add a second, if a second if gone&lt;br /&gt;
{&lt;br /&gt;
    uint32_t actual_value ;         // gettick() multiplied by factor 2^n&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    actual_value = gettick() * TFAK ;   // because TFAK is a power of two&lt;br /&gt;
                                        // The compiler will create some shift commands&lt;br /&gt;
&lt;br /&gt;
    if ( actual_value - last_value &amp;gt; onesecond )&lt;br /&gt;
    {                           // once per second&lt;br /&gt;
        if ( ++second &amp;gt;= 60 )&lt;br /&gt;
        {&lt;br /&gt;
            second = 0 ;&lt;br /&gt;
        }&lt;br /&gt;
        last_value += onesecond ;   // One second more&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
    DDRB = 0xFF;&lt;br /&gt;
    while( KEY_INPUT &amp;amp; 1 );         // start with key 0 pressed&lt;br /&gt;
&lt;br /&gt;
    TCCR1B = 1&amp;lt;&amp;lt;WGM12^1&amp;lt;&amp;lt;CS10;      // divide by 1&lt;br /&gt;
                                    // clear on compare&lt;br /&gt;
    OCR1A = DIVISOR ;               // Output Compare Register&lt;br /&gt;
    TCNT1 = 0;                      // Timer start value&lt;br /&gt;
    second = 0;&lt;br /&gt;
&lt;br /&gt;
    TIMSK = 1&amp;lt;&amp;lt;OCIE1A;              // beim Vergleichswertes Compare Match&lt;br /&gt;
                                    // Interrupt (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
    sei();&lt;br /&gt;
    last_value = gettick() * TFAK ;&lt;br /&gt;
    for(;;)&lt;br /&gt;
    {&lt;br /&gt;
        tsdaytim_calibrated();&lt;br /&gt;
        PORTB = second;             // display second (binary)&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Echtzeituhr mit Uhrenquarz ==&lt;br /&gt;
&lt;br /&gt;
=== RTC mit wenig Stromverbrauch ===&lt;br /&gt;
&lt;br /&gt;
Das vorgestellte Verfahren ist leider nicht direkt anwendbar, wenn man eine RTC mit einem 32,768 KHz Uhrenquarz realisieren möchte. Dieser Weg ist dann notwendig, wenn der Controller [[Ultra low power | batteriebetrieben]] sehr lange laufen soll und durch Verwendung des [[Sleep Mode]] Strom gespart wird.&lt;br /&gt;
&lt;br /&gt;
=== Begrenzung der Auflösung ===&lt;br /&gt;
&lt;br /&gt;
Wo liegt das Problem? Das obige Verfahren nutzt recht hochfrequente Quarze mit 1 MHz und mehr. Wenn man die Frequenz eines Quarzes von 1 MHz = 1.000.000 Hz mit einer [[Auflösung und Genauigkeit| Auflösung]] von 1 Hz angibt, entspricht das einem maximalen Fehler von 1/1.000.000 oder 1ppm (engl. parts per million, millionstel Teil). Das ist sehr wenig. Eine RTC mit einem Fehler von 1ppm hat eine Gangabweichung von 86,4ms pro Tag, oder 2,5s pro Monat. Das ist ein sehr guter Wert. Wenn ich nun aber die Frequenz 32768 Hz mit 1 Hz Auflösung angebe, ist das schlimmstenfalls ein Fehler von 1/32768 = 30,5ppm, was einer Abweichung von 2,5s pro Tag und 75s pro Monat entspricht!&lt;br /&gt;
&lt;br /&gt;
=== Uhrentakt genau messen und digital korrigieren ===&lt;br /&gt;
&lt;br /&gt;
Wie kann man das Problem lösen? Die AVRs können im [[Sleep Mode]] den Uhrenquarz nur am Timer 2 betreiben, welcher ein 8 Bit Timer ist. D.H. ein Überlauf passiert alle 256 Takte, sprich 7,8125ms (=128 Hz). Man kann auch einen Prescaler verwenden, welcher das Problem aber nicht löst.&lt;br /&gt;
&lt;br /&gt;
Wie bereits festgestellt, müssen wir die Frequenz des 32768Hz Uhrenquarzes genauer messen und darstellen. Wir wollen hier annehmen, dass wir die Frequenz auf 0,001Hz = 1mHz (Millihertz) auflösen, ein guter Frequenzzähler kann das problemlos und ist auch so [[Auflösung und Genauigkeit|&#039;&#039;&#039;genau&#039;&#039;&#039;]]. Wir können beispielsweise feststellen, dass ein Quarz mit 32768,423Hz schwingt, das entspricht einem Fehler von &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F_r=(\frac{f_{ist}}{f_{soll}} -1 )\cdot 10^6=(\frac{32768,423}{32768} -1 )\cdot 10^6=12,9ppm&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei ist zu beachten, daß diese Messung &#039;&#039;&#039;nicht&#039;&#039;&#039; direkt am Quarz erfolgen darf, auch nicht mit kapazitätsarmen 10:1 Tastköpfen! Denn so ein Quarz wird von kleinsten Kapazitäten im Bereich von weniger als ein pF messbar verstimmt. Darum muss man in so einem Fall den Uhrentakt auf ein anderes IO-Pin ausgeben und dort messen. Beim [[MSP430]] ist das einfach, man kann ACLK auf ein Pin direkt ausgeben. Der [[AVR]] kann das leider nicht. Hier muss man zu einem Trick greifen. Man benutzt die Output Compare Funktion, um mit Timer 2 einen 128 Hz Takt zu erzeugen. Dieser ist fest mit dem Uhrentakt verbunden und kann anstellte dessen gemessen werden, ohne den Quarz zu verstimmmen. Die Messung ergibt in diesem Fall eine Frequenz von 128,00165 Hz.&lt;br /&gt;
&lt;br /&gt;
OK, jetzt haben wir den Takt gemessen, wir wissen, daß pro Sekunde 128 Timerüberläufe passieren (Prescaler =1). Wir wissen, dass unser Quarz pro Sekunde um 0,423 Takte zu schnell ist. Wir können aber keine halben Takte mehr oder weniger zählen? Doch! Mit [[Festkommaarithmetik]]! Denn nach 1000s ist unser Quarz um 423 Takte zu weit gelaufen und muss um diese Anzahl zurückgestellt werden. Also könnte man im ersten Ansatz nach 1000 Sekunden den Timer 2 um diesen Betrag korrigieren. Das Problem dabei ist nur, dass der Zähler nur 8 Bit breit ist. Ein Addieren oder Subtrahieren von 423 würde mehrfache Überläufe verursachen, welche programmtechnisch nur schwer zu handhaben wären. Also muss eine etwas bessere Methode her.&lt;br /&gt;
&lt;br /&gt;
=== Bresenham für RTCs ===&lt;br /&gt;
&lt;br /&gt;
Wenn man sich die Idee der [[Festkommaarithmetik]] mal eine Weile durch den Kopf gehen lässt, kommt man vielleicht auf folgende Idee. Der Frequenzfehler beträgt in unserem Beispiel 0,423 Hz, also Takte pro Sekunde. Oder aber 423 Tausendstel Takte pro Sekunde. Nach drei Sekunden sind es schon 1,269 Takte oder 1269 Tausendstel Takte. Moment! &#039;&#039;&#039;Einen&#039;&#039;&#039; Takt können wir korrigieren, indem wir den Zähler um 1 Takt zurück setzen. Den Restfehler von 269 Tausendstel merken wir uns und akkumulieren weiter. Wenn dann wieder die 1000er Marke überschritten wird machen wir das Gleiche. Analog dazu natürlich auch bei negativem Vorzeichen, sprich wenn der Quarz zu langsam schwingt wird er um einen Takt vorgestellt. É Voilà! Dieses Verfahren ist sehr ähnlich zum [http://de.wikipedia.org/wiki/Bresenham-Algorithmus Bresenham-Algorithmus] zum Zeichnen von Linien auf Computermonitoren.&lt;br /&gt;
&lt;br /&gt;
=== Beispielprogramm ===&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel stellt eine RTC mit sehr niedrigem Stromverbrauch zur Verfügung. Laut Datenblatt beträgt die Stromaufnahme nur ca. 6µA bei 3V Versorgungsspannung, besser als einige kommerzielle RTCs! Möglich macht das die Nutzung des Power Save [[Sleep Mode]]s. Die Frequenz kann auf &amp;lt;math&amp;gt;10^{-5}&amp;lt;/math&amp;gt; Hz genau abgeglichen werden, was in diesem Fall bei einer Messfrequenz von 128Hz einer Auflösung von 0,078ppm entspricht. Das bedeutet eine Abweichung von 6,7ms pro Tag, 0,2s pro Monat oder 2,46s pro Jahr!&lt;br /&gt;
&lt;br /&gt;
Die Abweichung des Quarzes wird in einer vorzeichenbehafteten 16 Bit Variable in der Einheit &amp;lt;math&amp;gt;10^{-3}&amp;lt;/math&amp;gt; Hz gespeichert. D.h. es kann ein Frequenzfehler von +/- 32,768 Hz korrigiert werden, das sind 1000ppm! Normale Quarze haben Abweichungen von max. 100ppm, meist viel weniger. Jede Sekunde wird der Frequenzfehler neu berechnet und in den darauffolgenden 128 Interrupts ggf. mehrfach korrigiert. Wichtig ist dabei, dass die Korrektur wirklich ganz am Anfang der ISR steht, weil hier das Timing wirklich kritisch ist. Denn innerhalb eines Uhrenquarztaktes von ~30us muss der Timer 2 neu beschrieben werden. Bei 1 MHz RC-Oszillatortakt sind das nur 30 Takte, wovon 6 zum Aufwachen und 4 zum Anspringen der ISR benötigt werden. Dazu kommen noch das Sichern einiger Register am Anfang der ISR, was man im C nicht direkt sieht. Sicherheitshalber sollte man auch einen höheren Takt einstellen, z.B. 2 MHz, dann ist das Timing wesentlich entspannter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
************************************************************************&lt;br /&gt;
*&lt;br /&gt;
* Stromsparende Echtzeituhr mit 32768Hz Uhrenquarz&lt;br /&gt;
*&lt;br /&gt;
* ATmega88 mit internem 2 MHz Oszillator + 32,768 kHz Quarz&lt;br /&gt;
*&lt;br /&gt;
* Fuses bleiben auf Standardeistellungen&lt;br /&gt;
* LOW Fuse Byte = 0x62&lt;br /&gt;
* HIGH Fuse Byte = 0xDF&lt;br /&gt;
* EXT Fuse Byte = 0xF9&lt;br /&gt;
*&lt;br /&gt;
* LED mit 1K Vorwiderstand an PB5&lt;br /&gt;
* Kalibriertaktausgang an PB3&lt;br /&gt;
************************************************************************&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#define F_CPU 2000000L          // Systemtakt in Hz&lt;br /&gt;
#define F_CAL 12800000L         // gemessener Kalibriertakt in 10^-5 Hz&lt;br /&gt;
                                // Endung L ist wichtig!&lt;br /&gt;
&lt;br /&gt;
#define LED_TOGGLE PORTB ^= (1&amp;lt;&amp;lt;PB5);&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;avr/eeprom.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// EEPROM Daten&lt;br /&gt;
&lt;br /&gt;
int16_t ee_rtc_cal EEMEM = (F_CAL-12800000)*256/100;        // Kalibrierung für RTC, Frequenzfehler in 1/1000 Hz&lt;br /&gt;
&lt;br /&gt;
// globale Variablen&lt;br /&gt;
&lt;br /&gt;
// beidseitiger Zugriff durch ISR und Hauptprogramm&lt;br /&gt;
&lt;br /&gt;
volatile uint32_t time;             // 24h Zeitstempel, 1s Auflösung&lt;br /&gt;
volatile int16_t rtc_cal;           // Kalibrierung des 32K Quarzes&lt;br /&gt;
volatile uint8_t flag_1s;           // Flag für 1s Intervall&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;
&lt;br /&gt;
int main (void) {&lt;br /&gt;
&lt;br /&gt;
// Clock divider auf /4&lt;br /&gt;
&lt;br /&gt;
    CLKPR = 0x80;       // update  enable&lt;br /&gt;
    CLKPR = 2;          // Prescaler /4&lt;br /&gt;
&lt;br /&gt;
// IO konfigurieren&lt;br /&gt;
&lt;br /&gt;
    DDRB  = (1&amp;lt;&amp;lt;PB3) | (1&amp;lt;&amp;lt;PB5);&lt;br /&gt;
    PORTB = ~((1&amp;lt;&amp;lt;PB3) | (1&amp;lt;&amp;lt;PB5)); // Pull ups &lt;br /&gt;
    PORTC = 0xFF;       &lt;br /&gt;
    PORTD = 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;
    TCCR2A = (1&amp;lt;&amp;lt;COM2A1) | (1&amp;lt;&amp;lt;WGM21) | (1&amp;lt;&amp;lt;WGM20); // Fast PWM, non inverted&lt;br /&gt;
    TCCR2B = 1;                     // Vorteiler 1 -&amp;gt; 7,8ms Überlaufperiode&lt;br /&gt;
    OCR2A  = 128;                   // PWM, Tastverhältnis 50%&lt;br /&gt;
    while((ASSR &amp;amp; (1&amp;lt;&amp;lt; TCR2BUB)));  // Warte auf das Ende des Zugriffs&lt;br /&gt;
    TIFR2  &amp;amp;= ~(1&amp;lt;&amp;lt;TOV2);           // Interrupts löschen&lt;br /&gt;
    TIMSK2 |= (1&amp;lt;&amp;lt;TOIE2);           // Timer overflow Interrupt freischalten&lt;br /&gt;
&lt;br /&gt;
// EEPROM Werte auslesen&lt;br /&gt;
&lt;br /&gt;
    rtc_cal= eeprom_read_word(&amp;amp;ee_rtc_cal);&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;
        while((ASSR &amp;amp; (1&amp;lt;&amp;lt; OCR2AUB)));  // Warte auf das Ende des Zugriffs&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 7,8ms Timerinterupt&lt;br /&gt;
&lt;br /&gt;
        if (flag_1s) {  &lt;br /&gt;
            flag_1s =0;&lt;br /&gt;
            LED_TOGGLE                      // Test&lt;br /&gt;
        }&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;
    static int16_t time_error;          // RTC Fehlerkompensation&lt;br /&gt;
&lt;br /&gt;
    // Zeitkritische Dinge, welche am Anfang der ISR stehen müssen!&lt;br /&gt;
&lt;br /&gt;
    OCR2A=128;                          // Dummy-Write zur Sicherung des Timings&lt;br /&gt;
                                        // von Timer 2 im asynchronen Modus &lt;br /&gt;
&lt;br /&gt;
    // RTC Fehler korrigieren&lt;br /&gt;
&lt;br /&gt;
    if (time_error&amp;gt;999) {               // RTC zu schnell&lt;br /&gt;
        TCNT2 = 2;                      // Zähler einen Schritt zurück setzen (2 Takte Verzögerung!)&lt;br /&gt;
        time_error -= 1000;&lt;br /&gt;
    } else if (time_error&amp;lt;-999) {       // RTC zu langsam&lt;br /&gt;
        TCNT2 = 4;                      // Zähler einen Schritt vor setzen (2 Takte Verzögerung!)&lt;br /&gt;
        time_error += 1000;     &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // ab hier ist es nicht mehr zeitkritisch&lt;br /&gt;
&lt;br /&gt;
    // Echtzeituhr&lt;br /&gt;
    ticks++;                            // 1/128tel Sekunde&lt;br /&gt;
    if (ticks==128) {                   // Sekundenintervall&lt;br /&gt;
        time_error += rtc_cal;          // RTC Fehler akkumulieren&lt;br /&gt;
&lt;br /&gt;
        // 24h Timer&lt;br /&gt;
        time++;&lt;br /&gt;
        if (time==86400) time=0;        // 24h Überlauf&lt;br /&gt;
&lt;br /&gt;
        ticks=0;&lt;br /&gt;
        flag_1s =1;                     // setzte Flag für 1s Verarbeitung in main Endlosschleife&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Weitere Verbesserungen ===&lt;br /&gt;
&lt;br /&gt;
Der Algorithmus ermöglicht eine sehr hochauflösende Kalibrierung der RTC. Allerdings heisst das leider noch lange nicht, daß die RTC dann auch wirklich so genau ist. Denn diese Kalibrierung gilt nur für eine exakte Temperatur! Auch ein Quarz hat eine Temperaturabhängigkeit der Schwingfrequenz. Wenn man nun eine sehr genaue RTC bauen möchte, welche über einen grossen Temperaturbereich genau läuft, muss man periodisch die Temperatur messen und in die Kalibrierung einbeziehen. Einen typischen Temperaturverlauf des Frequenzfehlers zeigt das folgende Bild.&lt;br /&gt;
&lt;br /&gt;
[[bild:rtc_tk.gif|thumb|260px|left|Temperaturgang eines Uhrenquarzes]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weiterhin kann man natürlich die Kalibrierung ohne erneutes Kompilieren des Quelltextets vornehmen, indem man den Kalibrierwert per [[UART]] oder [[I2C]] an den AVR sendet und im [[Speicher#EEPROM | EEPROM]] speichert.&lt;br /&gt;
&lt;br /&gt;
Kernpunkt der Kalibrierung ist natürlich die Messung der realen Quarzfrequenz. Die oben beschriebene Methode per Tagesschau und 1 Tag warten ist sehr zeitaufwändig und hat eine begrenzte Genauigkeit von ca. 1/2 Sekunde, das entspricht 5,8ppm. Hier muss zwangsläufig ein guter Frequenzzähler her. Da dieser nicht jedem Hobbybastler zur Verfügung steht, muss man sich in Lehrwerkstätten, Universitäten oder Firmen im Elektronikbereich umsehen und nachfragen, ob man einen Frequenzzähler vor Ort kurze Zeit nutzen kann.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.maxim-ic.com/appnotes.cfm/an_pk/617 Real-Time-Clock Selection and Optimization, MAXIM Application Note (engl.)]&lt;br /&gt;
*[http://www.mikrocontroller.net/articles/Uhr Implementierung einer Uhr mit Siebensegmentausgabe auf einem AVR ATTiny2313]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR-Projekte]]&lt;br /&gt;
[[Category:Timer und Uhren]]&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Word_Clock&amp;diff=40724</id>
		<title>Word Clock</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Word_Clock&amp;diff=40724"/>
		<updated>2009-11-17T06:17:03Z</updated>

		<summary type="html">&lt;p&gt;Boregard: /* Abstimmungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Was ist das? =&lt;br /&gt;
Es geht hier um folgenden Thread [1], in dem der Bau einer Uhr disktuiert wird. Als Inspiration kann diese [2] dienen. Es wird keine patentrechtlich bedenkliche Kopie :-)&amp;lt;br&amp;gt;&lt;br /&gt;
[1] [http://www.mikrocontroller.net/topic/156661 Beitrag: Brauche Hilfe beim Bau einer Uhr]&amp;lt;br&amp;gt;&lt;br /&gt;
[2] [http://www.qlocktwo.com http://www.qlocktwo.com]&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
== Hardware-Konzepte ==&lt;br /&gt;
=== Frank ===&lt;br /&gt;
* Atmega8/88&lt;br /&gt;
* Schieberegister an SPI&lt;br /&gt;
* high-side-PWM pro Schieberegister,&lt;br /&gt;
* ...&lt;br /&gt;
aktueller Stand:&lt;br /&gt;
http://www.mikrocontroller.net/topic/156661#1484071&lt;br /&gt;
=== Simon ===&lt;br /&gt;
aktueller Stand:&lt;br /&gt;
== Frontplatte ==&lt;br /&gt;
=== Konzept ===&lt;br /&gt;
http://www.mikrocontroller.net/topic/156661#1481337&lt;br /&gt;
&lt;br /&gt;
Bei interesse an einer Frontplatte kann man mir (Benutzer [http://www.mikrocontroller.net/user/show/promeus promeus]) eine Nachricht hinterlassen.&lt;br /&gt;
&lt;br /&gt;
Der erste Prototyp aus Alu wird zu Beginn Dezember 09 erwartet. Sobald Bilder verfügbar sind werden die hier verlinkt. Preis ist noch unbekannt.&lt;br /&gt;
&lt;br /&gt;
2 Standard Versionen werden gemacht, jeweils in 40cm x 40cm&lt;br /&gt;
&lt;br /&gt;
* Englisch&lt;br /&gt;
* Deutsch mit Bezeichnung &amp;quot;viertel vor&amp;quot; und &amp;quot;drei Viertel&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Die Minutenanzeige (1 - 4 Minuten) werden jeweils mit einem Punkt an der Ecke der Frontplatte dargestellt.&lt;br /&gt;
&lt;br /&gt;
Anzahl Interessenten Stand 16.11.2009: 26&lt;br /&gt;
(die einzelnen Versionen werden noch abgeklärt)&lt;br /&gt;
&lt;br /&gt;
==== Deutsch ====&lt;br /&gt;
&lt;br /&gt;
 E S K I S T A F Ü N F    &amp;lt;nowiki&amp;gt;==&amp;gt; ES IST FÜNF&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Z E H N B Y G V O R G    &amp;lt;nowiki&amp;gt;==&amp;gt; ZEHN VOR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 D R E I V I E R T E L    &amp;lt;nowiki&amp;gt;==&amp;gt; DREI VIERTEL&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 N A C H V O R H A L B    &amp;lt;nowiki&amp;gt;==&amp;gt; NACH VOR HALB&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 E I N S X Ä M Z W E I    &amp;lt;nowiki&amp;gt;==&amp;gt; EIN|S ZWEI&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 D R E I A U J V I E R    &amp;lt;nowiki&amp;gt;==&amp;gt; DREI VIER&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 F Ü N F T O S E C H S    &amp;lt;nowiki&amp;gt;==&amp;gt; FÜNF SECHS&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 S I E B E N L A C H T    &amp;lt;nowiki&amp;gt;==&amp;gt; SIEBEN ACHT&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 N E U N Z E H N E L F    &amp;lt;nowiki&amp;gt;==&amp;gt; NEUN ZEHN ELF&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Z W Ö L F U N K U H R    &amp;lt;nowiki&amp;gt;==&amp;gt; ZWÖLF UHR / FUNKUHR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei der &amp;quot;DREI VIERTEL VARIANTE&amp;quot;:&lt;br /&gt;
Z.B. ist &amp;quot;DREI VIERTEL ZEHN&amp;quot; statt es ist &amp;quot;VIERTEL VOR ZEHN&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Materialien ===&lt;br /&gt;
* PMMA seitlich beleuchtet: [http://www.mikrocontroller.net/attachment/62784/PMMA_seitlich_beleuchtet.gif bild]&lt;br /&gt;
* PMMA von hinten grfräst: [http://www.mikrocontroller.net/attachment/62767/PMMA_von_hinten_fraesen.gif bild]&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
== Module ==&lt;br /&gt;
http://www.mikrocontroller.net/topic/156661#1483236&lt;br /&gt;
=== DCF77 ===&lt;br /&gt;
=== ethernet ntp client ===&lt;br /&gt;
=== RTC ===&lt;br /&gt;
=== IR ===&lt;br /&gt;
=== PWM ===&lt;br /&gt;
=== Display ===&lt;br /&gt;
=== main ===&lt;br /&gt;
&lt;br /&gt;
= Abstimmungen =&lt;br /&gt;
Eine Stimme ist ein Strich. Nach 5 Strichen bitte ein Leerzeichen einfügen.&amp;lt;br&amp;gt;&lt;br /&gt;
DCF: ||||| ||||| |||&amp;lt;br&amp;gt;&lt;br /&gt;
ethernet ntp client: || &amp;lt;br&amp;gt;&lt;br /&gt;
IR: ||||| |&amp;lt;br&amp;gt;&lt;br /&gt;
Bewegungsmelder: |||||&amp;lt;br&amp;gt;&lt;br /&gt;
Bluetooth: ||&amp;lt;br&amp;gt;&lt;br /&gt;
usw: ||&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=LCS-1M_-_Ein_einfaches,_preiswertes,_mikrokontrollergesteuertes_Zweikanal-Oszilloskop_zum_Selberbauen&amp;diff=35207</id>
		<title>LCS-1M - Ein einfaches, preiswertes, mikrokontrollergesteuertes Zweikanal-Oszilloskop zum Selberbauen</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=LCS-1M_-_Ein_einfaches,_preiswertes,_mikrokontrollergesteuertes_Zweikanal-Oszilloskop_zum_Selberbauen&amp;diff=35207"/>
		<updated>2009-03-20T06:49:59Z</updated>

		<summary type="html">&lt;p&gt;Boregard: Richtige &amp;quot;bullets&amp;quot; aus &amp;#039;*&amp;#039; gemacht, dadurch wird umgebrochen...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von Wolfgang M. (womai)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
T&#039;schuldigung, der Rest ist derzeit noch auf Englisch (mein Originalbeitrag ist auf Instructables, und auch meine - weitgehend gleichlautende - [[Oszilloskop]]-Webseite ist Englisch). Fuer Fragen und Auskuenfte zum Oszilloskop stehe ich aber gerne auf Deutsch, Englisch und noetigenfalls Franzoesisch zur Verfuegung! (email ist auf meiner Webseite, http://www.pdamusician.com/lcscope)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
This instructable will show you how I developed a simple yet full-featured digital sampling oscilloscope that I hope will enable you to get a successful start in this domain. The main goals in this development were:&lt;br /&gt;
&lt;br /&gt;
Create something that is really usable in practice - i.e. it must have sufficient sample rate to at least cover the audio range (DC up to well over 20 kHz), and a wide input range (from Millivolts up to several Volts). The present design actually is usable up to about 150 kHz (sample rate is 1 MHz = 1 million samples per second). The maximum voltage range is -15 to +20 Volts, but can also go down into the low mV range.&lt;br /&gt;
&lt;br /&gt;
Use only readily available, inexpensive parts which don&#039;t need special skills to assemble - e.g. no tiny surface mount components. The whole scope can be put together with a cheap soldering iron, a small wire cutter and flat-nosed pliers.&lt;br /&gt;
&lt;br /&gt;
Keep down cost as much as possible and design it in a way that all the components are easy to procure and assemble, so any moderately skilled hobbyist can build his/her own (see circuit description later).&lt;br /&gt;
&lt;br /&gt;
Make it easy to use so even a user without much experience with oscilloscope gets a quick start, and make it compact so it doesn&#039;t use much desk space.&lt;br /&gt;
&lt;br /&gt;
Last but not least, make it an open design so anyone can improve upon it. Note that the design may be used without any restrictions for personal, non-commercial use only. Any other use is strictly prohibited without explicit, written permission by the author.&lt;br /&gt;
&lt;br /&gt;
You can get additional information as well as download the original design files (schematic, layout) and scope software from my oscilloscope homepage. From this site you can also obtain the bare printed circuit board and the pre-programmed microcontroller.&lt;br /&gt;
&lt;br /&gt;
In case you wonder what LCS-1M stands for, it&#039;s Low Cost Scope, 1 Megasample/sec.&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
Disclaimer (yes, this is a litigious world :-):&lt;br /&gt;
&lt;br /&gt;
The author of these pages does not assume any responsibility whatsoever regarding the design, construction or use of the described circuit. The author cannot be held responsible for any damage to persons or property connected with the described design. This includes (but is not limited to) damage to your computer, fitness for a specific task, and specified performance. If you decide to build the oscilloscope and use it, you do so at your own risk. Observe safety guidelines when soldering, as well as when using the oscilloscope. Never apply any voltage exceeding 20V to the oscilloscope inputs.&lt;br /&gt;
&lt;br /&gt;
An oscilloscope is an invaluable tool for anyone working in electronics. It allows studying electrical signals that are changing over time. Perfect for troubleshooting, monitoring, or simply observing one&#039;s electronic creations in more detail.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, even with significant reductions in cost in recent years, a usable oscilloscope remains out of reach for many people who could benefit from it - especially young students just starting out, and many hobbyists on a limited budget. A good low-end standalone scope easily comes in at over US$1000, and even PC-based scopes (which connect to a computer for display and control) usually cost US$300 and above.&lt;br /&gt;
&lt;br /&gt;
On the other hand, most &amp;quot;hobby&amp;quot; solutions (sound-card based or purely microcontroller based) lack sufficient performance and usually are not much more than toys without much practical use. Most of the time they are more like &amp;quot;proof of concepts&amp;quot; that lack any decent frontend (to amplify small signals or attenuate signals) and have bandwidths much too low even for audio.&lt;br /&gt;
&lt;br /&gt;
Of course it is often possible to pick up a decent used analog scope on Ebay for a good price, but most such scopes (cathode ray type) are rather bulky and bothersome, especially for someone without the luxury of a spacious electronics lab, and they often are difficult to use without a good dose of prior experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Features:&lt;br /&gt;
&lt;br /&gt;
Here is an overview about the capabilities of my design:&lt;br /&gt;
&lt;br /&gt;
Hardware Performance:&lt;br /&gt;
&lt;br /&gt;
* Two independent input channels&lt;br /&gt;
* Sample rate up to 1 MSample/sec (good enough for signals up to approx. 150 kHz)&lt;br /&gt;
* Analog bandwidth approx. 400 kHz&lt;br /&gt;
* Input impedance &amp;gt; 100 kOhm&lt;br /&gt;
* Sensitivity from 20mV/div to 1V/div (20 vertical divisions).&lt;br /&gt;
* Vertical offset 0 - 20 divisions (except for 0 - 12 divisions in 1V/div range)&lt;br /&gt;
* Record length 256 samples per channel&lt;br /&gt;
* Trigger on CH1 (rising or falling edge, selectable) or autotrigger&lt;br /&gt;
* Connects to PC through serial port (RS-232) or USB&lt;br /&gt;
* Power supply from a generic wall-wart type supply (9 - 15 V DC)&lt;br /&gt;
* Compact and lightweight (about the size of a DVD box)&lt;br /&gt;
&lt;br /&gt;
PC-based Scope Software:&lt;br /&gt;
&lt;br /&gt;
* Runs on Windows 95, 98, 2000, XP, Vista&lt;br /&gt;
* Fully graphical interface.&lt;br /&gt;
* All settings (timebase, vertical resolution, trigger) are controlled from the PC.&lt;br /&gt;
* Screen update rate up to 7 frames/sec (mostly limited by scope hardware; will improve with future versions of the hardware)&lt;br /&gt;
* Real-time Fourier transform (frequency spectrum display)&lt;br /&gt;
* Real-time averaging&lt;br /&gt;
* Waveform measurements using cursors&lt;br /&gt;
* Waveform export to Excel etc. (.CSV file format)&lt;br /&gt;
&lt;br /&gt;
Construction:&lt;br /&gt;
&lt;br /&gt;
* All components easily available and inexpensive. About half of the chips can be obtained as free samples from the manufacturer.&lt;br /&gt;
* Total parts cost approx. US$60 for minimal version (bare board, i.e. no enclosure).&lt;br /&gt;
* Through-hole and DIP packages only - easy to assemble and solder.&lt;br /&gt;
* Can be built up on a breadboard or a protoboard (but I&#039;d recommend the &amp;quot;real&amp;quot; printed circuit board to minimize work and possibility for mistakes).&lt;br /&gt;
* No adjustments or trimmings necessary whatsoever - put it together and use it right away! Thus very beginner-friendly.&lt;br /&gt;
* No separate programmer needed for the microcontroller (Picaxe 28X1) - the cable already used for PC connection is all that is needed. Programming software is freely available as well.&lt;br /&gt;
* Fits in a robust standard enclosure&lt;br /&gt;
* Accepts standard 1:1 probes, BNC cables, or grabber cables.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
A detailed description of the scope hardware (and how to build your own is here):&lt;br /&gt;
&lt;br /&gt;
http://www.pdamusician.com/lcscope/design.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
Scope homepage: http://www.pdamusician.com/lcscope/index.html&lt;br /&gt;
&lt;br /&gt;
Hardware: http://www.pdamusician.com/lcscope/design.html&lt;br /&gt;
&lt;br /&gt;
Schematic: http://www.pdamusician.com/lcscope/design_download.html&lt;br /&gt;
&lt;br /&gt;
Layout: http://www.pdamusician.com/lcscope/design_download.html&lt;br /&gt;
&lt;br /&gt;
Bill of materials: http://www.pdamusician.com/lcscope/design_download.html&lt;br /&gt;
&lt;br /&gt;
Download of firmware and PC software: http://www.pdamusician.com/lcscope/design_download.html&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
Article on Instructables:&lt;br /&gt;
&lt;br /&gt;
http://www.instructables.com/id/LCS_1M_A_Full_Featured_Low_Cost_Hobby_Oscillosc/&lt;/div&gt;</summary>
		<author><name>Boregard</name></author>
	</entry>
</feed>