<?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=Thomas</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=Thomas"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/Thomas"/>
	<updated>2026-04-10T23:21:35Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=I%C2%B2C&amp;diff=100746</id>
		<title>I²C</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=I%C2%B2C&amp;diff=100746"/>
		<updated>2019-07-27T13:13:07Z</updated>

		<summary type="html">&lt;p&gt;Thomas: I²C-Interface ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;I²C&#039;&#039;&#039; (gesprochen &amp;quot;I quadrat C&amp;quot;) ist ein synchroner serieller Zweidraht-[[Bus]], der jeweils eine bidirektionale Daten- und Taktleitung verwendet und für die Kommunikation zwischen [[IC]]s über kleine Distanzen geeignet ist. Die Bezeichnung steht für IIC, Inter-Integrated Circuit. Der Bus wurde Anfang der 80er Jahre von Philips entwickelt.&lt;br /&gt;
&lt;br /&gt;
Aus Lizenzgründen heißt der I²C Bus bei manchen Herstellern auch &#039;&#039;&#039;TWI&#039;&#039;&#039;, two wire interface (siehe [[AVR TWI]]). Im PC wird ein dem I²C-Bus sehr ähnliches System benutzt, um z.&amp;amp;nbsp;B. die Daten eines SDRAM-Modules auszulesen. Dieser nennt sich [[SMBus]] (System Management Bus).&lt;br /&gt;
&lt;br /&gt;
=== Busstruktur und Adressierung ===&lt;br /&gt;
In einem I²C-Bus gibt es mindestens einen Master sowie bis zu 127 Slaves. Ein I²C-Bus mit mehreren Mastern wird als &amp;quot;Multi-Master-Bus&amp;quot; bezeichnet. &lt;br /&gt;
&lt;br /&gt;
Die Slaves in einem Verbund müssen alle mit einer eigenen, individuellen Adresse codiert werden. Somit sind sie für jedem Master individuell anzusprechen. Darüber hinaus existiert ein sogenannter Broadcastkanal, mit dem alle Slaves gleichzeitig angesprochen werden können. &lt;br /&gt;
&lt;br /&gt;
Ein Problem mit manchen Slaves ist der eingeschränkte Adressbereich, d.h. sie liegen auf einem definierten Bereich und haben darin z.b. nur 3 Bit als Programmieroption. Somit schließen diese Slaves indirekt andere Adressen aus.&lt;br /&gt;
&lt;br /&gt;
=== Adressierung ===&lt;br /&gt;
Der (oder die) Master sprechen die Slaves jeweils aktiv an. Slaves können &#039;&#039;&#039;nie&#039;&#039;&#039; selbstständig beginnen, Daten zu senden. Um eine Kommunikation zu etablieren, übernimmt der Master, der Daten senden oder empfangen möchte, den Bus und gibt die (7-bit- bzw. 10-bit-)Adresse des Slaves aus, mit dem er kommunizieren möchte. &lt;br /&gt;
Nach der Adresse teilt der Master dem entsprechenden Slave mit, ob er Daten senden oder empfangen möchte. Danach werden die eigentlichen Daten (entweder vom Master oder Slave) auf den Bus gelegt. Hat der Master den Lese- oder Schreibvorgang abgeschlossen, so gibt er den Bus wieder frei.&lt;br /&gt;
Sofern mehrere Master vorhanden sind, stellt ein logisches Protokoll sicher, dass sich diese nicht gegenseitig stören. Im Fall einer broad cast Operation kann ein time slot System sicherstellen, dass nie mehr als ein slave gleichzeitig antwortet.&lt;br /&gt;
&lt;br /&gt;
=== Handshaking / Quittierung ===&lt;br /&gt;
Die Kommunikation auf Bitebene erfolgt seitens des Masters durch Senden von Start / Stopp Bedingungen, die sich aus der Kombination der Zustände von Takt- und Datenleitung ergeben. Um die erfolgreiche Kommunikation zwischen Master und Slave sicherzustellen, senden Slaves - ausser im broadcast Betrieb - nach erfolgreicher Dekodierung ihrer Adresse sowie im Schreibfall ein Acknowledge, in dem sie die Datenleitung ziehen. Diese muss dazu vom Master rechtzeitig freigegeben worden sein und beobachtet werden. Umgekehrt quittiert der Master in ähnlicher Weise den Empfang eines Datenbytes vom Slave und signalisiert somit weitere Empfangsbereitschaft. Der Takt wird immer vom Master getrieben.&lt;br /&gt;
&lt;br /&gt;
=== Übertragungsraten  ===&lt;br /&gt;
Die genormte Übertragungsrate beträgt beim sogenannten &amp;quot;standard mode&amp;quot; 100 kbit/s, beim &amp;quot;fast mode&amp;quot; 400 kbit/s und beim &amp;quot;fast mode+&amp;quot; 1000kbit/sec. Im sogenannten high-speed mode, der mit etwas anderen Spannungs- und Stromrandbedingungen arbeitet sind es zu 3,4 MBit/s. Die Raten beziehen sich auf die festgelegten Taktraten. Andere sind möglich, jedoch nicht genormt.&lt;br /&gt;
&lt;br /&gt;
Die reale maximale Datenrate ist infolge des asynchronen Betriebs und der Pausen meistens etwas niedriger. Zudem kann - falls die Taktrate für einen Slave zu hoch ist - die Clock-Leitung auf Null durch ihn auf GND gezogen- und damit die Übertragung verlangsamt werden, was als sog. &amp;quot;Clock Stretching&amp;quot; bezeichnet wird. Dies ist auf Bit- wie auf Byte-Ebene möglich; ersteres allerdings nicht im high-speed mode.&lt;br /&gt;
&lt;br /&gt;
==== Reale Beispiele ====&lt;br /&gt;
Um sich an längere Übertragungswege anzupassen, kann man die Taktrate theoretisch beliebig vermindern, jedoch erzeugen einige Bausteine aber irgendwann ein Time-Out. Manche interpretieren einen lange niedergehaltenen Takt auch als Reset. Daher sind Taktraten von unter 1kbps in der Regel nicht denkbar.&lt;br /&gt;
&lt;br /&gt;
Als Beispiel können jedoch mit einer Taktfrequenz von nur 5 kbit/s durchaus mehrere Meter überbrückt werden:&lt;br /&gt;
&lt;br /&gt;
Erfahrungen mit den Atmegas (gemessene I2C-Taktfrequenzen):&lt;br /&gt;
* 16,000MHz - schafft sauber bis zu 700KHz&lt;br /&gt;
* 18,432MHz - schafft sauber bis zu 950KHz&lt;br /&gt;
&lt;br /&gt;
Selbst unter schlechten Bedingungen wie...&lt;br /&gt;
&lt;br /&gt;
* 50cm 6-adriges Spiralkabel, frei schwingend verbaut in einem Rennwagen als Verbindung zwischen Lenkraddisplay und Amaturenbrett&lt;br /&gt;
* Nähe zu nicht geschirmten Leitungen mit 12V, GND und 5V PWM zum Dimmen von LEDs&lt;br /&gt;
* grausamen Umgebungsbedingungen, Fahrten im Regen, Schnee oder bei glühender Sonne und gefühlten 100° C ;-) auf der Rennstrecke.&lt;br /&gt;
&lt;br /&gt;
... hat der Bus ohne Probleme funktioniert.&lt;br /&gt;
&lt;br /&gt;
Um anders herum hohe Bandbreiten zu erreichen, lassen sich krumme I2C-Frequenzen ausserhalb der SPEC verwenden, damit sie besser zu den Controllern und deren Taktfrequenzen passen.&lt;br /&gt;
&lt;br /&gt;
=== Bausteine ===&lt;br /&gt;
&lt;br /&gt;
Neben Mikrocontrollern gibt es eine Reihe von Peripheriebausteinen, die per I²C angeschlossen werden können. Eine gute Anlaufstelle bei der Suche ist die unten angegebene Seite des &amp;quot;Erfinders&amp;quot; Philips, heute als [http://www.nxp.com NXP] bekannt.&lt;br /&gt;
&lt;br /&gt;
*serielle [[Speicher#EEPROM | EEPROM]]s &lt;br /&gt;
** [http://www.datasheetcatalog.net/cgi-bin/helo.pl?text=24C01&amp;amp;action=Search 24Cxx]&lt;br /&gt;
** [http://ics.nxp.com/products/pcf/seeproms/ PCF85xx von NXP, 256-2048 Byte]&lt;br /&gt;
&lt;br /&gt;
*I/O-Portexpander&lt;br /&gt;
** [[Port-Expander_PCF8574|PCF8574]]&lt;br /&gt;
** [http://www.mikrocontroller.net/part/MCP23008 MCP23008] (8-bit) von Microchip&lt;br /&gt;
** [http://www.mikrocontroller.net/part/MCP23017 MCP23017](16-bit) von Microchip&lt;br /&gt;
&lt;br /&gt;
* I2C MUX, zum Anschluss von ICs mit gleicher, fester Adresse&lt;br /&gt;
** [http://www.datasheetcatalog.org/cgi-bin/helo.pl?field=Nume&amp;amp;type=C&amp;amp;text=PCA9545A&amp;amp;producedby=&amp;amp;action=Search PCA9545A]&lt;br /&gt;
&lt;br /&gt;
* [[AD-Wandler]]&lt;br /&gt;
** [http://www.mikrocontroller.net/topic/182614 12x12 Bit ADC MAX1238]&lt;br /&gt;
** [http://www.mikrocontroller.net/topic/182614 12x10 Bit ADC MAX1138]&lt;br /&gt;
** [http://www.maxim-ic.com/datasheet/index.mvp/id/1890 MAX127 und MAX128 von Maxim, 12bit x8, PDIP24+SSOP28]&lt;br /&gt;
** [http://www.jtronics.de/platinen.html 12x8  Bit ADC MAX1038]&lt;br /&gt;
&lt;br /&gt;
* [[DA-Wandler]]&lt;br /&gt;
** [http://www.datasheetcatalog.net/cgi-bin/helo.pl?field=Nume&amp;amp;type=C&amp;amp;text=TDA8444&amp;amp;producedby=&amp;amp;action=Search TDA8444, 8x6Bit]&lt;br /&gt;
&lt;br /&gt;
* Uhrenbausteine&lt;br /&gt;
** [http://ww1.microchip.com/downloads/en/DeviceDoc/20005010F.pdf MCP7940N]&lt;br /&gt;
** [http://www.datasheetcatalog.net/cgi-bin/helo.pl?field=Nume&amp;amp;type=C&amp;amp;text=PCF8583&amp;amp;producedby=&amp;amp;action=Search PCF8583, mit 256 Bytes RAM]&lt;br /&gt;
** DS1307&lt;br /&gt;
&lt;br /&gt;
* [[LCD]]-Treiber&lt;br /&gt;
** [http://www.datasheetcatalog.net/cgi-bin/helo.pl?field=Nume&amp;amp;type=C&amp;amp;text=PCF8577&amp;amp;producedby=&amp;amp;action=Search PCF8577, 2x32 Segmente]&lt;br /&gt;
&lt;br /&gt;
*[[LED]]-Treiber&lt;br /&gt;
** [http://www.mikrocontroller.net/part/HT16K33 HT16K33] (RAM Mapping 16*8 LED) von Holtek&lt;br /&gt;
** SAA1064 (seit 2005 abgekündigt! Restposten sehr teuer)&lt;br /&gt;
&lt;br /&gt;
* [[Temperatursensor|Temperatursensoren]]&lt;br /&gt;
** [http://www.datasheetcatalog.net/cgi-bin/helo.pl?text=DS1621&amp;amp;action=Search DS1621]&lt;br /&gt;
** [http://www.datasheetcatalog.net/cgi-bin/helo.pl?text=lm75&amp;amp;action=Search LM75]&lt;br /&gt;
** [http://www.sensirion.com/en/pdf/product_information/Datasheet-humidity-sensor-SHT21.pdf SHT21]&lt;br /&gt;
** TMP101 von TexasInstruments&lt;br /&gt;
** TMP175 von TI (mehr als 8 Bausteine im gleichen Bus möglich)&lt;br /&gt;
&lt;br /&gt;
* Drucksensoren&lt;br /&gt;
** SMD500&lt;br /&gt;
** BMP085&lt;br /&gt;
&lt;br /&gt;
* Beschleunigungssensor&lt;br /&gt;
** [http://www.mikrocontroller.net/articles/BMA020 BMA020]&lt;br /&gt;
&lt;br /&gt;
* Audioverstärker&lt;br /&gt;
** TPA2016&lt;br /&gt;
** TPA2026&lt;br /&gt;
** TDA8594&lt;br /&gt;
&lt;br /&gt;
* TPMs (Trusted Platform Module)&lt;br /&gt;
** [http://www.infineon.com/cms/de/product/security-and-smart-card-solutions/optiga-embedded-security-solutions/optiga-tpm/channel.html?channel=5546d462503812bb015066de24291768 SLB 9645]&lt;br /&gt;
&lt;br /&gt;
=== Galvanische Trennung ===&lt;br /&gt;
* http://www.analog.com/static/imported-files/application_notes/AN_913.pdf&lt;br /&gt;
* http://www.analog.com/en/interface/digital-isolators/products/index.html#Isolated_I2C_Isolators&lt;br /&gt;
* http://www.silabs.com/Support%20Documents/TechnicalDocs/Si840x.pdf &#039;&#039;&#039;(Not Recommended for New Designs)&#039;&#039;&#039;&lt;br /&gt;
* http://www.silabs.com/applications/industrial/Pages/i2c-isolation.aspx&lt;br /&gt;
* http://www.mikrocontroller.net/attachment/5670/Galvanische_Trennung_fuer_I2C-Bus.pdf&lt;br /&gt;
* http://www.esacademy.com/en/library/technical-articles-and-documents/miscellaneous/i2c-bus/frequently-asked-questions/i2c-faq.html&lt;br /&gt;
* http://www.mikrocontroller.net/topic/17425#125464&lt;br /&gt;
* https://www.mikrocontroller.net/articles/Modulares_Board#I2C_Bus_Isolator&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[AT91-TWI]]&lt;br /&gt;
* [[AVR TWI]]&lt;br /&gt;
* [[I2C als Hausbus]]&lt;br /&gt;
* [[Modulares Board]]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/181115#1748880 Forumsbeitrag]: I2C-Adressen mit 7 oder 8 Bit&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/385874#4410598 Forumsbeitrag]: I2C über lange Entfernungen als differentielles Signal übertragen.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.nxp.com/products/interfaces/ic-bus:MC_41735 NXP (ehemals Philips) Produktseite]&lt;br /&gt;
* [http://www.nxp.com/acrobat/usermanuals/UM10204_3.pdf I2C Spezifikation 3.0]&lt;br /&gt;
* [http://www.i2c-bus.org I²C Bus FAQ, Einführung, Hintergrundinformationen zum I2C Bus auf Deutsch und Englisch]&lt;br /&gt;
* [http://www.robotikhardware.de/download/rn_pc_i2c.pdf robotikhardware.de]&lt;br /&gt;
* [http://www.elektronikwissen.net/pegelwandler/7-bidirektionaler-levelshifter-fuer-i2c.html Betrieb von 3V3 und 5V-Bausteinen am I2C-Bus]&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
* [http://www.jtronics.de/avr-projekte.html AVR TWI Slave]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/235733#2398750 TWI MASTER in ASM]&lt;br /&gt;
* [http://homepage.hispeed.ch/peterfleury/avr-software.html AVR TWI/I2C MASTER in C]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/87597 AVR TWI Master und Slave Funktionen in C]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/266642 universelle I2C Master Prozedur für AVR]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/103600 I2C (TWI) Sniffer mit AVR]&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/334653#3697582 I2CLCD], HD44780 LCD Ansteuerung über I2C Bus&lt;br /&gt;
&lt;br /&gt;
===I²C-Interface===&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/155136#1462320 Beitrag &amp;quot;i2c usb interface&amp;quot;] Diskussion zu Interfaces für Linux&lt;br /&gt;
* [http://sprut.de/electronic/pic/projekte/usb4all/usb4all.htm USB4ALL bei sprut.de] universeller USB-Baustein, auch für I2C (5V, CDC/Virtual-Comport)&lt;br /&gt;
* [http://www.totalphase.com/products/aardvark-i2cspi/ Aardvark I2C/SPI Host Adapter], Universeller Adapter für I2C und SPI&lt;br /&gt;
* [http://www.elv.de/usb-i2c-interface-komplettbausatz-inkl-gehaeuse-bearbeitet-und-bedruckt-usb-kabel-3-anschlusskabel.html USB-I2C-Interface] Komplettbausatz von ELV (5V, Virtual-Comport)&lt;br /&gt;
* [https://github.com/harbaum/I2C-Tiny-USB i2c-tiny-usb] Open Source/Hardware (5V, Linux-Kernel-Treiber, C/C++ Beispiele)&lt;br /&gt;
* [https://www.fischl.de/i2c-mp-usb/ I2C-MP-USB] Open Source (3,3V und 5V, Linux-Kernel-Treiber, Python-Bibliothek für Windows/MacOS/Linux)&lt;br /&gt;
&lt;br /&gt;
===I²C-Monitor===&lt;br /&gt;
*http://realterm.sourceforge.net/#I2C%20Bus&lt;br /&gt;
*http://www.avrfreaks.net/index.php?module=FreaksTools&amp;amp;func=viewItem&amp;amp;item_id=411&lt;br /&gt;
* [http://www.telos.info/p/hw/conniimm20/ telos Connii MM 2.0 - I²C Monitor with USB Interface]&lt;br /&gt;
* [http://www.telos.info/p/hw/traciixl20/ telos Tracii XL 2.0 - High-End I²C Monitor]&lt;br /&gt;
*http://i2cchip.com/&lt;br /&gt;
* [http://www.ullihome.de/index.php/Hauptseite#USB_AVR-Lab I2C Logger Firmware für USB AVR-ISP]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/41535 I2C Monitor mit Mega8 (Firmware)]&lt;br /&gt;
* [http://warmcat.com/milksop/cheapi2c.html Cheapi2c] by Numbnut (Andy Green) uses your PC CPU (Linux only!) and printer port to perform realtime snooping of a standard 100kHz I2C bus with 100% capture.&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/103600#905495 I2C (TWI) Sniffer]. Basierend auf einem ATtiny85 mit Ausgabe auf RS232 (C und ASM).&lt;br /&gt;
* [http://en.radzio.dxp.pl/i2c-sniffer/ I2C/TWI bus sniffer/analyzer] (ATTiny2313 @ 20 MHz und USB über FTDI FT245RL oder UM245R)&lt;br /&gt;
* [http://www.i2cchip.com/start_bit_detector1.jpg I2C Startbit-Detector] auf [http://www.i2cchip.com/ www.i2cchip.com]&lt;br /&gt;
&lt;br /&gt;
[[Category:I2C| ]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=USB&amp;diff=97062</id>
		<title>USB</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=USB&amp;diff=97062"/>
		<updated>2017-08-30T14:27:20Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* Fertige Module mit einem USB-Host */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;U&#039;&#039;&#039;niversal &#039;&#039;&#039;S&#039;&#039;&#039;erial &#039;&#039;&#039;B&#039;&#039;&#039;us.&lt;br /&gt;
&lt;br /&gt;
Serieller Bus, der heutzutage an jedem neuen PC zu finden ist und langsam aber sicher die RS-232- und Parallelport-Anschlüsse ersetzt.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Übertragungsgeschwindigkeiten:&lt;br /&gt;
* Low Speed: 1,5 MBit/s (USB 1.1 und 2.0)&lt;br /&gt;
* Full Speed: 12 MBit/s (USB 1.1 und 2.0)&lt;br /&gt;
* High Speed: 480 MBit/s (nur USB 2.0)&lt;br /&gt;
* SuperSpeed: 5 GBit/s (nur USB 3.0)&lt;br /&gt;
Die in Datenblättern oder auf Verpackungen gern verwendete Angabe &amp;quot;USB 2.0 Full Speed&amp;quot; darf man also nicht wörtlich verstehen, das sind trotz USB 2.0 nur 12 Mbit/s.&lt;br /&gt;
&lt;br /&gt;
Zu beachten ist, dass es bei USB im Gegensatz zu [[RS-232]] zwei Arten von Controllern gibt: Host- und Devicecontroller. Host bezeichnet dabei die steuernde Seite und ist z.&amp;amp;nbsp;B. in PCs zu finden; Devices sind die USB-Geräte, z.&amp;amp;nbsp;B. USB-Webcams. Diese Unterscheidung ist ziemlich wichtig, weil die meisten USB-Lösungen für [[Mikrocontroller]] USB-Devices darstellen und man deswegen dort weder Webcams noch USB-Speichersticks anschließen kann. Mit der letzten Ergänzung des Standards (USB On-The-Go) gibt es die begrenzte Möglichkeit, dass Geräte Host-Funktionalität zur Kommunikation mit ausgewählten Peripheriegeräten erhalten.&lt;br /&gt;
&lt;br /&gt;
Benutzt man ein USB-Device am PC, dann braucht man auch noch passende Treiber. Die aktuellen Betriebssysteme bringen meist eine Reihe von Treibern für Standardanwendungen (z.&amp;amp;nbsp;B. USB-Festplatte) mit. Gibt es keinen passenden Standardtreiber, dann muss man eben einen erstellen. Dazu werden bei manchen Chips kostenlose Treiber mitgeliefert, bei anderen muss man sie kaufen oder (aufwendig) selbst erstellen.&lt;br /&gt;
&lt;br /&gt;
== Allgemeine Informationen ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.usb.org/home USB-Hauptseite] Die Homepage des USB Implementers Forum, Inc., creators of USB technology.&lt;br /&gt;
* [http://libusb.sourceforge.net/ libusb] Allgemein ist die Treiberprogrammierung für USB das Hauptproblem. Die plattformübergreifende libusb ([http://libusb-win32.sourceforge.net/ Win32-Port (nicht Vista!)]) ermöglicht die Kommunikation mit USB-Geräten unter Verwendung eines Universaltreibers. Ein deutschsprachiges Projekt, erstellt von [http://www.weinga-unity.at.tt Weichinger Klaus], das libusb verwendet, findet man unter [http://www.ime.jku.at/tusb/] (Programmiersprache C mit MINGW; Dokumentation, Sourcecode und Binärdateien).&lt;br /&gt;
* [http://halvar.at/elektronik/usb/arnold_da.pdf Diplomarbeit von Eik Arnold] Viele Informationen über USB (Vergleich mit anderen Bussystemen, Elektrisches Interface, Transferarten, Übersicht über die verschiedenen USB Chips, ...)&lt;br /&gt;
* [http://www.beyondlogic.org/usbnutshell/usb1.htm USB in a NutShell] Eine kleine Wanderung durch die USB-Spezifikation&lt;br /&gt;
* [http://www.b-redemann.de Steuern und Messen mit USB - FT232, 245 und 2232] &amp;quot;Das aktuelle Buch zu den USB-Controllern von FTDI. Viele Beispielprogramme in C, zwei Projektbeschreibungen: I2C-Bus mit LM75A und ein Web-Projekt. Bauteilesatz und USB-Modul mit dem FT2232 zum schnellen Einstieg in die Thematik. Buch / Teilesatz über Segor oder dieser Seite erhältlich.&amp;quot;&lt;br /&gt;
* [http://www.netzmafia.de/skripten/hardware/PC-Schnittstellen/usb.html Universal Serial Bus] Eine gute Einführung und detaillierte Beschreibung.&lt;br /&gt;
* [http://www.b-kainka.de/MSRUSB.pdf Buch: Messen, Steuern, Regeln mit USB] von B. Kainka.&lt;br /&gt;
* [https://de.wikipedia.org/wiki/Universal_Serial_Bus Wikipedia-Artikel: Universal Serial Bus]&lt;br /&gt;
&lt;br /&gt;
== USB-Hostcontroller ==&lt;br /&gt;
=== Host-Controller im Mikrocontroller ===&lt;br /&gt;
Es gibt eine erfreuliche Anzahl geeigneter Schaltkreise, nur für den Amateur unschön beschaffbar. Entsprechend der USB-Spezifikation kann jeder Full-Speed-Hostcontroller auch mit Low-Speed arbeiten.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable sortable&amp;quot; id=&amp;quot;usb_controller&amp;quot; style=&amp;quot;border-collapse:collapse;&amp;quot;&lt;br /&gt;
!Hersteller&lt;br /&gt;
!IC&lt;br /&gt;
!Speed&lt;br /&gt;
!Pins&lt;br /&gt;
!Ucc/Uio&lt;br /&gt;
!CPU&lt;br /&gt;
!Takt&lt;br /&gt;
!Flash&lt;br /&gt;
!RAM&lt;br /&gt;
!ADU&lt;br /&gt;
!DAU/PWM&lt;br /&gt;
!Async&lt;br /&gt;
!Sync&lt;br /&gt;
!Extras&lt;br /&gt;
!Bezug&lt;br /&gt;
|-&lt;br /&gt;
| [http://mcu.emea.fujitsu.com/ Fujitsu]&lt;br /&gt;
| MB96F338U&lt;br /&gt;
| Full&lt;br /&gt;
| 144&lt;br /&gt;
| 3-5 V&lt;br /&gt;
| 16bit / 16FX Core&lt;br /&gt;
| 4 MHz extern&lt;br /&gt;
| 544Kbyte &lt;br /&gt;
| 32Kbyte &lt;br /&gt;
| 36x10bit&lt;br /&gt;
| 20xPWM, 12xOCU&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 3xCAN, 2xI²C&lt;br /&gt;
| [http://www.glyn.de/ Glyn], [http://www.ebv.com/ EBV]&lt;br /&gt;
|-&lt;br /&gt;
| [http://mcu.emea.fujitsu.com/ Fujitsu]&lt;br /&gt;
| MB90F334&lt;br /&gt;
| Full&lt;br /&gt;
| 120&lt;br /&gt;
| 3,3 V&lt;br /&gt;
| 16bit / 16LX Core&lt;br /&gt;
| 4 MHz extern&lt;br /&gt;
| 384Kbyte &lt;br /&gt;
| 24Kbyte &lt;br /&gt;
| 16x10bit&lt;br /&gt;
| 6xPWM, 4xOCU&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 3xI²C&lt;br /&gt;
| Glyn, EBV&lt;br /&gt;
|-&lt;br /&gt;
| [http://mcu.emea.fujitsu.com/ Fujitsu]&lt;br /&gt;
| MB90F337&lt;br /&gt;
| Full&lt;br /&gt;
| 64&lt;br /&gt;
| 3,3 V&lt;br /&gt;
| 16bit / 16LX Core&lt;br /&gt;
| 4 MHz extern&lt;br /&gt;
| 64Kbyte &lt;br /&gt;
|  4Kbyte &lt;br /&gt;
| -&lt;br /&gt;
| 4xPWM&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1xI²C&lt;br /&gt;
| Glyn, EBV&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.cypress.com/ Cypress]&lt;br /&gt;
| CY7C67300&lt;br /&gt;
| Full&lt;br /&gt;
| 100&lt;br /&gt;
| 3,3 V&lt;br /&gt;
| 16bit RISC&lt;br /&gt;
| 48 MHz&lt;br /&gt;
| 4K x 16bit OTP&lt;br /&gt;
| 8K x 16bit&lt;br /&gt;
| -&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| IDE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.atmel.com/ Atmel]&lt;br /&gt;
| AT90USB647&lt;br /&gt;
| Full&lt;br /&gt;
| 64&lt;br /&gt;
| 3,3 - 5 V&lt;br /&gt;
| AVR&lt;br /&gt;
| 16 MHz&lt;br /&gt;
| 64 K&lt;br /&gt;
| 4 K&lt;br /&gt;
| 8 x 10 bit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://de.farnell.com Farnell] ca. 11,42 €&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.atmel.com/ Atmel]&lt;br /&gt;
| AT32UC3B0128&lt;br /&gt;
| Full/OTG&lt;br /&gt;
| 64 (40)&lt;br /&gt;
| 3,3 V&lt;br /&gt;
| AVR32&lt;br /&gt;
| 60 MHz&lt;br /&gt;
| 128 K&lt;br /&gt;
| 32 K&lt;br /&gt;
| 8 x 10 bit&lt;br /&gt;
| (7+6) x PWM&lt;br /&gt;
| 2 (1x full)&lt;br /&gt;
| I²C, SPI, SSC&lt;br /&gt;
| Kernspannungsregler 1,8 V&lt;br /&gt;
| [http://de.farnell.com Farnell] ca. 6 €&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.microchip.com/ Microchip]&lt;br /&gt;
| PIC24FJ256GB106&lt;br /&gt;
| Full&lt;br /&gt;
| 64&lt;br /&gt;
| 3,3V/5V&lt;br /&gt;
| PIC24&lt;br /&gt;
| 16 MHz&lt;br /&gt;
| 64 KB&lt;br /&gt;
| 16 KB&lt;br /&gt;
| 10bit&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
| Spannungsregler&lt;br /&gt;
| [http://de.farnell.com Farnell] ca. 5,70 €&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.microchip.com/ Microchip]&lt;br /&gt;
| PIC32MX420FxxxH&lt;br /&gt;
| Full&lt;br /&gt;
| 64&lt;br /&gt;
| 3,3V/5V&lt;br /&gt;
| MIPS32&lt;br /&gt;
| 80 MHz&lt;br /&gt;
| ab 32 KB&lt;br /&gt;
| 8 - 32 KB&lt;br /&gt;
| 16 x 10bit&lt;br /&gt;
| -&lt;br /&gt;
| 1 mit IRDA&lt;br /&gt;
|&lt;br /&gt;
| Spannungsregler, JTAG&lt;br /&gt;
| [http://de.farnell.com Farnell] ca. 4,83 €&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.nxp.com/ Philips/NXP]&lt;br /&gt;
| LPC2388&lt;br /&gt;
| Full&lt;br /&gt;
| 144&lt;br /&gt;
| 3,3V/5V&lt;br /&gt;
| ARM7&lt;br /&gt;
| 72MHz&lt;br /&gt;
| 512KB&lt;br /&gt;
| 32KB&lt;br /&gt;
| 8 x 10bit&lt;br /&gt;
| 1 x 10bit, 6 PWM&lt;br /&gt;
| 2 USART, 2 CAN&lt;br /&gt;
| SPI, I²C, SSC&lt;br /&gt;
| SD/MMC, Ethernet 10 Mbit, Businterface, JTAG&lt;br /&gt;
| [http://de.digikey.com/ Digikey] ca. 8 €&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.st.com/ ST]&lt;br /&gt;
| STM32F10x&lt;br /&gt;
| Full&lt;br /&gt;
| 36..144&lt;br /&gt;
| 3,3V/5V&lt;br /&gt;
| Cortex-M3&lt;br /&gt;
| 72MHz&lt;br /&gt;
| 512KB&lt;br /&gt;
| 64KB&lt;br /&gt;
| 21 x 12bit&lt;br /&gt;
| 2 x 12bit, 32 PWM&lt;br /&gt;
| 5 USART, 1 CAN&lt;br /&gt;
| SPI, I²C, SSC&lt;br /&gt;
| Siehe Artikel [[STM32]]&lt;br /&gt;
| [http://de.farnell.com/ Farnell] ab ca. 5 €&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.st.com/ ST]&lt;br /&gt;
| STM32F4xx&lt;br /&gt;
| Full + Hi&lt;br /&gt;
| 64..176&lt;br /&gt;
| 3,3V/5V&lt;br /&gt;
| Cortex-M4&lt;br /&gt;
| 168MHz&lt;br /&gt;
| 1024KB&lt;br /&gt;
| 192KB&lt;br /&gt;
| 24 x 12bit&lt;br /&gt;
| 2 x 12bit, 32 PWM&lt;br /&gt;
| 6 USART, 2 CAN&lt;br /&gt;
| SPI, I²C, SSC&lt;br /&gt;
| Siehe Artikel [[STM32]]&lt;br /&gt;
| [http://de.mouser.com/ Mouser] ab ca. 7 €&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Alle mit „USB OTG“ beworbenen Schaltkreise sind als Host-Controller&lt;br /&gt;
&#039;&#039;und&#039;&#039; Device-Controller verwendbar. Mikrocontroller mit High-Speed-USB sind selten.&lt;br /&gt;
&lt;br /&gt;
=== Implementierung in Software auf Atmel AVR ===&lt;br /&gt;
Solche Hostcontroller sind nur für Low-Speed-Geräte geeignet, in der Regel Tastaturen, Mäuse und ggf. Joysticks oder ähnliche HID-Geräte.&lt;br /&gt;
&lt;br /&gt;
* [http://www.asahi-net.or.jp/~qx5k-iskw/robot/usbhost.html Reine Softwarelösung, kann nur USB Low Speed] (Seite auf japanisch, mit [http://babelfish.altavista.com/ Babelfish] übersetzen lassen). &lt;br /&gt;
* [http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/blh36_cdl28_dct23/blh36_cdl28_dct23/index.html SIAM32 USB HC] - Software Implemented Atmel Mega32 Universal Serial Bus Host Controller (Atmega32, GPL)&lt;br /&gt;
&amp;lt;!-- * [http://obdev.at/products/avrusb/index-de.html OpenSource Lösung] OpenSource Lösung auf http://obdev.at (Nur USB Device, kein USB Host) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Software-Implementierungen auf anderen Mikrocontrollern scheitern wegen zu geringer Taktfrequenzen bzw. Durchsatzraten, oder – bei leistungsstärkeren Controllern – wegen Sinnlosigkeit durch Verfügbarkeit von Mikrocontrollern mit USB (siehe oben).&lt;br /&gt;
&lt;br /&gt;
=== Spezielle Schaltkreise ===&lt;br /&gt;
&lt;br /&gt;
USB-Schaltkreise, die vorzugsweise für den Anschluss an ein „Externes Businterface“ eines Mikrocontrollers oder per [[SPI]] vorgesehen sind.&lt;br /&gt;
&lt;br /&gt;
* [http://www.nxp.com/products/connectivity/usb/products/index.html#hostc Produkte von NXP] (ehem.Philips), bspw. ISP1760&lt;br /&gt;
* SL811HST von [http://www.cypress.com/ Cypress] (Host/Device/OTG möglich)&lt;br /&gt;
* VNC1L von [http://www.vinculum.com/ Vinculum]&lt;br /&gt;
* [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3639 MAX3421E] z.&amp;amp;nbsp;B. verwendet im [http://www.circuitsathome.com/category/mcu/arduino/usb-shield Arduino USB Host Shield] von Circuits@Home&lt;br /&gt;
* [http://www.ghielectronics.com/catalog/product/340 ALFAT SoC Processor] - A seamless way to access files on SD &amp;amp; MMC cards and on USB memory drives. Simple commands are used on [[UART]] (serial), [[SPI]] or [[I2C]] to access files at high rates. &lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es eine Reihe Schaltkreise, die einen PCI-Bus haben. Diese sind für Mikrocontrollerprojekte in der Regel nicht zu gebrauchen.&lt;br /&gt;
&lt;br /&gt;
=== USB HOST taugliche Stacks ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/75254 Freier USB-Stack für Embedded Systeme (LGPL)] von Benedikt Sauter (Treiber für SL811HS von Cypress). Source auf [http://svn.berlios.de/svnroot/repos/usbport/trunk/ svn.berlios.de]&lt;br /&gt;
* [https://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/blh36_cdl28_dct23/blh36_cdl28_dct23/index.html SIAM32 USB HC] - Software Implemented Atmel Mega32 Universal Serial Bus Host Controller (Atmega32)&lt;br /&gt;
&lt;br /&gt;
=== Fertige Module mit einem USB-Host ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.vinculum.com/prd_vdip1.html VDIP1] von FTDI (UART, SPI und parallel)&lt;br /&gt;
* [http://www.elv.de/output/controller.aspx?cid=74&amp;amp;detail=10&amp;amp;detail2=20659 STI 100] von elv (UART und SPI)&lt;br /&gt;
* [http://www.rz-robotics.de/z-module/z-usb/ Z-USB] von rz-robotics (UART und SPI, kann auch stehend montiert werden)&lt;br /&gt;
* [http://www.fischl.de/usbsticklogger/ USBStickLogger] OpenSource-Projekt, Bausatz verfügbar (UART)&lt;br /&gt;
* [http://www.usbula.com USBula] Serial to USB-Flash-Drive Bridge Firmware, Demoboard verfügbar (UART)&lt;br /&gt;
&lt;br /&gt;
== USB-Devices ==&lt;br /&gt;
&lt;br /&gt;
===Implementierung in Software===&lt;br /&gt;
* [http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm IgorPlug-USB - Reine Softwarelösung. Kann nur USB Low Speed (theoretisch 1.5Mbit/s).]&lt;br /&gt;
* [http://www.obdev.at/vusb/ V-USB] - gleiches Prinzip wie IgorPlug, aber Entwickler-Schnittstellen in C, englisch kommentierter Code. Projekt von [http://www.obdev.at/ Objective Development]. Viele Folgeprojekte. Beispielsweise:&lt;br /&gt;
** [http://www.recursion.jp/avrcdc/ AVR-CDC] – Ein USB-RS232C-Interface mittels CDC-Protokoll (Communication Device Class) bspw. mit ATtiny45. Kein Treiber erforderlich, nur .INF-Datei. Von Osamu Tamura.&lt;br /&gt;
** [http://www.recursion.jp/avrcdc/ CDC-IO] Ein experimentelles 18-bit Parallelport mittels AVR-Mikrocontroller (ATmega8/48/88). Von Osamu Tamura.&lt;br /&gt;
** [http://1010.co.uk/avrhid.html AVR-HID] - Low budget USB sensor input into Pure Data/Supercollider and other free softwares based around the ATmega8 microcontroller. This allows for very fast, multiple sensor input at high resolutions on a range of platforms (GNU/Linux, MAC OS X, Windows). Based on workshops with Derek Holzer.&lt;br /&gt;
* [http://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny] - Programmiergerät für AVR, Lizenz: GPL&lt;br /&gt;
* [http://www.elektor.de/Default.aspx?tabid=27&amp;amp;art=5551005&amp;amp;PN=On AVR steuert USB] und [http://www.elektor.de/Default.aspx?tabid=27&amp;amp;art=5551006&amp;amp;PN=On Universeller USB-Treiber] in der Zeitschrift [http://www.elektor.de Elektor] März 2007. Reine Softwarelösung für ein USB-I/O-Board mit einem ATmega32 und einem [http://libusb-win32.sourceforge.net/ &#039;&#039;open source&#039;&#039; USB Treiber].&lt;br /&gt;
* [http://www.sprut.de/electronic/pic/projekte/usb4all/usb4all.htm USB Client für universelle Steuerungsaufgaben mit PIC18F2455 oder PIC18F2550]&lt;br /&gt;
* Für MSP430 gibt es mittlerweile eine Implementation [http://mecrisp.sourceforge.net/mecrimus-b.htm] und einen darauf aufbauenden Bootloader [https://github.com/simpleavr/boot430].&lt;br /&gt;
&lt;br /&gt;
===Spezielle USB-µC===&lt;br /&gt;
&lt;br /&gt;
* Diverse µCs von [http://www.cypress.com/ Cypress], siehe unten&lt;br /&gt;
* TUSBxxxx-Serie von [http://www.ti.com/ Texas Instruments] ebenfalls mit [[8051]]-kompatiblem Mikrocontroller ([http://www.ime.jku.at/tusb/ Beispiel Projekt] von [http://www.weinga-unity.at.tt Weichinger Klaus] (EXPL_DHTML.C  Virus ?))&lt;br /&gt;
* PIC18F2455/2550/4455/4550/67J50/67J55/87J50/87J55 sowie alle PIC24FXXXGBXXX von [http://www.microchip.com/ Microchip], &amp;amp;uuml;ppig ausgestattet mit USB, seriellem Port (RS232/SPI), PWM-Ausg&amp;amp;auml;ngen, A/D-Wandler und vielen IO-Pins&lt;br /&gt;
* [http://www.freescale.com/ Freescale]&lt;br /&gt;
** 69HC908JB8 - 20 Pin DIP . . . MC6&#039;&#039;&#039;8&#039;&#039;&#039;HC908JB8 ?&lt;br /&gt;
** 69HC908JB16 - Mehr Peripherie u.a. RS232&lt;br /&gt;
** 69HC908JG16 - Mit A/D wandler&lt;br /&gt;
** 69HC908JW32 - Mehr Speicher, mehr Ports&lt;br /&gt;
* [[LPC2000]]/3000-Reihe von NXP (LPC2888: High Speed USB 480Mbps)&lt;br /&gt;
* C8051F320 &amp;amp; C8051F340 von Silicon Laboratories (USB, UART, SPI, SMBus, 10-Bit-ADC, Komperator, integr. Spannungsregler &amp;amp; Oszillator)&lt;br /&gt;
* [[AT91SAM]] Familie von Atmel, ARM7-basiert, nicht OTG-fähig&lt;br /&gt;
* [[AVR32]] ([http://www.atmel.com/products/avr/uc3.asp?category_id=163&amp;amp;family_id=607 AT32UC3]A/B) Familie von Atmel mit AVR32-Kern ohne MMU für einfachere Firmware, OTG-fähig, auch High-Speed, Externes Businterface, Ethernet. Alle AT32UC3A or -B&#039;s haben vorprogrammierten USB Device Firmware Upgrade (DFU) bootloader.&amp;lt;ref&amp;gt;http://www.atmel.com/dyn/resources/prod_documents/doc7818.pdf&amp;lt;/ref&amp;gt; &lt;br /&gt;
* [http://www.atmel.com/dyn/products/devices.asp?family_id=607#1761 AT90USB Familie] von Atmel. &lt;br /&gt;
** Eine Experimentierplatine und eine [http://www.ssalewski.de/Misc.html.de GPL Library für den AT90USB1287] gibt es von Dr. Stefan Salewski. Siehe auch Forenbeitrag [http://www.mikrocontroller.net/topic/61499#483966 Anwendersoftware (Generic HID Demo) für den AT90USBKEY].&lt;br /&gt;
** [http://www.fourwalledcubicle.com/LUFA.php LUFA] (Lightweight USB Framework for AVRs) is an open source USB library for the USB-enabled AVR microcontrollers. It is written from scratch and provides an easy to use, clean interface for rapid firmware development (MIT). Alter Name: MyUSB&lt;br /&gt;
** [http://freaklabs.org/index.php/FreakUSB-Open-Source-USB-Device-Stack.html FreakUSB Open Source USB Device Stack] (mod. BSD Lizenz)&lt;br /&gt;
* Atmel&lt;br /&gt;
** ATmega(8|16|32)U2 - &lt;br /&gt;
** ATmega(16|32)U4 - 1x USB 2.0 full-speed/low speed device&lt;br /&gt;
** (USB Appnotes AVR270..273, 282, 287, 293)&lt;br /&gt;
&lt;br /&gt;
Alle hier genannten Mikrocontroller haben keinen USB-Host (nur Client)!&lt;br /&gt;
&lt;br /&gt;
Eine Auswahl:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable sortable&amp;quot; id=&amp;quot;usb_controller&amp;quot; style=&amp;quot;border-collapse:collapse;&amp;quot;&lt;br /&gt;
! Hersteller&lt;br /&gt;
! IC&lt;br /&gt;
! Speed&lt;br /&gt;
! Pins&lt;br /&gt;
! Ucc/Uio&lt;br /&gt;
| CPU Takt&lt;br /&gt;
! Quarz&lt;br /&gt;
! Flash&lt;br /&gt;
! RAM&lt;br /&gt;
! ADU&lt;br /&gt;
! DAU/PWM&lt;br /&gt;
! Async&lt;br /&gt;
! Sync&lt;br /&gt;
! Extras&lt;br /&gt;
! Bezug&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.cypress.com/ Cypress]&lt;br /&gt;
| AN2131&amp;lt;br&amp;gt;AN2135&lt;br /&gt;
| Full&lt;br /&gt;
| 44&lt;br /&gt;
| 3,3V/5V&lt;br /&gt;
| 8051 24MHz&lt;br /&gt;
| 12MHz&lt;br /&gt;
| 0&lt;br /&gt;
| 4KB&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| UART&lt;br /&gt;
| I²C&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;veraltet&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.cypress.com/ Cypress]&lt;br /&gt;
| CY7C68013A&lt;br /&gt;
| High&lt;br /&gt;
| 56,100,128&lt;br /&gt;
| 3,3V/5V&lt;br /&gt;
| 8051 48MHz&lt;br /&gt;
| 24MHz Grundton&lt;br /&gt;
| 0&lt;br /&gt;
| 16KB&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| 2 UART&amp;lt;br&amp;gt;(ab 100 Pin)&lt;br /&gt;
| I²C&lt;br /&gt;
| GPIF (State Machine)&lt;br /&gt;
| [http://de.digikey.com/ Digikey] ca. 11,28 €, [http://www.trade-shop.de/catalog/index.php?cPath=72_173 Air Electronics] ca. 9 €&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.cypress.com/ Cypress]&lt;br /&gt;
| CYUSB3014&lt;br /&gt;
| Super&lt;br /&gt;
| 121 (BGA)&lt;br /&gt;
| 1,8V&lt;br /&gt;
| ARM9&lt;br /&gt;
| ?&lt;br /&gt;
| 0&lt;br /&gt;
| 256KB?&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| 2 UART&lt;br /&gt;
| I²C&lt;br /&gt;
| GPIF II (State Machine)&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| Microchip&lt;br /&gt;
| PIC18F2550&lt;br /&gt;
| Full&lt;br /&gt;
| 28&lt;br /&gt;
|&lt;br /&gt;
| PIC&lt;br /&gt;
| 12MHz&lt;br /&gt;
| 16K x 16bit&lt;br /&gt;
| 2KB&lt;br /&gt;
| 8 x 10bit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.reichelt.de/ Reichelt] ca. 7,95 €&lt;br /&gt;
|-&lt;br /&gt;
| Atmel&lt;br /&gt;
| AT91SAM7S64&lt;br /&gt;
| Full&lt;br /&gt;
| 64&lt;br /&gt;
| 3,3V/5V&lt;br /&gt;
| ARM7 55MHz&lt;br /&gt;
| für Bootloader: 18,432MHz&lt;br /&gt;
| 64KB&lt;br /&gt;
| 16KB&lt;br /&gt;
| -&lt;br /&gt;
| 4 PWM&lt;br /&gt;
| 2 USART&lt;br /&gt;
| SPI, I²C, SSC&lt;br /&gt;
| größere Chips auch mit Ethernet&lt;br /&gt;
| [http://www.reichelt.de/ Reichelt] ca. 6,25 €&lt;br /&gt;
|-&lt;br /&gt;
| Philips/NXP&lt;br /&gt;
| LPC2378&lt;br /&gt;
| Full&lt;br /&gt;
| 144&lt;br /&gt;
| 3,3V/5V&lt;br /&gt;
| ARM7 72MHz&lt;br /&gt;
| bspw. 12MHz&lt;br /&gt;
| 512KB&lt;br /&gt;
| 32KB&lt;br /&gt;
| 8 x 10bit&lt;br /&gt;
| 1 x 10bit, 6 PWM&lt;br /&gt;
| 2 USART, 2 CAN&lt;br /&gt;
| SPI, I²C, SSC&lt;br /&gt;
| SD/MMC, Ethernet 10 Mbit, Businterface&lt;br /&gt;
| [http://de.digikey.com/ Digikey] ca. 7,85 €&lt;br /&gt;
|-&lt;br /&gt;
| Texas Instruments&lt;br /&gt;
| MSP430F55xx&lt;br /&gt;
| Full&lt;br /&gt;
| bis 80&lt;br /&gt;
| 3,3V&lt;br /&gt;
| MSP430 25MHz&lt;br /&gt;
| bspw. 24MHz&lt;br /&gt;
| bis 128KB&lt;br /&gt;
| bis 8+2KB&lt;br /&gt;
| 8 x 12bit&lt;br /&gt;
| PWM&lt;br /&gt;
| 2 USART&lt;br /&gt;
| SPI, I²C&lt;br /&gt;
| verschiedene Ausbaustufen&lt;br /&gt;
| [http://www.ti.com/ TI] zurzeit als Muster&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.st.com/ ST]&lt;br /&gt;
| STM32F10x&lt;br /&gt;
| Full&lt;br /&gt;
| 36..144&lt;br /&gt;
| 3,3V/5V&lt;br /&gt;
| Cortex-M3&lt;br /&gt;
| 72MHz&lt;br /&gt;
| 512KB&lt;br /&gt;
| 64KB&lt;br /&gt;
| 21 x 12bit&lt;br /&gt;
| 2 x 12bit, 32 PWM&lt;br /&gt;
| 5 USART, 1 CAN&lt;br /&gt;
| SPI, I²C, SSC&lt;br /&gt;
| Siehe Artikel [[STM32]]&lt;br /&gt;
| [http://de.farnell.com/ Farnell] ab ca. 5 €&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.silabs.com/ Silicon Laboratories]&lt;br /&gt;
| C8051T3xx, -T6xx, -F3xx, -F6xx&lt;br /&gt;
| Full&lt;br /&gt;
| 24 28 32 48&lt;br /&gt;
| 1,8..5,25V&lt;br /&gt;
| 8051&lt;br /&gt;
| 25/48MHz&lt;br /&gt;
| 8KB..64KB&lt;br /&gt;
| 1,25..256KB&lt;br /&gt;
| 1 x 10bit, 500 ksps, 23 ins&lt;br /&gt;
| 5 x PWM&lt;br /&gt;
| 2 x UART&lt;br /&gt;
| SPI, I²C&lt;br /&gt;
| Temperatursensor, Komparator, 4 x 16bit timer&lt;br /&gt;
| [http://de.mouser.com/Search/Refine.aspx?Keyword=C8051+usb&amp;amp;FS=True&amp;amp;Ns=Pricing Mouser] OTP ab 0,81 €, Flash ab 1,11 €&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.atmel.com/products/microcontrollers/arm/sam3u.aspx Atmel]&lt;br /&gt;
| SAM3U&lt;br /&gt;
| High&lt;br /&gt;
| 100 144&lt;br /&gt;
| 1,62..3,6V&lt;br /&gt;
| Cortex M3&lt;br /&gt;
| 96MHz&lt;br /&gt;
| 64..256KB&lt;br /&gt;
| 20..52KB&lt;br /&gt;
| 8-channel 12-bit 1MSPS, 8-channel 10-bit &lt;br /&gt;
| bis zu 7 x PWM&lt;br /&gt;
| bis zu 4 x UART&lt;br /&gt;
| SPI, I²C, I2S, 1 HSMCI (SDIO/SD/MMC)&lt;br /&gt;
| 3 x 16bit timer, 32-bit Real Time Timer, bis zu 96 IO-Pins&lt;br /&gt;
| [http://de.mouser.com/Semiconductors/Embedded-Processors-Controllers/_/N-6hpef?Keyword=sam3u&amp;amp;Ns=Pricing Mouser] ab 4,09 €&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Ucc/Uio&#039;&#039;&#039; gibt die maximale Betriebsspannung und die maximale Eingangsspannung an Eingabeports an. 3,3V/3,3V heißt: nicht 5V-verträglich!&lt;br /&gt;
* &#039;&#039;&#039;Takt:&#039;&#039;&#039; CPU-Taktfrequenz, bei Microchip ehrlicherweise durch 4 geteilt&lt;br /&gt;
* &#039;&#039;&#039;Async:&#039;&#039;&#039; Anzahl und Art der asynchron-seriellen Schnittstellen (also mit Startbit operierend)&lt;br /&gt;
* &#039;&#039;&#039;Sync:&#039;&#039;&#039; Anzahl und Art der synchron-seriellen Schnittstellen (also mit einer Taktleitung, also auch I²C)&lt;br /&gt;
* &#039;&#039;&#039;SSC:&#039;&#039;&#039; Serielles Interface besonders für Audiochips, verschiedene Namen bei den Mikrocontroller-Herstellern&lt;br /&gt;
&lt;br /&gt;
===Via µC ansteuerbare USB-Controller===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable sortable&amp;quot; id=&amp;quot;usb_controller&amp;quot; style=&amp;quot;border-collapse:collapse;&amp;quot;&lt;br /&gt;
! IC&lt;br /&gt;
! Hersteller&lt;br /&gt;
! Host oder Device&lt;br /&gt;
! IC-Pins&lt;br /&gt;
! Interface&lt;br /&gt;
! Beschreibung&lt;br /&gt;
! Bezugs-Quelle(n)&lt;br /&gt;
! Sonstiges&lt;br /&gt;
|-&lt;br /&gt;
| FT232&amp;lt;br&amp;gt;FT245&lt;br /&gt;
| [http://www.ftdichip.com/ FTDI]&lt;br /&gt;
| Device&lt;br /&gt;
| 28-32&lt;br /&gt;
| RS232&amp;lt;br&amp;gt;parallel 8 bit &lt;br /&gt;
| 1 bidirektionale FIFO **&lt;br /&gt;
| [[Elektronikversender#Reichelt|Reichelt]], ab 1,95 €&lt;br /&gt;
| [http://www.intra2net.com/de/produkte/opensource/ftdi/ libftdi] - &#039;&#039;FTDI (bitbang) software collection&#039;&#039; von Intra2net (Opensource)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| FT232R&lt;br /&gt;
| [http://www.ftdichip.com/ FTDI]&lt;br /&gt;
| Device&lt;br /&gt;
| 28-32&lt;br /&gt;
| RS232/Bitbang/CBUS&lt;br /&gt;
| 1 bidirektionale FIFO **&lt;br /&gt;
| [[Elektronikversender#Reichelt|Reichelt]], ab 3,15 €&lt;br /&gt;
| [http://www.intra2net.com/de/produkte/opensource/ftdi/ libftdi] - &#039;&#039;FTDI (bitbang) software collection&#039;&#039; von Intra2net (Opensource)&lt;br /&gt;
|-&lt;br /&gt;
| FT2232D&lt;br /&gt;
| [http://www.ftdichip.com/ FTDI]&lt;br /&gt;
| Device&lt;br /&gt;
| 48&lt;br /&gt;
| RS232 / parallel 8 bit / I2C, SPI, JTAG&lt;br /&gt;
| 2 bidirektionale FIFOs **&lt;br /&gt;
| [[Elektronikversender#csd-electronics|csd-electronics]] [[Elektronikversender#Watterott electronic|Watterott electronic]]&lt;br /&gt;
| [http://www.intra2net.com/de/produkte/opensource/ftdi/ libftdi] - &#039;&#039;FTDI (bitbang) software collection&#039;&#039; von Intra2net (Opensource)&lt;br /&gt;
|-&lt;br /&gt;
| FT2232H&lt;br /&gt;
| [http://www.ftdichip.com/ FTDI]&lt;br /&gt;
| Device&lt;br /&gt;
| 64&lt;br /&gt;
| RS232 / (synchron/asynchron) parallel 8 bit / I2C, SPI, JTAG&lt;br /&gt;
| 2 bidirektionale FIFOs, HS **&lt;br /&gt;
| &lt;br /&gt;
| [http://www.intra2net.com/de/produkte/opensource/ftdi/ libftdi] - &#039;&#039;FTDI (bitbang) software collection&#039;&#039; von Intra2net (Opensource)&lt;br /&gt;
|-&lt;br /&gt;
| FT4232H&lt;br /&gt;
| [http://www.ftdichip.com/ FTDI]&lt;br /&gt;
| Device&lt;br /&gt;
| 64&lt;br /&gt;
| RS232 / I2C, SPI, JTAG (2 Kanäle)&lt;br /&gt;
| 4 bidirektionale FIFOs, HS **&lt;br /&gt;
| &lt;br /&gt;
| [http://www.intra2net.com/de/produkte/opensource/ftdi/ libftdi] - &#039;&#039;FTDI (bitbang) software collection&#039;&#039; von Intra2net (Opensource)&lt;br /&gt;
|-&lt;br /&gt;
| FT232H&lt;br /&gt;
| [http://www.ftdichip.com/ FTDI]&lt;br /&gt;
| Device&lt;br /&gt;
| 48&lt;br /&gt;
| RS232 / (synchron/asynchron) parallel 8 bit /I2C, SPI, JTAG/CBUS&lt;br /&gt;
| 1 bidirektionale FIFOs, HS **&lt;br /&gt;
| [[Elektronikversender#Reichelt|Reichelt]], ab 3,20 €&lt;br /&gt;
| [http://www.intra2net.com/de/produkte/opensource/ftdi/ libftdi] - &#039;&#039;FTDI (bitbang) software collection&#039;&#039; von Intra2net (Opensource)&lt;br /&gt;
|-&lt;br /&gt;
| PDIUSBD11&lt;br /&gt;
| [http://www.semiconductors.philips.com Philips]&lt;br /&gt;
| Device&lt;br /&gt;
|&lt;br /&gt;
| I²C&lt;br /&gt;
| USB-Device Controller&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;b&amp;gt;abgekündigt&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| PDIUSBD12&lt;br /&gt;
| [http://www.semiconductors.philips.com Philips]&lt;br /&gt;
| Device&lt;br /&gt;
| 28&lt;br /&gt;
| parallel 8 bit&lt;br /&gt;
| 1 bidirektionale FIFO **&lt;br /&gt;
| [[Elektronikversender#Reichelt|Reichelt]], ab 2,65 €&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| MAX3420E&lt;br /&gt;
| [http://www.maxim-ic.com Maxim]&lt;br /&gt;
| Device&lt;br /&gt;
| 24-32&lt;br /&gt;
| SPI&lt;br /&gt;
| Fullspeed-Controller, 4 Endpoints&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[USBN960x]]&lt;br /&gt;
| National&lt;br /&gt;
| Device&lt;br /&gt;
| 28&lt;br /&gt;
| Datenbus 8 bit, SPI&lt;br /&gt;
| Fullspeed-Controller, 7 Endpoints, 3,3-V-Längsregler enthalten&lt;br /&gt;
| [[Elektronikversender#Reichelt|Reichelt]], ab 4,65 €&lt;br /&gt;
| Siehe [[USBN960x]], &amp;lt;b&amp;gt;NRND&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.silabs.com/tgwWebApp/public/web_content/products/Microcontrollers/Interface/en/interface_documentation.htm CP210x]&lt;br /&gt;
| [http://www.silabs.com Silabs]&lt;br /&gt;
| Device&lt;br /&gt;
|&lt;br /&gt;
| UART&lt;br /&gt;
| USB2.0 kompatibler (arbeitet Fullspeed) UART-USB Umsetzer.&lt;br /&gt;
| &lt;br /&gt;
| Sehr kompakt, Intel MAC OSX: [http://www.mikrocontroller.net/topic/67398#542129 Forenbeitrag] beachten&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.silabs.com/products/interface/usbtouart/Pages/usb-to-uart-bridge.aspx CP2110]&lt;br /&gt;
| [http://www.silabs.com Silabs]&lt;br /&gt;
| Device&lt;br /&gt;
| 24-28&lt;br /&gt;
| UART&lt;br /&gt;
| UART-USB ohne Treiber (HID-Klasse)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.silabs.com/products/interface/usbtouart/Pages/HID-USB-to-SMBus-Bridge.aspx CP2112]&lt;br /&gt;
|[http://www.silabs.com Silabs]&lt;br /&gt;
|Device&lt;br /&gt;
|24&lt;br /&gt;
|SMBUS&lt;br /&gt;
|SMBUS-USB HID&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.prolific.com.tw/eng/Products.asp?ID=59 PL2303]&lt;br /&gt;
| [http://www.prolific.com.tw/ Prolific]&lt;br /&gt;
| Device&lt;br /&gt;
| 28&lt;br /&gt;
| RS232&lt;br /&gt;
| „USB CDC 1.1“-konform&lt;br /&gt;
| &lt;br /&gt;
| Im Gegensatz zum FT232 sollte kein Treiber erforderlich sein: Von wegen!&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.oti.com.tw/oti-6858.html OTI-6858]&lt;br /&gt;
| [http://www.oti.com.tw/ Ours Technology Inc.]&lt;br /&gt;
| Device&lt;br /&gt;
| 28&lt;br /&gt;
| UART&lt;br /&gt;
| USB to RS232 Bridge Controller - USB2.0 bis 12MB&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.arkmicro.com/en/products/view.php?id=10 ARK3116T]&lt;br /&gt;
| [http://www.arkmicro.com/ Arkmicro]&lt;br /&gt;
| Device&lt;br /&gt;
|&lt;br /&gt;
| UART&lt;br /&gt;
| USB-to-UART Controller - USB2 bis 3MB)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TUSB3410&lt;br /&gt;
| [http://focus.ti.com/ Texas Instruments]&lt;br /&gt;
| Device&lt;br /&gt;
| &lt;br /&gt;
| UART&lt;br /&gt;
| USB to Serial Port Controller &lt;br /&gt;
| [[Elektronikversender#Digi-Key|Digi-Key]], ca. 5,60 €&lt;br /&gt;
| USB 2.0 full Speed, Basis 8052 µC&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.ftdichip.com/Products/ICs/VNC1L.htm VNC1L]&lt;br /&gt;
| [http://www.vinculum.com/ Vinculum]&lt;br /&gt;
| 2x Host&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Dual USB Host-Controller&lt;br /&gt;
| [[Elektronikversender#Watterott electronic|Watterott electronic]]&lt;br /&gt;
| [http://freshmeat.net/projects/lvprog/?branch_id=71957&amp;amp;release_id=265079 LVProg] is an (X11/Qt)application for programming a ROM file into a Vinculum USB host controller from FTDI. (GPL v2)&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
[[USB-Stick am Mikrocontroller]]&lt;br /&gt;
|-&lt;br /&gt;
| SL811HST&lt;br /&gt;
| [http://www.cypress.com/ Cypress]&lt;br /&gt;
| 1x beides&lt;br /&gt;
| 48&lt;br /&gt;
| Datenbus 8 bit&lt;br /&gt;
| Controller 1 Port&lt;br /&gt;
| [[Elektronikversender#Digikey|Digikey]], [http://www.trade-shop.de/catalog/index.php?cPath=72_173 Air Electronics] ca. 8 €&lt;br /&gt;
| für OTG viel Außenbeschaltung erforderlich&lt;br /&gt;
|-&lt;br /&gt;
| ISP1160&lt;br /&gt;
| [http://www.nxp.com/ Philips/NXP]&lt;br /&gt;
| 2x Host&lt;br /&gt;
| 64&lt;br /&gt;
| Datenbus 16 bit&lt;br /&gt;
| Host-Controller 2 Ports&lt;br /&gt;
| [[Elektronikversender#Reichelt|Reichelt]], ca. 6,85 €&lt;br /&gt;
| für ATmega unzweckmäßig, eher für ARM-Prozessoren&lt;br /&gt;
|-&lt;br /&gt;
| MCP2210&lt;br /&gt;
| [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en556614 Microchip]&lt;br /&gt;
| Device&lt;br /&gt;
| 20 SOIC, SSOP&lt;br /&gt;
| USB nach SPI (Master) Bridge, GPIO&lt;br /&gt;
| USB SPI Bridge (HID-Klasse) + 9 GPIO / SPI CS &lt;br /&gt;
| [[Elektronikversender#Reichelt|Reichelt]], ca. 1,75 €&lt;br /&gt;
| Durch HID simpel anzusteuern, aber in der Praxis nur (sehr) langsame SPI (ca. 80 kbit/s @ 12Mbit/s SPI). HW Ansteuerung sehr simpel.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Reine FIFO-Schaltkreise sind nicht für benutzerspezifische&lt;br /&gt;
Deskriptoren geeignet.&lt;br /&gt;
Damit lassen sich nahezu keine klassenspezifische Geräte-Interfaces&lt;br /&gt;
realisieren.&lt;br /&gt;
Folglich kann man damit bspw. kein HID-Gerät bauen.&lt;br /&gt;
&lt;br /&gt;
NRND = Not recommended for new designs = wird alsbald abgekündigt&lt;br /&gt;
&lt;br /&gt;
UART: Gemeint sind die Signale RxD und TxD sowie Flusskontrolle /RTS und /CTS&lt;br /&gt;
&lt;br /&gt;
RS232: Gemeint ist eine UART mit den 4 Modemsteuersignalen /DTR, /DSR, /DCD und /RI&lt;br /&gt;
&lt;br /&gt;
Tipp: USB-Handy-Datenkabel arbeiten oft mit FT232-ähnlichen Chips!&lt;br /&gt;
&lt;br /&gt;
===USB-Transceiver===&lt;br /&gt;
USB-Transceiver können nur verwendet werden für:&lt;br /&gt;
* speziell dafür ausgelegte Mikrocontroller (PIC 18F2455/2550/4455/4550 u.ä.)&lt;br /&gt;
* FPGAs (wenn diese nicht selbst über geeignete Portpins verfügen)&lt;br /&gt;
* [http://www.obdev.at/vusb/ V-USB] (Software-Anpassungen erforderlich)&lt;br /&gt;
Vorteil: Zwischen Transceiver und Mikrocontroller kann eine galvanische Trennstufe angeordnet werden.&lt;br /&gt;
&lt;br /&gt;
Heutzutage ist es besser, einen seriell ansteuerbaren USB-Controller (siehe oben) zu verwenden und dazwischen eine maßgeschneiderte galvanische Trennung.&lt;br /&gt;
Daher sind Transceiver heutzutage eher obsolet.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable sortable&amp;quot; id=&amp;quot;usb_controller&amp;quot; style=&amp;quot;border-collapse:collapse;&amp;quot;&lt;br /&gt;
! IC&lt;br /&gt;
! Hersteller&lt;br /&gt;
! Speed&lt;br /&gt;
! IC-Pins&lt;br /&gt;
! Interface&lt;br /&gt;
! Beschreibung&lt;br /&gt;
! Bezugs-Quelle(n)&lt;br /&gt;
|-&lt;br /&gt;
| MAX345xE&lt;br /&gt;
| [http://www.maxim-ic.com Maxim]&lt;br /&gt;
| ?&lt;br /&gt;
| 14-16&lt;br /&gt;
| -&lt;br /&gt;
| Transceiver&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ISP1106&lt;br /&gt;
| [http://www.nxp.com Philips/NXP]&lt;br /&gt;
| Low, Full&lt;br /&gt;
| 16&lt;br /&gt;
| -&lt;br /&gt;
| Transceiver&lt;br /&gt;
| [[Elektronikversender#Reichelt|Reichelt]], ca. 1,15 €&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===USB-Converter===&lt;br /&gt;
Es exisitieren eine Reihe von Adaptern, mit denen man ausgehend vom USB-Bus viele Standards und Protokolle emulieren und treiben kann, darunter RS-232, RS-422, RS-485, [[MODBUS]] und [[I2C]].&lt;br /&gt;
&lt;br /&gt;
== Tipps + Tricks ==&lt;br /&gt;
* Selbstgebastelte USB-Hardware an den PC nur über einen anständig konstruierten self-powered Hub anschließen - [http://www.mikrocontroller.net/topic/97331#841881 Forumbeitrag von Rufus t. Firefly]&lt;br /&gt;
* Es ist sinnvoll eigene Entwicklungen mit den Tools von usb.org zu testen, usbcv kann z.B. Fehler in USB-Deskriptoren oder bei der Enumeration aufdecken: [http://www.usb.org/developers/tools/usb20_tools/ usb20cv] [http://www.usb.org/developers/tools/ usb30cv]&lt;br /&gt;
* Eine [[Galvanische Trennung | galvanische Trennung]] von USB selbstzubauen ist sehr aufwändig [http://www.electronics-shop.dk/usb_isolation.htm?currency=EUR aber hier für 31,76€ zu haben].&lt;br /&gt;
Herausforderung bei USB ist&lt;br /&gt;
** das USB-Signal bidirektional ist&lt;br /&gt;
** USB keine Steuerleitungen hat, man kann nur aus der vollständigen Dekodierung der Daten erfahren, in welche Richtung die Daten jetzt gehen müssen. Dieses Problem betrifft V-USB-basierte Projekte nicht, eine solche Leitung lässt sich leicht nachrüsten.&lt;br /&gt;
** es sehr kurze Antwortzeiten von den USB-ICs verlangt (im Bereich von ~10 Bitzeiten!)&lt;br /&gt;
*Es gibt auf dem Markt einige wenige, aufwändige und damit teure Lösungen. Wer also ein galvanisch getrennte Schnittstelle braucht, sollte &#039;&#039;&#039;nicht&#039;&#039;&#039; USB nehmen. Allerdings ist es leicht möglich, einen USB-RS232/RS485 Wandler galvanisch auf der RS232/RS485 Seite zu trennen. &lt;br /&gt;
*Eine einfache Lösung wäre einen FT232 zu verwenden und diesen auf der TTL-Seite mit Optokopplern zu trennen.&lt;br /&gt;
*Die zur Zeit einfachste und kostengünstigste Möglichkeit zur galvanischen Trennung ist der ADUM3160BRWZ oder der ADuM4160 von Analog Devices.&lt;br /&gt;
**Einschränkungen: nur Full- und Low-Speed, keine automatische Erkennung der Übertragungsrate.&lt;br /&gt;
** ADuM3160 im AD Newsletter: [http://www.analog.com/en/interface/digital-isolators/adum3160/products/product.html]&lt;br /&gt;
** [https://www.it-wns.de/themes/kategorie/detail.php?artikelid=979&amp;amp;kategorieid=53&amp;amp;source=1 Leerplatine] für ADuM4160 im IT-WNS Webshop&lt;br /&gt;
** [http://www.mikrocontroller.net/topic/114555?goto=2065917#2065236 Forumsbeitrag] mit Eagle 3D Bild und Schaltplan&lt;br /&gt;
* [http://www.mikrocontroller.net/search?query=%2BUSB+%2Bgalvanisch&amp;amp;forums%5B%5D=1&amp;amp;forums%5B%5D=19&amp;amp;forums%5B%5D=9&amp;amp;forums%5B%5D=10&amp;amp;forums%5B%5D=2&amp;amp;forums%5B%5D=4&amp;amp;forums%5B%5D=3&amp;amp;forums%5B%5D=6&amp;amp;forums%5B%5D=17&amp;amp;forums%5B%5D=11&amp;amp;forums%5B%5D=8&amp;amp;forums%5B%5D=14&amp;amp;forums%5B%5D=12&amp;amp;forums%5B%5D=7&amp;amp;forums%5B%5D=5&amp;amp;forums%5B%5D=18&amp;amp;forums%5B%5D=15&amp;amp;forums%5B%5D=13&amp;amp;forums%5B%5D=16&amp;amp;max_age=-&amp;amp;sort_by_date=0 Suche nach USB und galvanischer Trennung im Forum]&lt;br /&gt;
&lt;br /&gt;
== Analysetools ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [https://www.eltima.com/products/usb-port-monitor/  USB Analyzer]  -  (14 tägige Demoversion, Kaufversion ca. 80€)&lt;br /&gt;
* [http://www.wireshark.org/ Wireshark] - Eigentlich Netzwerk Sniffer, kann aber in neueren Versionen auch USB (insbesondere unter Linux)  [http://wiki.wireshark.org/CaptureSetup/USB Wireshark Wiki, USB]&lt;br /&gt;
* [https://www.microsoft.com/en-us/download/details.aspx?id=44226  Microsoft Message Analyzer - ]  Der Netzwerk Sniffer von Microsoft kann auch USB&lt;br /&gt;
* [http://www.pcausa.com/Utilities/UsbSnoop/default.htm Sniff USB] - USB Sniffer - freeware - Windows&lt;br /&gt;
* [http://www.basic.io/ ALogic Analyzer] - Protokoll-Dekoder für USB, UART, I2C und SPI. Software mit Demos zum Download.&lt;br /&gt;
* [http://www.openvizsla.org/ OpenVizsla] ([http://www.kickstarter.com/projects/bushing/openvizsla-open-source-usb-protocol-analyzer/posts/62083 OpenVizsla auf kickstarter.com]) - OpenSource USB sniffer, basierend auf XMOS und FPGA (under dev. right now)&lt;br /&gt;
* [https://github.com/DIGImend/usbhid-dump  usbhid-dump]  -  Linux-Tool zum Auslesen des USB-HID-Report-Descriptors&lt;br /&gt;
* [http://www.nirsoft.net/utils/usb_devices_view.html  USBDeview]  -  Windows-Programm zur Darstellung aller USB-Geräte mit Ihren Parametern. (VID/PID, Seriennr., Treibern, usw)&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://janaxelson.com/usbchips.htm Links to USB Host and Device Controller Chips] by Jan Axelson.&lt;br /&gt;
* [http://www.eltima.com/products/usb-over-ethernet/ USB over Network]&lt;br /&gt;
* [http://replay.waybackmachine.org/20090210000605/http://g.fondeville.free.fr/usb_host_en.html Mass storage host USB example] - The purpose of this article is to introduce a host USB Full Speed implementation. This host is designed to control MASS storage peripherals like USB key, cameras, hard drive... ([[PIC]]18F452, Cypress SL811HS)&lt;br /&gt;
* [http://chaosradio.ccc.de/cre086.html ChaosradioExpress #86 USB] - Der Universal Serial Bus im Detail. Podcast mit Tim Pritlove (Moderation) und Daniel Mack &lt;br /&gt;
* [http://hackaday.com/2008/11/19/how-to-the-bus-pirate-universal-serial-interface/ Bus Pirate (hackaday.com)] - How-to: The Bus Pirate, universal serial interface USB &amp;lt;-&amp;gt; [[I2C]], [[SPI]], Async. Seriell [[UART]]. Firmware-Update für die [http://hackaday.com/2008/12/01/bus-pirate-firmware-update-v0c-jtag-and-more/ Ergänzung] u.a. für [[JTAG]]. Das Herzstück ist ein PIC24FJ64GA002.&lt;br /&gt;
* [http://www.sourceforge.net/projects/easyusb EasyUSB] - Generischer USB Treiber für Windows&lt;br /&gt;
* [http://www.eltima.com/products/usb-port-monitor/ USB Port Monitor]&lt;br /&gt;
* [http://www.embedded24.net AHID.DLL] - Noch ein generischer USB Treiber für Windows (C++/C#/VB/MinGW/wxWidgets)&lt;br /&gt;
* [http://www.embedded.com/design/219400265 Simple circuit prevents USB current overshoot during insertion] von Luciano Bordogna (MAXIM) auf www.embedded.com&lt;br /&gt;
* [http://www.circuitsathome.com/mcu/usb/usb-isolator USB-Isolator]&lt;br /&gt;
* [http://events.linuxfoundation.org/sites/events/files/slides/understand_usb_in_linux_krzysztof_opasiak.pdf Vortragsfolien von Krzysztof Opasiak (auf Seite 16 gibt es eine Übersicht der USB-Descriptor-Hierarchie) ]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:USB| ]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_In_System_Programmer&amp;diff=79510</id>
		<title>AVR In System Programmer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_In_System_Programmer&amp;diff=79510"/>
		<updated>2013-11-09T09:44:58Z</updated>

		<summary type="html">&lt;p&gt;Thomas: ISPnub zu Standalone hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einführung ==&lt;br /&gt;
&lt;br /&gt;
In-System-Programming (ISP) bedeutet, einen Mikrocontroller oder anderen programmierbaren Baustein im eingebauten Zustand zu programmieren. Dazu muss der Mikrocontroller entsprechend beschaltet sein. Das bedeutet, die benötigten Anschlüsse am Mikrocontroller müssen zugänglich und nicht ohne weitere Vorkehrungen anderweitig benutzt sein - siehe [http://www.atmel.com/images/atmel-2521-avr-hardware-design-considerations_application-note_avr042.pdf Atmel Application Note AVR042].&lt;br /&gt;
&lt;br /&gt;
Atmel verwendet für ihre 8-Bit RISC Mikrocontroller zum Teil unterschiedliche ISP-Protokolle. Das bekannteste davon wird einfach als ISP bezeichnet. Insgesamt findet man:&lt;br /&gt;
&lt;br /&gt;
;ISP:Der Normalfall. Bei vielen, aber nicht allen AVRs teilen sich [[SPI]]- und ISP-Schnittstelle die Pins. Je nach AVR gibt es leichte Unterschiede im Protokoll. Das Protokoll für einen Typ ist im Datenblatt unter &#039;&#039;Memory Programming -&amp;gt; Serial Downloading&#039;&#039; beschrieben.&lt;br /&gt;
;TPI:Tiny Programming Interface. Einige AVRs der Tiny-Serie, besonders die 6-Pin Tinys.&lt;br /&gt;
;PDI:Programming and Debugging Interface. Die XMEGAs.&lt;br /&gt;
;JTAG:AVRs mit [[JTAG]] Debugging-Schnittstelle lassen sich auch über JTAG in-system-programmieren.&lt;br /&gt;
;Bootloader:Einige wenige AVRs kommen bereits mit einem einprogrammierten [[Bootloader]]. Bei diesen kann man ein zum Bootloader passendes Programm nutzen um den AVR über eine im Bootloader definierte Schnittstelle programmieren. Auf Bootloadern basierende Systeme haben ansonsten ein Henne-Ei Problem. Irgendwie muss der Bootloader einmal konventionell in den AVR programmiert werden, zum Beispiel mit ISP.&lt;br /&gt;
&lt;br /&gt;
Atmels [[debugWire]] ist keine Programmierschnittstelle, sondern eine reines Debugging-Interface. Zum Programmieren verwendet man bei AVRs mit debugWire daher normalerweise ISP.&lt;br /&gt;
&lt;br /&gt;
Atmel hat für die AVR 8-Bit RISC Mikrocontroller mehrere Application Notes herausgegeben, auf deren Basis eine Vielzahl von Programmiergeräten (&#039;&#039;programmer&#039;&#039;) entwickelt wurden. &lt;br /&gt;
&lt;br /&gt;
Natürlich liefert Atmel auch eigene, fertige Programmiergeräte (AVRISP (mk I), AVRISP mk II, [[AVR-Dragon]], ...), Programmiersoftware (AVRProg, AVR Studio) und Entwicklungsboards mit integriertem Programmiergerät (z.&amp;amp;nbsp;B. [[STK500]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;color:darkred;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;FAQ/Tipp: &#039;&#039;&#039;&amp;quot;Welchen ISP-Adapter sollte man sich zulegen oder bauen?&amp;quot;&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man sollte sich einen fertigen, original Atmel (keinen Clone) ISP-Adapter kaufen. Zum Beispiel für ISP (und PDI) Programmierung &#039;&#039;&#039;Atmels original [[AVR_In_System_Programmer#Atmel_AVRISP_MKII|AVRISP mkII]] für rund 36,- Euro&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Das ist eine Investition, die viel Zeit und Ärger spart, denn es geht nichts über zuverlässiges Werkzeug. Beim Umgang mit µCs ist es sehr frustrierend an drei Fronten gleichzeitig zu kämpfen:&lt;br /&gt;
# Bugs in der Software, &lt;br /&gt;
# Bugs in der Schaltung und &lt;br /&gt;
# Bugs/Probleme beim ISP-Adapter-/PC-Gespann.&lt;br /&gt;
&lt;br /&gt;
Wenigstens Probleme mit dem ISP-Adapter lassen sich durch den Kauf eines zuverlässigen ISP-Adapters eliminieren. Siehe auch diverse Forenbeiträge u.a. [http://www.mikrocontroller.net/topic/91042#778908] und [http://www.mikrocontroller.net/topic/153841#1447882].&lt;br /&gt;
&lt;br /&gt;
Sehr unzuverlässig sind häufig billige oder selbstgebaute Programmierkabel mit nichts außer ein paar Widerständen. Unzuverlässig sind häufig auch billige oder selbstgebaute Programmierkabel mit einem einfachen Bustreiber. Nur weil sie bei manchen funktionieren heißt das nicht, dass sie überall problemlos funktionieren.&lt;br /&gt;
&lt;br /&gt;
Parallelport- (Druckerport-) ISP-Adapter funktionieren gar nicht, wenn man sie mit einem USB &amp;lt;-&amp;gt; Druckerport Adapter an einen USB-Port am PC anschließt. Einfach (unintelligente) ISP-Adapter für die serielle Schnittstelle funktionieren gar nicht oder extrem langsam, wenn man sie mit einem USB &amp;lt;-&amp;gt; Seriell Adapter am PC anschließt. Gute intelligente serielle Programmieradapter, wie der in Atmels STK500 eingebaute, funktionieren normalerweise mit einem USB-Adapter.&lt;br /&gt;
&lt;br /&gt;
Bei allen Programmieradaptern mit eigener Firmware, einschließlich der Original-Adapter von Atmel, ist man darauf angewiesen, dass der Hersteller wenn nötig Firmware-Updates bereitstellt. Bei Clones ist die Versorgung mit Firmware manchmal fraglich. &lt;br /&gt;
&lt;br /&gt;
Oftmals funktionieren auch die Treiber der Clones unter 64-Bit Betriebssystem nicht richtig oder nur mit Tricks, die leider wichtige Sicherheitsfunktionen des Betriebssystem abschalten. Der [[AVR_In_System_Programmer#Atmel_AVRISP_MKII|AVRISP mkII]] funktioniert dagegen auch unter Windows 7 (64-Bit).&lt;br /&gt;
&lt;br /&gt;
== Application Notes ==&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/DOC0943.PDF AVR910] (PDF) &amp;quot;&#039;&#039;Low-cost&#039;&#039;&amp;quot; &#039;&#039;In-system programming&#039;&#039; (&#039;&#039;&#039;AVRISP&#039;&#039;&#039;) beschreibt einen einfachen, kostengünstigen Programmieradapter zur Übertragung von Programmen in den Mikrocontroller. Auf dem Programmer befindet sich ein Mikrocontroller (natürlich von Atmel ;-), der serielle Steuerkommandos und Daten vom PC in Programmiersignale für den Mikrocontroller umsetzt.&lt;br /&gt;
&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc2568.pdf AVR911] (PDF) &#039;&#039;Open source serial programmer&#039;&#039; (&#039;&#039;&#039;AVROSP&#039;&#039;&#039;) beschreibt eine &#039;&#039;open source&#039;&#039; Programmiersoftware zur Übertragung von Programmen in den Mikrocontroller. &lt;br /&gt;
&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/doc1644.pdf AVR109] (PDF) &#039;&#039;Self-Programming&#039;&#039; mit Hilfe eines [[Bootloader|Bootloaders]]. Hier wird im Mikrocontroller zunächst ein mikrocontroller-spezifisches Bootloader-Programm abgelegt. Dieses Programm empfängt das eigentliche Benutzerprogramm oder Daten z.&amp;amp;nbsp;B. über einen seriellen Anschluss ([[UART]]), legt es ggf. im Speicher (Flash-ROM, EEPROM) ab und führt ggf. anschliessend das Benutzerprogramm aus.&lt;br /&gt;
&lt;br /&gt;
== Pinbelegung ==&lt;br /&gt;
===ISP===&lt;br /&gt;
Die Standard-Pinbelegung des ISP-Steckers zum Anschluss des Mikrocontrollers sieht nach obigen Application Notes und der [http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf AVR042] (PDF) folgendermaßen aus (Anschluss auf der Platine, Ansicht von oben). Atmel bevorzugt dabei bereits seit Jahren den 6-poligen Anschluss.&lt;br /&gt;
&lt;br /&gt;
[[Bild:avr-isp-pinout.png|right]]&lt;br /&gt;
  &lt;br /&gt;
  10-poliger       6-poliger&lt;br /&gt;
  Anschluss        Anschluss&lt;br /&gt;
  &lt;br /&gt;
  1 MOSI           1 MISO&lt;br /&gt;
  2 VCC            2 VCC&lt;br /&gt;
  3 - (*)          3 SCK&lt;br /&gt;
  4,6,8,10 GND     4 MOSI&lt;br /&gt;
  5 RESET          5 RESET&lt;br /&gt;
  7 SCK            6 GND&lt;br /&gt;
  9 MISO&lt;br /&gt;
&lt;br /&gt;
Pin 1 ist am Pfostenstecker mit einem kleinen Pfeil gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
Um Verwechslungen zu vermeiden, empfiehlt es sich, für die einzelnen Leitungen unterschiedliche Farben zu verwenden. Atmel hat dafür keine Festlegung getroffen, so dass es keinen festen Standard gibt. Üblich ist jedoch eine Farbzuordnung wie beim [https://guloshop.de/shop/Mikrocontroller-Programmierung/guloboard-G6::5.html guloboard]:&lt;br /&gt;
&lt;br /&gt;
  1 MISO  weiß&lt;br /&gt;
  2 VCC   rot&lt;br /&gt;
  3 SCK   blau&lt;br /&gt;
  4 MOSI  grün&lt;br /&gt;
  5 RESET gelb&lt;br /&gt;
  6 GND   schwarz&lt;br /&gt;
&lt;br /&gt;
(*) Einige Programmieradapter (Ponyprog-Adapter nach Lancos-Schaltplan) unterstützen an Pin 3 des 10-poligen Steckers eine LED (Kathode an Pin), die &amp;quot;Programmierzugriff&amp;quot; signalisieren soll. Dies ist aber kaum nützlich, daher wird der Pin auch von Atmel als N/C (not connected) definiert und beim original Atmel AVRISP mit GND verbunden.&lt;br /&gt;
&lt;br /&gt;
Der 10-polige Anschluss wurde von der Firma Kanda beim STK200 verwendet und ist deshalb auch als &amp;quot;Kanda-Standard&amp;quot; bekannt und war zur Zeit der STK200 Programmieradapter relativ weit verbreitet. Die Anschlussbelegung über einen 6-poligen Stecker stammt von Atmel selbst und ist platzsparender auf der Platine.&lt;br /&gt;
&lt;br /&gt;
Am besten kauft oder fertigt man sich einen Adapter 6 &amp;lt;-&amp;gt; 10 (siehe [http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=190], [http://www.watterott.com/de/AVR-ISP-Programmieradapter], [http://www.watterott.com/de/AVR-Programmier-Kabel], [https://guloshop.de/shop/Adapterkabel/Programmieradapterkabel-6-polig-10-polig-lang::9.html]), dann lassen sich praktisch alle Boards mit jedem Programmer programmieren.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Kabeloben.jpg]]&lt;br /&gt;
[[Datei:Kabelunten.jpg]]&lt;br /&gt;
[[Datei:isp_kab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Zehnpolige Messerleisten (Wannenstecker) zur Montage auf einer µC Platine zum verpolungssicheren Anschluss des Programmieradapters sind fast &amp;quot;überall&amp;quot; verfügbar, nach den sechspoligen muss man häufig etwas suchen. Mittlerweile sind sie endlich bei Reichelt erhältlich (WSL 6G).&amp;lt;br/&amp;gt;&lt;br /&gt;
Alternativ bleibt nur der Griff zu den nicht verpolungssicheren 2xN Stiftleisten (z.&amp;amp;nbsp;B. 2x40), wobei man eine Stiftleiste auf 2x3 Pole kürzt.&lt;br /&gt;
&lt;br /&gt;
Sechspolige Federleisten (Pfostenbuchsen) zum Anquetschen an ein Programmierkabel sind dagegen zumindest bei den großen Versendern und Distributoren erhältlich (z.&amp;amp;nbsp;B. von Bürklin  Art.53F3500; Conrad Art.701980-62; Farnell Art.1097021; Reichelt PFL 6). Kleine lokale Elektronikläden führen diese jedoch häufig nicht. Zu den sechpoligen Pfostenbuchsen gibt es keine Alternative, wenn man ein sechpoliges Programmierkabel bauen möchte. Zehnpolige Pfostenbuchsen lassen sich nicht auf sechs Pole kürzen. Korrektur: Man kann die äußeren pins  ( 2 rechts, 2 links) einfach rausdrücken, dann passt der 6pol in die Buchse. Verpolungsschutz besteht weiterhin.&lt;br /&gt;
&lt;br /&gt;
Je nach Programmieradapter hat der VCC-Anschluss unterschiedliche Funktionen:&lt;br /&gt;
&lt;br /&gt;
1. Versorgung des Programmieradapters mit Strom aus der Schaltung, wie es bei vielen Parallelport-Adaptern der Fall ist.&lt;br /&gt;
&lt;br /&gt;
2. Versorgung der Schaltung mit Strom aus dem Programmieradapter. Dies ist insbesondere beim STK500 möglich und dank dessen programmierbarer Versorgungsspannung manchmal ganz praktisch. &lt;br /&gt;
&lt;br /&gt;
3. Messung der Betriebsspannung der Schaltung, so dass der Programmieradapter sich auf diese Spannung einstellen kann und so ein 3,3 V Board mit 3,3 V und ein 5 V Board mit 5 V programmiert. So wie zum Beispiel beim AVRISP mkII. Daher wird VCC auf neueren Schaltbildern auch als Vtg oder VTref bezeichnet (Atmel kann sich da nicht auf eine Bezeichnung einigen).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Je nach verwendetem Programmer muss man daher sorgfältig auf die Beschaltung von VCC/Vtg/VTref und auf die Stromversorgung von Board und Programmer achten.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*[http://www.mikrocontroller.net/topic/301971#3234822 Forumsbeitrag]: Extrem kleiner ISP Header, wie?&lt;br /&gt;
*[http://www.mikrocontroller.net/topic/145711#1352516 Forumsbeitrag]: Kleinserie: ISP Programmierung mögl. ohne Stecker&lt;br /&gt;
&lt;br /&gt;
===TPI===&lt;br /&gt;
&lt;br /&gt;
Die TPI-Programmierung setzt sich aus mehreren Schichten zusammen: Hardware (Ansteuerung der IO-Pins), Speicher-Management (stellt Funktionen zum Flashen bereit) und der Speicher selbst.&lt;br /&gt;
&lt;br /&gt;
  Data  1 2 VCC&lt;br /&gt;
  Clock 3 4 N.C.&lt;br /&gt;
  Reset 5 6 GND&lt;br /&gt;
&lt;br /&gt;
Standard TPI connector used on e.g. STK600 and AVRISP mkII.&lt;br /&gt;
&lt;br /&gt;
===PDI===&lt;br /&gt;
====Atmel Board-Schnittstelle &amp;amp; AVRISP MkII ====&lt;br /&gt;
Für Mikrocontroller-Boards schlägt Atmel einen 6-Pin Header, 2,54 mm Raster, mit folgender Pinbelegung vor (Ansicht von Oben):&lt;br /&gt;
&lt;br /&gt;
 DATA  1 2  VCC&lt;br /&gt;
 N.C.  3 4  N.C.&lt;br /&gt;
  CLK  5 6  GND&lt;br /&gt;
&lt;br /&gt;
(N.C.: Not Connected, nicht verbunden). Diese Belegung wird auch von Atmels AVRISP MkII im PDI-Modus verwendet.&lt;br /&gt;
&lt;br /&gt;
Bei Atmels eigenem XPlain Eval-Kit und anderen Programmieradaptern geht es zur Zeit jedoch noch fröhlich durcheinander. Folgenden Pinbelegungen lassen sich finden.&lt;br /&gt;
&lt;br /&gt;
====Atmel XPlain Eval-Board====&lt;br /&gt;
&lt;br /&gt;
Hier hat Atmel die Xmega PDI- und JTAG-Schnittstelle gemeinsam auf den Header J100 gelegt. Die PDI-Belegung ist wie folgt:&lt;br /&gt;
&lt;br /&gt;
       1  2  GND&lt;br /&gt;
       3  4  VCC&lt;br /&gt;
       5  6  CLK&lt;br /&gt;
  VCC  7  &#039;&#039;&#039;8  DATA&#039;&#039;&#039;&lt;br /&gt;
       9 10  GND&lt;br /&gt;
&lt;br /&gt;
Nur jeweils ein VCC- und ein GND-Anschluss muss verwendet werden. Es bieten sich die Pins 2 und 4 an.&lt;br /&gt;
&lt;br /&gt;
Man beachte die Position von DATA auf Pin 8 bei dieser Belegung von PDI auf dem XPlain JTAG-Header.&lt;br /&gt;
&lt;br /&gt;
====Atmel JTAGICE MkII====&lt;br /&gt;
&lt;br /&gt;
Einige sehr alte JTAGICE MkII unterstützen kein PDI. Alle neueren, in den letzten Jahren hergestellte tun es. Eventuell ist ein Firmware-Upgrade über AVR-Studio nötig.&lt;br /&gt;
&lt;br /&gt;
Laut [http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/JTAGICEmkII/mkII/Html/Connecting_to_target_through_the_PDI_interface.htm] und der eingebauten Hilfe von [[AVR Studio]] 4.18 SP 1 verwendet ein JTAGICE MkII im PDI-Modus folgende Pinbelegung:&lt;br /&gt;
&lt;br /&gt;
       1  2  GND&lt;br /&gt;
       3  4  VTref&lt;br /&gt;
       5  6  CLK&lt;br /&gt;
       7  8&lt;br /&gt;
 &#039;&#039;&#039;DATA  9&#039;&#039;&#039; 10  GND&lt;br /&gt;
&lt;br /&gt;
Man beachte, dass DATA hier angeblich auf Pin 9 liegt. (VTref dürfte VCC entsprechen). In der Hilfe zu AVR Studio 4.18 SP 1 ist der Pin CLK mit PDI_CLK, und der Pin DATA mit PDI_DATA bezeichnet.&lt;br /&gt;
&lt;br /&gt;
====Atmel AVR Dragon====&lt;br /&gt;
&lt;br /&gt;
Erst mit der Dragon-Firmware im SP 1 für AVR Studio 4.18 soll der PDI-Support des [[AVR Dragon]] funktionieren. Angekündigt war PDI-Support bereits für AVR Studio 4.18. &lt;br /&gt;
&lt;br /&gt;
Leider hat Atmel es versäumt in der Dragon-Dokumentation die Pinbelegung für PDI auf der Seite des Dragon anzugeben. In der Studio-Dokumentation ist von einem ominösen Dragon PDI Adapter die Rede, der Teil des &amp;quot;Dragon Kit&amp;quot; sein soll. Allerdings wird der Dragon &#039;nackt&#039; ausgeliefert und bisher gibt es keine Berichte darüber, dass jemand diesen ominösen Adapter gesehen hat. Von neueren Versionen des JTAGICE mkII ist hingegen bekannt, dass sie mit einem &#039;&#039;XMEGA PDI adapter kit&#039;&#039; geliefert werden.&lt;br /&gt;
&lt;br /&gt;
Angeblich ist es nötig, beim Dragon jeweils einen 330Ω Widerstand in die CLK und DATA Leitung zu legen, um Probleme mit dem Überschwingen der Signale zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
== Programmer-Varianten ==&lt;br /&gt;
&lt;br /&gt;
Mittlerweile existiert eine fast unüberschaubare Zahl von Programmer-Varianten und Untervarianten. Hier sollen nur die wichtigsten Varianten mit Bauanleitungen aufgelistet werden, geordnet nach der Art des Anschlusses an den PC.&lt;br /&gt;
&lt;br /&gt;
Zur Zeit (März 2012) gibt es vermehrt Probleme, mit den neuen Varianten 5.x des AVR Studios, kompatible Programmer, die nicht von Atmel selbst hergestellt wurden, anzusteuern. Es sollte beim Erwerb/Nachbau auf die Zusicherung der Komptibilität zum gewünschen AVR Studio geachtet werden.&lt;br /&gt;
&lt;br /&gt;
=== Parallelport ===&lt;br /&gt;
&lt;br /&gt;
==== STK200-kompatibel ====&lt;br /&gt;
&lt;br /&gt;
Fast alle erhältlichen Parallelport-Programmieradapter, u.a. auch der hier im [http://shop.mikrocontroller.net/ Shop] angebotene, sind kompatibel zum Programmer des [[STK200]] / STK300.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/STK200 Schaltbilder für STK200 und kompatible]&lt;br /&gt;
* Bauanleitung für einen [http://rumil.de/hardware/avrisp.html STK200-kompatiblen Programmieradapter] von Rolf Milde&lt;br /&gt;
* Universelles Programmiergerät mit 74HC244 und Schutzwiderständen http://www.aplomb.nl/TechStuff/PPPD/PPPD%20English.html&lt;br /&gt;
&lt;br /&gt;
==== Paralleles Interface für AVR und PonyProg ====&lt;br /&gt;
&lt;br /&gt;
Schaltplan und Erläuterungen bei [http://s-huehn.de/elektronik/avr-prog/avr-prog-alt.htm Scott-Falk Hühn]&lt;br /&gt;
&lt;br /&gt;
==== SP12 Programmer ====&lt;br /&gt;
&lt;br /&gt;
Schaltplan, Erläuterungen und Software für mehrere Plattformen, darunter auch MSDOS, gibt es bei [http://www.xs4all.nl/~sbolt/e-spider_prog.html#programmer Steven Bolt]. [http://www.xs4all.nl/~sbolt/e-spider_prog.html#programmer Ken&#039;s Dongle] ist ein spezieller Kabeladapter für SP12 zur Verbesserung der Signalqualität. Anpassung an neue Typen erfolgt durch leicht selbst erstellbare Beschreibungsdateien.&lt;br /&gt;
&lt;br /&gt;
=== Serieller Port ([[RS-232]]) ===&lt;br /&gt;
&lt;br /&gt;
==== Atmel AVRISP, STK500, AVR910 ====&lt;br /&gt;
&lt;br /&gt;
Der original AVRISP von Atmel, das [[STK500]] und der Programmer aus der Application Note AVR910 enthalten einen Mikrocontroller, der die Umsetzung der seriellen Daten auf das ISP- und TPI-Programmierinterface vornimmt. Sie lassen sich direkt mit dem AVR-Studio programmieren und sind auch problemlos mit einem USB-seriell-Adapter verwendbar.&lt;br /&gt;
&lt;br /&gt;
Ein Layout mit Schaltplan und erweitertem Sourcecode findet sich in diesem Thread in der Codesammlung [http://www.mikrocontroller.net/topic/88295#749553 AVR910 Programmer, Schaltplan, Layout, Firmware].&lt;br /&gt;
&lt;br /&gt;
Das AVR910 Design ist u.a. auf der Seite von [http://www.serasidis.gr/circuits/avr_isp/avr_isp.htm Serasidis Vasilis] im Detail beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine weitere, auführliche Anleitung zum AVR910 gibt es in deutsch auf der Seite von [http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html Klaus Leidinger].&lt;br /&gt;
* [https://www.ssl-id.de/b-redemann.de AVR910-USB-Prog: Bausatz incl. USB-seriell Wandler]&lt;br /&gt;
* [http://www.avr-projekte.de/isp.htm AVR910-USB: Bauanleitung incl. USB-seriell Wandler]&lt;br /&gt;
&lt;br /&gt;
Einen AVR-ISP STK500 Protokoll Programmmer und JTAGICE kompatiblen Programmer/Debugger können Sie auf folgender Homepage bestellen: [http://www.myevertool.de myevertool]&lt;br /&gt;
&lt;br /&gt;
==== SI-Prog ====&lt;br /&gt;
&lt;br /&gt;
Daneben gibt es noch weitere Programmieradapter für den seriellen Port, die auf den eigenen Mikrocontroller im Programmieradapter verzichten und das ISP-Programmierprotokoll über die Steuerleitungen des RS-232-Port nachbilden. Das Programmierprogramm auf dem PC sendet jetzt keine Steuerkommandos und Daten mehr, sondern gibt direkt die Programmiersignale an der seriellen Schnittstelle aus (&amp;quot;Pinwackeln an den Statuspins&amp;quot;). Der Nachteil dieser Adapter ist, dass sie meistens relativ langsam sind und nur unter wenigen Betriebssystemen funktionieren. Ein Beispiel dafür ist SI-Prog.&lt;br /&gt;
&lt;br /&gt;
* [http://www.lancos.com/siprogsch.html SI-Prog Originalversion]&lt;br /&gt;
* [http://s-huehn.de/elektronik/avr-prog/avr-prog.htm Schaltplan und Erläuterungen]&lt;br /&gt;
&lt;br /&gt;
==== Sercon2 ====&lt;br /&gt;
&lt;br /&gt;
Mit einer etwas anderen Steckerbelegung als der SI-Prog arbeitet die Sercon Familie an Adaptern. Nähere Unterlagen dazu finden sich &lt;br /&gt;
[http://www.speedy-bl.com/adapter.htm hier]&lt;br /&gt;
&lt;br /&gt;
==== Selbstbau-Programmer, basierend auf dem FTDI chip (via avrdude) ====&lt;br /&gt;
http://irq5.wordpress.com/2010/07/15/programming-the-attiny10/&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
Die meisten USB-Programmieradapter verwenden einen USB-seriell-Wandler und ein STK500/AVRPROG-kompatibles Protokoll und können damit direkt aus dem AVR-Studio programmiert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Quick-and-Dirty Programmierlösung bietet der [[#USB-Hub-ISP]], der außer einem USB-Hub nur Standard-Bauteile voraussetzt.&lt;br /&gt;
&lt;br /&gt;
==== Atmel AVRISP MKII ====&lt;br /&gt;
&lt;br /&gt;
Nachfolger des Atmel AVRISP &amp;quot;MKI&amp;quot;. Mit USB-Schnittstelle, leistungsfähigerem Programmiercontroller und erweitertem Hardwareschutz. Programmiersoftware: [[AVR-Studio]] und [[AVRDUDE]]. Herstellerinformation bei [http://www.atmel.com/dyn/products/tools_card.asp?family_id=607&amp;amp;family_name=AVR+8%2DBit+RISC+&amp;amp;tool_id=3808 atmel.com]&lt;br /&gt;
&lt;br /&gt;
Dave Jones hat im EEVblog #158 ein [http://www.eevblog.com/2011/03/25/eevblog-158-avr-isp-mk2-lm317-regulator-tutorial/ Videotutorial] erstellt, wie man beim Atmel AVRISP &amp;quot;MKI&amp;quot; mit dem LM317 Spannungsregler 3.3V oder 5V Versorgungsspannungen für das Targetboard nachrüstet. Im Video schlägt Dave als bessere Lösung die Verwendung eines Low-Drop-Spannungsreglers vor. Dafür eignet sich z.B. der [http://www.mikrocontroller.net/part/LM1117 LM1117]&lt;br /&gt;
&lt;br /&gt;
Weiter unten auf dieser Seite wird auch ein einfacher, kompatibler Nachbau namens [http://www.mikrocontroller.net/articles/AVR_In_System_Programmer#usbprog usbprog] vorgestellt.&lt;br /&gt;
&lt;br /&gt;
==== Atmel AT90USBKEY ====&lt;br /&gt;
Mit hilfe des [http://www.fourwalledcubicle.com/AVRISP.php AVRISP-MKII Clone] Projekts aus dem [http://www.fourwalledcubicle.com/LUFA.php LUFA] Paket wird aus dem [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3879 AT90USBKEY] recht einfach ein Programmer, der mit [[AVR-Studio]] und [[AVRDUDE]] genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
==== AVRISP mkII Klon mit dem dem Teensy-Board und der Lufa-Bibliothek ====&lt;br /&gt;
Mit der [http://www.fourwalledcubicle.com/LUFA.php LUFA-Bibliothek] und dem [http://www.pjrc.com/teensy TEENSY 2.0 Board] kann schnell ein AVRISP mk2 Klon gebaut werden, der auch mit [[AVR-Studio]] in Windows einwandfrei  zusammenarbeitet. Weitere Infos auf [http://www.weigu.lu/b/avrispmk2 weigu.lu].&lt;br /&gt;
&lt;br /&gt;
==== AVRISP mkII Klon mit dem Atmega32U2-Breakout-Board und der Lufa-Bibliothek ====&lt;br /&gt;
Mit der [http://www.fourwalledcubicle.com/LUFA.php LUFA-Bibliothek] ([http://dokuwiki.ehajo.de/artikel:atmega_u-howto:avrisp-mkii Eine Anleitung gibt es hier]) und dem [http://www.ehajo.de/Bausaetze/Atmega32u2-Breakout-Board Atmega32U2-Breakout-Board] kann problemlos ein AVRISP mkII-Klon programmiert werden. Um praktisch auf die Programmierpins zugreifen zu können gibt es [http://www.ehajo.de/Bausaetze/ISP-Addon-Atmega%2AU2-Breakout dieses Addon-Board] für das Breakout-Board. Der Programmer läuft problemlos mit [[AVR-Studio]] unter Windows.&lt;br /&gt;
&lt;br /&gt;
==== Bascom USB ISP ====&lt;br /&gt;
Beliebter USB programmer der speziell für den Bascom Compiler entwickelt wurde. &lt;br /&gt;
Unterstützt Bascom einen neuen AVR-Controller, so kann dies automatisch auch dieser USB Programmer, eine neue Firmware ist nicht erforderlich. Ein weiterer Vorteil ist, dass er speziell für Bascom entwickelt wurde und in der IDE unterstützt wird. Er unterstützt alle Features von Bascom, auch die automatische Fusebit-Einstellung per Direktive im Quellcode.&lt;br /&gt;
&lt;br /&gt;
Angenehm ist auch, dass er keine 5V benötigt. Im Gegenteil, er kann sogar Boards über das übliche ISP-Programmierkabel mit 5V versorgen, so dass viele Boards auch ohne weitere Spannungsquelle programmiert werden können. &lt;br /&gt;
Ein wirklich empfehlenswerter Qualitätsprogrammer für alle Programmierer, die ausschließlich mit Bascom arbeiten wollen&lt;br /&gt;
* [http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=73&amp;amp;products_id=161 Vertrieb in Deutschland bei robotikhardware.de]&lt;br /&gt;
&lt;br /&gt;
Im Online- / Auktionshandel werden auch Alternativen angeboten, teils recht schick im Plexiglasgehäuse für ca. 20 Euro. Angeboten z.&amp;amp;nbsp;B. als &amp;quot;USB 2.0 Full Speed low cost Programmer für ATMEGA Chips&amp;quot; oder &amp;quot;AVR USB ISP Programmer ATMEL ATMEGA STK500&amp;quot;. Die Adapter funktionieren auch mit BasCom (aber auch mit AVR Studio), z.&amp;amp;nbsp;B. mit der Einstellung &amp;quot;STK500 native driver&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Man kann die Targetspannungsversorgung per USB zwischen 3,3 und 5V umschalten oder ganz abschalten (per DIP-Schalter). Sie sind per USB an den PC angeschlossen und arbeiten über einen virtuellen COM-Port. Achtung: In BasCom funktioniert das nur bis COM9. Wenn sich das Gerät z.&amp;amp;nbsp;B. auf COM15 installiert, wird es im BasCom evtl. nicht gefunden. Dann in der Systemsteuerung entsprechend umstellen.&lt;br /&gt;
&lt;br /&gt;
==== Atmel AVR Dragon ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hauptartikel [[AVR-Dragon]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3891 AVR Dragon] ist ein preiswerter ISP (und ICE) von Atmel, der aufgrund Preis/Leistungs-Verhältnisses schnell populär wurde. Atmel wurde von dieser Popularität überrascht, da der Dragon wohl ursprünglich nur als ein &amp;quot;Gimmick&amp;quot; zur Verbreitung von AVRs in Asien gedacht war.&lt;br /&gt;
&lt;br /&gt;
Die großen Vorteile des Dragons sind, dass er alle Programmiermodi beherrscht, inklusive High-Voltage Parallel Programming (&amp;quot;verfuste&amp;quot; AVRs retten), dass er ein natives USB-Interface hat, von AVR-Studio unterstützt wird, und sogar [[JTAG]] und [[debugWIRE]] ICE / Debugging unterstützt (bei den AVRs die dies können). &lt;br /&gt;
&lt;br /&gt;
Zu den größten bekannten Nachteilen gehören, dass der Dragon völlig &amp;quot;nackt&amp;quot; kommt. Kein USB-Kabel, kein Gehäuse, nicht einmal Abstandsbolzen unter der Platine, keine Patchkabel und nicht einmal die Fassungen zum Einstecken von AVRs sind bestückt. Eine gedruckte Anleitung gibt es auch nicht. Daneben wird aufgrund des Stromverbrauchs des Dragon ein USB-Hub mit Netzteil benötigt.&lt;br /&gt;
&lt;br /&gt;
Weiter ist der Dragon dafür bekannt, empfindlich auf statische Aufladungen zu reagieren. Ein Spannungsregler und ein Ausgangstreiber gehen dabei besonders gerne kaputt. Ein gerne von Anfängern gemachter Fehler ist es, den Dragon im Betrieb auf dem mitgelieferten &amp;quot;Schaumstoff&amp;quot; aus der Verpackung liegen zu lassen. Das ist jedoch kein Schaumstoff, sondern leitendes Moosgummi.&lt;br /&gt;
&lt;br /&gt;
Weitere Schutzmaßnahmen für gefährdete AVR Dragons findet man auf der Dragonlair-Seite von [http://www.aplomb.nl/TechStuff/Dragon/Dragon.html Nard Awater].&lt;br /&gt;
&lt;br /&gt;
Der Dragon wird unter Linux z.&amp;amp;nbsp;B. von der avrdude-Programmiersoftware unterstützt. Unerklärlicherweise stellt Atmel die Dokumentation und Beschreibung des Dragon nur als Teil der Online-Hilfe der AVR-Studio Software unter Windows zur Verfügung. Weiterhin lassen sich Firmware-Updates auch nur mittels eine proprietären Atmel-Software unter Windows einspielen. Daher ist der Dragon für Linux-Benutzer nur dann zu empfehlen, wenn man zusätzlich noch Zugriff auf eine Windows-Installation hat.&lt;br /&gt;
&lt;br /&gt;
==== USBisp ====&lt;br /&gt;
&lt;br /&gt;
AVR Programmierdongle mit USB Anschluss und kompatibel zum STK500-Protokoll. Unter anderem programmierbar mit [[AVR-Studio]], [[AVRDUDE]] und [[uisp]]. Schaltplan (PDF), Layout (PDF), Erläuterungen und Firmware gibt es vom Entwickler [http://www.matwei.de Matthias Weißer].&lt;br /&gt;
&lt;br /&gt;
==== USB avrisp ====&lt;br /&gt;
&lt;br /&gt;
USB AVR Programmer auf Basis des AVR 910 Designs. Den Schaltplan, Layout und Erläuterungen (englisch) gibt es von [http://www.e.kth.se/~joakimar/hardware.html Joakim Arfvidsson].&lt;br /&gt;
&lt;br /&gt;
==== Evertool ====&lt;br /&gt;
&lt;br /&gt;
Mit USB-seriell-Wandler. Getestet mit Adapterkabeln/ICs von FTDI, SiLabs und Prolific (Adapterkabel z.&amp;amp;nbsp;B. für ca. 10EUR bei Reichelt).&lt;br /&gt;
&lt;br /&gt;
* [http://www.siwawi.arubi.uni-kl.de/avr_projects/evertool/ Evertool-&amp;quot;Homepage&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
==== USBasp ====&lt;br /&gt;
&lt;br /&gt;
Thomas Fischls [http://www.fischl.de/usbasp/ USBasp] ist ein&lt;br /&gt;
Openhardware-/Openfirmware-USB-ISP-Adapter. Er basiert auf einem&lt;br /&gt;
ATmega8, ATmega8L, ATmega88 oder ATtiny85, der mittels einer rein auf Firmware&lt;br /&gt;
basierenden USB-Implementierung von&lt;br /&gt;
[http://www.obdev.at/products/avrusb/index.html Objective Development]&lt;br /&gt;
arbeitet. &lt;br /&gt;
&lt;br /&gt;
Bezugsquellen:&lt;br /&gt;
* Ein [http://www.FundF.net/usbasp/ offizieller USBasp Bausatz] ist erhältlich.&lt;br /&gt;
* Alternative Bausätze inkl. Dokumentation gibt es bei [http://www.b-redemann.de/produkte-programmer.shtml www.b-redemann.de], [http://shop.ulrichradig.de/Bausaetze/USB-ASP-Bausatz.html shop.ulrichradig.de] und [https://guloshop.de/shop/index.php guloshop.de].&lt;br /&gt;
* Eine MacOS X Anpassung stammt von [http://www.macsven.de/usbasp.html Sven Schwiecker]. Man kann aber auch das Komplettpaket Crosspack-AVR, in dem AVRDUDE für Mac OS X bereits enthalten ist, von [http://www.obdev.at/products/crosspack/index-de.html obdev.at] benutzen&lt;br /&gt;
&lt;br /&gt;
Zum Ansteuern des USBasp wird [[AVRDUDE]] in einem speziellen Modus benötigt, der ab Version 5.2 standardmäßig vorhanden ist (vorher waren&lt;br /&gt;
Patches nötig).&lt;br /&gt;
&lt;br /&gt;
Zum Programmieren von neuen ATtinys muss der Jumper Slow SCK gesetzt werden.&lt;br /&gt;
Alternativ ist es möglich mit der zusätzlichen Option von avrdude &amp;quot;-B100&amp;quot; die Periodendauer von SCK auf etwa 100 µs oder noch länger zu vergrößern (funktioniert nur, wenn die Firmware des USBasp vom Mai 2011 oder neuer ist).&lt;br /&gt;
&lt;br /&gt;
Der originale USBasp hat den Nachteil, dass er nicht die Targetspannung zum Programmieren benutzt, sondern immer seine 5V. Deshalb kann es Probleme geben, wenn das Target mit einer niedrigen Spannung versorgt wird, da der USBasp die Target-Highpegel eventuell nicht mehr als High erkennt. Abhilfe kann ein kleiner Hack schaffen, mit dem der µC wahlweise mit 5V oder mit ~3.6V betrieben wird:&lt;br /&gt;
http://www.mikrocontroller.net/topic/109648?goto=2031524#2031524&lt;br /&gt;
&lt;br /&gt;
Der [http://diy.elektroda.eu/usbasp-z-optoizolacja-do-25kv-18v-6v/?lang=en Optoisolated USBASP 1.8V to 6V] ist eine Hardwareänderung ebenfalls mit breitem Targetspannungsbereich und zusätzlich galvanischer Isolation über die [[Optokoppler]] 6N317 (schnelle Datenleitungen) und PC817 (langsame Resetleitung).&lt;br /&gt;
&lt;br /&gt;
Manche USBasp sind umschaltbar zwischen 5 V und 3,3 V. Falls man später darüber eine Schaltung mit 3,3 Volt betreiben will – etwa zum direkten Ansprechen einer SD-Karte – lohnt gezieltes Nachfragen vor dem Kauf.&lt;br /&gt;
&lt;br /&gt;
==== AvrUsb500 ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.tuxgraphics.org/electronics/200510/article05101.shtml AvrUsb500] - an open source Atmel AVR Programmer, stk500 V2 compatible, with USB interface&lt;br /&gt;
* [http://www.mechaos.de/avr_progusb.php meCHAOS] - Nachbau mit neuem Platinenlayout und weiteren Funktionen.&lt;br /&gt;
&lt;br /&gt;
==== usbprog ====&lt;br /&gt;
&lt;br /&gt;
[http://www.usbprog.org/ usbprog] von Benedikt Sauter ist ein USB Programmieradapter, der fast alle Atmel-Mikrocontroller unterstützt (ATiny, ATMega, AT89, AT90,&amp;amp;nbsp;...) und daneben auch für ARM7/9 und MSP universell einsetzbar ist. Unterstützung für Xmega gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
Der Programmer wurde so entwickelt, dass man die Firmware auf dem Adapter über die USB-Verbindung austauschen kann. Dadurch sollte der Adapter lange attraktiv bleiben, da alles rund um das Projekt als open Source veröffentlicht ist und daher neue Controller einfach in die usbprog-Firmware integriert werden können.&lt;br /&gt;
Es ensteht gerade eine Firmware für einen einfachen JTAG-Adapter. Damit kann man dann ganz einfach debuggen (voraussichtlich auch aus dem AVR Studio aus).&lt;br /&gt;
&lt;br /&gt;
Man kann den Adapter auch als 1:1 AVRISP-mkII-kompatibles Gerät betreiben. Dafür muss man eine andere Firmware einspielen, die ebenfalls Teil des Projektes ist. Der Vorteil ist der, dass man so auf jede bestehende Programmiersoftware zurückgreifen kann, die das originale AVRISP mkII unterstützt. Getestet wurde usbprog bis jetzt mit avrdude (Linux und Windows) und dem AVR Studio 4 (Windows).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Damit der Programmer mit AVR Studio 5.x zusammen arbeitet, muss die Firmware aktualisiert werden: http://www.usbprog.org/index.php/Firmwares (siehe Update-Hinweis)&lt;br /&gt;
&lt;br /&gt;
Derzeit kann man bei der embedded projects GmbH die Versionen 3.3 und 4.0 bestellen. Näheres im [http://www.usbprog.org/index.php/Hardware Projekt-Wiki].&lt;br /&gt;
&lt;br /&gt;
==== AVR-Doper ====&lt;br /&gt;
&lt;br /&gt;
[http://www.obdev.at/products/avrusb/avrdoper.html AVR-Doper] kann neben ISP auch im High-Voltage Serial Mode als [[AVR HV-Programmer]] programmieren. Rein auf Firmware basierende USB-Implementierung. BUS-Powered. Einseitige Platine und damit auch für Selbstbauer geeignet. Verwendet einen Mega8 zur Steuerung des Programmers. Ist kompatibel zu AVR-Studio durch STK500-Protokoll.&lt;br /&gt;
&lt;br /&gt;
==== USB AVR-Lab ====&lt;br /&gt;
&lt;br /&gt;
[http://www.ullihome.de/index.php/Hauptseite#USB_AVR-Lab USB AVR-Lab] besteht aus einer sehr einfachen Hardware, usb wird in Software gemacht. Mit einem Bootloader nebst Applikation kann die Funktion des Lab´s zwischen &lt;br /&gt;
&lt;br /&gt;
*AVRISPmkII kompatiblem Programmer (AVR Studio, Linux, MacOS)&lt;br /&gt;
*JTAGICEmkII kompatibler AVR Programmer (AVR Studio, Linux, MacOS) (keine AVR32, kein Xmega)&lt;br /&gt;
*OpenOCD Interface (sehr viel ARM Controller, PLD´s, FPGA´s)&lt;br /&gt;
*STK500v2 kompatiblem Programmer (AVR Studio)&lt;br /&gt;
*USBasp kompatiblem Programmer (Linux, MacOS)&lt;br /&gt;
*JTAG Boundary Scan Interface + Software&lt;br /&gt;
*RS232/RS485 Wandler&lt;br /&gt;
*I2C Logger&lt;br /&gt;
*I2C Interface (zur benutzung aus eigenen Programmen)&lt;br /&gt;
*Oszi&lt;br /&gt;
*6-Kanal Logik Analyzer (in Entwicklung)&lt;br /&gt;
*Labornetzteil (in Entwicklung)&lt;br /&gt;
&lt;br /&gt;
getauscht werden. Mit der STK500v2 kompatiblen Firmware kann der Programmer direkt aus dem AVR Studio heraus voll kompatibel zum AVR-ISP mkII arbeiten.&lt;br /&gt;
Zusätzlich bietet der Programmer den virtuellen Com Port als Debug Port an solange nicht geflasht wird. Man kann also direkt mit dem Terminalprogramm auf seinen AVR zugreifen über den ISP Adapter.&lt;br /&gt;
Dieser Modus wird von jeder ISP Firmware unterstützt.&lt;br /&gt;
Statusanzeige des Targets (angeschlossen, falsch angeschlossen, nicht angeschlossen), max. 3 Mhz ISP Freq. Das Ganze ist sehr günstig in der Beschaffung (10 Eur Bauteile bei Reichelt + 3,5 Eur Platine von ullihome.de, oder 15 Eur bestückt von ullihome.de)&lt;br /&gt;
&lt;br /&gt;
==== USBtinyISP ====&lt;br /&gt;
&lt;br /&gt;
[http://www.ladyada.net/make/usbtinyisp/ USBtinyISP] ist ein preiswerter (ca. 16$ für die Bauteile) AVR ISP Programmer und SPI Interface auf open-source Basis. Als Software kann z.B. AVRDUDE oder AVRStudio verwendet werden. Der Programmer wurde auf Windows, MacOS X und Ubuntu (ab 9.04) getestet. Bei Adafruit sind auch Selbstbaukits erhältlich.&lt;br /&gt;
Eine miniaturisierte Version findet sich hier [http://www.mikrocontroller.net/articles/AVR-ISP-Stick www.mikrocontroller.net/articles/AVR-ISP-Stick]. Diese ist ab 6,90€ als Bausatz bei [http://www.ehajo.de/Bausaetze/AVR-ISP-Stick eHaJo.de] erhältlich.&lt;br /&gt;
&lt;br /&gt;
==== UCOM-IR ====&lt;br /&gt;
Der [http://www.nibo-roboter.de/wiki/UCOM-IR UCOM-IR] Programmieradapter ist ein kommerzieller Bausatz (ca. 25 €), der auf einem AT90USB162 basiert. Durch die Verwendung des STK500v2 Protokolls kann zur Programmierung sowohl das [[AVR-Studio]] wie auch [[AVRDUDE]] verwendet werden. Zusätzlich hat der Adapter einen IR-Empfänger und zwei Sendedioden, die zur Kommunikation und zur Fernsteuerung verwendet werden können.&lt;br /&gt;
&lt;br /&gt;
==== Selbstbau-Programmer, basierend auf dem vUSB stack ====&lt;br /&gt;
http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;t=90498&lt;br /&gt;
&lt;br /&gt;
==== USB-Hub-ISP ====&lt;br /&gt;
HUB ISP - Solving the USB-Only &amp;quot;Chicken or Egg&amp;quot; Problem:&amp;lt;br&amp;gt;&lt;br /&gt;
HUB ISP can write an AVR chip using only a USB hub, one cheap/common logic chip, and a few resistors.&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.pjrc.com/hub_isp/&lt;br /&gt;
&lt;br /&gt;
==== Launchprog ====&lt;br /&gt;
Der [[Launchprog]] ist ein AVR-ISP-Programmer nach der Atmel AVR910-Appnote, der auf einem [http://processors.wiki.ti.com/index.php?title=MSP430_LaunchPad_%28MSP-EXP430G2%29 TI Launchpad 1.4] mit dem beiliegenden [http://www.ti.com/product/msp430g2211 MSP430G2211] und dem beiliegenden Uhrenquarz läuft. Nach außen hin ist der [[Launchprog]] wie ein AVR910 zu verwenden. Allerdings muss die Geschwindigkeit der seriellen Schnittstelle auf 9600 Baud eingestelllt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Beispiel der avrdude-Kommandozeile: &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;avrdude -c avr910 -b 9600 -P &amp;lt;PORT&amp;gt; -p &amp;lt;PART&amp;gt; -U &amp;lt;KOMMANDO&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== mySmartUSB ====&lt;br /&gt;
Der mySmartUSB Programmer von myAVR ist ein kompakter ISP Programmer mit USB Anschluss (der Preis liegt bei 28€). Lt. Hersteller kann er auch für die Kommunikation via UART, TWI, SPI verwendet werden (hab ich noch nicht probiert).&lt;br /&gt;
&lt;br /&gt;
ich aber: Beim Schreiben der Fuse Bits musste ich das Tool myAVR_ProgTool.exe verwenden &lt;br /&gt;
&lt;br /&gt;
Mit avrdude ist das Schreiben der Fuse-Bits mit dem AVR910-Modus möglich.&lt;br /&gt;
 &lt;br /&gt;
avrdude-Kommandozeile :&lt;br /&gt;
&#039;&#039;avrdude -c avr910 -P PORT -p PART -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Die neuere Version (mySmartUSB MK3) scheint mit der aktuellen Firmwareversion noch große Probleme mit ISP zu haben (siehe Postings im Supportforum: http://myavr.info/myForum/viewforum.php?f=8). Solange diese Probleme nicht ausgemerzt sind, sollte man auf die ältere Version (mySmartUSB MK2) oder ein anderes Produkt ausweichen.&lt;br /&gt;
&lt;br /&gt;
==== mySmartUSB light ====&lt;br /&gt;
&lt;br /&gt;
Preiswerter (ca. 15 €) Programmer im USB-Stick Design von myAVR. Der mySmartUSB light verfügt über eine Auto-Speed Funktion die die Frequenz des Programmers automatisch an die Taktfrequenz des Controllers anpasst.&lt;br /&gt;
Der Programmer kann 5V und 3.3V Systeme programmieren, Treiber gibt es für Windows, Linux und MacOS X und unterstützt wird je nach Firmware-Version das STK500v2 oder AVR910/911 Protokoll.&lt;br /&gt;
&lt;br /&gt;
==== Amadeus-USB ====&lt;br /&gt;
&lt;br /&gt;
[http://home.arcor.de/bernhard.michelis Amadeus-USB] ist ein ISP-Programmer zum Selberbauen. Er unterstützt eine Vielzahl von AVRs und verfügt über ein eigenes User-Interface. Der Programmer enthält einen einfach zu bedienenden Fuse-Editor. Sollte man einmal die falschen Clock-Einstellungen vorgenommen haben, ist das kein Problem, da der Programmer über eine Takterzeugung verfügt, mit der man den AVR wiederbeleben kann.&lt;br /&gt;
Auch wer mit niedrigen Taktraten arbeitet (z.&amp;amp;nbsp;B. 32kHz), kann einen ATmega64 in ca. 4,8 Sekunden programmieren und vergleichen. Darüber hinaus kann mit geeigneten Makros die Programmausführung getracet werden. Die maximale Programmierdauer beträgt bei einem ATmega64 mit 16MHz Quarz 3,1 Sekunden, wenn der gesamte Speicher geschrieben und verglichen werden muss. Ist das Programm kleiner, geht es natürlich schneller ;-) Für einen ATTiny2313 oder ATTiny24 braucht er weniger als eine Sekunde.&lt;br /&gt;
&lt;br /&gt;
==== AVR-ISP-Stick ====&lt;br /&gt;
&lt;br /&gt;
Der [http://www.ehajo.de/Bausaetze/AVR-ISP-Stick AVR-ISP-Stick] ist ein OpenSource/CC-Projekt und eine sehr günstige (6,90€!) Alternative zu den restlichen Programmieradaptern auf dem Markt. Er ist als Bausatz erhältlich und bereits über 100 mal im produktiven Einsatz.&lt;br /&gt;
&lt;br /&gt;
==== µISP-Stick ====&lt;br /&gt;
&lt;br /&gt;
Der [http://www.ehajo.de/Bausaetze/µISP-Stick µISP-Stick] ist die Weiterentwicklung des AVR-ISP-Sticks. Für 9,90€ bekommt man hier einen vorbestückten Bausatz an dem nur noch die bedrahteten Stecker angelötet werden müssen.&lt;br /&gt;
&lt;br /&gt;
==== Arduino ISP Shield ====&lt;br /&gt;
&lt;br /&gt;
Ein Arduino-Board kann mit dem entsprechenden Sketch und einfachen Jumperwires oder einem komfortablen Shield benutzt werden, um AVRs ohne [[Bootloader]] zu flashen. Eine Anleitung dazu wird bei [http://www.open-electronics.org/arduino-isp-in-system-programming-and-stand-alone-circuits/ www.open-electronics.org] und [http://hlt.media.mit.edu/?p=1229 hlt.media.mit.edu] (via [http://www.mikrocontroller.net/topic/252620#2598960]) gegeben.&lt;br /&gt;
&lt;br /&gt;
==== aTeVaL-Board ====&lt;br /&gt;
&lt;br /&gt;
Das [http://www.ehajo.de/Bausaetze/aTeVaL aTeVaL-Board] ist die Weiterentwicklung des Atmel Evalboards von Pollin. Damit lassen sich problemlos alle bedrahteten AVR-Controller programmieren. Der Programmer ist ein AVR-ISP-mkii-Clon und somit 100% kompatibel mit dem Atmelstudio. Für eigene Platinen ist ein 6- und 10-poliger ISP-Stecker vorhanden.&lt;br /&gt;
&lt;br /&gt;
==== USP-Stick ====&lt;br /&gt;
&lt;br /&gt;
Der [http://www.ehajo.de/Bausaetze/USP-Stick USP-Stick] ist ein sehr kleiner Programmieradapter, der in ein USB-A-Gehäuse passt. Er beruht auf der bewährten Hardware des AVR-ISP-Sticks (attiny2313 + quarz) und ist für 4,90€ erhältlich.&lt;br /&gt;
&lt;br /&gt;
==== guloprog USB-Programmer und Signalwandler ====&lt;br /&gt;
&lt;br /&gt;
Unter dem Namen [https://guloshop.de/shop/Mikrocontroller-Programmierung/guloprog-der-Programmer-von-guloshop-de::70.html guloprog] wird eine kleine Platine angeboten, die einen USB-Programmer und einen [https://guloshop.de/shop/USB-TTL-ADC-PWM-Signalwandler:::10.html Signalwandler] vereint. Der Programmer wird per USB angeschlossen und meldet sich als Fischl-kompatibler usbasp.&lt;br /&gt;
&lt;br /&gt;
Die Signalwandlerfunktion bietet voneinander unabhängige einfache Schalt- und Abfragemöglichkeiten für die vier sonst zum Programmieren verwendeten Anschlüsse. Jede Leitung kann per Tastatur-Kommando einen Ausgang auf 0 Volt oder auf 5 Volt setzen oder &amp;quot;dimmen&amp;quot; (PWM in Schritten von 0 bis 100%). Alle Anschlüsse können als Digital-Eingang verwendet werden, drei davon wahlweise als Analog-Eingang. Die gemessenen Werte lassen sich ebenfalls per Kommandozeile abfragen und auf diese Weise leicht in andere PC-Programme einbinden (Linux, Mac, Windows).&lt;br /&gt;
&lt;br /&gt;
Herzstück ist ein ATtiny85, der im Gegensatz zu allen ATmegas und fast allen ATtinys auch über den internen RC-Oszillator mit 16 MHz betrieben werden kann. Ein Quarz ist daher nicht erforderlich. Die für V-USB erforderliche Genauigkeit erreicht der Programmer über einen Synchronisationsschritt, der bei jedem Start automatischen durchlaufen wird. Die Firmware steht unter einer freien Lizenz, es werden nur sehr wenige Bauteile benötigt, so dass sich dieser Programmer auch recht gut für den Nachbau eignet. Schaltungs- und softwaretechnisch besteht praktisch Baugleichheit zum [[Bierdeckel-Programmer]].&lt;br /&gt;
&lt;br /&gt;
=== Standalone ===&lt;br /&gt;
&lt;br /&gt;
Die folgenden Geräte verfügen über interne Speicher, auf denen der zu programmierende Maschinencode abgelegt werden kann. Zum &amp;quot;flashen&amp;quot; selbst ist keine Verbindung zwischen Arbeitsplatzrechner bzw. Notebook und Programmiergerät erforderlich. &lt;br /&gt;
&lt;br /&gt;
==== roloFlash (kommerziell) ====&lt;br /&gt;
[http://www.halec.de/roloFlash/?ref=wiki_isp.mikrocontroller.net roloFlash] wird mit einer microSD-Karte bestückt, die die zu flashenden Daten enthält. Dadurch können unabhängig von einem PC an jedem beliebigen Ort AVR-Controller geflasht werden.&lt;br /&gt;
&lt;br /&gt;
In einem ersten Schritt wird die microSD-Karte vorbereitet. Durch die auf dem roloFlash eingebaute Scriptsprache roloBasic lässt sich der gewünschte Ablauf sehr flexibel festlegen.&lt;br /&gt;
&lt;br /&gt;
Nun kann roloFlash irgendwo anders ohne PC AVR-Controller flashen. Dabei geben 5 zweifarbigen LEDs Auskunft über den Fortschritt bzw. das Ergebnis des Flash-Prozesses. Fehlbedienungen sind unmöglich, da es keine Bedienelemente gibt.&lt;br /&gt;
&lt;br /&gt;
Einsatzgebiete:&lt;br /&gt;
* Produktion&lt;br /&gt;
* Fehlbedienungssichere Updates beim Kunden&lt;br /&gt;
&lt;br /&gt;
==== TheCableAVR-SD (kommerziell) ====&lt;br /&gt;
[http://www.priio.com/productcart/pc/viewPrd.asp?idcategory=6&amp;amp;idproduct=88 TheCableAVR-SD]  works by saving the &amp;quot;ISP&amp;quot;, &amp;quot;HEX&amp;quot; and &amp;quot;EEP&amp;quot; files required for part programming from the PC application onto an SD-Card and inserting it into TheCableAVR-SD. This programmer is stand alone, making it very handy for field software updates and production programming. &lt;br /&gt;
&lt;br /&gt;
Wird 4/2012 scheinbar nicht mehr verkauft ([http://www.mikrocontroller.net/topic/257278#2657606 Forumsbeitrag Priio AVR Programmer?]).&lt;br /&gt;
&lt;br /&gt;
==== ButtLoad ====&lt;br /&gt;
[http://www.fourwalledcubicle.com/ButtLoad.php ButtLoad] is based on the Atmel [[AVR Butterfly]] development board. ButtLoad is specially written firmware which converts a low-cost official Atmel Butterfly evaluation board into a smart ISP programmer for other members of the Atmel AVR family. It supports the entire AVR range, and allows for a complete program (including EEP, HEX, Fuse and Lock Bytes) to be stored and later programmed into a device from the Butterfly&#039;s on board non-volatile memory.&lt;br /&gt;
&lt;br /&gt;
[http://www.fourwalledcubicle.com/ButtLoad.php ButtLoad] basiert auf dem Atmel-[[AVR Butterfly]]-development board und ist eine spezielle Firmware, die ein (billiges) Atmel-Butterfly-Board in einen vollwertigen ISP-Programmierer für andere Controller der Atmel-AVR-Familie verwandelt. Es unterstützt den gesamten AVR-Bereich und erlaubt, ein Programm komplett mit EEP, HEX, Sicherungs- und Lock-Bytes im nichtflüchtigen on-board-Speicher des Butterflys abzulegen und dann von dort heraus die Controller zu programmieren.&lt;br /&gt;
&lt;br /&gt;
==== PalmAVR ====&lt;br /&gt;
* siehe [http://www.mikrocontroller.net/topic/77870#648376 Forenbeitrag]&lt;br /&gt;
&lt;br /&gt;
==== ISPnub (Open Source) ====&lt;br /&gt;
[http://www.fischl.de/ispnub/ ISPnub - Stand-alone AVR In-System-Programmer Module] besteht aus einem AVR in dessen Flash ein Programmierskript geladen wird. Der eigentliche Programmiervorgang wird über einen Tastendruck ausgelöst. Die Zahl der Programmierzyklen kann beschränkt werden (z.B. auf ein Fertigungslos beschränkt).&lt;br /&gt;
&lt;br /&gt;
==== AVR-ISP500, AVR-ISP500 tiny ====&lt;br /&gt;
von Olimex, siehe&lt;br /&gt;
* [http://www.olimex.com/dev/avr-isp500-iso.html Herstellerseite zum ISP500] &lt;br /&gt;
* [http://www.olimex.com/dev/avr-isp500-tiny.html Herstellerseite zum ISP500-TINY]&lt;br /&gt;
&lt;br /&gt;
=== Geschwindigkeitsvergleich ===&lt;br /&gt;
&lt;br /&gt;
Im Rahmen einer Forendiskussion entstand die folgende Messung, die&lt;br /&gt;
einige der möglichen Programmer in ihrer Geschwindigkeit vergleicht.&lt;br /&gt;
Mit einbezogen in den Vergleich wurde neben originalen&lt;br /&gt;
Atmel-ISP-Werkzeugen noch Werkzeuge für [[JTAG#AVR_JTAG|JTAG]].&lt;br /&gt;
&lt;br /&gt;
Die Testdatei war 29704 Bytes groß.  Target ist ein ATmega6490, der&lt;br /&gt;
mit 8 MHz vom RC-Oszillator getaktet wird.  Das alles wurde mit einem&lt;br /&gt;
AVRDUDE 5.5 getestet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Programmer     Parameter         Zeit fürs&lt;br /&gt;
                              Schreiben  Lesen&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
JTAG ICE mkII  default        2,58 s     3,27 s&lt;br /&gt;
JTAG           (4 MHz)&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
JTAG ICE mkII  1 MHz          8,34 s     8,51 s   (**)&lt;br /&gt;
ISP&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
AVRISP mkII    250 kHz        5,37 s     5,46 s&lt;br /&gt;
               1 MHz          2,45 s     2,45 s&lt;br /&gt;
               2 MHz          1,89 s     1,99 s&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
STK500         900 kHz        5,84 s     3,49 s&lt;br /&gt;
               (schnellstes)&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
AVR Dragon     default        2,81 s     3,49 s&lt;br /&gt;
JTAG           (4 MHz)&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
AVR Dragon     1 MHz          8,34 s     8,64 s&lt;br /&gt;
ISP            2 MHz          -          -        (*)&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
Parallelport-  keine Delay   13,20 s    12,45 s   (**)&lt;br /&gt;
Dongle &amp;quot;alf&amp;quot;   CPU 900 MHz&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(*) Benutzung unmöglich, weder Fuses noch Signature zuverlässig&lt;br /&gt;
lesbar.&lt;br /&gt;
&lt;br /&gt;
(**) Fuses und Signature OK, aber das programmierte Ergebnis ist&lt;br /&gt;
fehlerhaft (verify errors)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.myplace.nu/avr/yaap/ yaap] (Windows, diverse Parallelport-Programmer, GUI)&lt;br /&gt;
* [[Pony-Prog Tutorial|PonyProg]] (Linux, Windows, diverse Programmer für den parallelen und seriellen Port, GUI, am seriellen Port nur &amp;quot;Statuspinwackler&amp;quot; nach dem Schaltplan auf der lancos-Seite)&lt;br /&gt;
* [http://www.soft-land.de/index.php?page=avrburner AVRBurner] Ponyprog ähnliche Oberfläche für AVRDUDE.&lt;br /&gt;
* [http://www.nongnu.org/avrdude AVRDUDE] (Unix, Linux, Windows, praktisch alle Programmer, leicht erweiterbar auf andere Parallelportadapter-Anschlussbelegungen, Kommandozeile, auch für AVR Butterfly über dessen vorinstallierten Bootloader/Firmware-Uploader) siehe im Wiki [[AVRDUDE]]&lt;br /&gt;
* [http://savannah.nongnu.org/projects/uisp uisp] (Unix, Linux, Windows, praktisch alle Programmer, Kommandozeile, nicht mehr gepflegt).&lt;br /&gt;
* AVR-Studio (nur Programmieradapter mit integriertem Controller für den seriellen Port, z.&amp;amp;nbsp;B. AVR910, ATMEL AVRISP und STK500)&lt;br /&gt;
* [http://www.mcselec.com Eingebauter Programmer im Bascom-Basic Compiler]&lt;br /&gt;
* [http://esnips.com/web/AtmelAVR AvrOspII] - GUI Open Source programmer based on Atmels Application note AVR911.&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/60817 Forumsbeitrag] - Wie man Ponyprog aus dem AVR-Studio heraus nutzt&lt;br /&gt;
* [http://www.cadmaniac.org/projectMain.php?projectName=kontrollerlab Kontrollerlab] - (Linux), Grafische Oberfläche zu avr-gcc, uisp, avrdude und kate mit built-in debugger und serial terminal. Einfach verständlich und aufgeräumt (im KDE-Stil)&lt;br /&gt;
* [http://shop.myavr.de/index.php?sp=download.sp.php&amp;amp;suchwort=dl112 myAVRProgTool] - Freies Programmiertool und zusätzlich auch als DUDE-GUI geeignet, einfach zu bedienen&lt;br /&gt;
* [http://dybkowski.net/isp ISP Programmer] von Adam Dybkowski (Opensource, Windows 95, 98, Me, NT 4.0, 2000, XP, 2003, Vista and Windows 7 (32-bit and 64-bit versions))&lt;br /&gt;
&lt;br /&gt;
== ISP-Pins am AVR auch für andere Zwecke nutzen ==&lt;br /&gt;
&lt;br /&gt;
Bei einem Programmer mit eingebautem [[Ausgangsstufen_Logik-ICs#Tristate|Tristate]]-Treiber (z.&amp;amp;nbsp;B. 74HC(T)244) werden die Leitungen MISO, MOSI und SCK hochohmig geschaltet wenn die Programmierung beendet ist, d.h. sie beeinflussen die Schaltung nicht. Man kann die betreffenden Pins am AVR also relativ problemlos als Ausgänge verwenden, wenn man darauf achtet, dass die daran angeschlossene Peripherie durch die Programmierimpulse keinen Schaden nehmen kann. Als Eingänge sollte man die Pins allerdings nicht verwenden, da ein angeschlossener Taster zum Beispiel die Programmierimpulse kurzschließen würde, wenn er gedrückt ist.&lt;br /&gt;
&lt;br /&gt;
Atmel empfiehlt in der Application Note [http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf AVR042: AVR Hardware Design Considerations (PDF)] Peripherie an der SPI-Schnittstelle, bei gleichzeitiger Verwendung der Schnittstelle als In-System-Programmieranschluss, über Widerstände anzuschliessen.&lt;br /&gt;
&lt;br /&gt;
Ein Widerstand in SCK ist in diesem Zusammenhang aber nur dann sinnvoll, wenn am AVR ein externer SPI-Master hängt, denn nur dann kann ein Konflikt zwischen diesem SCK treibenden Master und dem ebenfalls SCK treibenden ISP auftreten. Ist der AVR hingegen wie üblich selbst der Master, dann ist ein Konflikt ausgeschlossen. Das gleiche gilt für MOSI.&lt;br /&gt;
&lt;br /&gt;
Bei MISO kann ein Konflikt nur auftreten, wenn diese Leitung vom Slave in der ISP-Phase aktiv treibend sein kann. Das ist beispielsweise bei Porterweiterungen (Inputs) mit Schieberegistern der Fall, wenn der&lt;br /&gt;
Datenausgang des Schieberegisters nicht passivierbar ist (tristate, Z-state). Dann ist ein Serienwiderstand in MISO sinnvoll.&lt;br /&gt;
&lt;br /&gt;
Normale SPI-Slaves mit CS-Leitung, wie ADCs, passivieren jedoch ihren Datenausgang wenn CS inaktiv ist. In diesem Fall ist ein Serienwiderstand in MISO unnötig, es muss nur über schwache Pullup-Widerstände an allen relevanten CS Leitungen sichergestellt sein, dass sie während Reset hochgezogen werden. Manche SPI-Slaves haben die bereits an Bord. Die internen Pullups im AVR sind keine Hilfe, da sie während Reset abgeschaltet sind.&lt;br /&gt;
&lt;br /&gt;
siehe auch [http://www.mikrocontroller.net/articles/AVR_HV-Programmer AVR HV-Programmer]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Programmer und -Bootloader| ]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=CAN&amp;diff=65016</id>
		<title>CAN</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=CAN&amp;diff=65016"/>
		<updated>2012-03-17T08:28:30Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* Dongles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;C&#039;&#039;&#039;ontroller &#039;&#039;&#039;A&#039;&#039;&#039;rea &#039;&#039;&#039;N&#039;&#039;&#039;etwork - Ein von Bosch entwickeltes, echtzeitfähiges Bussystem für den Automobilbereich, welches u.a. auch Anwendung in der Automatisierungstechnik findet.&lt;br /&gt;
&lt;br /&gt;
==Mikrocontroller mit CAN==&lt;br /&gt;
&lt;br /&gt;
=== Atmel AT90CAN128===&lt;br /&gt;
* Atmel AVR Controller mit CAN-Schnittstelle (ein Kanal) &lt;br /&gt;
* 15 CAN &amp;quot;Message Objects&amp;quot;, jedes individuell konfigurierbar.&lt;br /&gt;
* 128kByte Flash, 4kByte RAM&lt;br /&gt;
* Bis auf die CAN-Funktionen weitestgehend identisch mit dem ATmega128 (vgl. Migration-Guide ATmega128-&amp;gt;AT90CAN128 bei atmel.com)&lt;br /&gt;
* Beispielcode inkl. CAN für den IAR-C-Compiler findet sich bei atmel.com. Autobaud-Routinen in Assembler (etwas Aufwand bei der Portierung nach avr-gcc/avr-as).&lt;br /&gt;
* Für die ISP-Programmierung schliesst man Ihn wie den ATmega128 an. MOSI-2 ; MISO-3 ; SCK-11 ; /Reset-20 ;  GND-22,53,63 ; Vcc-21,52,(62),(64). Auf die übliche &amp;quot;ATmega64/128-Problematik&amp;quot; achten: MISO/MOSI der Programmierschnittstelle sind nicht identisch mit der SPI-Schnittstelle.&lt;br /&gt;
* Im Auslieferungszustand ist nur der interne RC-Oszillator aktiv (wie üblich bei allen modernen AVRs mit internem R/C-Oszillator vgl. [[AVR Checkliste]]). Umschalten auf externe Taktquelle über die AVR-Fusebits.&lt;br /&gt;
* Dieser MC ist für nicht-gewerbliche Endanwender einzeln z.&amp;amp;nbsp;B. bei Reichelt, CSD und Segor erhältlich (ca. 9EUR). Beim Bestellen des MC sollte man einen CAN-BUS-Treiber gleich mitbestellen: z.&amp;amp;nbsp;B. Philips PCA82C250. Jedoch auf vorhandene Versorgungsspannungen achten (AT90CAN128 &amp;quot;kann mit&amp;quot; VCC=2,7...5,5V, PCA82C250 lt. Datenblatt für VCC=4,5...5V).&lt;br /&gt;
* die aktuelle Hardware-Version (Stand 4/2005) hat einen &amp;quot;silicon bug&amp;quot; (Hardwarefehler, vgl. avrfreaks-Forum): Liegt der Stack im &#039;&#039;externen&#039;&#039; RAM, führt dies zu Fehlern in der Stackverwaltung (push/pop/rcall etc.). Details in aktuellen Fassungen des Datenblatts. Abhilfe/Workaround: Stack im internen RAM (&amp;lt;0x1001) verwalten. Dies ist ohnehin sinnvoll, da der Stackzugriff dann schneller ist. &lt;br /&gt;
* CANopen software protocol stacks at http://www.port.de/Atmel.html&lt;br /&gt;
* Freier CANopen stack: http://www.canfestival.org/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- *Als Programmieradapter braucht man einen, der eine gewisse Intelligenz beinhaltet. Vergebens waren auch bei mir die Versuche,   mit dem &#039;Kanda&#039;-Dongle vom STK200-Board und ähnliche Nachbauten.  -&amp;gt; www.mikrocontroller-projekte.de [- Einzeltest mit Stickprobenumfang 1 - sollte schon funktionieren, auskommentiert bis nochmals belegt - mt] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Atmel AT91SAM7X, AT91SAM7A ===&lt;br /&gt;
* ARM7TDMI-Kern&lt;br /&gt;
&lt;br /&gt;
=== Luminary Micro Stellaris LM3S8xxx ===&lt;br /&gt;
* ARM Cortex-M3&lt;br /&gt;
* bis 64kByte RAM und 256kByte Flash&lt;br /&gt;
* CAN und Ethernet&lt;br /&gt;
&lt;br /&gt;
=== Microchip PIC18Fxx8 PIC18Fxx8x ===&lt;br /&gt;
* Mikrocontroller mit CAN Schnittstelle&lt;br /&gt;
* [http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=50&amp;amp;mid=10&amp;amp;lang=en&amp;amp;pageId=74 Herstellerseite]&lt;br /&gt;
&lt;br /&gt;
=== Mitsubishi / Renesas R8C / M16C / M32C ===&lt;br /&gt;
&lt;br /&gt;
R8C/23, M16C/6Nx&lt;br /&gt;
&lt;br /&gt;
=== Motorola / Freescale DSP56F8xx ===&lt;br /&gt;
* Clock des CAN-Moduls von PLL speisen, nicht von XTAL, sonst gibt es sporadische Aussetzer&lt;br /&gt;
* Bei hohen Datenraten ist es notwendig die CAN-TX-Leitung vom Controller mit einem PullUp-Widerstand zu beschalten. Sonst stimmt das Bit-Timing nicht, weil die Anstiegszeit des TX-Signals zu schlecht ist.&lt;br /&gt;
&lt;br /&gt;
=== Freescale MC9S08 ===&lt;br /&gt;
* D Serie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Freescale MC9S12 ===&lt;br /&gt;
* B, C, D und H Serie&lt;br /&gt;
&lt;br /&gt;
=== NPX LPC11CXX ===&lt;br /&gt;
* 32-bit ARM Cortex-M0&lt;br /&gt;
* LPC11C12 16KB flash, 8KB SRAM, 1x C_CAN&lt;br /&gt;
* LPC11C14 32KB flash, 8KB SRAM, 1x C_CAN&lt;br /&gt;
* LPC11C22 16KB flash, 8KB SRAM, 1x C_CAN, on-chip CAN transceiver&lt;br /&gt;
* LPC11C24 32KB flash, 8KB SRAM, 1x C_CAN, on-chip CAN transceiver&lt;br /&gt;
* Herstellerseite: [http://ics.nxp.com/products/lpc1000/lpc1100/lpc11cxx/]&lt;br /&gt;
&lt;br /&gt;
=== NPX LPC175X LPC176X ===&lt;br /&gt;
* Mikrocontroller mit Cortex-M3 Kern.&lt;br /&gt;
* 1 - 2 CAN Schnittstellen&lt;br /&gt;
* Herstellerseite: [http://ics.nxp.com/products/lpc1000/lpc17xx/ Philips Semiconductors]&lt;br /&gt;
&lt;br /&gt;
=== NXP (ex. Philips) LPC2129 LPC2194 LPC2290 LPC2292 LPC2294 ===&lt;br /&gt;
* Mikrocontroller mit ARM7TDMI-S-Kern (vgl. [[LPC2000 Philips ARM7TDMI-Familie]])&lt;br /&gt;
* 2 - 4 CAN Schnittstellen&lt;br /&gt;
* CAN-Modul angelehnt an Philips SJA1000 (aber mit recht langer und deftig gewürzter Bug-Liste)&lt;br /&gt;
* Herstellerseite: [http://www.nxp.com Philips Semiconductors]&lt;br /&gt;
* LPC2194 erhältlich bei http://www.microcontroller-starterkits.de und http://de.digikey.com/&lt;br /&gt;
* CANopen software protocol stacks at [http://www.port.de/Philips.html]&lt;br /&gt;
&lt;br /&gt;
=== NXP LPC23xx ===&lt;br /&gt;
* Mikrocontroller mit ARM7TDMI-S-Kern (vgl. [[LPC2000 Philips ARM7TDMI-Familie]])&lt;br /&gt;
* 2 CAN Schnittstellen&lt;br /&gt;
&lt;br /&gt;
=== NXP P80C591 P80C592 P80C598 ===&lt;br /&gt;
* 8-Bit Mikrocontroller mit 8051-Kern&lt;br /&gt;
* P80C591 ist neuer und beherrscht CAN2.0B&lt;br /&gt;
* P80C592: CAN2.0A, P80C598 ist die Automotive-Version vom &#039;592&lt;br /&gt;
&lt;br /&gt;
=== Silicon Labs C8051F04X C8051F06X C8051F5XX ===&lt;br /&gt;
*  8-Bit Mikrocontroller mit 8051-Kern&lt;br /&gt;
*  16K - 128K Flash, 2304 - 8448 RAM&lt;br /&gt;
*  LIN 2.1&lt;br /&gt;
*  25-50 MIPS&lt;br /&gt;
*  bis 5x5 QFN&lt;br /&gt;
&lt;br /&gt;
=== STMicroelectronics STM8S20  ===&lt;br /&gt;
* STM8 Kern [http://www.st.com/stonline/products/literature/ds/14733/stm8s208c6.pdf] DIV/MUL -Befehle &lt;br /&gt;
* SPI mit automatischer CRC Berechnung&lt;br /&gt;
* 1 beCAN Schnittstelle CAN2.0B &lt;br /&gt;
* sehr preiswert (128 kFlash/6K RAM ) 3,30 bis 4,80 &amp;amp;#8364; ([http://search.digikey.com/scripts/DkSearch/dksus.dll?vendor=0&amp;amp;keywords=CAN+STM8]  aber SMD LQFP &lt;br /&gt;
&lt;br /&gt;
=== STMicroelectronics STR730 STR750 ===&lt;br /&gt;
* ARM7TDMI-Kern&lt;br /&gt;
* 1-3 CAN Schnittstellen&lt;br /&gt;
&lt;br /&gt;
=== STMicroelectronics STR910FM32, STR910FW32, STR911FM42, STR911FM44, STR912FW42, STR912FW44 ===&lt;br /&gt;
* 96MHz ARM966E-S CPU Kern&lt;br /&gt;
&lt;br /&gt;
=== STMicroelectronics STM32F103, STM32F105, STM32F107 ===&lt;br /&gt;
* Cortex M3 Core&lt;br /&gt;
* STM32F103   : 1 CAN Schnittstelle&lt;br /&gt;
* STM32F105   : 2 CAN Schnittstellen&lt;br /&gt;
* STM32F107   : 2 CAN Schnittstellen&lt;br /&gt;
&lt;br /&gt;
=== TI TMS470 ===&lt;br /&gt;
* ARM7TDMI-Kern&lt;br /&gt;
&lt;br /&gt;
=== Toshiba TLCS-870/C ===&lt;br /&gt;
&lt;br /&gt;
==CAN Controller==&lt;br /&gt;
&lt;br /&gt;
===MCP2515 ===&lt;br /&gt;
&amp;quot;Stand-alone&amp;quot; CAN-Controller von Microchip. &lt;br /&gt;
* SPI Schnittstelle&lt;br /&gt;
* 2 Empfangs- und 3 Sendepuffer jeweils individuell konfigurierbar (ID, Masken/Filter etc.)&lt;br /&gt;
* ein gemeinsamer Interruptpin (RX)&lt;br /&gt;
* ein Interruptpin pro Empfangspuffer, umkonfigurierbar als GPO&lt;br /&gt;
* ein Triggerpin pro Sendepuffer, umkonfigurierbar als GPI&lt;br /&gt;
* Stromsparmodus&lt;br /&gt;
* auch für 3,3V-Betrieb geeignet.&lt;br /&gt;
* Diverse C- und Assembler Beispielcodes verfügbar (z.&amp;amp;nbsp;B. bei microchip.com und kvaser, Assembler meist für PICs). Auch Software für Direktanschluss an die parallele Schnittstelle eines PC verfügbar (&amp;quot;bit-bang Interface&amp;quot;).&lt;br /&gt;
* erhältlich z.&amp;amp;nbsp;B. bei Reichelt (ca. 2&amp;amp;#8364;)&lt;br /&gt;
&lt;br /&gt;
====Links====&lt;br /&gt;
*[http://www.kreatives-chaos.com/index.php?seite=mcp2515 Ansteuerung eines MCP2515] gcc&lt;br /&gt;
*[http://mcp2510btc.berlios.de/ Bit Timing Calculator für Linux]&lt;br /&gt;
&lt;br /&gt;
===SJA1000===&lt;br /&gt;
&amp;quot;Stand-alone&amp;quot; CAN-Controller von Philips&lt;br /&gt;
* Parallele Schnittstelle ca. 12 Leitungen&lt;br /&gt;
* erhältlich z.&amp;amp;nbsp;B. bei Reichelt (ca. 4 Euro)&lt;br /&gt;
&lt;br /&gt;
===AN82526===&lt;br /&gt;
&amp;quot;Stand-alone&amp;quot; CAN-Controller von Intel (entwickelt von Bosch)&lt;br /&gt;
* Vorgänger des AN82527&lt;br /&gt;
&lt;br /&gt;
===AN82527===&lt;br /&gt;
&amp;quot;Stand-alone&amp;quot; CAN-Controller von Intel (entwickelt von Bosch)&lt;br /&gt;
* Nachfolger des AN82526&lt;br /&gt;
* parallele  UND  SPI-Schnittstelle&lt;br /&gt;
* 8- oder 16-Bit Multiplex Bus, oder 8-Bit Non-Multiplexed Bus&lt;br /&gt;
* 14 Tx/Rx Puffer&lt;br /&gt;
* bis zu 16 IO-Pins (je nach Controlleranbindung)&lt;br /&gt;
* erhältlich z.&amp;amp;nbsp;B. bei Reichelt (ca. 5&amp;amp;#8364;)&lt;br /&gt;
&lt;br /&gt;
===Bosch CC170 / CC750 / CC770===&lt;br /&gt;
* kompatibel zum AN82527&lt;br /&gt;
* mehr Debug-Register&lt;br /&gt;
* CC750 im SOIC16-W Gehäuse ohne Parallel-Interface, nur SPI&lt;br /&gt;
* erhältlich bei Rutronik (ca. 8 Euro)&lt;br /&gt;
&lt;br /&gt;
===SAE81C9x===&lt;br /&gt;
* SPI und Busanschluss möglich.&lt;br /&gt;
* PLCC44 und PLCC28, letzteres allerdings in ungebräuchlicher Bauform&lt;br /&gt;
* Nur CAN 2.0A, beherrscht also keine Extended IDs.&lt;br /&gt;
&lt;br /&gt;
==Bustreiber (CAN-Transceiver)==&lt;br /&gt;
&lt;br /&gt;
=== High-Speed ===&lt;br /&gt;
&lt;br /&gt;
====MCP2551====&lt;br /&gt;
* von Microchip&lt;br /&gt;
* PDIP8 und SOIC&lt;br /&gt;
* VCC = 4,5...5,5V&lt;br /&gt;
* kostet rund 1&amp;amp;#8364;&lt;br /&gt;
* [http://ww1.microchip.com/downloads/en/DeviceDoc/21667f.pdf Datenblatt]&lt;br /&gt;
&lt;br /&gt;
====PCA 82C250====&lt;br /&gt;
* ABGEKÜNDIGT!&lt;br /&gt;
* von NXP (ex. Philips)&lt;br /&gt;
* PDIP8 und SO8&lt;br /&gt;
* VCC = 4,5...5,5V&lt;br /&gt;
* V-CAN: -8V..+18V   -&amp;gt; &amp;quot;TTL-kompatible&amp;quot; Bus-Spannung&lt;br /&gt;
* erhältlich z.&amp;amp;nbsp;B. bei Reichelt (ca. 1,00&amp;amp;#8364;)&lt;br /&gt;
&lt;br /&gt;
====PCA 82C251====&lt;br /&gt;
* von NXP (ex. Philips)&lt;br /&gt;
* PDIP8 und SO8&lt;br /&gt;
* VCC = 4,5...5,5V&lt;br /&gt;
* V-CAN: -40V..+40V   -&amp;gt; +24V Bus-Spannung&lt;br /&gt;
* erhältlich z.&amp;amp;nbsp;B. bei Reichelt (ca. 1,50&amp;amp;#8364;)&lt;br /&gt;
&lt;br /&gt;
====TJA 1050====&lt;br /&gt;
* ABGEKÜNDIGT!&lt;br /&gt;
* von NXP (ex. Philips)&lt;br /&gt;
* SO8, pinkompatibel&lt;br /&gt;
* VCC = 4,75...5,25V&lt;br /&gt;
* 3. Generation, Nachfolger der PCA82C25x&lt;br /&gt;
* http://www.semiconductors.philips.com/pip/TJA1050&lt;br /&gt;
&lt;br /&gt;
====ATA6660====&lt;br /&gt;
* von Atmel&lt;br /&gt;
* SO8&lt;br /&gt;
* VCC = 4,75...5,25V&lt;br /&gt;
&lt;br /&gt;
====SN65HVD23x====&lt;br /&gt;
* von Texas Instruments (auch als Sample erhaeltlich)&lt;br /&gt;
* SO8&lt;br /&gt;
* VCC = 3,0V...3,6V&lt;br /&gt;
* erhältlich z.&amp;amp;nbsp;B. bei Reichelt: SN65HVD230, SN65HVD231 (ca. 3,00 €)&lt;br /&gt;
Datenblatt:&lt;br /&gt;
*[http://www.ti.com/lit/gpn/sn65hvd230 SN65HVD230] &lt;br /&gt;
*[http://www.ti.com/lit/gpn/sn65hvd231 SN65HVD231]&lt;br /&gt;
&lt;br /&gt;
=== Fault-Tolerant / Low-Speed ===&lt;br /&gt;
&lt;br /&gt;
==== TJA1054 ====&lt;br /&gt;
* von NXP (ex. Philips)&lt;br /&gt;
* bis 125 &amp;quot;kBaud&amp;quot;&lt;br /&gt;
* SO14&lt;br /&gt;
* ähnliche Funktionen, gleicher Hersteller: TJA1053, TJA1055&lt;br /&gt;
&lt;br /&gt;
== CAN Repeater ==&lt;br /&gt;
&lt;br /&gt;
==== AMIS-42700 ====&lt;br /&gt;
* Dual High-Speed CAN Transceiver&lt;br /&gt;
* High speed (up to 1Mbit/s)&lt;br /&gt;
* SOIC-20&lt;br /&gt;
* vgl. http://www.mikrocontroller.net/topic/53799&lt;br /&gt;
&lt;br /&gt;
==== Alternative ====&lt;br /&gt;
* zwei Transceiver&lt;br /&gt;
* [http://www.mikrocontroller.net/attachment/9353/CANREPEATER.JPG Schaltung]&lt;br /&gt;
* Anmerkung: Diese Schaltung ist Quatsch und funktioniert nicht.&lt;br /&gt;
* -Zum Senden eines Zeichen, muss beim CAN paralell auf dem Bus gelesen werden.&lt;br /&gt;
  -Die TRansceiver tun dies nicht, mach nur der Controller.&lt;br /&gt;
  -Die gelesene Nachricht muss also durch einen Controller erneut gesendet werden, wenn der Bus frei ist...&lt;br /&gt;
&lt;br /&gt;
==== CAN Hub ====&lt;br /&gt;
CAN Hub mit standard Knoten&lt;br /&gt;
* http://www.oschmid.ch/mt/can-hub/can-hub.php&lt;br /&gt;
CAN Hub mit getrennten Rx und Tx Leitungen&lt;br /&gt;
* http://www.oschmid.ch/mt/can-hub4/can-hub4.php&lt;br /&gt;
&lt;br /&gt;
==SLIO-CAN==&lt;br /&gt;
&lt;br /&gt;
Preisgünstigste Bausteine sind die Serial Linked I/O Bausteine (SLIO). Diese Bausteine ermöglichen den Aufbau von Ein- und Ausgabeknoten ohne lokalen Prozessor. Auf der Basis dieser Bausteine lässt sich eine dezentrale Signal-Ein-Ausgabe mit minimalem Kostenaufwand realisieren.&lt;br /&gt;
&lt;br /&gt;
=== Philips P82C150===&lt;br /&gt;
* Single-Chip-I/O-Einheit mit integriertem CAN-Controller&lt;br /&gt;
* mögliche Busdatenrate 20kBd bis 125kBd&lt;br /&gt;
* interner RC-Oszillator wird durch den Bitstrom auf den Bus synchronisiert&lt;br /&gt;
* Kalibrierungsnachricht alle 8000 Bitzeiten erforderlich&lt;br /&gt;
** 4-Bit des Identifiers über Port-Pins einstellbar &lt;br /&gt;
* maximal 16 P82C150 in einem CAN-Segment&lt;br /&gt;
** 16 Port-Pins mit unterschiedlichen Konfigurationsmöglichkeiten&lt;br /&gt;
*** 16 mal als digitale Eingänge&lt;br /&gt;
*** 16 mal als digitale Ausgänge&lt;br /&gt;
*** 2 mal als analoger Ausgang ( 10-Bit, DPM )&lt;br /&gt;
*** 6 mal als analoger Eingang ( 10-Bit, multiplex )&lt;br /&gt;
*** 2 mal als Komparator &lt;br /&gt;
&lt;br /&gt;
* [http://www.htw-dresden.de/fe/labor/mikror/projects/slio_can/ slio-CAN]&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Philips stellt die SLIO nicht mehr her! Es ist auch &amp;quot;nichts&amp;quot; mehr am Markt beschaffbar, wenn, dann zu horrenden Preisen (um die 60,-EUR/Stück zur Zeit). --[[Benutzer:OldBug|Patrick]] 09:08, 25. Jan 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;obsolete&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===DS 36001M===&lt;br /&gt;
&#039;&#039;&#039;Obsolete&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===MCP2502X/5X===&lt;br /&gt;
&lt;br /&gt;
CAN-IO Erweiterung. Braucht praktisch nur noch Quarz und Transciever. Preise ab 3€&lt;br /&gt;
* bis zu 8 digitale IOs &lt;br /&gt;
* bis zu 2 PWM, 10 Bit&lt;br /&gt;
* bis zu 4 ADC, 10 Bit, externe Ref.&lt;br /&gt;
* SLEEP-Mode etc.&lt;br /&gt;
&lt;br /&gt;
[http://ww1.microchip.com/downloads/en/devicedoc/21664c.pdf Datenblatt]&lt;br /&gt;
&lt;br /&gt;
== Verkabelung ==&lt;br /&gt;
* auf beidseitige Busterminierung achten (typisch 2x 120Ω bei &amp;quot;high-speed&amp;quot;)&lt;br /&gt;
* Standardbelegung für diverse Steckverbindungen vgl. CANOpen-Dokumentation http://www.can-cia.de/index.php?id=440 (CiA 303-1);  erfordert Anmeldung&lt;br /&gt;
* Schaltplan für galvanische Trennung z.&amp;amp;nbsp;B. nach Datenblatt des PCA82C250&lt;br /&gt;
* für einfache Testaufbauten über sehr kurze Strecken oder &amp;quot;on-board-CAN&amp;quot; kann auf die Bustreiber verzichtet werden (vgl. Siemens Application-Note [http://www.mikrocontroller.net/attachment/28831/siemens_AP2921.pdf AP2921])&lt;br /&gt;
&lt;br /&gt;
Es gibt auch CAN mit &lt;br /&gt;
* einpoliger unsymmetrischer Verbindung (SAE J2411 single wire)&lt;br /&gt;
* optischer Verbindung (Faser, Glasfaser)&lt;br /&gt;
&lt;br /&gt;
Für einfache Tests genügt auch eine direkte wired-and-Verbindung ohne Treiber:&lt;br /&gt;
http://www.mikrocontroller.net/forum/read-1-325202.html?reload=yes#325962&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
Hersteller von Debug-Geräten&lt;br /&gt;
* Vector-Informatik CANscope (Pegeltester) http://www.vector-informatik.de/deutsch/  - ca. 3300EUR&lt;br /&gt;
* Gemac CBT (CanBusTester) testet auch Pegel, Reflexionen ... (Treiber etc. etwas ältlich, von 2002, was ist mit Weiterentwicklung?), auch leihweise http://www.gemac-chemnitz.de/pages/d_html/produkte/bus-tester/new-de-can-bust.html http://www.brandt-data.de/canbus/can_intro.html  - ca. 2400EUR&lt;br /&gt;
* ixxat bietet ebenfalls den Gemac-cbt an, auch leihweise&lt;br /&gt;
*QCANObserver http://qcanobserver.sourceforge.net/ CAN Debugger mit ähnlichen Fähigkeiten. Derzeit läuft die Entwicklung nur noch unter Linux. Freie Software (GPL)&lt;br /&gt;
&lt;br /&gt;
Oszilloskope mit CAN-Analyse (manche auch SPI, LIN, RS232, SATA ...):&lt;br /&gt;
* LeCroy WaveRunner 6040 wird mit Vector-CANcaseXL (externer CAN-Trigger) geliefert (sehr gut, ab ca.9000 EUR)&lt;br /&gt;
* LeCroy WaveSurfer 424 wird mit Vector-CANcaseXL (externer CAN-Trigger) geliefert (sehr gut, ab ca.8000 EUR)&lt;br /&gt;
* Yokogawa DL1640 und DL9040 (CAN-Trigger ist intern)  ähnliche Preise wie LeCroy, Bedienung gewöhnungsbedürftig, geht mit etwas Übung besser&lt;br /&gt;
* Tektronix&lt;br /&gt;
* HP / Agilent&lt;br /&gt;
* LogicPort http://www.pctestinstruments.com/&lt;br /&gt;
&lt;br /&gt;
Triggermöglichkeiten: SOF, CAN-ID, CAN-Data, ErrorFrame, RTR, Ack, NoAck  - alle verknüpfbar (gleich ungleich kleiner größer inRange outofRange)&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
&lt;br /&gt;
==Intern==&lt;br /&gt;
[[CAN als Hausbus]]&lt;br /&gt;
&lt;br /&gt;
==Allgemein==&lt;br /&gt;
* [http://can-wiki.info CAN-WIKI] - spezielle Wiki Site für CAN bus (Englisch)&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Controller_Area_Network Wikipedia - CAN]&lt;br /&gt;
* [http://www.thomas-wedemeyer.de/elektronik/CAN-Bus/can-bus.html Grundlagen zum CAN-Bus] - Kurze Zusammenfassung der Funktionsweise und Einsatzmöglichkeiten vom CAN-Bus&lt;br /&gt;
* [http://www.canbus.cz CAN] - Controller_Area_Network (Czech)&lt;br /&gt;
* [http://www.embedded.com/design/networking/220900314 CAN in 30 minutes or less] - A quick-and-dirty guide to tuning your CAN interface and simplifying your design by Hassane El-Khoury at www.embedded.com&lt;br /&gt;
* [https://www.vector.com/vl_einfuehrungcan_portal_de.html Einführung in CAN] - kostenloses E-Learning Angebot&lt;br /&gt;
&lt;br /&gt;
===Testboards===&lt;br /&gt;
&lt;br /&gt;
*[http://www.jtronics.de/platinen.html  AT90CAN Testboard by www.jtronics.de (aktualisiert 2010)]&lt;br /&gt;
*[http://www.mikrocontroller.net/topic/176804  universal Testboard - CAN RS232 SPI I2C ]&lt;br /&gt;
*[http://www.jtronics.de/platinen.html AT90CAN128 Board by www.jtronics.de]&lt;br /&gt;
*[http://www.kreatives-chaos.com/artikel/can-testboard  ATmega8 CAN Testboard und  MCP2515 Tutorial]&lt;br /&gt;
&lt;br /&gt;
===Dongles===&lt;br /&gt;
&lt;br /&gt;
==== Selbstbau Projekte ====&lt;br /&gt;
*[http://cryptomys.de/horo/CAN200/ Can200 Linux Project von Martin Homuth-Rosemann] CAN Businterface am Parallelport (LPT). Mit SJA1000.&lt;br /&gt;
*[http://www.mictronics.de/projects/usb-can-bus/ USB&amp;lt;&amp;gt;CAN Bus Interface mit AVR ATmega162] Open Source. Mit ATmega162, FT245 und SJA1000.&lt;br /&gt;
*[http://oschmid.home.solnet.ch/mt/can-hub/can-hub.php CAN Bus HUB]&lt;br /&gt;
*[http://martinsuniverse.de/projekte/caninterceptor/caninterceptor.html CAN-Interceptor von Martin S.] Mit R8C/23 und FT232R.&lt;br /&gt;
* [http://www.fischl.de/usbtin/ USBtin - Simple USB to CAN interface von Thomas Fischl] Mit PIC18F14K50 und MCP2515. Bausatz verfügbar (24,50 EUR).&lt;br /&gt;
&lt;br /&gt;
==== Fertiggeräte ====&lt;br /&gt;
*[http://www.mhs-elektronik.de/tiny_can.html Tiny-CAN USB-CAN-Adapter von MHS-Elektronik] Ab 60,- EUR. Open Source CAN-Monitor für Windows und Linux.&lt;br /&gt;
*[http://www.cantronik.com/ CANvu - CAN-Display-Produkte von CANtronik]&lt;br /&gt;
*[http://www.kopfweb.de/automobiltechnik.html CAN/LIN nach USB Adapter von KOPF GmbH] Ab 320,- EUR&lt;br /&gt;
*[http://www.ixxat.de/overview-pc-can-interface-board_de.html PC/CAN-Interfaces von IXXAT Automation GmbH] ca. 200 EUR&lt;br /&gt;
*[http://www.peak-system.com/Hardware-Liste.90+M5bc66b17d2f.0.html?&amp;amp;tx_commerce_pi1 CAN-Interfaces von Peak-System]  Ca. 200 EUR&lt;br /&gt;
*[http://www.ems-wuensche.com/product/datasheet/html/can-usb-adapter-converter-interface-cpcusb.html USB to CAN Bus Interface von EMS Dr. Thomas Wünsche]  Ca. 180 EUR&lt;br /&gt;
*[http://www.systec-electronic.com/html/index.pl/en_product_can_interfaces  USB-CANmodul Serie von SYS TEC electronic] mit Unterstützung von 1, 2, 8, oder 16 CAN Kanälen (ab 129,- EUR)&lt;br /&gt;
*[http://www.8devices.com/product/2/usb2can USB2CAN USB to CAN bus galvanic isolated converter von 8devices] Ab 65,- EUR. Open source interface DLL and software.&lt;br /&gt;
*[http://www.canusb.com/ canusb USB&amp;lt;&amp;gt;CAN über V24-Treiber] und [http://www.can232.com/  RS232/V24&amp;lt;&amp;gt;CAN Bus Interface] von Lawicel.&lt;br /&gt;
**[http://www.canusb.com/projects.htm Freie Software für canusb]&lt;br /&gt;
**[http://www.canviausb.com Weitere CAN BUS Monitor Software für canusb]&lt;br /&gt;
*[http://www.port.de/pages/products/can/canopen/hardware/ethercan.php?lang=en CAN-LAN-Bridge von PORT] mit ARM und Linux&lt;br /&gt;
*[http://www.anagate.de/products/can-ethernet-gateways.htm CAN-USB Gateway und CAN-Ethernet Gateways von AnaGate] LowCost Lösung und Professionelle Varianten mit Linux System für eigene Anwendungen mit 1,2 und 4 CAN-Ports (Shop)&lt;br /&gt;
*[http://www.rs.canlab.cz/?q=en/node/69 PP2CAN LPT-CAN Interface], [http://www.rs.canlab.cz/?q=en/node/67 CAN2MMC Datenlogger] (CAN,RS232-GPS) und [http://www.rs.canlab.cz/?q=en/node/68 USB2CAN USB2CAN USB-CAN Interface] 80 EUR von CANLAB&lt;br /&gt;
*[http://www.canhack.de/viewtopic.php?t=137 CANHACK CANUSB Interface] High Speed CAN + OBD2 inkl. CAN Monitor. 79,- EUR. (noch aktuell?)&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
*[http://www.canviausb.com CAN Monitor für Lawicel CANUSB, Zanthic CAN-4-USB-FX/MCP2515 und MHS-Elektronik Tiny-CAN] &lt;br /&gt;
*[http://canhack.de/viewtopic.php?f=25&amp;amp;t=135 CAN Monitor und Tracer für Peak USB, Lawicel CANUSB+CAN232 und kompatible]&lt;br /&gt;
*[http://www.mhs-elektronik.de/tiny_can.html GNU – Open Source CAN Monitor, Makro und Filter Funktion, Plugin fähig, unter GTK+ entwickelt]&lt;br /&gt;
&lt;br /&gt;
===Protokolle===&lt;br /&gt;
====CANopen====&lt;br /&gt;
&lt;br /&gt;
*[http://canopen.sourceforge.net/index.html CANopen free software resource center]&lt;br /&gt;
*[http://www.canopen-solutions.com/canopen_caneds_de.html Kostenloser Editor für CANopen EDS-Dateien von Vector]&lt;br /&gt;
*[http://developer.berlios.de/projects/socketcan Official Linux CAN interface]&lt;br /&gt;
*[https://github.com/sebi2k1/restcan Javascript interface to SocketCAN with signal processing (in progress)]&lt;br /&gt;
*[http://www.etas.com/de/products/applications_open_source.php BUSMASTER]&lt;br /&gt;
&lt;br /&gt;
[[Category:CAN]]&lt;br /&gt;
[[Kategorie:Bauteile]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Mikrocontroller&amp;diff=9608</id>
		<title>Mikrocontroller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Mikrocontroller&amp;diff=9608"/>
		<updated>2005-10-16T08:27:46Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Was ist ein Mikrocontroller? ==&lt;br /&gt;
&lt;br /&gt;
Ein Mikrocontroller ist ein [[Prozessor]]. Der Unterschied zu PC-Prozessoren besteht darin, dass bei einem Mikrocontroller Speicher, [[Digital]]- und [[Analog]]- Ein- und Ausgänge usw. meist auf einem einzigen Chip integriert sind, so dass eine Mikrocontroller-Anwendung oft mit ein paar wenigen Bauteilen auskommt.&lt;br /&gt;
&lt;br /&gt;
Mikrocontroller werden als erstes an der Bit-Zahl des internen Datenbusses unterschieden: 4bit, 8bit, 16bit und 32bit. Diese Bit-Zahl kann man als die Länge der Daten interpretieren, die der Controller in einem Befehl verarbeiten kann. Die größte in 8 [[Bit]] (=1 [[Byte]]) darstellbare Zahl ist die 255, somit kann ein 8bit-Mikrocontroller z.B. in einem [[Addition]]sbefehl immer nur Zahlen kleiner als 256 verarbeiten. Zur Bearbeitung von größeren Zahlen werden dann mehrere Befehle hintereinander benötigt, was natürlich länger dauert.&lt;br /&gt;
&lt;br /&gt;
Ein Mikrocontroller braucht, wie jeder andere Prozessor auch, zum Betrieb im Allgemeinen eine extern eingespeiste [[Taktfrequenz]]. Die maximale Frequenz, mit der ein Controller betrieben werden kann, reicht von 1 MHz bei alten Controllern bis hin zu über 100 MHz bei teuren 32-&amp;quot;Bittern&amp;quot;. Diese Taktfrequenz sagt jedoch noch nichts über die tatsächliche Geschwindigkeit eines Prozessors aus. So wird z.B. bei den meisten [[8051]]-Controllern die Frequenz intern durch 12 geteilt, ein mit 24 MHz getakteter [[8051]] arbeitet also eigentlich nur mit 2 MHz. Benötigt dieser dann für einen Befehl durchschnittlich 2 Taktzyklen, so bleiben &amp;quot;nur&amp;quot; noch 1 Mio. Befehle pro Sekunde übrig - ein [[AVR]], der ungeteilt mit 8MHz arbeitet und für die viele Befehle nur einen Zyklus braucht, schafft dagegen fast 8 Mio. Befehle pro Sekunde.&lt;br /&gt;
(Trotzdem erreichen moderne 8051-Derivate teilweise 50MIPS und auch mehr! -  Siehe Dallas 80C420)&lt;br /&gt;
&lt;br /&gt;
== Wozu ist ein Mikrocontroller gut? ==&lt;br /&gt;
&lt;br /&gt;
Hier ein paar Beispiele, für welche Aufgaben Mikrocontroller verwendet werden (können):&lt;br /&gt;
&lt;br /&gt;
* Ladegeräte&lt;br /&gt;
* [[Motorsteuerung]]en (z.B. [[Schrittmotor-Controller (Stepper)]])&lt;br /&gt;
* [[Roboter]]&lt;br /&gt;
* [[Meßwerterfassung]] (z.B. [[Drehzahlmessung]] im Auto)&lt;br /&gt;
* [[Temperaturregelung|Temperaturregler]]&lt;br /&gt;
* [[MP3]]- und DVD-Player&lt;br /&gt;
* Schaltuhren&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Welchen Mikrocontroller soll ich verwenden? ==&lt;br /&gt;
&lt;br /&gt;
Ein Mikrocontroller für Hobbyanwender sollte idealerweise folgende Voraussetzungen erfüllen:&lt;br /&gt;
&lt;br /&gt;
* gute Beschaffbarkeit&lt;br /&gt;
* niedriger Preis spielt bei den kleinen Stückzahlen keine so große Rolle&lt;br /&gt;
* handliche Bauform: ein Controller mit 20 Pins ist leichter handzuhaben als einer mit 128&lt;br /&gt;
* [[Flash-ROM]]: der Controller sollte mindestens 1000 mal neu programmiert werden können&lt;br /&gt;
* In-System-Programmierbarkeit ([[ISP]]): man benötigt kein teures Programmiergerät und muss den Controller zur Programmierung nicht aus der Schaltung entfernen&lt;br /&gt;
* kostenlose Software verfügbar: [[Assembler]] bekommt man praktisch immer kostenlos vom Hersteller des Controllers, [[C]]-[[Compiler]] seltener&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Beschreibung der Entscheidungskriterien gibt es auf der Seite [[Entscheidung Mikrocontroller]].&lt;br /&gt;
&lt;br /&gt;
== verbreitete Mikrocontrollerfamilien ==&lt;br /&gt;
* 1 Bit&lt;br /&gt;
** [[MC14500B]] (Motorola, historisch!)&lt;br /&gt;
&lt;br /&gt;
* 4 Bit&lt;br /&gt;
** [[MARC4]] (Atmel)&lt;br /&gt;
** [[SM62]] (Epson)&lt;br /&gt;
&lt;br /&gt;
* 8 Bit&lt;br /&gt;
** [http://www.analog.com/MicroConverter MicroConverter®] (Analog Devices)&lt;br /&gt;
** [[AVR]] (Atmel)&lt;br /&gt;
** [[PIC]] (Microchip)&lt;br /&gt;
** [[8048]] (Intel)&lt;br /&gt;
** [[8051]] (Intel, versch. Hersteller)&lt;br /&gt;
** [[H8]] (Renesas, früher Hitachi)&lt;br /&gt;
** [[68HC05]] (Freescale, früher Motorola)&lt;br /&gt;
** [[68HC08]] (Freescale, früher Motorola)&lt;br /&gt;
** [[68HC11]] (Freescale, früher Motorola)&lt;br /&gt;
** [[ST62]] (SGS-Thomson)&lt;br /&gt;
** [[78K0S]] (NEC)&lt;br /&gt;
** [[Z8]] (Zilog)&lt;br /&gt;
** [[PSoC]] (Cypress)&lt;br /&gt;
&lt;br /&gt;
* 16 Bit&lt;br /&gt;
** [[C16x]] (Infineon)&lt;br /&gt;
** [[M16C]] (Renesas, früher Mitsubishi)&lt;br /&gt;
** [[H8]] (Renesas, früher Hitachi)&lt;br /&gt;
** [[68HC12]] (Freescale, früher Motorola)&lt;br /&gt;
** [[68HC16]] (Freescale, früher Motorola)&lt;br /&gt;
** [[dsPIC]] (Microchip)&lt;br /&gt;
** [[MSP430]] (Texas Instruments)&lt;br /&gt;
&lt;br /&gt;
* 32 Bit&lt;br /&gt;
** [http://www.analog.com/MicroConverter/ARM7 ADuC7000] (Analog Devices)&lt;br /&gt;
** [[AT91]] (Atmel)&lt;br /&gt;
** [[ElanSC520]] (AMD)&lt;br /&gt;
** [[TriCore]] (Infineon)&lt;br /&gt;
** [[SuperH]] (Renesas, früher Hitachi)&lt;br /&gt;
** [[LPC210X]] (Philips)&lt;br /&gt;
** [[FR50]] (Fujitsu)&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=PSoC&amp;diff=5446</id>
		<title>PSoC</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=PSoC&amp;diff=5446"/>
		<updated>2005-02-12T14:41:48Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Allgemein ==&lt;br /&gt;
&lt;br /&gt;
PSoC (Programmable System on a Chip) ist ein 8 Bit-[[Mikrocontroller]] der Firma [http://www.cypressmicro.com/ Cypress Micosystems]. Er zeichnet sich durch folgende Merkmale aus:&lt;br /&gt;
* 8 Bit-Kern: M8C&lt;br /&gt;
* 4 MIPS (93.7 kHz bis 24 MHz Systemtakt)&lt;br /&gt;
* Konfigurierbare Peripherieblöcke. Sowohl digital, als auch analog!&lt;br /&gt;
* [[Harvard-Architektur]] (getrennter Befehls- und Datenspeicher)&lt;br /&gt;
* [[Akkumulator]] (wenig Register)&lt;br /&gt;
* [[ISP|In-System]] progammierbar&lt;br /&gt;
&lt;br /&gt;
Besonderheit sind die vom Programmierer konfigurierbaren Peripherieblöcke. Darin können sowohl digitale (z.B. Timer, Zähler, PWM, SPI, UART), als auch analoge (z.B. AD-Wandler, DA-Wandler, Filter, Komperator) Funktionen umgesetzt und externe Bauteile wie Operationsverstärker eingespart werden.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Entwicklungsumgebung &amp;quot;PSoC Designer&amp;quot; wird kostenlos auf der Herstellerhomepage zur Verfügung gestellt. Damit kann man auch die Peripherieblöcke konfigurieren und in Code umsetzen lassen. Bei der kostenlosen Version können nur Assembler-Programme übersetzt werden; für den C-Compiler muss eine Lizenz erworben werden.&lt;br /&gt;
&lt;br /&gt;
== Entwicklungshardware ==&lt;br /&gt;
Die Controller sind über [[ISP]] programmierbar.&lt;br /&gt;
&lt;br /&gt;
Im [http://www.psocdeveloper.com PSoCDeveloper.com]-Forum wurde ein Freeware-Programmer vorgestellt, der über den Druckerport mit dem Controller verbunden wird.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.cypressmicro.com/ Cypress Micosystems] Herstellerhomepage&lt;br /&gt;
* [http://www.psocdeveloper.com PSoCDeveloper.com] Forum&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=MSP430&amp;diff=791</id>
		<title>MSP430</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=MSP430&amp;diff=791"/>
		<updated>2004-03-19T08:06:27Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Hinweis auf Bootloader eingebaut&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der MSP430 ist ein 16 [[Bit]]-[[Mikrocontroller]] von [[Texas Instruments]]. Er wurde speziell für eine geringe Stromaufnahme entwickelt, so dass er besonders für batteriebetriebene Geräte geeignet ist. Es gibt verschiedene Typen mit 1-60 kB [[Flash-ROM]], 256-2048 [[Byte]] [[RAM]], mit oder ohne Hardware-Multiplizierer, [[UART]] oder [[AD-Wandler]], alle im [[SMD]]-Package mit 20 bis &amp;gt;100 Pins. Der MSP430F1121 zum Beispiel hat 4kB [[Flash]], 256B [[RAM]], 2 [[Timer]] und steckt in einem SO-20 Gehäuse.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungshardware ===&lt;br /&gt;
&lt;br /&gt;
Günstige Adapterplatinen und [[JTAG]]-Programmer für MSP430-Controller bekommt man bei [http://olimex.com/dev/ Olimex (Bulgarien)] oder in Deutschland bei http://shop.mikrocontroller.net und http://www.elektronikladen.de.&lt;br /&gt;
&lt;br /&gt;
Neben der JTAG-Programmierung bieten die MSP430-Controller auch die Möglichkeit, die Firmware über einen [[Bootloader]] einzuspielen. Die dafür erforderliche Hardware wird in der Application Note SLAA096b von [[Texas Instruments]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
==== Stromversorgung ====&lt;br /&gt;
&lt;br /&gt;
Der MSP430 benötigt eine [[Spannung]] zwischen 1,8 und 3,6 V. Einfach erzeugen kann man diese z.B. mit der folgenden Schaltung:&lt;br /&gt;
&lt;br /&gt;
http://www.mikrocontroller.net/images/lm317.png&lt;br /&gt;
&lt;br /&gt;
An den Eingang wird ein Steckernetzteil angeschlossen, die Ausgangsspannung lässt sich über das [[Potentiometer]] P1 einstellen.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
Alles was man für den MSP430 an Software braucht ist völlig kostenlos. Mit dem C-Compiler [[MSPGCC]], dem Debugging-Programm [[GDB]]/Insight und einem beliebigen [[Texteditor]] kann man C-Programme schreiben, kompilieren, in den Controller programmieren und debuggen.&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
</feed>