<?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=49636b65</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=49636b65"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/49636b65"/>
	<updated>2026-04-10T10:56:04Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Schaltplaneditoren&amp;diff=102389</id>
		<title>Schaltplaneditoren</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Schaltplaneditoren&amp;diff=102389"/>
		<updated>2020-09-08T16:50:47Z</updated>

		<summary type="html">&lt;p&gt;49636b65: /* sPlan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Grundüberlegungen zur Auswahl eines Layoutprogrammes ==&lt;br /&gt;
&lt;br /&gt;
Sehr häufig wird die Frage gestellt, welches Platinenlayoutprogramm man sich denn nun am besten kaufen soll. Diese Frage ist leider nicht einfach zu beantworten, weil sie von vielen Umständen abhängt und für jeden individuell beantwortet werden muss.&lt;br /&gt;
&lt;br /&gt;
Daher hier ein paar grundsätzliche Überlegungen, welche in die eigenen Entscheidungen einfließen könnten.&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich ist der Übergang vom Hobbyanwender über den Studenten oder professionellen Kleingewerbetreibenden in Handwerk und Ingenieurbüro bis zum Vollzeitplatinenentwickler in der Industrie, der nur Großprojekte bearbeitet, stufenlos. Letztere haben im Allgemeinen aber schon genaue Vorstellungen über das, was sie benötigen. So sind diese Überlegungen in erster Linie für Hobbyanwender, Studenten und Kleingewerbe betreibende Ingenieurbüros gedacht.&lt;br /&gt;
&lt;br /&gt;
=== Freeware vs. Open Source ===&lt;br /&gt;
&amp;quot;Freeware&amp;quot; im Sinne von nur &amp;quot;kostenlos&amp;quot; kann gerade für Hobbyanwender, Studenten und Kleingewerbetreibende problematisch sein, weil bei den kostenlosen Versionen kommerzieller Programme je nach Lizensierung Probleme bestehen, damit erstellte Projekte zu veröffentlichen. Selbst wenn die Veröffentlichung nichtkommerziell ist und jemand anders greift die Unterlagen auf und verwertet sie kommerziell, kann der ursprüngliche Lizenznehmer wegen der Verletzung von Lizenzbestimmungen zur Rechenschaft gezogen werden. Hier ist also sehr intensiv das Kleingedruckte der Lizensierung zu beachten. Es mag zwar solche Programme geben, die auch eine kostenlose kommerzielle Nutzung erlauben, z.B. [[#DesignSpark_PCB|DesignSpark PCB]], aber auch hier ist dann z.B. eine Registrierung des Users unbedingt erforderlich, und Details aus den Nutzungsbestimmungen sind genau zu prüfen. Gleiches gilt für zwar nicht kostenlose, aber stark verbilligte Studenten- oder Hobbyversionen kommerzieller Programme. Oft beinhalten diese kostenlosen oder stark verbilligten Versionen auch recht lästige Beschränkungen in Bezug auf Schaltplangröße, Platinengröße, Anzahl der Verbindungen/Pads und Layer. Testversionen haben oft eine beschränkte Gültigkeitsdauer über wenige Wochen. Sie sind zum Testen vor einer Kaufentscheidung gedacht. Daher sollte man mit solchen zeitbeschränkten Testversionen außer kleinen Testprojekten auch keine Projekte machen. Läuft die Lizenz aus, und man entscheidet sich, das Programm nicht zu kaufen oder zu mieten, kann man die Daten und somit die investierte Arbeit meist nicht weiter nutzen. Tatsächlich ist es daher oft sinnvoller, sich eine Vollversion eines einfachen Programmes zu kaufen, oder man nimmt &amp;quot;echte&amp;quot; Open Source Software.&lt;br /&gt;
&lt;br /&gt;
Bei diesen echten OpenSource-Programmen unter der [https://de.wikipedia.org/wiki/GNU_General_Public_License GNU-GPL-Lizenz] bestehen keine Probleme in der Verwertung und Veröffentlichung, sogar für kommerzielle Projekte dürfen sie kostenlos verwendet werden. Diese Programme sind wirklich frei im Sinne von &amp;quot;freier Rede&amp;quot; und nicht nur im Sinne von &amp;quot;Freibier&amp;quot;. Leider gibt es davon nur wenige, z.B. &lt;br /&gt;
[[#gEDA-Suite|gEDA]], [[#KiCad|KiCad]] und [[#FreePCB|FreePCB]], sowie als Neuling und noch in der Entwicklung [[#Horizon|Horizon]]. [[#Fritzing|Fritzing]] gehört zwar ebenfalls in diesen Kreis, doch unterscheiden sich die Zielgruppe und demzufolge einige Aspekte der Handhabung extrem von denen gewöhnlicher Layoutprogramme.&lt;br /&gt;
&lt;br /&gt;
Bei nicht quelloffener Software hat der Ersteller der Software den Nutzer der Software in der Hand, was die Zukunft angeht.&lt;br /&gt;
Er kann bei der Weiterentwicklung seiner Software die Lizenzbedingungen ändern und der Anwender muss folgen, will er nicht auf seiner alten Softwareversion festsitzen. Auch der Ersteller von quelloffener Software kann seine zukünftigen Lizenzbedingungen ändern, aber wegen der offenen quellen bzw. der offenen Dateiformate hat der User dann die Chance des Ausweichens, weil solche Projekte dann meistens aufgegriffen werden und aus den alten offenen Quellen weiterentwickelt werden. Daher kann eine Entscheidung für openSource wichtige strategische Vorteile haben. Wenn jemand Software veröffentlichen will, die wirklich &amp;quot;frei&amp;quot; ist, gibt es sonst kaum einen Grund, die Quellen nicht zu veröffentlichen und proprietäre Lizenzen abweichend von den anerkannten Open Source Lizenzen wie  [https://de.wikipedia.org/wiki/GNU_General_Public_License GNU-GPL], [https://de.wikipedia.org/wiki/Creative_Commons Creative Commons], [https://de.wikipedia.org/wiki/BSD-Lizenz BSD-Lizenz], [https://de.wikipedia.org/wiki/MIT-Lizenz MIT-Lizenz] oder auch der [https://de.wikipedia.org/wiki/CERN_Open_Hardware_License CERN-OHW] mit all ihren Unterabspaltungen zu verwenden, oder auch alles gleich [https://de.wikipedia.org/wiki/Gemeinfreiheit gemeinfrei] zu stellen.&lt;br /&gt;
Daher kann eine Entscheidung für openSource wichtige strategische Vorteile haben.&lt;br /&gt;
&lt;br /&gt;
=== Einarbeitung ===&lt;br /&gt;
Grundsätzlich gibt es kein Layoutprogramm, in das man sich nicht einarbeiten müsste. Platinenentwicklung ist eine komplexe Angelegenheit, egal mit welcher Philosophie man sie angeht. Daher kommt man ohne Einarbeitung nie davon. Auf der anderen Seite werden jemandem, der mit einem Leiterplattenprogramm umgehen kann, vermutlich zwei Drittel eines anderen  Layoutprogrammes irgendwie bekannt vorkommen. Der Grund ist der, dass es dabei um Leiterplatten, ihre Eigenschaften und Herstellung geht. Dieses ist aber als Kontext, aus dem sich dann vieles ergibt, bei allen gleich. Unterschiede gibt es darum nur in Details der Handhabung.&lt;br /&gt;
&lt;br /&gt;
=== Handlichkeit ===&lt;br /&gt;
Die Programme sind vielfältig und zu komplex für eine vollkommen intuitive Bedienung, daher ist bei allen eine nicht unerhebliche Einarbeitungszeit erforderlich.&lt;br /&gt;
&lt;br /&gt;
Schaltungen und Boards kann man mit allen dieser Layoutprogramme entwickeln. Es hängt an den speziellen Bedürfnissen und dem speziellen Geschmack des konkreten speziellen Anwenders, womit er am besten umgehen kann. Dies ist vom kulturellen Hintergrund und der individuellen Persönlichkeit des Anwenders abhängig, daher kann hier keine allgemeingültige Empfehlungen abgegeben werden.&lt;br /&gt;
&lt;br /&gt;
Daher sollte man sich einige der Programme ansehen und damit experimentieren. Das ist leider der einzige Weg, um sich selber ein Bild zu machen. Dazu können auch durchaus die &amp;quot;kostenlosen&amp;quot; Versionen kommerzieller Programme verwendet werden. Aber Vorsicht: Erst einmal keine größeren Projekte mit Testversionen. Denn wenn die Erprobungsfrist abgelaufen ist, oder wenn man vor eine andere Beschränkung läuft, und dann das Programm doch nicht kaufen will, kann die darin eingebrachte Arbeit nicht mehr in ein anderes Programm übertragen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reine Schaltplaneditoren ==&lt;br /&gt;
&lt;br /&gt;
Diese haben keinen oder nur einen rudimentären Layouteditor. Somit können damit im wesentlichen nur Schaltpläne erstellt werden. Immerhin bieten viele einen Stücklistenexport an.&lt;br /&gt;
&lt;br /&gt;
=== AACircuit ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AACircuit&#039;&#039;&#039; ist ein Schaltplaneditor mit einer Ausgabe als ASCII-Grafik. Das Programm wurde dafür entwickelt, um mal eben eine Frage oder eine Antwort in &#039;&#039;newsgroups&#039;&#039;, Chats oder Foren zu veranschaulichen, wenn keine Upload-Möglichkeit von Bilddateien da ist. AACircuit gibt es bei http://www.tech-chat.de/ ([http://9r1.org/AACircuit1_28_6.zip Download-Mirror])&lt;br /&gt;
&lt;br /&gt;
Für allgemeine ASCII-Skizzen, wie Flussdiagramme oder UML, eignet sich [http://asciiflow.com ASCIIflow.com] ([http://stable.ascii-flow.appspot.com/ →alte Version]) besser.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  .---o----o------o---o---------------o---o----o------------o 12-15V&lt;br /&gt;
  |   |    |  22µF| + |               |   |    |&lt;br /&gt;
 .-.  |   .-.    ###  |              .-.  |    |    .-------o&lt;br /&gt;
 | |&amp;lt;-&#039;   | |    ---  |              | |  |    |    |   .---o&lt;br /&gt;
 | |5k    | |5k6  |   |              | |  |    |    |   |&lt;br /&gt;
 &#039;-&#039;      &#039;-&#039;     |   o--.           &#039;-&#039;  |   _|_   o  /o&lt;br /&gt;
  |        |     ===  |  |            |   |  |_/_|-   /&lt;br /&gt;
 .-.       |     GND  | ---100n   LED V   -    |     /&lt;br /&gt;
 | |       |          | ---           -   ^    |    o&lt;br /&gt;
 | |6k2    |          |  |            |   |    |    |&lt;br /&gt;
 &#039;-&#039;       |          | GND           &#039;---o----o    &#039;-------o&lt;br /&gt;
  |        |       2|\|7                       |&lt;br /&gt;
  o-----------------|-\ LM741      ___       |/&lt;br /&gt;
  |        |        |  &amp;gt;-------o--|___|--o---|&lt;br /&gt;
  |        o---o----|+/ 6      |   22k   |   |&amp;gt;  BC547&lt;br /&gt;
  |        |   |   3|/|4       |         |     |&lt;br /&gt;
 .-.       |   |     ===       o---.    .-.    |&lt;br /&gt;
 | |       |   o---. GND       |   |    | |5k6 |&lt;br /&gt;
 | |2k7   .-.  |   |   ___    _V_  |    | |    |&lt;br /&gt;
 &#039;-&#039;     KTY10 | + &#039;--|___|--|___|-&#039;    &#039;-&#039;    |&lt;br /&gt;
  |       | | ###      47k   220k        |     |&lt;br /&gt;
  |       &#039;-&#039; ---                        |     |&lt;br /&gt;
  |        |   |                         |     |&lt;br /&gt;
  |        |   |                         |     |&lt;br /&gt;
  &#039;--------o---o-------------------------o-----o------------o GND&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Basic Schematic ===&lt;br /&gt;
&lt;br /&gt;
[[Bild:Base schematic example.png|right|thumb|Screenshot Basic Schematic]]&lt;br /&gt;
&lt;br /&gt;
Basic Schematic (&#039;&#039;&#039;BSch3V&#039;&#039;&#039;) ist ein freier Schaltplaneditor für Windows (98/Me/2000/XP). In der aktuellen Version läuft es auch unter Windows7. Es enthält einen Component Library Editor, einen Parts List Generator und einen Netlist Generator, sowie eine Automatic Numbering Funktion.&lt;br /&gt;
&lt;br /&gt;
Ein ZIP-Archiv mit engl. Programm, Handbuch und Sourcecode gibt es bei http://www.suigyodo.com/online/e/index.htm.&lt;br /&gt;
&lt;br /&gt;
Ebenso ist dort eine Cross-Plattform Version &#039;&#039;&#039;Qt-BSch3V&#039;&#039;&#039; auf der Basis von Qt-Grafiklibraries erhältlich.&lt;br /&gt;
&lt;br /&gt;
Das Programm ermöglicht den Export der Schaltungsdaten im [[KiCad]]-Format.&lt;br /&gt;
&lt;br /&gt;
Das Programm ist bis dato (Mai 2014) gut gepflegt.&lt;br /&gt;
&lt;br /&gt;
=== Caneda===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://caneda.org/ Caneda]&#039;&#039;&#039; ist eine open Source Schaltplaneditor und Platinenlayoutsoftware, die auch die Simulation gut integrieren will (Mit Ngspice als Simulationsprogramm). Autor ist Pablo Daniel Pareja Obregon. Caneda ist für Linux und Windows verfügbar. Bei Debian 9.6 (Stretch) ist Caneda bereits im Repository. Es sieht aber so aus, als wäre z.z. noch kein Platinenlayouttool verfügbar. Darum der Eintrag hier unter Schaltplaneditoren. Die Webseite ist etwas unübersichtlich, aber die Dokumentation ist hier zu finden: http://docs.caneda.org/en/latest/gettingstarted.html.&lt;br /&gt;
Erfahrungsberichte willkommen.&lt;br /&gt;
&lt;br /&gt;
=== Lepton-EDA ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://github.com/lepton-eda Lepton-EDA]&#039;&#039;&#039; ist ein Fork der [https://www.mikrocontroller.net/articles/Schaltplaneditoren#gEDA-Suite gEDA-Suite]. Bisher aber nur mit Schaltplanerstellung, Netzlistenerstellung und Matriallisten (BOM) Erstellung. Lizenz is GPL. Erfahrungsberichte willkommen.&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
&lt;br /&gt;
Etwas bekannter noch als Jfig ist [https://inkscape.org/de &#039;&#039;&#039;Inkscape&#039;&#039;&#039;], ebenfalls ein reines Vektorzeichenprogramm, das vor allem (aber nicht nur) SVG-Dateien erstellt, die mit der Wikipedia eine große Verbreitung gefunden haben. Es ist in fast jeder gängigen Linux Distribution enthalten, eine Windowsversion sowie eine [http://portableapps.com/apps/graphics_pictures/inkscape_portable &#039;&#039;&#039;portable Windowsversion&#039;&#039;&#039;] existiert auch. In der Wikipedia findet sich eine Sammlung von Elektroniksymbolen im [https://commons.wikimedia.org/wiki/Category:SVG_electrical_symbols SVG-Format] und [https://commons.wikimedia.org/wiki/File:Electrical_symbols_library.svg hier]. Als Beispiele damit gezeichneter Schaltpläne sei diese [https://commons.wikimedia.org/wiki/Category:Created_with_electrical_symbols_library] genannt.&lt;br /&gt;
&lt;br /&gt;
=== KISSCAD ===&lt;br /&gt;
&lt;br /&gt;
[http://ludens.cl/Electron/kisscad/kisscad.html Kisscad] ist ein reiner Schaltplaneditor, dafür sind die Schaltpläne druckreif.&lt;br /&gt;
&lt;br /&gt;
Es ist ein portables Windows XP 32bit Programm, läuft aber auch recht gut unter Linux/Wine. Erinnert mit seiner Tastatursteuerung vage an das alte DOS Orcad. Das Zip-File zum Download enthält außer dem Programm und Drumherum eine 12 seitige Bedienungsanleitung in Englisch. Freeware, aber &#039;&#039;&#039;nicht&#039;&#039;&#039; Open Source. Entwickelt von Manfred Mornhinweg aus Chile.&lt;br /&gt;
&lt;br /&gt;
=== QCAD ===&lt;br /&gt;
&lt;br /&gt;
[http://www.ribbonsoft.de/qcad.html QCAD] gibt es in einer lizenzpflichtigen und in einer Open Source Community Version. QCAD ist kein ausschließlicher Schaltungseditor, sondern kann auch für andere 2D Zeichnungen (Konstruktionen etc.) eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
=== sPlan ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sPlan&#039;&#039;&#039; ist ein relativ preiswerter Schaltplaneditor für Windows (95,98,ME,NT,2000,XP,Vista,7,8,10, Versionen ab Oktober 2019 erfordern mindestens Vista oder höher)&lt;br /&gt;
Infos und eine Demoversion von sPlan gibt es u.a. bei http://www.abacom-online.de/html/splan.html&lt;br /&gt;
&lt;br /&gt;
=== TinyCAD ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TinyCAD&#039;&#039;&#039; ist ein weiterer &#039;&#039;Open Source&#039;&#039; Schaltplaneditor für Windows. Mehr Infos gibt es auf der [https://sourceforge.net/projects/tinycad Projektseite]. TinyCAD kann z.&amp;amp;nbsp;B. mit VeeCAD (s.u.) kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
== Schaltplan- und Leiterplattensoftware - für Lochrasterplatinen und Steckbretter ==&lt;br /&gt;
&lt;br /&gt;
Für experimentelle Zwecke wird gerne auf Streifen- oder Lochraster Platinen zurückgegriffen, die als &amp;quot;Layout&amp;quot; lediglich regelmäßig angeordnete Pads als Lötstützpunkte besitzen, zwischen denen Bautele angeordnet werden. Desweiteren existieren Steckbretter, bei denen bedrahtete Bauteile in mit Kontaktfedern besetzte Löcher gesteckt werden können.&lt;br /&gt;
Diese Programme unterstützen den Aufbau und die Dokumentation solcher Experimentieraufbauten mit einem sehr speziellen grafischen Tool, welches die Lochrasterplatine bzw. das Steckbrett darstellt.&lt;br /&gt;
&lt;br /&gt;
Streifen- und Lochraster Platinen können aber grundsätzlich auch mit allen anderen Layoutprogrammen entwickelt bzw. dokumentiert werden, die ein Raster anzeigen können. Exemplarisch sei hier auf die bei KiCad beschriebene Methode verwiesen:&lt;br /&gt;
http://www.mikrocontroller.net/articles/KiCad#Tipps.26Tricks:_Lochraster.2FL.C3.B6tleisten_Platinen_Entwurf_mit_KiCad&lt;br /&gt;
&lt;br /&gt;
=== BlackBoard Circuit Designer ===&lt;br /&gt;
&lt;br /&gt;
[[Bild:BlackBoard.png|right|thumb|Screenshot BlackBoard Circuit Designer]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlackBoard Circuit Designer&#039;&#039;&#039; ist ein freier Schaltplaneditor und ein Layoutprogramm für Loch- und Streifenrasterplatinen, der das Planen der Bauteilplatzierung sowie der beidseitigen Verdrahtung deutlich vereinfacht und sich u.a. auch für die Dokumentation solcher Prototypenaufbauten eignet. Außerdem hat er eine Schnittstelle zur Simulation mit NGSPICE.&lt;br /&gt;
&lt;br /&gt;
Es benötigt eine Java Runtime, wobei die neueren Versionen vom Oracle JDK nicht unterstützt werden.&lt;br /&gt;
&lt;br /&gt;
Die Entwicklung des Programmes wurde eingestellt. &lt;br /&gt;
Der Sourcecode steht unter https://github.com/mpue/blackboard zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
=== DIY Layout Creator ===&lt;br /&gt;
&lt;br /&gt;
Ein Layoutprogramm, welches einen sehr künstlerischen Ansatz verfolgt. Mit ihm können Schaltpläne/Layouts wie in den Aufbauanleitungen von Bausätzen gezeichnet werden. Lochrasterplatinen werden unterstützt. Damit gehört es wie [[#Fritzing|Fritzing]] in die spezielle Kategorie abstraktionsvermeidender Layoutprogramme. Die  Zielgruppe für dieses Programm sind Künstler, Designer und Hobbyisten, spezieller wohl sogar Musiker, aber nicht unbedingt Profielektroniker. Die Software geht speziell auf diese Zielgruppe ein. Dabei wird wie bei Fritzing auf eine niedrige Zugangsschwelle und ein geringes Abstraktionsniveau wert gelegt. Das Programm ist Freeware (GPL v3). Das Programm läuft auf allen Betriebssystemen, auf denen es das Java JDK 8 oder neuer gibt.  Der Autor der Software ist Branislav Stojkovic.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bancika/diy-layout-creator/blob/master/README.md Link auf die DIY Layout Creator Website]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bancika/diy-layout-creator/releases Download]&lt;br /&gt;
&lt;br /&gt;
=== Fritzing ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Fritzing bildschirmfoto.png|miniatur|rechts|Bildschirmfoto Fritzing]]&lt;br /&gt;
&#039;&#039;&#039;Fritzing&#039;&#039;&#039; verwendet die Metapher eines Breadboards (Steckbretts), auf dem die Benutzer virtuell Bauteile einstecken. Fritzings Zielgruppe sind Künstler, Designer und Hobbyisten aber nicht unbedingt Profielektroniker und die Software soll speziell auf die Zielgruppe zugeschnitten werden. Dabei wird auf eine niedrige Zugangsschwelle wert gelegt. Das Programm zählt damit genau wie der [[#DIY_Layout_Creator|DIY Layout Creator]] in die Kategorie spezieller abstraktionsvermeidender Layoutsoftware.&lt;br /&gt;
Versionen für Mac OS X, Linux und Windows (XP/Vista) sind bei http://www.fritzing.org erhältlich.&lt;br /&gt;
Nichtsdestotrotz besitzt das Programm drei Ansichten, von denen die Erste am häufigsten gezeigt wird – das o.a. Breadboard oder auch eine Streifenrasterplatte. Weiter wird aus dem Steckbrett in einer zweiten Ansicht ein Schaltplan erstellt und in einer dritten Ansicht lässt sich sogar eine ätzbare Leiterplatte mittels Autorouting entwerfen. Die Bauteilliste enthält bereits fertige Komponenten der [[Arduino]]-Gemeinschaft und ähnlicher Produkte wie die von Sparkfun, Parallaxe oder Picaxe. Ein paar Standardbauteile wie eine rote LED oder ein 220Ohm-Widerstand sind schnell zu finden. Die Bauteilbibliothek lässt sich erweitern.&lt;br /&gt;
Die Bedienung ist einfach zu erlernen und es gibt zwar Tastaturkürzel für die wichtigsten Funktionen, aber der erste Schaltplan ist schnell allein mit der Maus erstellt. Eine Umschaltung zwischen Platzierung der Bauteile und Routing ist nicht notwendig. Einfaches Klicken und Ziehen erstellt eine Kabelbrücke als Luftlinie. Auf Ebenen muss der Nutzer auch nicht verzichten. So lassen sich Bauteile, Kabel und Beschriftungen ein- und ausblenden. Auch wenn die Version noch nicht die 1.0 erreicht hat, kann Sie bei bei Schaltungen bis ca. 30 Teilen mit professionellen Programmen mithalten was den Zeitaufwand und die Übersichtlichkeit betrifft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lochmaster ===&lt;br /&gt;
&lt;br /&gt;
[http://www.abacom-online.de/html/lochmaster.html Lochmaster] ist ein kommerzielles Programm zur Erstellung von Layouts speziell auf [[Lochrasterplatine]]n. Schaltplan und Layout sind ein und dasselbe.&lt;br /&gt;
&lt;br /&gt;
=== ProtoCAD ===&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/protocad/ ProtoCAD] ist ein Werkzeug, um schnell Schaltpläne zu entwerfen. Es ist für [[Lochrasterplatine]]n entwickelt worden, kann aber auch für andere Methoden genutzt werden. (Java 1.5 kompatibel, Swing GUI, Open Source). Letzte Aktualisierung 2010.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VeeCAD ===&lt;br /&gt;
&lt;br /&gt;
[http://veecad.com/ VeeCAD] Stripboard Layout Editor ist ein Werkzeug, um [[Lochrasterplatine]]n zu entwerfen. VeeCAD ist als kommerzielle Version und als eingeschränkte Freiversion erhältlich.&lt;br /&gt;
&lt;br /&gt;
== gEDA-Suite ==&lt;br /&gt;
&lt;br /&gt;
gEDA ([[gEDA|Artikel]]) ist eine unter anderem aus [[#Gschem|Gschem]] und [[#PCB|PCB]] bestehende Open Source Programmsammlung zur Entwicklung von Schaltplänen und Platinen, die 1998 gegründet wurde.&lt;br /&gt;
&lt;br /&gt;
=== Gschem ===&lt;br /&gt;
&lt;br /&gt;
[[Bild:Gschem.png|right|thumb|Screenshot Gschem]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Gschem&#039;&#039;&#039;&#039;&#039; ist der Schaltplaneditor aus dem Open Source Projekt gEDA. &#039;&#039;gschem&#039;&#039; wird hauptsächlich auf Linux Rechnern entwickelt, läuft aber auch auf anderen Unix-Betriebssystemen und unter Windows. &#039;&#039;gschem&#039;&#039; ist für die Linuxdistributionen RedHat und Debian als Paket verfügbar, für Windows ist nur eine ältere Version erhältlich und für alle anderen ist selber kompilieren angesagt.&lt;br /&gt;
&lt;br /&gt;
Die Bedienung ist nicht sonderlich anfängerfreundlich. Hat man sich aber mal daran gewöhnt, dass jeder Menüpunkt mit 1 oder 2 Tasten erreichbar ist, läßt sich&#039;s mit &#039;&#039;gschem&#039;&#039; prima arbeiten. &lt;br /&gt;
&lt;br /&gt;
In der Symbolbibliothek (die auch online betrachtet werden kann) sind etwas mehr als 1000 Symbole; das Selbsterzeugen von Symbolen ist jedoch problemlos möglich. Insbesondere ist es aufgrund des gut dokumentierten und einfachen Datei-Formates möglich, mit einfachen Perl-Programmen z.&amp;amp;nbsp;B. aus Reports von Xilinx ISE Symbole zu erzeugen und automatisch zu aktualisieren, wenn sich die Pinzuordnung ändert. Das fehlerhafte Eingeben der Pinbelegung von CPLDs und FPGAs von Hand und die Änderung derselben ist damit für &#039;&#039;gschem&#039;&#039; User Geschichte.&lt;br /&gt;
&lt;br /&gt;
Die Schaltpläne lassen sich als png und als Postscript exportieren. &lt;br /&gt;
&lt;br /&gt;
Netzlisten (insgesamt über 20 Formate für PCB, Protel, Eagle, BAE, spice, pads, ... ) lassen sich mit dem Programm &#039;&#039;gnetlist&#039;&#039; generieren. Aus diesem Grund ist man (bis auf die Namen der Footprints) unabhängig von der verwendeten Layout-Software und kann diese auch sehr leicht wechseln.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Gschem&#039;&#039; bildet zusammen mit PCB und anderen Programmen das [[GEDA|gEDA]] Programmpacket.&lt;br /&gt;
&lt;br /&gt;
Ein großer Vorteil der gEDA-Suite sind die Dateiformate, welche alle reiner ASCII-Text sind. Dies macht die Entwicklung von Helper-Tools zur Lösung von speziellen Aufgaben sehr leicht. Außerdem können die Dateien deswegen sehr einfach in Versionsverwaltungssystemen wie CVS verwaltet werden, was insbesondere die Entwickler größerer Projekte zu schätzen wissen.&lt;br /&gt;
&lt;br /&gt;
Nähere Informationen über &#039;&#039;gschem&#039;&#039; (gEDA) gibt es unter [http://www.geda.seul.org http://www.geda.seul.org].&lt;br /&gt;
Hier auf der Mikrocontroller.net Seite finden sich Informationen zu Gschem [[GEDA|unter gEDA]].&lt;br /&gt;
&lt;br /&gt;
=== PCB ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[http://pcb.sourceforge.net/index.html PCB]&#039;&#039;&#039;&#039;&#039; ist ein freies (Open Source) Layoutprogramm inklusive Autorouter. Zum Zeichnen der Schaltpläne kann [[#Gschem|Gschem]] verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;PCB&#039;&#039; wurde ursprünglich für den Atari ST entwickelt und später nach Unix portiert. &#039;&#039;PCB&#039;&#039; läuft meist unter Linux, kann allerdings mit [https://www.cygwin.com Cygwin] auch unter Windows betrieben werden.&lt;br /&gt;
&lt;br /&gt;
Als Ausgabeformate stehen [https://de.wikipedia.org/wiki/Postscript Postscript] und Gerber RS-274-X zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Ein großer Vorteil von &#039;&#039;PCB&#039;&#039; ist, dass alle Funktionen auch über Hotkeys gesteuert werden können, was insbesondere nach längerer Einarbeitungszeit ein großer Gewinn gegenüber manchen Windows-Programmen ist.&lt;br /&gt;
&lt;br /&gt;
Zur Einarbeitung ist es meines Erachtens sehr wichtig, sich das [http://www.geda.seul.org/wiki/geda:gsch2pcb_tutorial Tutorial] durchzulesen. &#039;&#039;PCB&#039;&#039; und &#039;&#039;Gschem&#039;&#039; sind nicht besonders einfach zu benutzen. Gerade am Anfang, wenn man sich versucht damit einzuarbeiten. Aber wenn man einmal mit dem Werkzeug arbeiten kann, wird man es nicht mehr missen wollen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;PCB&#039;&#039; bildet zusammen mit &#039;&#039;Gschem&#039;&#039; und anderen Programmen das [[GEDA|gEDA]] Programmpaket. Hier auf der Mikrocontroller.net Seite finden sich Informationen zu PCB [[GEDA|unter gEDA]].&lt;br /&gt;
&lt;br /&gt;
==== PCB-RND ====&lt;br /&gt;
&lt;br /&gt;
Homepage: http://repo.hu/projects/pcb-rnd/index.html&lt;br /&gt;
PCB-RND ist eine Weiterentwicklung von PCB, das extrem flexibel und kompatibel mit anderen Layout-Tools sein will. Siehe http://repo.hu/projects/pcb-rnd/user/09_appendix/bridges.svg Es werden 10 Skriptsprachen unterstützt.&lt;br /&gt;
&lt;br /&gt;
== Schaltplan- und Leiterplattensoftware - Sonderlösungen ==&lt;br /&gt;
&lt;br /&gt;
Alle Softwarelösungen, die nicht in andere Kategorien passen. Teilweise sehr neu mit unklarem Geschäftsmodell, weshalb es noch keine Erfahrung gibt, teilweise ältere Open Source Projekte.&lt;br /&gt;
&lt;br /&gt;
=== Electric ===&lt;br /&gt;
&lt;br /&gt;
Das [http://www.staticfreesoft.com/index.html Electric(TM)] VLSI Design System ist ein Open Source Electronic Design Automation (EDA) System.&lt;br /&gt;
&lt;br /&gt;
=== FidoCadJ ===&lt;br /&gt;
&lt;br /&gt;
[http://davbucci.chez-alice.fr/index.php?argument=elettronica/fidocadj/fidocadj.inc&amp;amp;language=English FidoCadJ] is a very easy to use editor, with a library of electrical symbols and footprints (through hole and SMD). Albeit its ease of use, it is a very immediate and effective EDA tool for the hobbyst. FidoCadJ stores its drawings in a compact text format. This choice is well suited for the copy and paste in newsgroups and forums. This explains the success of FidoCadJ in Usenet groups and in several portals. FidoCadJ is multi-platform Java program and runs on MacOSX, Linux and Windows. FidoCadJ and its manuals are in english, french and italian. Lizenz: Creative Commons 3.0 BY-NC-ND&lt;br /&gt;
&lt;br /&gt;
=== FreePCB ===&lt;br /&gt;
&lt;br /&gt;
FreePCB ist ein Open Source PCB Editor für Microsoft Windows, der unter der GNU General Public License veröffentlicht wurde. Er wurde entwickelt, um ihn einfach erlernen und nutzen zu können und dennoch für professionelles Arbeiten geeignet. Er besitzt keinen eingebauten Auto-Router, kann jedoch den web-basierten auf www.freerouting.net verwenden.&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/FreePCB Englischer Wikipedia Eintrag.&lt;br /&gt;
* http://www.freepcb.com/ Offizielle Homepage&lt;br /&gt;
* http://www.freepcb.com/freepcb_user_guide.pdf Users Guide&lt;br /&gt;
&lt;br /&gt;
=== EasyEDA ===&lt;br /&gt;
&lt;br /&gt;
[https://easyeda.com/ EasyEDA] ist eine kostenlose, Webbrowser-basierte EDA-Plattform zur Entwicklung von Schaltplänen, PCB-Layouts und Prozess-Simulationen (SPICE), deren Nutzung, &#039;&#039;&#039;aber nicht dessen Sourcecode&#039;&#039;&#039; unter der CC BY-SA 2.5 steht (Quelle: https://easyeda.com/page/privacy). Schaltpläne können direkt im Browser via Internet auf einem Server unter Zuhilfenahme der verfügbaren Bibliotheken erstellt werden. Der Serverdienst wird dabei von einem Leiterplattenhersteller gestellt. Projekte können sowohl als privates, als auch als öffentliches Projekt gespeichert werden. Es können Bibliotheken von Altium, Eagle, KiCad und LTspice importiert werden. Aus einem Schaltplan kann auf dem Server ein PCB-Layout gezeichnet werden, und beim Anbieter des Dienstes bestellt werden. Die Layout-Erstellung wird durch eine Autoroute-Funktion unterstützt. Das Projekt wird dabei in einem JSON Stil gespeichert, es kann aber auch in Gerber exportiert werden. Natürlich setzt die Nutzung des Dienstes einen funktionierenden permanenten Internetzugang voraus.&lt;br /&gt;
&lt;br /&gt;
=== ExpressPCB ===&lt;br /&gt;
&lt;br /&gt;
Die Firma &#039;&#039;&#039;ExpressPCB&#039;&#039;&#039; bietet den kostenlosen Schaltplaneditor &#039;&#039;&#039;&#039;&#039;ExpressSCH&#039;&#039;&#039;&#039;&#039; an. Zusätzlich gibt es das kostenlose Layoutprogramm &#039;&#039;&#039;&#039;&#039;ExpressPCB&#039;&#039;&#039;&#039;&#039; zum Erstellen von zwei- und vierlagigen Leiterplatten. Die beiden Programme sind auf Windows (NT, 2000, XP, Vista) beschränkt. Die Firma bietet auf der [https://www.expresspcb.com ExpressPCB Homepage] außerdem einen kommerziellen Service für die Herstellung von zwei- und vierlagigen Leiterplatten an. Auf der Seite finden sich [https://www.expresspcb.com/tips-for-designing-pcbs/ hier] einige Hinweise zum Entwurf von Leiterplatten.&lt;br /&gt;
&lt;br /&gt;
=== PCBWeb ===&lt;br /&gt;
&lt;br /&gt;
Ein kostenloser Layout- und Schaltplaneditor, dessen Lizensierung unklar ist.(Quelle: http://www.pcbweb.com/faq am 17. Mai 2017). Die Projektdaten werden in einem XML Format lokal vorgehalten, die Bibliotheken liegen auf einer Cloud des Anbieters (Quelle: http://www.pcbweb.com/faq am 17. Mai 2017). Dieser bietet auch eine Möglichkeit an, Platinen aus den Projektdaten zu erstellen. Ein Datenexport ist aber nur in Gerber möglich. Alle verwendeten Bauteile, die auch Arrow im Angebot hat, erscheinen in der Stückliste und können per Knopfdruck dort bestellt werden (Quelle: http://www.pcbweb.com/documentation#bill-of-materials-manager).&lt;br /&gt;
&lt;br /&gt;
[http://www.pcbweb.com/ Webseite zum Download]&lt;br /&gt;
&lt;br /&gt;
=== Razen PCB ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Razenpcb.png|miniatur|rechts|Screenshot Razen PCB]]&lt;br /&gt;
&lt;br /&gt;
[http://razencad.com/ Razen CAD] ist zwar noch in der Beta Phase, aber sieht momentan schon recht vielversprechend aus. &lt;br /&gt;
Es setzt auf Mercurial auf und ermöglicht dadurch kolaboratives arbeiten an einem Layout.&lt;br /&gt;
&lt;br /&gt;
=== ZenitPCB Suite ===&lt;br /&gt;
&lt;br /&gt;
[http://www.zenitpcb.com/eng/IndexEng.html ZenitPCB Suite] is directed to all those people who want to make printed circuit board for hobby, or to student and academics from universities or high schools, who want to create their own pcb with a professional approach and particularly without having to pay for expensive licenses. ZenitPCB Layout (part of the ZenitPCB Suite) is completely freeware for personal or semi-professional use, limited to [http://www.zenitpcb.com/images/MainBoard_01_01.gif 800 pins]. (Windows XP, Vista)&lt;br /&gt;
&lt;br /&gt;
Übersetzung: ZenitPCB richtet sich an all diejenigen, welche fürs Hobby, Schule, Studium etc professionelle PCBs erstellen möchten, ohne viel Geld für Lizenzen ausgeben zu müssen. ZenitPCb ist in der eingeschränkten Version mit 800 Pins für den semi-professionellen und privaten Gebrauch kostenfrei benutzbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schaltplan- und Leiterplattensoftware - meist verwendete Programme ==&lt;br /&gt;
&lt;br /&gt;
Diese zeichnen sich durch eine (relativ) geringe Einarbeitungszeit aus. Eagle ist der wohl bekannteste Vertreter und kostet in einer kommerziell verwendbaren Version gut drei- bis vierstellig. TARGET 3001! ist in Mitteleuropa recht verbreitet und etwas günstiger als Eagle. KiCad ist Open Source und hat seit 2014 Fahrt aufgenommen.&lt;br /&gt;
&lt;br /&gt;
Alle bestehen aus Schaltplaneditor und Layoutprogramm inklusive 3D-Ansicht. Mit keinem der Drei macht der versierte Hobbyist eine schlechte Wahl, kostenlose Versionen gibt es ebenso.&lt;br /&gt;
&lt;br /&gt;
=== Eagle ===&lt;br /&gt;
&lt;br /&gt;
[[Bild:Eagle.png|right|thumb|Screenshot Eagle]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eagle&#039;&#039;&#039; ([[:Kategorie:Eagle|Artikel]]) ([https://cadsoft.io/de/ Homepage]) von CadSoft, inzwischen Autodesk, ist ein komplettes Paket mit Schaltplaneditor, Layoutprogramm und Autorouter. Das hat den Vorteil, dass man einen erstellten Schaltplan gleich zu einer Platine weiterverarbeiten kann.&lt;br /&gt;
&lt;br /&gt;
Mitgeliefert werden umfangreiche Symbol- bzw. Bauteilbibliotheken, von Widerständen in allen Bauformen über Taster bis hin zu [[AVR]]s. Eine Library für viele aktuelle AVRs findet sich im Download-Bereich &lt;br /&gt;
von [http://www.embedit.de www.embedit.de].&lt;br /&gt;
&lt;br /&gt;
Eagle läuft unter Linux, Windows (2000/XP/Vista/7/8/10) und Mac OS X. Ausgabedateien können direkt an die einschlägigen Hersteller geliefert werden.&lt;br /&gt;
&lt;br /&gt;
Eine für nichtkommerzielle Anwendungen kostenlose Version ist von [https://www.cadsoft.io CadSoft] erhältlich. Diese ist auf zweilagige Platinen im halben Euro-Format (80x100mm) sowie Schaltpläne mit nur einer Seite beschränkt.&lt;br /&gt;
&lt;br /&gt;
==== Autorouter ====&lt;br /&gt;
Der eher mäßige Autorouter funktioniert nur in der kommerziellen Version. Man kann aber den kostenlosen Autorouter von [http://www.freerouting.net www.freerouting.net] verwenden, die Eagle-brd Dateien dort importieren und als Eagle-session-script (.scr) wieder in Eagle importieren. Dabei auf die richtige Version des Eagle-ULP achten.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Stereobild-elektronik-3d.jpg|right|thumb|Rot-Grün-Stereo-Bild]]&lt;br /&gt;
==== 3D-Ansicht ====&lt;br /&gt;
Zum Betrachten des fertigen, bestückten Platinenentwurfs in Form eines 3D-Bilds bietet sich das nicht von CadSoft entwickelte Paket [https://sourceforge.net/projects/eagle3d.berlios/files/?source=navbar eagle3D] an. Mit Hilfe eines ULP wird eine Beschreibungsdatei für den Open Source Renderer &#039;&#039;POVray&#039;&#039; erzeugt, welche dann anschließend halbautomatisch generiert werden kann. Auch Bewegungsanimation und Kameraflug sind möglich. Es wird bereits eine große Zahl an Bauteilen unterstützt.&lt;br /&gt;
&lt;br /&gt;
Anwendungshinweise:&lt;br /&gt;
* [[Eagle im Hobbybereich]]&lt;br /&gt;
* [[:Kategorie:Eagle]]&lt;br /&gt;
* [http://gaussmarkov.net/wordpress/category/tools/software/eagle/ Eagle CAD Tutorial] im Blog &#039;&#039;gaussmarkov: diy fx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TARGET 3001! ===&lt;br /&gt;
&lt;br /&gt;
[[Bild:target3001.png|right|thumb|Screenshot TARGET 3001!]]&lt;br /&gt;
&lt;br /&gt;
TARGET 3001! ([https://www.ibfriedrich.com/de/ Homepage]) für Windows (ME/NT4/2000/XP/Vista/Win7/Win8/Win10) bietet folgende Funktionen:&lt;br /&gt;
&lt;br /&gt;
* Schaltplan&lt;br /&gt;
* Bauteilerstellung &lt;br /&gt;
* Schaltungssimulation (PSPICE-Syntax)&lt;br /&gt;
* Platinen-Layout mit Autoplacement&lt;br /&gt;
* Autorouter ([http://konekt.com ELECTRA])&lt;br /&gt;
* Anzeige der Platine in 3D&lt;br /&gt;
* Frontplattenentwurf direkt an oder über der Platine&lt;br /&gt;
&lt;br /&gt;
Die Platinen-Layout-Software ist in deutscher, englischer oder französischer Sprache. Es gibt eine für nicht kommerzielle Anwendungen kostenlose Version: &#039;&#039;&#039;TARGET 3001! discover&#039;&#039;&#039; ist beschränkt auf 250 Pins/Pads, 2 Kupferlagen&lt;br /&gt;
und 30 Signale sind simulierbar, die Fläche ist unbeschränkt (1,2m x 1,2m).&lt;br /&gt;
&lt;br /&gt;
Auf der c&#039;t 11/07 CD ist eine &#039;&#039;&#039;SE Version&#039;&#039;&#039; von TARGET 3001! verfügbar, welche 400 Pins/Pads verarbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;PCB-Pool Edition&#039;&#039;&#039; hat keine Beschränkungen, speichert aber die Layouts in einem von normalen Target Versionen nicht lesbaren Format. Diese Layouts können dann allerdings nur zum selbst Ätzen ausgedruckt werden oder vom PCB-POOL® produziert werden.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [https://server.ibfriedrich.com/wiki/ibfwikide TARGET 3001 Wiki]&lt;br /&gt;
* [https://www.pcb-pool.com/ppde/service_downloads.html TARGET 3001 PCB-Pool-Edition]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;TARGET 3001!&#039;&#039; bietet ein typisches Windows Look-And-Feel. Eine einfache Einführung findet sich &#039;&#039;&#039;[https://server.ibfriedrich.com/wiki/ibfwikide/index.php?title=Kurzeinführung2 hier]&#039;&#039;&#039;. Wer sich schon mit Eagle auskennt, kann auch &#039;&#039;&#039;[https://server.ibfriedrich.com/wiki/ibfwikide/index.php?title=Eagle hier]&#039;&#039;&#039; schauen. Es gibt kostenlosen direkten Service durch den Hersteller telefonisch oder per E-Mail auch für Einsteiger oder Demo-User.&lt;br /&gt;
&lt;br /&gt;
=== KiCad ===&lt;br /&gt;
[[Bild:kicad1.gif|right|thumb|Screenshot KiCad Schaltplan]]&lt;br /&gt;
&lt;br /&gt;
KiCad ([[KiCad|Artikel]]) ([http://kicad-pcb.org Homepage]) ist ein Paket aus Design-, Layout- und Routingprogramm. Damit können Schaltpläne gezeichnet, diese zu Platinen weiterentwickelt werden und das Ganze dann zur Fertigung der Leiterplatten im Gerber Format exportiert werden. Es existieren viele Hilfsprogramme wie z.B. zur Erstellung eigener Schaltplansymbole und von Bauteil Footprints für das Board, Import von Grafik für Logos, Gerberviewer ec.&lt;br /&gt;
Es existieren umfangreiche Bibliotheken für Schaltplansymbole und Footprints, sowie auch teilweise 3-D Modelle der Bauteile.&lt;br /&gt;
&lt;br /&gt;
Neben der mitgelieferten, bereits umfangreichen Bibliothek, die auch hier extern zugänglich ist (https://github.com/KiCad) gibt es auf vielen anderen Seiten weitere Bibliotheken zum Download, die einfach integriert werden können (siehe [[KiCad#Sonstige_Bibliotheken_im_Netz|KiCAD-Artikel]]). Die Erstellung und Vorhaltung von Symbolen, Footprints und 3D-Modellen ist aber mittlerweile wegen des enormen Umfanges seit 2015 ein eigenständiges Projekt, welches auf Gitub gehosted ist. Auf diese Footprintbibliotheken kann direkt aus dem Layoutprogramm zugegriffen werden, auch wenn dringend empfolen wird, eine lokale Arbeits- und Sicherungskopie anzulegen. Auch Symbolbibliotheken und 3D-Modelle können von dort bezogen werden. Selbstredend ist es auch einfach möglich, Symbole und Footprints mit KiCad selber zu erstellen. Für die Erstellung von 3D-Modellen sind andere Programme nötig. Doch auch hier besteht eine Anzahl von openSource Programmen, wie z.B. als primitives Beispiel Wings-3D.&lt;br /&gt;
&lt;br /&gt;
Eine KiCad Mailingliste findet sich unter http://groups.yahoo.com/group/kicad-users/. Die Anmeldung erfolgt erst, nachdem man vom Besitzer freigeschaltet wurde (wie üblich für die meisten Yahoo-Groups). Weitere User Foren sind hier aufgelistet: http://kicad-pcb.org/community/sites/#_forums&lt;br /&gt;
&lt;br /&gt;
Das KiCad Projekt wurde von Jean Pierre Charras gestartet und enthält eine Gruppe recht aktiver Entwickler. Es ist auf [http://de.wikipedia.org/wiki/Launchpad Launchpad] angesiedelt. Auch eine Nutzergruppe des [http://de.wikipedia.org/wiki/CERN CERN] beteiligt sich mit einem [https://code.launchpad.net/~cern-kicad/kicad/kicad-gal-orson branch] an der Weiterentwicklung von KiCad: [http://www.ohwr.org/projects/cern-kicad/wiki/WorkPackages Über die geplante Weiterentwicklung von KiCad (englisch)] und [http://home.web.cern.ch/about/updates/2015/02/kicad-software-gets-cern-treatment warum das CERN KiCad unterstützt (englisch)] . &lt;br /&gt;
&lt;br /&gt;
KiCad basiert auf wxWidgets und ist damit plattformübergreifend. Die Programme sind unter der GPL veröffentlicht und damit echte Open Source. KiCad darf frei benutzt werden und die Nutzer haben volle Rechte an ihren damit erstellten Schaltplänen und Layouts, auch für kommerzielle Nutzung. Im deutschsprachigen Raum existiert noch ein Zeichenprogramm für Elektrotechnik, welches auch kicad heißt, aber ein kommerzielles Projekt ist, und mit dem hier behandelten lediglich den Namen gemeinsam hat.&lt;br /&gt;
&lt;br /&gt;
Für Umsteiger von anderen Programmen sollten sich nach wenigen Stunden bereits die gleichen Ergebnisse erzielen lassen. Zum Erlernen kann man auf die Tutorials unter http://kicad-pcb.org/help/tutorials/ zurückgreifen. Ebenso findet sich hier unter [[KiCad]] eine umfangreiche FAQ (und Bibliothekssammlung). Das KiCad Projekt hat eine umfangreiche Dokumentation unter http://kicad-pcb.org/help/documentation/ in einigen verschiedenen Sprachen.&lt;br /&gt;
&lt;br /&gt;
Der Schaltplaneditor von KiCad verfügt über Möglichkeiten hierarchische Schaltpläne anzulegen. Etwas, das man nicht mehr missen möchte, nachdem man einmal damit gearbeitet hat. Obwohl ursprünglich nicht dafür gedacht, lässt sich dieses System nutzen, um aus vorgefertigten Teilschaltplänen einen Hauptschaltplan modular zusammenzusetzten. Eine Anleitung dazu findet sich hier: [[Media:HierarchischeSchaltplaeneAlsBausteineInKicad_RevC_23Dec2013.pdf]]&lt;br /&gt;
&lt;br /&gt;
Zur Simulation lässt sich ngSpice (http://ngspice.sourceforge.net/download.html) einbinden, so dass auch aus KiCad eine direkte Simulation aus dem Schema heraus möglich wird. Eine Anleitung befindet sich unter http://stffrdhrn.github.io/electronics/2015/04/28/simulating_kicad_schematics_in_spice.html.&lt;br /&gt;
&lt;br /&gt;
[[Bild:kicad2.gif|right|thumb|300px|Screenshot KiCad 3D-Ansicht]]&lt;br /&gt;
KiCad liefert eine schöne 3D-Ansicht des fertigen Layouts einschließlich der bestückten Bauteile, so dass man an dieser Stelle schon einmal einen Überblick bekommt, ob vielleicht nicht doch etwas vergessen wurde. Es gibt zwar nicht für alle Bauformen ein 3D-Modell, allerdings lassen sich diese selbst erstellen. Das 3D-Modell lässt sich exportieren, um es z.B. in mechanischen CAD-Systemen zu verwenden (Passt die Platine hinein? lässt sie sich montieren?).&lt;br /&gt;
[[Bild:DC-50Ohm_Terminierung_Downside.png|right|thumb|Unterseite eines Messadapters]]&lt;br /&gt;
[[Bild:DC-50Ohm_Terminierung_Upside.png|right|thumb|Oberseite eines Messadapters]]&lt;br /&gt;
&lt;br /&gt;
KiCad enthält eine Autoplacement und eine Autorouterfunktion, die aber leider nicht sehr effizient sind. Außerdem sind sie schlecht dokumentiert. Es lassen sich aber Netzlisten zum Export in mehrere verschiedene externe Autorouter erzeugen. Desweiteren lässt sich der bekannte Freeroute Autorouter im Netz direkt verwenden. Desweiteren können Netzlisten zum Export in Spice erzeugt werden.&lt;br /&gt;
Neuere KiCad Versionen enthalten allerdings einen sehr effizienten interaktiven Router. Dieser kann allerdings nur verwendet werden, wenn die Hardware und das Betriebssystem des Rechners aktuelle openGL Versionen unterstützt. Hier ein Video zur Benutzung des interaktiven Routers: https://www.youtube.com/watch?v=CCG4daPvuVI (aktueller: https://www.youtube.com/watch?v=QwxDOHjU2PA). Ebenso existiert ein Tool für &amp;quot;Different Pair matching&amp;quot; um Leiterbahnen gleicher Länge (Laufzeit) zu erzeugen. Siehe dazu dieses Video: https://www.youtube.com/watch?v=chejn7dqpfQ&lt;br /&gt;
&lt;br /&gt;
Eagle 6 Boarddateien können in KiCad eingelesen werden. Ebenso können Eagle &amp;quot;Packages&amp;quot; als Footprintbibliotheken in KiCad eingebunden werden. Auch gEDA Footprints können direkt als KiCad Footprint Bibliothek in PCBnew eingebunden werden. Diese Funktionen sind aber noch als experimentell zu bezeichnen.&lt;br /&gt;
&lt;br /&gt;
Des weiteren existieren eine Reihe von Konvertern, mit denen Daten anderer Platinenlayoutprogramme nach KiCad exportiert werden können. Eine Liste findet sich hier: [[KiCad#Konverter]]&lt;br /&gt;
&lt;br /&gt;
KiCad kann Gerberdaten wahlweise als &amp;quot;Extendet Gerber&amp;quot; oder im aktuellen [[Gerber-Tools#Aktuell:_Gerber_Version_2_.28X2.29|Gerber Version 2]] exportieren, die jeder seriöse Leiterplattenhersteller verarbeiten kann. KiCad ist mittlerweile soweit verbreitet, das viele Leiterplattenhersteller die KiCad-Board Daten auch direkt verarbeiten können, auch wenn das wegen der Fehleranfälligkeit keine empfehlenswerte Vorgehensweise ist.&lt;br /&gt;
&lt;br /&gt;
Das KiCad Packet enthält außerdem einen Gerberdatenviewer, der auch eingelesene Gerberdaten als Layout reimportieren kann. &lt;br /&gt;
Sauberes Gerber vorausgesetzt, kann KiCad damit gut für reverse Engeneering verwendet werden, in Fällen, wo nur noch die Gerberdaten einer Platine vorhansden sind.&lt;br /&gt;
&lt;br /&gt;
Außerdem zählt zum KiCad Packet ein &amp;quot;Leiterplattenrechner&amp;quot; mit dem z.B. Wellenwiderstände, Leiterbahnbreiten und Isolationsabstände bestimmt werden können.&lt;br /&gt;
&lt;br /&gt;
KiCad kann (Version Dezember 2015) Boards mit 32 Kupferlagen und die dazugehörigen Löttstop-, Umriss-, Lötpasten-, Kleber-, Silkscreen- etc. Lagen verarbeiten. Die mögliche Leiterplattengröße liegt über 2x2m. Damit ist eine deutlich größere Fläche als die von Einheitstafeln abgedeckt. Wer Platinen im oder über dem Einheitstafelnformat benötigt, wird Mühe aufwenden müssen, einen Hersteller dafür zu finden.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer Kritikpunkt wäre, dass die offizielle Symbolbibliothek nur amerikanische, aber keine europäischen Schaltplansymbole enthält. Aber eine aktuelle Version einer europäischen Symbolbibliothek findet sich hier in  Mikrocontroller.de unter [[KiCad#Bibliotheken]]&lt;br /&gt;
unter SymbolsSimilarEN60617+oldDIN617-RevE8.lib&lt;br /&gt;
Diese enthält aber nicht nur EN60617 Symbole, sondern auch einige andere Symbole wie Logos für Gefahr, Hochspannung, ESD-Schutz und Dummy Symbole für Platinenumrisse, Fiducials, Messpunkte ec. Eine [https://www.mikrocontroller.net/wikifiles/7/77/Symbols_EN60617_13Mar2013.lib &amp;quot;gereinigte&amp;quot; EN60617 Bibliothek] findet sich am gleichen Ort unter Symbols_EN60617_13Mar2013.lib, zusammen mit einem &lt;br /&gt;
[https://www.mikrocontroller.net/wikifiles/e/e6/Symbols_EN60617_13Mar2013.pdf  PDF-Katalog der enthaltenen Symbole].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Einarbeitung in KiCad ist vergleichbar mit Eagle. Es hängt vermutlich von den individuellen Denkstrukturen ab, welches Programm man handlicher findet. Ein großer Vorteil sind die Dateiformate, welche alle reiner ASCII-Text sind. Dies macht die Entwicklung von externen Skripten zur Lösung von speziellen Aufgaben sehr leicht. Außerdem können die Dateien deswegen sehr einfach in Versionsverwaltungssystemen wie CVS verwaltet werden, was insbesondere die Entwickler größerer Projekte zu schätzen wissen.&lt;br /&gt;
Ein internes Skripting unter Python für KiCad ist in der Entwicklung. z.Z. kann es aber nur unter PCBnew verwendet werden.&lt;br /&gt;
&lt;br /&gt;
[http://www.bigmessowires.com/2014/12/09/eagle-vs-kicad-revisited/ Und hier ein Link auf eine Kritik/Meinung (englisch)]&lt;br /&gt;
&lt;br /&gt;
== Schaltplan- und Leiterplattensoftware - Neulinge ==&lt;br /&gt;
&lt;br /&gt;
=== CircuitMaker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://circuitmaker.com/ CircuitMaker]&#039;&#039;&#039; ist eine kostenfreie, cloudbasierte und vereinfachte Version des vollwertigen AltiumDesigner. Mehr zur Historie in der [https://en.wikipedia.org/wiki/CircuitMaker englischen Wikipedia].&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang ist nicht jener von einem vollwertigen AltiumDesigner, aber viele Aspekte sind gleich.&lt;br /&gt;
So ist es auch möglich, Leiterbahnen mittels Hug &#039;n Shove zu verschieben oder komplexe DesignRules anzuwenden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cloud&#039;&#039;&#039;&lt;br /&gt;
Die Cloud beschränkt sich darauf, dass die eigenen Files dort abgelegt werden.&lt;br /&gt;
Grundsätzlich wäre die Idee, dass alle Community Mitglieder alle Projekte selbst benutzen und bearbeiten könnten. Wenn man jedoch das eigene Projekt nie &amp;quot;committed&amp;quot;, dann ist es auch nie sichtbar für andere Mitglieder. Zudem werden sämtliche Daten auch Lokal in einem Ordner abgelegt.&lt;br /&gt;
&lt;br /&gt;
=== DesignSpark PCB ===&lt;br /&gt;
&lt;br /&gt;
Integrierter Schaltplan-Editor mit Autorouter und Leiterplatten-Designer&amp;lt;br /&amp;gt;&lt;br /&gt;
DesignSpark PCB ist kostenlos auch für kommerzielle Projekte, allerdings nicht quelloffen (Open Source). Eine Registrierung des Users ist unbedingt erforderlich.&amp;lt;br /&amp;gt;&lt;br /&gt;
Unbegrenzte Leiterplattengröße, im Prinzip auch unbegrenzte Layer-Anzahl.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bedienung ist etwas gewöhnungsbedürftig - leider z.Zt. nur als englische (u. chinesische) Version verfügbar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Weitere Features: z.B. professionelle 3D-Designsoftware, Schnittstelle zu SPICE, Gerberausgabe direkt. Import von EAGLE-Datein möglich. &amp;lt;br /&amp;gt;&lt;br /&gt;
Kostenloser Download: http://www.rs-online.com/designspark/electronics/deu/page/designspark-pcb-home-page bzw. http://www.rs-online.com/designspark/electronics/deu/ &amp;lt;br /&amp;gt;&lt;br /&gt;
Erfahrungsbericht, der veralteten Version 3.0. Es existiert heute (2016) die Version 7.01: [http://www.ps-blnkd.de/Erfahrungsbericht_Schaltung&amp;amp;Leiterplatte.pdf] &amp;lt;br /&amp;gt;&lt;br /&gt;
Verschiedene Tutorials &amp;quot;DesignSpark Tipps &amp;amp; Tricks&amp;quot; in deutscher Sprache im &amp;quot;Elektor&amp;quot; 2014/2015.&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://de.wikipedia.org/wiki/DesignSpark_PCB Wikipedia Artikel zu DesignSpark]. DesignSpark PCB ist an den Bauteiledistributor [http://de.rs-online.com/web/generalDisplay.html?id=DesignSpark-Jan11 RS Components] angelehnt.&lt;br /&gt;
&lt;br /&gt;
=== DipTrace ===&lt;br /&gt;
&lt;br /&gt;
Diptrace besteht aus einem Schaltplan-, Layout-, Symbol- und Footprint-Programm.&amp;lt;br /&amp;gt;&lt;br /&gt;
Die Benutzer-Schnittstelle bietet pro Objekt (Symbol, Part, Pad, etc.) ein Kontext-Menü an. Dies ermöglicht oft eine unkomplizierte, geradlinige Bedienung. Trotzdem können grundlegende Arbeiten teils etwas umständlich und zweitaufwändig sein.&amp;lt;br /&amp;gt;&lt;br /&gt;
Die Programme bieten keine regelbasierten Konfigurationen oder (Script-)Programme. In andern Worten Diptrace ist wenig anpassbar.&amp;lt;br /&amp;gt;&lt;br /&gt;
Diptrace bietet ähnlich viele Funktionen wie Eagle.&amp;lt;br /&amp;gt;&lt;br /&gt;
Angeboten werden verschiedene Editionen auch für nichtkommerzielle Nutzung, siehe http://diptrace.com/buy/non-profit/&amp;lt;br /&amp;gt;&lt;br /&gt;
Die kleinste und komplett kostenlose non-profit Version ist aktuell (Juni 2016) auf zwei Lagen und 500 Pins beschränkt. Zum Vergleich: ICs mit 48 Pinnen sind keine Seltenheit. Es gibt aber auch verbilligte erweiterte und volle non-profit Lizenzen. Die strikte Forderung &amp;quot;non profit&amp;quot; verbietet implizit eine Veröffentlichung.&lt;br /&gt;
&lt;br /&gt;
Unterstützte Betriebssysteme: Windows (Linux mit Wine, funktioniert mit Debian 8 &amp;quot;Jessie&amp;quot; hervorragend), Mac OS X.&lt;br /&gt;
&lt;br /&gt;
[http://www.diptrace.com/ DipTrace.com (Homepage)]&lt;br /&gt;
&lt;br /&gt;
[https://www.mikrocontroller.net/topic/319636#new Forumsbeitrag/Diskussion über Diptrace (2014)]&lt;br /&gt;
&lt;br /&gt;
[https://www.mikrocontroller.net/topic/320897/ Geeignete Schaltplan und Layoutsoftware für Hobbyprojekte]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Horizon ===&lt;br /&gt;
Ein open source CAD Prorgramm in Entwicklung, aber schon recht weit fortgeschritten.&lt;br /&gt;
Siehe Diskussion und Verlauf im Forum: http://www.mikrocontroller.net/topic/417908#new&lt;br /&gt;
Horizon direkt con GitHub: https://github.com/carrotIndustries/horizon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Erweiterte Schaltplan- und Leiterplattensoftware ==&lt;br /&gt;
&lt;br /&gt;
Diese integrieren zusätzlich spezielle Funktionen, wie FPGA-Entwicklung oder impedanzkontrollierten Layouts. Sie eigenen sich mit langer Einarbeitungszeit und mindestens vierstelligem Preis nur, wenn man sehr viel damit arbeitet. Die Übergänge zu den &#039;&#039;Platzhirschen&#039;&#039; aus der vorherigen Kategorie sind fließend.&lt;br /&gt;
&lt;br /&gt;
=== Altium Designer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Altium&#039;&#039;&#039; (aus Protel hervorgegangen) ist eine kommerzielle EDA Suite die umfangreiche Funktionen beinhaltet.&lt;br /&gt;
Neben den Klassikern wie Schaltplan und Layouterzeugung werden auch elektronische Simulationen, FPGA Entwicklungstools, und diverse andere Features per PlugIn vom Hersteller angeboten. Seit 2011 ist der Sitz in China, dort sind auch die Programmierer.&lt;br /&gt;
Leider ist der Produktzyklus momentan sehr kurz, sodass fast jährlich neue Hauptrelease erscheinen (aktuell 15.1) und in Abständen von 2-6 Monaten &amp;quot;Zwischenupdates&amp;quot; veröffentlicht werden.&lt;br /&gt;
&lt;br /&gt;
* Diverse Formate können importiert und exportiert werden, sodass man u.A. &amp;quot;fast&amp;quot; nahtlos mit MCAD Systemen kooperieren kann [https://docs.google.com/viewer?url=http://www.altium.com/files/training/Module%2020%20-%203D%20Mechanical%20CAD.pdf LINK]&lt;br /&gt;
* Diverse Funktionen für HighSpeed Designs [http://fplreflib.findlay.co.uk/articles/37941%5CHiSpeedDesignTutorialforAltiumDesigner_long.pdf LINK]&lt;br /&gt;
&lt;br /&gt;
Leider wurde der Preis in der jüngsten Vergangenheit des Öfteren nach oben korrigiert.&amp;lt;BR&amp;gt;&lt;br /&gt;
2014-04-11: Achtung Altium erhöht zum 31.6.2014 schon wieder die Preise und dieses Mal um satte 34% (4000€ auf 5400€!). Das entspricht einer Erhöhung um +68% in 5 Jahren.&lt;br /&gt;
&lt;br /&gt;
=== BAE ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B&#039;&#039;&#039;artels &#039;&#039;&#039;A&#039;&#039;&#039;uto &#039;&#039;&#039;E&#039;&#039;&#039;ngineer ([[BAE-Tutorial|Artikel]]) unterstützt die Erstellung von Schaltplänen, Leiterplatten und integrierten Schaltungen und läuft unter Windows, Linux und verschiedenen X11-/Unix-Systemen. Der Schaltplaneditor kann Pläne auf beliebig vielen Blättern erstellen, wobei auch hierarchische Strukturen möglich sind. Der Autorouter erzeugt recht brauchbare Ergebnisse, wobei beliebige Teile mit der Hand vorab geroutet werden können. Ein Autoplacer ist ebenfalls vorhanden.&lt;br /&gt;
&lt;br /&gt;
Eine auf Schaltplaneingabe beschränkte Version und eine kastrierte Evaluierungsversion sind auf der [https://www.bartels.de/bae/bae_de.htm BAE Homepage] downloadbar.&lt;br /&gt;
&lt;br /&gt;
Die [https://www.bartels.de/bae/baeprice_de.htm preiswerteste] kostenpflichtige Version ist das &#039;&#039;&#039;&#039;&#039;BAE Light&#039;&#039;&#039;&#039;&#039;. Diese Version ist auf Leiterplatten der Größe 180x120 mm² und auf 2 Lagen beschränkt, eine Beschränkung auf eine bestimmte Pinanzahl gibt es aber nicht.&lt;br /&gt;
&lt;br /&gt;
Ansonsten wird eine Economy-, Professional- und Highendversion angeboten, die jeweiligen Eigenschaften sind im Abschnitt [https://www.bartels.de/baedoc/inst_de.htm#BAEINST_BAE Bartels AutoEngineer Softwarekonfigurationen] erklärt. Interessant ist z.&amp;amp;nbsp;B. der Bauteilhöhencheck.&lt;br /&gt;
Mit dem &#039;&#039;&#039;&#039;&#039;BAE IC Design&#039;&#039;&#039;&#039;&#039; dringt man bis in den Bereich der IC- und ASIC-Entwicklung vor.&lt;br /&gt;
&lt;br /&gt;
=== Pulsonix ===&lt;br /&gt;
[http://www.pulsonix.com PULSONIX] ist ein Schaltplan- und Layout-Werkzeug mit [http://www.pulsonix.com/downloads/datasheets/Pulsonix%20FPGA.pdf integriertem FPGA-Interface] zum Import von Pindefinitionen, sowie [http://www.pulsonix.com/downloads/datasheets/Pulsonix%20Spice%20V2.0%20UK.pdf integriertem Schaltungssimulator] auf PSpice-Basis.&lt;br /&gt;
&lt;br /&gt;
== Hilfsprogramme ==&lt;br /&gt;
&lt;br /&gt;
=== Fped ===&lt;br /&gt;
&lt;br /&gt;
Ein quelloffenes Programm nur als Hilfestellung zum Erstellen von Footprints. Das spezielle daran ist eine Beschreibungssprache für Footprintdateien. Exportmöglichkeiten in [[KiCad]] (2010) und Postscript. [http://downloads.qi-hardware.com/people/werner/fped/gui.html Homepage]   ([http://projects.qi-hardware.com/index.php/p/fped/source/tree/master/manual alternative Fped Seite]) aber das Debian Projekt enthält mehr [https://packages.debian.org/sid/electronics/fped Nebeninformationen zu Fped]. Autor ist Werner Almesberger. Betreuer des Debian Paketes ist Xiangfu Liu.&lt;br /&gt;
&lt;br /&gt;
== Integrierte Elektronikentwicklung ==&lt;br /&gt;
Komplette Entwicklungsumgebungen, die praktisch alle Facetten der Elektronikentwicklung (EDA), also z.B. auch Gehäusebau, Unterstützung zur EMV-Simulation, Bauteil und Lieferantenverwaltung abbilden und sich damit hauptsächlich für große Unternehmen eignen:&lt;br /&gt;
&lt;br /&gt;
=== Orcad Cadence Design Systems ===&lt;br /&gt;
[https://de.wikipedia.org/wiki/Cadence_Design_Systems Wikipedia-Artikel]&lt;br /&gt;
=== Mentor Graphics ===&lt;br /&gt;
[https://de.wikipedia.org/wiki/Mentor_Graphics Wikipedia-Artikel]&lt;br /&gt;
=== Zuken ===&lt;br /&gt;
[https://de.wikipedia.org/wiki/Zuken Wikipedia-Artikel]&lt;br /&gt;
&lt;br /&gt;
== Software-Entwicklungen hier im Forum ==&lt;br /&gt;
&lt;br /&gt;
Zuweilen stellen Forenmitglieder Eigenentwicklungen aus diesem Bereich vor.  In diesem Abschnitt finden sich Links auf die entsprechenden Threads.&lt;br /&gt;
&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/417908 horizon]&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/351306 HobbyCi]&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[Schaltungssimulation]]&lt;br /&gt;
* [[Dos and don&#039;ts - Platinenlayout]]&lt;br /&gt;
* [[Lochrasterplatine]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Schaltplaneditoren]]&lt;br /&gt;
[[Kategorie:Listen]]&lt;/div&gt;</summary>
		<author><name>49636b65</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=STM32&amp;diff=84225</id>
		<title>STM32</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=STM32&amp;diff=84225"/>
		<updated>2014-07-24T16:00:09Z</updated>

		<summary type="html">&lt;p&gt;49636b65: neuen Link hinzugefügt&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 [http://www.arm.com/products/processors/cortex-m/index.php ARM Cortex-M0/M3/M4] CPU. Diese Architektur ist speziell für den Einsatz in Microcontrollern 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 sieben STM32-Familien:&lt;br /&gt;
* [http://www.st.com/internet/mcu/subclass/1588.jsp STM32F0]&lt;br /&gt;
** Cortex M0&lt;br /&gt;
** Mikrocontroller zum Einstieg&lt;br /&gt;
** Bis 48MHz&lt;br /&gt;
* [http://www.st.com/internet/mcu/subclass/1169.jsp STM32F1]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** Bis 72MHz&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&lt;br /&gt;
** Wie die STM32F1 Serie, Camera-Interface, 32-Bit Timer, Crypto-Engine...&lt;br /&gt;
* [http://www.st.com/internet/mcu/subclass/1605.jsp STM32F3]&lt;br /&gt;
** Cortex M4F&lt;br /&gt;
** DSP und FPU&lt;br /&gt;
** Bis 72MHz&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://www.st.com/internet/mcu/subclass/1521.jsp STM32F4]&lt;br /&gt;
** Cortex M4F&lt;br /&gt;
** DSP und FPU&lt;br /&gt;
** Bis 180MHz&lt;br /&gt;
** Bis zu 2MB Flash&lt;br /&gt;
* [http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1295 STM32L1]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** Low Power &lt;br /&gt;
** mit LCD Treiber&lt;br /&gt;
** Bis 32MHz&lt;br /&gt;
* [http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1581 STM32W]&lt;br /&gt;
** Cortex M3&lt;br /&gt;
** BIS 24MHz&lt;br /&gt;
** RF-MCU &lt;br /&gt;
[http://www.st.com/internet/mcu/class/1734.jsp Hier eine Übersicht zum Auswählen eines STM32Fxxx]&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
* Cortex-M0 / Cortex-M3 / Cortex-M4F Kern (mit FPU)&lt;br /&gt;
* 16KB ... 2MB  [[Flash-ROM]]&lt;br /&gt;
*  4KB ... 256KB [[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 TSSOP, QFN, LQFP und BGA&lt;br /&gt;
* Derzeit sind über &#039;&#039;&#039;370&#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 erzielen soll, die 0 Wait-States entspricht. Der CPU-Takt wird über einen Multiplikator aus dem internen RC-Takt oder einem externen Quarz-Takt abgeleitet.&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 8x40 Punkte (nicht beim STM32F2xx)&lt;br /&gt;
* TFT Treiber bei STM32F429 / STM32F439&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;
* RNG - Random Number Generator (STM32F2/4xx)&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/st-web-ui/static/active/en/resource/technical/document/reference_manual/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;
== 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 IDE&#039;s ====&lt;br /&gt;
* [http://www.codesourcery.com/sgpp/lite_edition.html Codesourcery Lite Edition]&lt;br /&gt;
* [http://www.coocox.org/ Coocox Eclipse IDE] kostenlose IDE für STM32F0 / F1 / F4 Hilfreiche Infos gibt es im [http://www.mikrocontroller.net/topic/214719?goto=new#2228482 hier] und [http://www.mikrocontroller.net/topic/214719?goto=new#2229943 hier] Forum, Artikel: [[STM32 CooCox Installation]] &lt;br /&gt;
* [http://emide.org/ emIDE] kostenlose IDE die mit dem Segger J-LINK funktioniert.&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 geschreiben werden), Basiert auf Code::Blocks, [http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks STM32 - Einstieg mit Em::Blocks]&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;
&lt;br /&gt;
=== Kommerzielle Umgebungen ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.keil.com/arm/mdk.asp Keil µVision] (Demo max. 32KB Code): 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. µVison selbst kann kostenlos mit dem MDK-Evaluationkit heruntergeladen werden. [https://www.keil.com/arm/demo/eval/arm.htm#DOWNLOAD 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] (Lite Version (bis V2.3.0) ohne Code-Limit, auf GCC basierend. Die neueste Version ab V3 hat fast keine Beschränkungen mehr außer jetzt einen Code-Limit von 32kB. Außerdem werden jetzt die meisten ARM Familien unterstützt. )&lt;br /&gt;
* [http://www.rowley.co.uk/arm/ Rowley Crossworks] (Demo 30 Tage unbeschränkt, 150$ für nichtkommerzielle Nutzung, auf GCC basierend)&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 auch C mit kompletter Oberfläche mit Compiler etc. pp relativ günstig]&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;
&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 Ubuntu] - 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 NonComercial] J-LINK-EDU für ca. 60,- 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, ...&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]&lt;br /&gt;
* [http://www.st.com/internet/evalboard/product/219866.jsp ST-LINK], [http://www.st.com/internet/evalboard/product/251168.jsp ST-LINK/V2]&lt;br /&gt;
* Jedes STM32 Discovery board hat einen ST-Link für Programmierung/Debugging per SWD on-board, welcher auch für eigene STM32 Target Hardware benutzt werden kann (ca. 12,- bis 19,-€, je nach Typ).&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] (Achtung: keine Reaktion auf Bestellung, Telefon, Email...)&lt;br /&gt;
* [http://www.hjtag.com H-JTAG] Personal Edition für ca. 60,- zu haben, läuft mit ADS, SDT, IAR, Vision und RVDS &lt;br /&gt;
* [http://www.isystem.com/products/itag iTag] für 50.- bei Amazon zu bestellen, oder als Eigenbau version (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, die auch einen 20-Poligen [[JTAG]]-Anschluss haben, einstecken kann. Die Pinbelegung ist genormt, siehe Artikel [[JTAG]]. Die Discovery-Boards haben keinen seperaten JTAG-Stecker, aber zumindest für das STM32F4 Discovery kann man sich leicht einen Adapter Pinheader-&amp;gt;JTAG Stecker selber bauen.&lt;br /&gt;
&lt;br /&gt;
Andere [[JTAG]] Adapter wie z.B. der ULink von Keil funktionieren nur mit dem Keil Compiler.&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]&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.&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, Austattung).&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]. Ausser 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 von dem 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-Bootlaoder:&lt;br /&gt;
* [http://www.st.com/web/en/catalog/tools/PF257525 STSW-MCU005 STM32 and STM8 Flash loader demonstrator]&lt;br /&gt;
* [https://code.google.com/p/stm32flash/ Open source flash program for the STM32 ARM processors using the ST serial bootloader (for Linux)]&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öglich 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 (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. &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. ISR&#039;s, 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 undokummentierte 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 ([http://www.mikrocontroller.net/topic/312393#new Siehe Forum]).&lt;br /&gt;
&lt;br /&gt;
=== Software ===&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.) assemblisiert 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, Mouser, Farnell, Digikey usw...&lt;br /&gt;
&lt;br /&gt;
=== Evaluation Boards ===&lt;br /&gt;
&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.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;
&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>49636b65</name></author>
	</entry>
</feed>