<?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=Mw1987</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=Mw1987"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/Mw1987"/>
	<updated>2026-04-11T06:01:30Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR32&amp;diff=75589</id>
		<title>AVR32</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR32&amp;diff=75589"/>
		<updated>2013-05-13T06:18:08Z</updated>

		<summary type="html">&lt;p&gt;Mw1987: /* Starterkits */ AVR-CAN ist kein AVR32-Evalboard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AVR32 ist eine Anfang 2006 von Atmel vorgestellte Prozessorfamilie, ungefähr in der [[ARM]]9/[[Blackfin]]-Klasse. Mit dem 8-Bit-[[AVR]] hat sie bis auf den Namen nichts gemeinsam. Als primären Compiler hat Atmel den [[GCC]] für die AVR32-Architektur angepasst. Weitere Compiler und Entwicklungsumgebungen werden kommerziell angeboten.&lt;br /&gt;
&lt;br /&gt;
== Die AVR32 Architekturfamilie ==&lt;br /&gt;
&lt;br /&gt;
Eine Familie, zwei Architekturen (AP und UC):&lt;br /&gt;
&lt;br /&gt;
Das AVR32 Architektur-Model hat Atmel in zwei Architekturen umgesetzt;&lt;br /&gt;
&lt;br /&gt;
* AVR32 AP: Die auf embedded Linux Anwendungen ausgerichtete AVR32 AP Architektur, welche Grundlage für die AVR32 AP7 Produktfamilie ist. Das AP steht für Application Processor, unterscheidet sich also insbesondere von anderen Mikrocontrollern durch fehlenden internen Flash. Diese Architektur wird in Atmels technischer Dokumentation auch als B-Variante bezeichnet. Die Produktfamilie AVR32 AP7 umfasst derzeit die Prozessoren AT32AP7000, AT32AP7001, AT32AP7002 (Stand Juli 09)&lt;br /&gt;
&lt;br /&gt;
* AVR32 UC: Die auf hochintegrierte eingebettete Systeme (insbesondere Multimedia) auf Flash-Mikrocontroller-Basis ausgerichtete AVR32 UC Architektur, welche Grundlage für die Produktfamilie UC3, bzw. dessen &amp;quot;Subfamilien&amp;quot; UC3A, UC3B und UC3L ist. In der technischen Dokumentation auch als A-Variante bezeichnet (Nicht verwechseln: AVR32-A/UC und -B/AP ist gemeint, nicht etwa UC3A und UC3B, welches lediglich Produktfamilien innerhalb der AVR32-A/UC Architektur sind).&lt;br /&gt;
&lt;br /&gt;
Nachfolgend eine kurze Vorstellung der Produktfamilien. Hier findet man eine ausführliche [http://www.msc.de/en/186-www/version/default/part/AttachmentData/data/viii-2_2009-prie-4419.pdf Übersicht].&lt;br /&gt;
&lt;br /&gt;
=== AVR32 AP Architektur: Produktfamilie AP7 ===&lt;br /&gt;
&lt;br /&gt;
* AT32AP700x - AVR32-Kern mit Cache und Beschleunigern für Multimedia-Operationen und Java, 32kB interner SRAM, Externes Speicherinterface, High-Speed-USB, verschiedene Timer und serielle Schnittstellen, kein interner Flash. Speziell für Embedded Linux Bedürfnisse angepasst. Der AP7 ist seit 2010 abgekündigt.&lt;br /&gt;
&lt;br /&gt;
=== AVR32 UC Architektur: Produktfamilie UC3A ===&lt;br /&gt;
&lt;br /&gt;
* AT32UC3A0xxx - AVR32 UC-Kern ohne Cache, interner Flash und SRAM, Full-Speed-USB mit OTG, Ethernet, verschiedene Timer und serielle Schnittstellen. Mit externem Speicherinterface (EBI).&lt;br /&gt;
&lt;br /&gt;
* AT32UC3A1xxx - Wie 0xxx, jedoch ohne EBI. Vorteil: Reduzierter Pincount&lt;br /&gt;
&lt;br /&gt;
* AT32UC3A3xxx (zur Zeit Produkteinführung) - gegenüber A0xxx und A1xxx zusätzliche Peripherie: SD/MMC, Hispeed USB, jedoch kein Ethernet. S-Variante mit Crypto-Modul&lt;br /&gt;
&lt;br /&gt;
=== AVR32 UC Architektur: Produktfamilie UC3B ===&lt;br /&gt;
&lt;br /&gt;
* AT32UC3B - AVR32 UC-Kern ohne Cache, interner Flash und SRAM, teilweise Full-Speed-USB mit OTG, verschiedene Timer und serielle Schnittstellen. Im Unterschied zur UC3A Reihe haben sie kleinere Gehäuse mit weniger I/O Pins, weniger Peripherie (kein Ethernet) und kein externes Speicherinterface (EBI).&lt;br /&gt;
&lt;br /&gt;
Auffallend ist, dass prinzipiell die gleiche Peripherie (Timer, serielle Schnittstelle, TWI = I²C, SSI, …) wie beim AT91SAM7 (ARM7-Kern) verbaut ist, bestenfalls um einige Randfunktionen aufgeblasen. Erfreulich ist, dass die USB-Peripherie auch Host/OTG unterstützt, was beim AT91SAM7 fehlt. Auch sind, bei gleichem Gehäuse, deutlich mehr Pins für E/A verfügbar als beim Vorgänger.&lt;br /&gt;
&lt;br /&gt;
=== AVR32 UC Architektur: Produktfamilie UC3L (zur Zeit Produkteinführung) ===&lt;br /&gt;
&lt;br /&gt;
* AT32UC3L0xx - AVR32 UC-Kern ohne Cache, interner Flash und SRAM, kein USB, Zahlreiche PWM-Kanäle, Timer, 12bit ADC, mit Capacitive-Touch Modul.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
===Freie Tools===&lt;br /&gt;
&lt;br /&gt;
====AVR32 Instruction Set Simulator====&lt;br /&gt;
Die Firma Lauterbach bietet unter der Artikelnummer LA-8816 einen Instruction Set Simulator für den AVR32 an. Die Demoversion ist zur Evaluierung kostenlos. Einschränkungen bestehen in der Anzahl der zu ladenen Debugsymbole. Der Simulator unterstützt alle gängigen AVR32 Derivate und lädt alle üblichen Debugformate, wie die des IAR Compilers oder der freien GCC Tools .&lt;br /&gt;
&lt;br /&gt;
Zum Simulator gibt es entsprechende zugehörige Debugtools, die allerdings nur&lt;br /&gt;
käuflich zu erwerben sind. &lt;br /&gt;
&lt;br /&gt;
[[Datei:avr32_sim_la8816.jpg|thumb|left|130px| AVR32 Simulator]]&lt;br /&gt;
&lt;br /&gt;
* Screenshot:&lt;br /&gt;
&lt;br /&gt;
Der Screenshot zeigt ein Beispiel mit Quellcode (HLL/ASM mixed), Register/Stack Fenster, Variablenansicht, Stackframe und Darstellung des &amp;quot;Speicherinhalts&amp;quot; eines Datenpointers.&lt;br /&gt;
&lt;br /&gt;
* Weblinks:&lt;br /&gt;
&lt;br /&gt;
** [http://www.lauterbach.com/frames.html?dwnload.html Downloadarea mit AVR32 Simulator]&lt;br /&gt;
** ?Handbuch?&lt;br /&gt;
&lt;br /&gt;
== Starterkits ==&lt;br /&gt;
&lt;br /&gt;
* UC3L0-, UC3A- und UC3B-XPlained Eval-Module von Atmel&lt;br /&gt;
* [[STK600]] Auch für die 8bit AVR Familien geeignet, nicht jedoch für die AVR32 AP Architektur&lt;br /&gt;
* [[STK1000]] Nur für die AVR32 AP Architektur, nicht UC.&lt;br /&gt;
* [[ATNGW100]] (Board mit AT32AP7000, 2*Ethernet, SD/MMC, 8MB Flash, 32MB SDRAM)&lt;br /&gt;
* [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4114 ATEVK1100] (Kit für AT32UC3A, mit Ethernet, SD/MMC, LCD, 32MB SDRAM, 2x UART, USB)&lt;br /&gt;
* [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4175 ATEVK1101] (Kit für AT32UC3B, mit SD/MMC)&lt;br /&gt;
* [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4427 ATEVK1104] (Kit für AT32UC3A3256 mit USB, SD/MMC, Flash, Touch-Sensoren, 16Bit Audio-DAC)&lt;br /&gt;
* [[ATEVK1105]] (Kit für AT32UC3A0512, QVGA Display, 2xUSB 2.0, einer davon als USB-USART Bridge über einen UC3B-uC , Ethernet, Audio codec für Audio-aufnahme und wiedergabe, Touch Sensoren, 8MB Flash, 32MB SDRAM, SD/MMC.)&lt;br /&gt;
* [http://shop.mikrocontroller.net/?product_id=12 AVR32-Board Grasshopper] (AT32AP7000, Ethernet, USB)&lt;br /&gt;
*  ICnova AP7000 LCD&lt;br /&gt;
* [[ICnova ADB1000]] (Board mit AT32AP7000, 1*Ethernet, USB 2.0, SD/MMC, ...) &lt;br /&gt;
Weitere Starterkits sind von Atmel in Planung. Infos hierzu gibt es noch nicht auf der Atmel Seite, sondern in der Help des aktuellen AVR32 Studio:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;STK1005, STK1006&#039;&#039;&#039; Erweiterungsboards für das STK1000 als Motherboard. STK1005: AP7200, 128MB NAND Flash, 64MB SDRAM. STK1006: Upgrade vom STK1002, AP7000, 256MB NAND Flash, 64MB SDRAM&lt;br /&gt;
&lt;br /&gt;
== AVR32 Projekte ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wer hat Links?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://avr32linux.org/twiki/bin/view/Main/PramodeCE&lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/ehalos/  eHalOS is a small operating system for embedded devices&lt;br /&gt;
&lt;br /&gt;
http://www.project-xmedia.com/main.php?page=information   xMedia Player&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/forum/mikrocontroller-elektronik/avr32 Beiträge zum AVR32 im Forum]&lt;br /&gt;
&lt;br /&gt;
* [[AVR32 Studio]] Von Atmel kostenlos zur Verfügung gestellte IDE auf Basis von Eclipse/CDT&lt;br /&gt;
&lt;br /&gt;
* [[AVR32 Grasshopper]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.atmel.com/products/AVR32/ AVR32 auf der Atmel-Website]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/AVR32 AVR32 in Wikipedia]&lt;br /&gt;
* [http://avr32linux.org/ Linux für AVR32]&lt;br /&gt;
* [http://www.avrfreaks.net/wiki/index.php/Documentation:AVR32_General AVRFreaks.net Wiki zu AVR32]&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=index&amp;amp;c=5 AVR32 Foren auf AVRFreaks.net] (Englisch)&lt;br /&gt;
* [http://www.triplespark.net/elec/pdev/avr32/develsetup.html Minitutorial AVR32 Installation des Toolchain unter Linux und Hallo Welt] (Englisch)&lt;br /&gt;
* [http://www.avr32-wiki.de/ AVR32 Turorial] - Tutorial für AVR32-Controller (Deutsch)&lt;br /&gt;
&lt;br /&gt;
[[Category:Mikrocontroller]]&lt;br /&gt;
[[Category:AVR32| ]]&lt;/div&gt;</summary>
		<author><name>Mw1987</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Glitch&amp;diff=65611</id>
		<title>Glitch</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Glitch&amp;diff=65611"/>
		<updated>2012-04-11T18:41:48Z</updated>

		<summary type="html">&lt;p&gt;Mw1987: /* Die Grundlagen eines Glitch */ Wahrheitstabelle des XOR-Gatters korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&#039;&#039;&#039;Die Jagd nach dem Glitch&#039;&#039;&#039;&amp;lt;br&amp;gt;oder&amp;lt;br&amp;gt;&#039;&#039;&#039;Warum man besser die Grundregeln für Synchrones Design beachtet&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Heutzutage enthält fast jedes Ding im täglichen Leben ein Stück Elektronik, und fast überall ist auch digitale Elektronik dabei. Diese Digitalschaltungen werden von Ingenieuren entworfen. Vor 30 Jahren wurde diese Aufgabe mit Standard [[74xx | TTL]] Logik gelöst. Komplexe Funktionen füllten Dutzende von Platinen, jede mit hunderten von IC gefüllt, welche alle verbunden waren. Später gab es programmierbare ICs (PAL, [[GAL]]), welche durch den Anwender programmiert werden konnten und deutlich komplexere, problembezogene Funktionen mit deutlich weniger Platzbedarf erfüllen konnten. Heute sind die am weitesten entwickelten ICs die [[FPGA]]s. Diese sind in der Lage, Daten mit mehreren hundert MHz Taktfrequenz zu verarbeiten, enthalten 10.000 und mehr [[FlipFlop]]s, Funktionsgeneratoren (LUTs, Look Up Table) und spezielle Funktionsblöcke ([[Speicher#BRAM | RAM]], DLLs, spezielle IO-Zellen etc.).&lt;br /&gt;
&lt;br /&gt;
== Das Problem ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn man ein digitales System mit FPGAs entwirft, müssen ein paar grundlegende Regeln eingehalten werden, um ein stabiles Ergebnis zu erhalten. Im Allgemeinen sind FPGAs und die zugehörigen Synthesewerkzeuge auf &#039;&#039;&#039;synchrone Schaltungen&#039;&#039;&#039; ausgelegt. Aber es gibt ein paar schmutzige Tricks, welche in der guten, alten TTL-Zeit funktionierten, weil die relativ langsamen ICs und die großflächige Verkabelung als Tiefpassfilter wirkten und einige Dreckeffekte versteckten. Mit modernen FPGAs, dessen FlipFlops und LUTs mit einigen hundert MHz laufen, werden diese bösen Tricks nicht mehr gefiltert, genauer gesagt können und &#039;&#039;&#039;werden&#039;&#039;&#039; diese Tricks Probleme machen. Ein erfahrener Ingenieur wird diese Probleme von vorn herein vermeiden, aber ein Anfänger, welcher durch ein Zeitfenster aus der TTL-Zeit direkt in die FPGA-Ära hereinspringt hat diese Erfahrung (=erlebtes Leid?) nicht.&lt;br /&gt;
&lt;br /&gt;
== Die Grundlagen eines Glitch ==&lt;br /&gt;
&lt;br /&gt;
Das hier diskutierte Problem sind Glitches von digitalen Signalen. Ein Glitch ist ein sehr kurzer Puls (nur ein paar Nanosekunden lang), verursacht durch einen Dekoder. Ein Dekoder ist im Allgemeinen ein [[Speicher#ROM | ROM]], welcher einen Eingangscode (ein Vektor aus Bits) in einen Ausgangscode übersetzt. Die meisten FPGAs haben LUTs mit 4-6 Eingängen, was ganz einfach ein ROM mit 16-64 Bit darstellt, dessen Inhalt vom Entwickler festgelegt werden kann. Wenn man einen großen Dekoder mit mehr Eingängen benötigt, als eine einzelne LUT zur Verfügung stellt, dann muss man mehrere LUTs zusammenschalten bis die gewünschte Funktion erreicht ist. Im Allgemeinen ist aber die Durchlaufzeit von allen Eingängen zum Ausgang unterschiedlich, sowohl bei einer einzelnen LUT als auch bei mehreren zusammengeschalteten. D.h., wenn mehrere Eingangsbits gleichzeitig ihren Pegel wechseln, sind einige Bits schneller als andere. Das kann und &#039;&#039;&#039;wird&#039;&#039;&#039; dazu führen, dass der Ausgang des Dekoders vom aktuellen Zustand auf einen Zwischenzustand springt und nach wenigen Nanosekunden erst auf den richtigen, dauerhaften Zustand. Wenn so ein &amp;quot;verglitschtes&amp;quot; Signal als [[Taktung FPGA/CPLD | Takt]] oder asynchroner Reset benutz wird, verursacht das viele Probleme.&lt;br /&gt;
&lt;br /&gt;
Schauen wir uns die Logik an.&lt;br /&gt;
&lt;br /&gt;
[[bild:circuit_delays.png |thumb|600px|left| Aufbau und Verzögerungszeiten der Logik]] {{clear}}&lt;br /&gt;
&lt;br /&gt;
Das ist ein einfaches 2-Bit Schieberegister, welches nur zwischen den zwei Zuständen &amp;quot;01&amp;quot; und &amp;quot;10&amp;quot; wechselt.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Wahrheitstabelle für ein XOR-Gatter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Eingang C || Eingang D || Ausgang E&lt;br /&gt;
|-&lt;br /&gt;
| 0  || 0 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0  || 1 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1  || 0 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1  || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wenn man die Schaltung statisch betrachtet, wird der Ausgang E immer 1 sein. Aber dynamisch ist das nicht der Fall. &lt;br /&gt;
&lt;br /&gt;
Wir nehmen an.&lt;br /&gt;
&lt;br /&gt;
* Der Ausgang von FlipFlop 1 (C) braucht 1ns um den Eingang (C) des XOR zu erreichen&lt;br /&gt;
* Der Ausgang von FlipFlop 2 (B) braucht 3ns um den Eingang (D) des XOR zu erreichen&lt;br /&gt;
* Die Durchlaufverzögerung der FlipFlops sowie der LUT soll 1ns betragen&lt;br /&gt;
&lt;br /&gt;
Diese Zahlen sind realistisch.&lt;br /&gt;
&lt;br /&gt;
Jetzt schauen wir uns den Übergang des Schieberegisters von &amp;quot;10&amp;quot; aud &amp;quot;01&amp;quot; genau an.&lt;br /&gt;
 &lt;br /&gt;
[[bild:timing.png|framed|left|Zeitdiagramm]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
* 0ns - Start der Simulation&lt;br /&gt;
* 1ns - Der Takteingang führt eine steigende Flanke aus, was dazu führt, dass die FlipFlops neue Daten laden&lt;br /&gt;
* 2ns - nach der Speicherverzögerung von 1ns liegen die neuen Daten am Ausgang der FlipFlops an (A und B). Das passiert sehr synchron (+/-100ps und weniger).&lt;br /&gt;
* 3ns - der neue Zustand von FlipFlop 1 erreicht das XOR-Gatter nach 1ns Laufzeitverzögerung, der Eingang des XOR ist nun &amp;quot;11&amp;quot;, was am Ausgang zum Zustand &#039;0&#039; führen wird.&lt;br /&gt;
* 4ns - der Ausgang des XOR (E) geht auf den neuen Zustand &#039;0&#039; über nach 1ns Gatterlaufzeit&lt;br /&gt;
* 5ns - der zweite Eingang des XOR wechselt auf &amp;quot;0&amp;quot;, weil das Signal von (B) nach 3ns Laufzeit endlich angekommen ist&lt;br /&gt;
* 6ns - Das XOR reagiert auf den neuen Eingangscode &amp;quot;01&amp;quot; und schaltet auf &#039;1&#039; nach 1ns Gatterverzögerung&lt;br /&gt;
&lt;br /&gt;
Ein guter, alter TTL-IC würde da nicht mal blinzeln, aber heutige FPGAs sind &#039;&#039;&#039;sauschnell&#039;&#039;&#039;. Nicht nur die LUTs, auch die FlipFlips können höllisch schnell schalten.&lt;br /&gt;
&lt;br /&gt;
== Messaufbau ==&lt;br /&gt;
&lt;br /&gt;
Die Messungen wurden mit einem Spartan-II Evaluationboard von Insight Electronics durchgeführt. Es enthält einen XC2S100-5PQ208. Die Testschaltung wurde durch einen 36 MHz Quarz getaktet, der Wert ist aber vollkommen unwichtig, 1 MHz würde genauso funktionieren. Die Testausgänge wurden mit selbstgebauten High Speed Tastköpfen gemessen, wie sie im Buch [http://www.signalintegrity.com &amp;quot;High speed digital Design - A Handbook of Black Magic&amp;quot;] empfohlen werden. Die Anstiegszeit dieser Tastköpfe liegt irgendwo bei 200ps. Das Oszilloskop, mit welchen die Screenshots gemacht wurden, ist ein Tektronix TDS 3034 mit 300 MHz Bandbreite. Einige Zusatzmessungen wurden mit einem Tektronix CSA 404 mit einem 11A34 Verstärker gemacht, welcher 1 GHz Bandbreite hat. Leider konnten damit keine Screenshots gemacht werden (Softwareprobleme). Man beachte, dass die Leitungen nicht [[Wellenwiderstand | terminiert]] sind. Reflektionen und Überschwinger sind für diesen Test unkritisch.&lt;br /&gt;
&lt;br /&gt;
[[bild:setup.png|framed|left|600px|Aufbau der Testschaltung]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
Die Testlogik wurde in [[VHDL]] definiert. Sie enthält zwei FlipFlops, welche mit jedem Takt gleichzeitig umschalten. Da sie immer entgegengesetzte Pegel haben, sollte der Ausgang des XOR immer auf &#039;1&#039; liegen. Aber auf Grund der ungleichen Durchlaufverzögerung der zwei Eingangsbits wird der Ausgang des XOR einen Glitch erzeugen. Dieser Glitch taktet ein drittes FlipFlop. Der &amp;quot;verglitchte&amp;quot; XOR-Augang sowie der Ausgang des 3. FlipFlops sind zur Messung auf Ausgangspins geroutet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VHDL&amp;gt;&lt;br /&gt;
--The IEEE standard 1164 package, declares std_logic, rising_edge(), etc.&lt;br /&gt;
library IEEE;&lt;br /&gt;
use IEEE.std_logic_1164.all;&lt;br /&gt;
use IEEE.std_logic_arith.all;&lt;br /&gt;
use IEEE.std_logic_unsigned.all;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
entity glitch is&lt;br /&gt;
    port (&lt;br /&gt;
        clk_in        : in  STD_LOGIC;&lt;br /&gt;
        bad_clk       : out std_logic;&lt;br /&gt;
        glitch_detect : out STD_LOGIC&lt;br /&gt;
    );&lt;br /&gt;
end glitch;&lt;br /&gt;
&lt;br /&gt;
architecture glitch_arch of glitch is&lt;br /&gt;
&lt;br /&gt;
component LUT2&lt;br /&gt;
  port (&lt;br /&gt;
    I0 : in std_logic;&lt;br /&gt;
    I1 : in std_logic;&lt;br /&gt;
    O  : out std_logic&lt;br /&gt;
  );&lt;br /&gt;
end component;&lt;br /&gt;
&lt;br /&gt;
-- Attribute applied to instantiation &lt;br /&gt;
attribute INIT : string; &lt;br /&gt;
attribute INIT of L_XOR : label is &amp;quot;6&amp;quot;; &lt;br /&gt;
&lt;br /&gt;
signal S1, S2, S3, clk_bad, clk:    std_logic;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  -- a demonstration of a decoder generating a glitch&lt;br /&gt;
  &lt;br /&gt;
  -- toggling FlipFlops&lt;br /&gt;
  &lt;br /&gt;
  process(clk_in)  &lt;br /&gt;
  begin&lt;br /&gt;
    if clk_in=&#039;1&#039; and clk_in&#039;event then&lt;br /&gt;
      s1&amp;lt;=not S1;       -- these two signals are always inverted to each other&lt;br /&gt;
      s2&amp;lt;=S1;&lt;br /&gt;
    end if;  &lt;br /&gt;
  end process;&lt;br /&gt;
&lt;br /&gt;
-- this is a big NO-NO, because the decoder produces glitches&lt;br /&gt;
-- clk_bad&amp;lt;=s1 xor s2;&lt;br /&gt;
&lt;br /&gt;
-- we use a LUT instanciation so we can easy place then using LOC constraints&lt;br /&gt;
&lt;br /&gt;
L_XOR: LUT2&lt;br /&gt;
  port map(&lt;br /&gt;
    I0 =&amp;gt; S1,&lt;br /&gt;
    I1 =&amp;gt; S2,&lt;br /&gt;
    O  =&amp;gt; clk_bad&lt;br /&gt;
  );&lt;br /&gt;
  &lt;br /&gt;
  process(clk_bad)&lt;br /&gt;
  begin&lt;br /&gt;
    if clk_bad=&#039;1&#039; and clk_bad&#039;event then&lt;br /&gt;
      s3&amp;lt;=not s3;       -- a toggle FF, which would never toggle if the decoder output was glitch free&lt;br /&gt;
    end if;&lt;br /&gt;
  end process;&lt;br /&gt;
 &lt;br /&gt;
  glitch_detect&amp;lt;=s3;&lt;br /&gt;
  bad_clk&amp;lt;=clk_bad;&lt;br /&gt;
    &lt;br /&gt;
end glitch_arch;&lt;br /&gt;
&amp;lt;/VHDL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Grundelemente wurden mittels Constraints auf definierte Plätze im FPGA platziert, um deterministische Ergebnisse zu erreichen. Auch die IO-Zellen wurden auf maximale Geschwindigkeit konfiguriert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NET &amp;quot;glitch_detect&amp;quot;  LOC =  &amp;quot;P42&amp;quot;;&lt;br /&gt;
NET &amp;quot;clk_in&amp;quot;         LOC =  &amp;quot;P80&amp;quot;;&lt;br /&gt;
NET &amp;quot;bad_clk&amp;quot;        LOC =  &amp;quot;P41&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
INST    s1           LOC = &amp;quot;CLB_R15C1.S0&amp;quot;;          # place FF2 close to XOR LUT (C37)&lt;br /&gt;
INST    s3           LOC = &amp;quot;CLB_R15C1.S1&amp;quot;;          # place FF3 close to XOR LUT (C37)&lt;br /&gt;
INST    l_xor        LOC = &amp;quot;CLB_R15C1.S1&amp;quot;;          # XOR LUT&lt;br /&gt;
INST    s2           LOC = &amp;quot;CLB_R15C30.S0&amp;quot;;         # place FF1, FAR from FF2, so the glitch will be VERY big&lt;br /&gt;
                                                    # modify the column C30 to set routing delay&lt;br /&gt;
&lt;br /&gt;
NET &amp;quot;bad_clk&amp;quot;       drive=24;&lt;br /&gt;
NET &amp;quot;bad_clk&amp;quot;       FAST;&lt;br /&gt;
NET &amp;quot;glitch_detect&amp;quot; drive=6;&lt;br /&gt;
NET &amp;quot;glitch_detect&amp;quot; SLOW;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Bild:fpga_grid.png|thumb|600px|left| CLB Matrix]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
Die Verzögerung zwischen FlipFlop2 und dem XOR wurde durch einen großen Abstand bei der Platzierung erreicht. Dieser Abstand wurd Schritt für Schritt verkleinert und die Ergebnisse dokumentiert.&lt;br /&gt;
&lt;br /&gt;
== Messergebnisse ==&lt;br /&gt;
&lt;br /&gt;
Auf Kanal 1 wird das Signal bad_clk angezeigt, auf Kanal 2 glitch_detect.&lt;br /&gt;
&lt;br /&gt;
[[bild:col30.png|framed|left|FlipFlop 2 in Spalte 30]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
Das ist der erste Versuch. Weil die Differenz der Durchlaufverzögerung so groß ist, ist auch der Glitch recht lang. Aber sehen wir genau hin, es ist gerade mal ein 1.5ns Puls! Das ist weit weg von der Spezifikation der minimalen Pulsbreite des Taktes für dieses FPGA. Wie man sieht, schaltet FlipFlop 3 bei dem Glitch um.&lt;br /&gt;
[[bild:col15.png|framed|left|FlipFlop 2 in Spalte 15]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
Der Glitch ist kürzer, aber das FlipFlop 3 schaltet immer noch problemlos.&lt;br /&gt;
[[bild:col10.png|framed|left|FlipFlop 2 in Spalte 10]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
Jetzt wird es &#039;&#039;&#039;richtig&#039;&#039;&#039; schnell. Wir sehen auch die Grenzen des Oszilloskops (300 MHz), denn auf dem schnellen 1 GHz Oszilloskop erreicht der Puls noch die 0V Linie. Das FlipFlop 3 toggelt weiter.&lt;br /&gt;
[[bild:col08.png|framed|left|FlipFlop 2 in Spalte 8]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
Und es toggelt immer noch. Aber wir haben die Grenzen des Oszilloskops und der IO-Zelle erreicht. Der Glitch ist ausserhalb nicht mehr messbar, auch nicht mit dem 1 GHz Oszilloskop. Da die IO-Zelle bis zu 24mA liefern muss und einiges an ESD-Schutzmassnahmen enthält, sind die Stukturen deutlich größer und haben damit mehr parasitäre Kapazität als die kleinen Strukturen im Kern. Dadurch werden sie langsamer. Man sieht auch, dass die Störung auf dem glitch_detect Ausgang durch Übersprechen von Ausgang bad_clk verursacht wurde. &lt;br /&gt;
[[bild:col03.png|framed|left|FlipFlop 2 in Spalte 3]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
Jetzt haben wir die Grenzen dieser Technologie erreicht. Der Glitch ist einfach zu klein, um vom FlipFlop 3 noch &amp;quot;gesehen&amp;quot; zu werden. Nur der liebe Gott weiß, wie das Signal im Inneren jetzt aussieht. Aber Vorsicht! Das heißt &#039;&#039;&#039;nicht&#039;&#039;&#039;, dass man einen glitchfreien Dekoder erhält, wenn man die FlipFlops nah am Dekoder platziert. Die Geschwindigkeit der Logikzellen bzw. Verbindungnetze schwankt mit der Temperatur (kalt = schnell), der Versorgungsspannung (hoch = schnell) und allgemeinen Fertigungstoleranzen. Man darf nicht auf die niedrige Geschwindigkeit der ICs zählen, um sie als Glitchfilter zu missbrauchen! Wenn man die Schaltung auf eine schnellere Technologie umstellt (schnelleres FPGA, ASIC), wird diese Methode &#039;&#039;&#039;scheitern&#039;&#039;&#039;. Die einzigen zuverlässigen Wege um Glitches zu vermeiden sind&lt;br /&gt;
&lt;br /&gt;
* nur jeweils ein Eingangsbit umschalten ([http://de.wikipedia.org/wiki/Graycode Gray Code])&lt;br /&gt;
* Ein FlipFlop am Dekoderausgang nutzen, um das das Signal abzutasten&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[Taktung FPGA/CPLD]]&lt;br /&gt;
* [[Oszilloskop]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sigcon.com/Pubs/straight/probes.htm Probing High-Speed Digital Designs], Originally published in [http://www.elecdesign.com/ Electronic Design Magazine], March, 1997&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FPGA und Co]]&lt;br /&gt;
[[Kategorie:Signalverarbeitung]]&lt;/div&gt;</summary>
		<author><name>Mw1987</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=FPGA&amp;diff=58144</id>
		<title>FPGA</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=FPGA&amp;diff=58144"/>
		<updated>2011-06-25T15:10:18Z</updated>

		<summary type="html">&lt;p&gt;Mw1987: /* Altera DE2-115 - Development and Education Board V3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FPGA ist die Abkürzung für &amp;quot;&#039;&#039;&#039;F&#039;&#039;&#039;ield &#039;&#039;&#039;P&#039;&#039;&#039;rogrammable &#039;&#039;&#039;G&#039;&#039;&#039;ate &#039;&#039;&#039;A&#039;&#039;&#039;rray&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Aufbau ==&lt;br /&gt;
&lt;br /&gt;
=== Grundelemente  ===&lt;br /&gt;
&lt;br /&gt;
Ein FPGA besteht, ähnlich wie ein [[CPLD]], aus vielen Logikelementen, hauptsächlich [[FlipFlop]]s (FF) und davor geschalteten Logikelementen. Diese Logikelemente sind entweder Verschaltungen verschiedener Logikgatter (Actel) oder aber kleine LUTs (LUT = Lookup-Table), die über elektronische &amp;quot;Schalter&amp;quot; entsprechend der vom Entwickler gewünschten Funktion miteinander verknüpft werden können.&lt;br /&gt;
&lt;br /&gt;
Eine &#039;&#039;&#039;LUT&#039;&#039;&#039; kann eine beliebige kombinatorische Funktion (NAND, XOR, AND, Multiplexer etc.) aus den Eingangssignalen realisieren. Die Anzahl der Eingangssignale pro LUT ist vom FPGA abhängig und liegt meist zwischen 4 und 6. Für Funktionen die mehr Eingänge erfordern als eine einzige LUT besitzt (hohes Fan-In), werden mehrere LUTs direkt miteinander verschaltet. Die [[FlipFlop]]s dienen dazu, Signalwerte zwischenzuspeichern, um sie im nächsten Takt weiterverarbeiten zu können. Das Verhältnis zwischen der Anzahl der LUTs und der Anzahl der Flip-Flops ist meist 1:1. Aktuelle FPGAs bestehen aus bis zu einigen zehntausend Logikelementen.&lt;br /&gt;
&lt;br /&gt;
Die logischen Schalter und Speicher sind in den meisten FPGAs durch [[Speicher#SRAM | SRAM]]-Speicherzellen realisiert, welche beim Bootprozess passend geladen werden. Das Laden dieser Konfigurationsdaten bzw. Verknüpfungsregeln geschieht dabei in der Regel aus einem speziellen [[Speicher#Flash | Flash-ROM]]-Baustein heraus. Es kann aber auch ein Mikrocontroller benutzt werden. Die meisten FPGAs bieten daher für diesen Konfigurationsvorgang mehrere Modi an (seriell, parallel, Master/Slave). Da die SRAM-Zellen ihren Inhalt beim Abschalten der Versorgungsspannung verlieren, muss ein SRAM-basierter FPGA bei jedem Einschalten neu konfiguriert werden. Daher benötigt ein solcher FPGA einige Millisekunden bis zur Betriebsbereitschaft.&lt;br /&gt;
&lt;br /&gt;
Eine FPGA-Familie beinhaltet Typen mit unterschiedlicher Anzahl und Komplexität von Logikzellen. So enthält ein Spartan3-1000 ca. 2,5 mal so viel Logik (FF, LUTs) wie ein Spartan3-400.  &lt;br /&gt;
&lt;br /&gt;
FPGAs mit nichtflüchtigem Speicher basieren auf [[Speicher#EEPROM | EEPROM]]-, [[Speicher#Flash | Flash]]-Speicher (einige Familien von Lattice und Actel) oder AntiFuse- Technologie (Actel). Die sogenannten AntiFuse FPGAs sind nur einmalig programmierbar.&lt;br /&gt;
&lt;br /&gt;
=== I/O Anschlüsse ===&lt;br /&gt;
&lt;br /&gt;
FPGAs unterstützen als universal einsetzbare Digital-ICs eine Vielzahl von Signalstandards. Üblich sind verschiedene TTL-Pegel (5V, 3,3V, 2,5V), differentielle Signalstandards (LVDS, GTL) und im Hochpreisbereich serielle Hochgeschwindigkeitsstandards mit bis zu 28 Gbit/s. Oftmals sind weitere Eigenschaften wie Treiberstärke und Flankensteilheit für jeden benutzerdefinierbaren Anschluss (User-IO) einstellbar. Meist sind die Pins zu Bänken mit gleichem I/O Standard zusammengefasst. Innerhalb einer solchen Bank arbeiten alle Pins im gleichen I/O Standard und mit der selben I/O Spannung.&lt;br /&gt;
&lt;br /&gt;
Bei komplexeren FPGAs sind die Ein- und Ausgänge mit Delaygliedern versehen, die ein Anpassen des Timings bei Bussen wie z.B. schnellen Speichern ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Ebenso können FPGA-interne Pull-Up und Pull-Down-Widerstände zugeschaltet werden, [[Wellenwiderstand | Terminierung]] wird ebenfalls unterstützt. Zudem befinden sich hinter vielen IO-Pads sog. [[Boundary_scan| Boundary Scan]] Zellen.&lt;br /&gt;
&lt;br /&gt;
Das I/O Verhalten wird zusammen mit vielen anderen Parametern in einer Datei festgelegt (Xilinx *.ucf, Altera *.acf, Lattice *.lpf). Alternativ können diese auch als Syntheseoption im Kommentarfeld des [[Verilog]]/[[VHDL]] Codes mit angegeben werden.&lt;br /&gt;
&lt;br /&gt;
[[Ausgangsstufen Logik-ICs | Tristatebuffer]] werden implizit über VHDL definiert, indem einem Ausgang zeitabhängig der Zustand &amp;quot;Z&amp;quot; zugewiesen wird. Alternativ kann er explizit als Komponente eingefügt werden.&lt;br /&gt;
&lt;br /&gt;
Einige Pins übernehmen besondere Funktionen und sind somit vom Anwender nicht uneingeschränkt oder z.T. auch gar nicht nutzbar. Dazu zählen neben der [[JTAG]]-Schnittstelle z.&amp;amp;nbsp;B. die Pins zum Einlesen der Konfigurationsdaten. &lt;br /&gt;
&lt;br /&gt;
Ferner sind einige wenige Pins (2 - 8) zum Einspeisen des Taktes für das Design vorgesehen. Für schnelle Schaltungen müssen diese reservierten Pins benutzt werden. Sie enthalten kein Eingangs-FF und wirken direkt auf Taktnetze / PLLs.&lt;br /&gt;
&lt;br /&gt;
Die Hersteller bieten FPGAs mit gleicher Anzahl von Logikelementen in unterschiedlichen Gehäusen an. So kann der FPGA mit der passenden Anzahl von Pins eingesetzt werden. Das obere Ende markieren Chips mit über 1000 I/Os, die kleinsten bieten ca. 80 User-I/O. Oft werden nur [[IC-Geh%C3%A4useformen#BGA|BGA]] und [[IC-Geh%C3%A4useformen#QFP|QFP]] Gehäuse (bis ca. 240 Pins) angeboten.&lt;br /&gt;
&lt;br /&gt;
=== Komplexe Funktionsblöcke ===&lt;br /&gt;
&lt;br /&gt;
Neben den einfachen FlipFlops beinhalten FPGAs darüber hinaus komplexe Routing- und Speicherkonfigurationsoptionen innerhalb und außerhalb der logischen Elemente (LEs), die es gestatten, komplexe Schalt- und Rechenstrukturen aufzubauen. Für rechenintensive Designs, z.&amp;amp;nbsp;B. in der Signalverarbeitung, enthalten viele FPGAs &#039;&#039;&#039;Multiplizierer&#039;&#039;&#039; direkt auf dem Chip, die in einem einzigen Taktzyklus Multiplikationen durchführen können.&lt;br /&gt;
&lt;br /&gt;
Ferner haben FPGAs oft einen von den LEs getrennt verfügbaren &#039;&#039;&#039;RAM&#039;&#039;&#039;-Bereich integriert, der sich in vielfältiger Weise ansprechen lässt. So können damit Single- oder Dualport-RAMs mit variabler Bitbreite erzeugt werden. Üblich sind mehrere (4 - 30) kleinere Dualport [[Speicher#BRAM | RAM-Blöcke]] von 4 - 16 kbit. Einige Familien besitzen einen größeren internen RAM, andere spezielle FIFO-Blöcke.&lt;br /&gt;
&lt;br /&gt;
Zur Generierung spezieller Takte sind &#039;&#039;&#039;PLL&#039;&#039;&#039;s (Phase Locked Loop) auf dem FPGA integriert. Einige Hersteller setzen mit dem selben Ziel &#039;&#039;&#039;DLL&#039;&#039;&#039;s (Delay Locked Loop) ein. Mittels dieser Blöcke können aus einem Taktsignal weitere erzeugt werden. Typisch sind Taktverdopplung oder -vervielfachung. Ebenso kann der Takt geteilt werden oder ein Signal gleicher Frequenz, aber um eine halbe, viertel usw. Periode verschoben erzeugt werden. Typische Anwendungen sind die Ansteuerung von [[Speicher#DDR-RAM | DDR-RAMs]] oder die Kompensation von Laufzeitunterschieden zwischen Takt und mit diesem getakteten Steuersignalen. Meist sind 2 - 8 Taktnetzwerke und PLL/DLLs gleicher Anzahl integriert. Siehe auch [[Taktung FPGA/CPLD]].&lt;br /&gt;
&lt;br /&gt;
=== CPU im FPGA ===&lt;br /&gt;
&lt;br /&gt;
Programmierbare Prozessoren sind auch bei FPGA-Designs immer häufiger anzutreffen. CPUs sind zwar im Allgemeinen langsamer und weniger effizient, als eine vollständige Implementation aus Logik-Primitiven - aber bei komplexen Abläufen auch deutlich einfacher zu entwickeln. Insbesondere bei sequentiellen Aufgaben (Benutzerinterface, komplexe Steueraufgaben etc.) wird man gerne auf eine klassische CPU zurückgreifen. &lt;br /&gt;
&lt;br /&gt;
Manche FPGAs integrieren dazu einen oder mehrere Prozessorkerne (z. B. [[AVR]] bei Atmels FPSLIC oder PowerPC bei Xilinx&#039; Virtex) als &#039;&#039;HardCores&#039;&#039; auf einem IC.&lt;br /&gt;
&lt;br /&gt;
Auf der anderen Seite gibt es auch [[FPGA Soft Core | SoftCores]] (z. B. ARM-Cortex-M1 bei IGLOO-FPGA von [http://www.actel.com ACTEL]), Prozessorkerne die als Quelltext oder als vorsynthetisierte Netzliste vorliegen. In Abhängigkeit von den zur Verfügung stehenden Ressourcen können diese &#039;&#039;SoftCores&#039;&#039; beliebig instanziiert werden. Es gibt eine Vielzahl verschiedener &#039;&#039;SoftCores&#039;&#039;. &lt;br /&gt;
 &lt;br /&gt;
Teilweise kompatibel zu etablierten Prozessorarchitekturen (MIPS, SPARC, AVR), zum Teil optimiert auf die FPGAs einzelner Hersteller. Auch auf vergleichsweise &lt;br /&gt;
kleinen aktuellen FPGAs kann man problemlos eine 32bit-RISC-CPU integrieren.&lt;br /&gt;
&lt;br /&gt;
Als Programmspeicher werden die FPGA-internen [[Speicher#BRAM | RAM-Blöcke]] oder externe [[Speicher]] (SDRAM, SRAM) genutzt. Für einige Prozessorkerne stehen Hochsprachen wie C, C++ etc. zur Verfügung, andere werden in Assembler programmiert.&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
&lt;br /&gt;
=== Geschwindigkeit ===&lt;br /&gt;
&lt;br /&gt;
Die maximale „Geschwindigkeit“ eines FPGAs ist von der verwendeten Halbleitertechnologie (Prozess, Strukturgrößen), der internen Schaltungstopologie (Komplexität der LEs), Vorhandensein von harten Strukturen und vor allem vom Design abhängig. Dabei sind der sogenannte Datendurchsatz und die rein maximale Systemtaktfrequenz zu unterscheiden. Die erreichbare Taktfrequenz lässt sich ohne detaillierte Kenntnis des Designs nicht abschätzen, möglich sind je nach »Speed Grade« des ICs typischerweise Taktfrequenzen von 300-600 MHz für die Schaltgeschwindigkeit der reinen Logikelemente. Je nach der Anzahl und Komplexität der pro Takt durchzuführenden Operationen ergeben sich dann reale Systemtaktfrequenzen von meist 10-100 MHz für global operierende Einheiten und bis zu 300 MHz für schnelle lokale Module. Maßgeblich ist in wieweit das Design auf Fläche bzw. Geschwindigkeit hin optimiert und vom Tool synthetisiert wurde: Durch das Einbringen von zusätzlichen Registerstufen lassen sich z.&amp;amp;nbsp;B. zeitkritische Pfade entschärfen (Pipelining), sodass die Frequenz des Chips angehoben werden kann und somit der effektive Datendurchsatz erhöht wird, mit dem Nachteil der gesteigerten Latenz durch das Mehr an Takten. Der Datendurchsatz lässt sich darüber hinaus durch die Nutzung paralleler Architekturen verbessern.&lt;br /&gt;
&lt;br /&gt;
Die Systemfrequenz kann-, muss aber nicht der Frequenz entsprechen, mit der Daten zyklisch eingetaktet und verarbeitet werden; zudem sind Schaltungsteile mit unterschiedlichen Taktfrequenzen zu unterscheiden: Mit einem Systemtakt von 20 MHz lassen sich z.&amp;amp;nbsp;B. 18-Bit AD-Wandler auslesen, die so z.&amp;amp;nbsp;B. alle 1 µs neue Daten liefern, die verarbeitet werden müssen. Bei der Nutzung von 5 solchen Wandlern, die sequentiell verarbeitet werden, lägen 5 MHz Datenfrequenz vor. Für andere Schaltungsteile, die z.&amp;amp;nbsp;B. asynchron an die Peripherie andocken, sowie reine »state machines« können Schaltungsteile auf der 2-4 fachen Frequenz betrieben werden.&lt;br /&gt;
&lt;br /&gt;
Generell sind Fläche und Geschwindigkeit konkurrierende Größen, zwischen denen ein Optimum gefunden werden muss. Für die preiswerten FPGA-Serien wie Spartan (Xilinx) und Cyclone (Altera) sind aufgrund technologischer Randbedingungen etwa 10-30% weniger Taktgeschwindigkeit bei gleichem Design zu erwarten als bei den großen Brüdern der Virtex- (Xilinx) bzw. Stratix-Familie (Altera). Es muss mit mehr Verbrauch an Logikelementen und Taktzyklen gerechnet werden (weniger Routingreserven, geringere Zahl von LUT-Eingängen, langsamere Logikelemente). Dafür sind sie sehr preiswert.&lt;br /&gt;
&lt;br /&gt;
Funktionstechnisch identische Chips werden oft in zwei oder mehr Geschwindigkeitsklassen (speed grades) angeboten, die sich meist durch Bauteilselektion bei der Produktion ergeben. Grob kann man ca. 5%-10% höhere Taktung zwischen zwei speed grades erwarten.&lt;br /&gt;
&lt;br /&gt;
== Hersteller ==&lt;br /&gt;
&lt;br /&gt;
Die größten Hersteller von FPGAs sind [http://www.altera.com Altera] und [http://www.xilinx.com Xilinx]. Weitere Hersteller sind [http://www.latticesemi.com/ Lattice], [http://www.actel.com Actel] und [http://www.atmel.com Atmel].&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
&lt;br /&gt;
Der Aufbau komplizierter, applikationsnaher Strukturen wird meist durch automatische Routing- und Synthesewerkzeuge erledigt, welche mit einer logischen, funktionellen Beschreibung der Architektur in einer Hardwarebeschreibungssprache wie z.&amp;amp;nbsp;B. VHDL &amp;quot;gefüttert&amp;quot; werden. Die Hardwarebeschreibung in [[VHDL]] gelingt ihrerseits z.&amp;amp;nbsp;B. mit VHDL-generierenden Werkzeugen, mittels derer zuvor Logikstrukturen, hardwarenahe Strukturen, Ablaufdiagramme und Zustandsautomaten formuliert wurden.&lt;br /&gt;
&lt;br /&gt;
Durch die Standardisierung der Architektur einerseits und die Entkoppplung von applikationsorientierter Beschreibung sowie Chip- und Hersteller-spezifischer Synthese andererseits, wird die Hardware quasi als Software gebaut. Dies wiederum schafft alle Optionen der Wiederverwendung und Austausch von &amp;quot;Hardwareteilen&amp;quot;. So stehen inzwischen komplett nutzbare Schaltungen wie serielle Bausteine, RAM-Controller und vieles mehr als Open Source zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
== Entwicklungsboards und Starterkits ==&lt;br /&gt;
=== Boards für Xilinx-FPGAs ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot; id=&amp;quot;fpgaevalboards&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bezeichn.&lt;br /&gt;
! Preis (&amp;amp;euro;)&lt;br /&gt;
! FPGA&lt;br /&gt;
! RAM (MByte)&lt;br /&gt;
! Flash (MByte)&lt;br /&gt;
! USB&lt;br /&gt;
! Ethernet&lt;br /&gt;
! RS-232&lt;br /&gt;
! µC&lt;br /&gt;
! Eingabe&lt;br /&gt;
! sonst.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.knjn.com/board_Xylo.html Xylo-L]&lt;br /&gt;
| 130&lt;br /&gt;
| XC3S500E&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| 2.0&lt;br /&gt;
| 10base-T&lt;br /&gt;
| -&lt;br /&gt;
| LPC213x&lt;br /&gt;
| -&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [http://www.xilinx.com/s3estarter Spartan3e Starter Kit]&lt;br /&gt;
| 180&lt;br /&gt;
| XC3S500E&lt;br /&gt;
| 64 MB DDR-SDRAM&lt;br /&gt;
| 16&lt;br /&gt;
| (JTAG)&lt;br /&gt;
| 10/100&lt;br /&gt;
| 2x&lt;br /&gt;
| -&lt;br /&gt;
| 4 Taster, 1 Drehgeber, 4 Schalter&lt;br /&gt;
| Coolrunner CPLD, LCD, 3-Bit VGA, PS/2&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.digilentinc.com/Products/Detail.cfm?Nav1=Products&amp;amp;Nav2=Programmable&amp;amp;Prod=S3BOARD Digilent Spartan-3]&lt;br /&gt;
| 100&lt;br /&gt;
| XC3S200/400/1000&lt;br /&gt;
| 1&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| 1x&lt;br /&gt;
| -&lt;br /&gt;
| 4 Taster, 8 Schalter&lt;br /&gt;
| VGA, PS/2, 7seg&lt;br /&gt;
|-&lt;br /&gt;
| [[Digilent Nexys]]&lt;br /&gt;
| 100&lt;br /&gt;
| XC3S200/400/1000&lt;br /&gt;
| 16&lt;br /&gt;
| 4&lt;br /&gt;
| 2.0&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| 4 Taster, 8 Schalter&lt;br /&gt;
| 7seg, Programmierung &amp;amp; Stromversorgung über USB&lt;br /&gt;
|-&lt;br /&gt;
| [[Digilent Nexys 2]]&lt;br /&gt;
| 121&lt;br /&gt;
| XC3S500E/1200E&lt;br /&gt;
| 16&lt;br /&gt;
| 16&lt;br /&gt;
| 2.0&lt;br /&gt;
| -&lt;br /&gt;
| 1x&lt;br /&gt;
| Cypress FX2 &lt;br /&gt;
| 4 Taster, 8 Schalter, 8 LEDs&lt;br /&gt;
| 4x7Seg, Programmierung &amp;amp; Stromversorgung über USB oder über Netzteil (5V-15V)&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.uxibo.de Uxibo]&lt;br /&gt;
| 88&lt;br /&gt;
| XC2S200E&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| 1.1&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| 4 Taster, 8 Schalter&lt;br /&gt;
| VGA I/O, Videomux, dual PS/2, 7seg, Buzzer, IOs auf Pinleisten, dual-channel FTDI2232C, 48 MHz + prog. Oszillator, Programmierung &amp;amp; Stromversorgung über USB&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.fpgaz.com/wiki/doku.php?id=fpgaz:usbp:hw FPGAz USBP]&lt;br /&gt;
| $135&lt;br /&gt;
| XC3S400&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| 2.0&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| Cypress FX2&lt;br /&gt;
| 2 Taster&lt;br /&gt;
| 8 LEDs, I2C-EEPROM&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.cesys.com/fpga_produktmatrix.html USBS6] Cesys &lt;br /&gt;
| 399&lt;br /&gt;
| XC6SLX16&lt;br /&gt;
| 128&lt;br /&gt;
| 16&lt;br /&gt;
| 2.0&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| FX-2&lt;br /&gt;
| Drehschalter, Leds.&lt;br /&gt;
|115 I/O signale, einstellbarer IO Standard, zweiter USB Port (FT232), WIN 32&amp;amp;64 Bit und LINUX Treiber&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.cesys.com/fpga/spartan/efm01_de.html EFM 01] Cesys &lt;br /&gt;
| 145&lt;br /&gt;
| XC3S500E&lt;br /&gt;
| -&lt;br /&gt;
| 4&lt;br /&gt;
| 2.0&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| FX-2&lt;br /&gt;
| -&lt;br /&gt;
| 28 x 44mm, 50 I/O auf 2.54mm Stiftleiste, WIN und LINUX Treiber&lt;br /&gt;
|-&lt;br /&gt;
| [http://shop.trenz-electronic.de/catalog/product_info.php?products_id=456 Avnet Spartan 3A Evaluation Kit]&lt;br /&gt;
| 50&lt;br /&gt;
| XC3S400A&lt;br /&gt;
| -&lt;br /&gt;
| 16&lt;br /&gt;
| 2.0&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| WIN und LINUX Treiber&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.ct-lab.de FPGA-Karte aus dem c´t-Lab]&lt;br /&gt;
| 92&lt;br /&gt;
| XC3S400&lt;br /&gt;
| -&lt;br /&gt;
| SD-Kartenslot (Bitstream-File wird über µC ins FPGA geladen, Dateiauswahl via Systembus oder Panel oder fest einstellbar)&lt;br /&gt;
| via IFP-Karte und Systembus an µC&lt;br /&gt;
| via IFP-Karte und Systembus an µC&lt;br /&gt;
| via IFP-Karte und Systembus an µC&lt;br /&gt;
| ATmega644&lt;br /&gt;
| optionales Bedienpanel mit LCD-Display, Drehgeber und Taster&lt;br /&gt;
| Bestandteil des Laborsystems c´t-Lab der Zeitschrift c´t.&lt;br /&gt;
VGA-Buchse, SD-Kartenslot (u.a. auch zum Laden des FPGA). Preis für FPGA-Platine mit verlöteten SMD-Bauteilen und Teilesatz. Optionale Erweiterungskarten mit schnellen DACs, Eingangskomparator, SRAM, Echtzeituhr, PS/2, RS232 (am FPGA). Optionaler JTAG-Adapter. &lt;br /&gt;
http://www.ct-lab.de, http://www.segor.de, http://thoralt.ehecht.com/phpbb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Raggedstone 1 - Spartan-3 Development PCI-Karte ====&lt;br /&gt;
* Spartan-3 FPGA FG456-Package&lt;br /&gt;
* 32 bit, 33 MHz, 3.3/5V PCI interface&lt;br /&gt;
* 4Mbit Flash Memory&lt;br /&gt;
* 16KBit serielles EEprom&lt;br /&gt;
* 4 x 7 Segment Anzeigen LED, abnehmbar&lt;br /&gt;
* LM75 Temperatursensor&lt;br /&gt;
* viele DIL-Header für eigene Erweiterungen, verschiedene werden auch durch Hersteller angeboten&lt;br /&gt;
* 2 Drucktaster&lt;br /&gt;
* Mit dem PCI-Interface kann bei entsprechender Programmierung des FPGA auf den PCI-Bus eines Hostrechners zugegriffen werden, Beispieldesign unter http://projects.varxec.net/raggedstone1&lt;br /&gt;
* Webseite: http://www.enterpoint.co.uk/moelbryn/raggedstone1.html&lt;br /&gt;
* Preis mit XC3S400 ca. €145,- (inkl MwSt.)&lt;br /&gt;
* Preis mit XC3S1500 ca. €255,-  (inkl. MwSt.)&lt;br /&gt;
&lt;br /&gt;
==== LiveDesign Evaluation Board von Altium ====&lt;br /&gt;
* Kompatibel mit den LiveDesign-fähigen Entwicklungstools von Altium&lt;br /&gt;
* Xilinx-Version direkt mit ISE Webpack nutzbar&lt;br /&gt;
* Xilinx XC3S1000-4FG456C, wahlweise aber auch mit Altera EP1C12F324C8 (s.u.)&lt;br /&gt;
* Mit Flachbandkabel für PC-Verbindung (Druckerport) sowie weiteren Kabeln und Verbindern &lt;br /&gt;
* Peripherie: LEDs, Dip-Schalter, 6-stellige Siebensegmentanzeige, Taster, Stereo-DAC, zwei 256K x 16 RAMs&lt;br /&gt;
* &#039;&#039;kein&#039;&#039; on-board Flash RAM für FPGA-Konfiguration, diese muss nach dem Einschalten neu geladen werden&lt;br /&gt;
* Ports: PS2-Maus &amp;amp; -Tastatur, RS232, VGA (512 Farben), 2x18 IO-Pins für allgemeine Zwecke &lt;br /&gt;
* Listenpreis $99,- Endpreis: ~150 Euro (inkl. MwSt. und Versand)&lt;br /&gt;
&lt;br /&gt;
==== Trenz-Electronic ====&lt;br /&gt;
http://www.trenz-electronic.de/products.html&lt;br /&gt;
* Kleines FPGA Board mit ucLinux und Virtex-II PowerPC, optional: ucLinux und Microblaze Softprozessor im Spartan-3 FPGA&lt;br /&gt;
* Pal/Gal kompatible FPGA und CPLD Module&lt;br /&gt;
* Spartan-3 FPGA Mikromodul mit 200K bis 1000K Systemgattern&lt;br /&gt;
* Spartan-3A DSP Mikromodul mit bis zu 34000K Systemgattern&lt;br /&gt;
&lt;br /&gt;
==== Simple-Solutions ====&lt;br /&gt;
http://www.simple-solutions.de/de/products/index.php&lt;br /&gt;
Mehrere Spartan3-FPGAs - Boards&lt;br /&gt;
&lt;br /&gt;
==== CESYS ====&lt;br /&gt;
http://www.cesys.com&lt;br /&gt;
&lt;br /&gt;
Cesys ist Entwickler und Hersteller von FPGA-boards mit Sitz in Deutschland.&lt;br /&gt;
&lt;br /&gt;
* Verschiedene FPGA boards mit USB, PCI und PCIe Schnittstellen im Lieferprogramm&lt;br /&gt;
* Je nach Ausführung mit Spartan-2/3/3E/6, Virtex2/2PRO/4&lt;br /&gt;
* verschiedene Speicherkonfigurationen (SO-DIMM, SRAM, SDRAM, DDR2)&lt;br /&gt;
* Auftragsentwicklungen nach Kundenwunsch möglich&lt;br /&gt;
&lt;br /&gt;
==== ZTEX ====&lt;br /&gt;
&lt;br /&gt;
http://www.ztex.de/&lt;br /&gt;
&lt;br /&gt;
ZTEX ist Entwickler und Hersteller von FPGA-boards mit Sitz in Deutschland.&lt;br /&gt;
&lt;br /&gt;
* Xilinx Spartan 6 FPGA, High-Speed USB interface, Cypress CY7C68013A EZ-USB Microcontroller, 90 GPIO ports, 15 SIO ports, 64 MByte DDR SDRAM, microSD socket, EEPROM.&lt;br /&gt;
* Xilinx Spartan 3 XC3S400 FPGA, High-Speed (480 MBit/s) USB interface, Cypress CY7C68013A EZ-USB Microcontroller, 60 GPIO ports, 20 SIO ports, EEPROM und optionally mit Flash memory&lt;br /&gt;
* High-Speed (480 MBit/s) USB interface, Cypress CY7C68013A/14A EZ-USB Microcontroller, microSD socket mit bis zu 2GB Flash memory, 36 GPIO ports, 28 SIO ports, EEPROM und on-board Schaltregler&lt;br /&gt;
&lt;br /&gt;
* Open Source Firmware Kit zum Programmieren&lt;br /&gt;
&lt;br /&gt;
=== Boards für Altera-FPGAs ===&lt;br /&gt;
==== LiveDesign Evaluation Board von Altium ====&lt;br /&gt;
* Kompatibel mit den LiveDesign-fähigen Entwicklungstools von Altium&lt;br /&gt;
* * Wahlweise mit Altera EP1C12F324C8 oder Xilinx XC3S1000-4FG456C&lt;br /&gt;
* Mit Flachbandkabel für PC-Verbindung (Druckerport) sowie weiteren Kabeln und Verbindern &lt;br /&gt;
* Peripherie: LEDs, Dip-Schalter, 6-stellige Siebensegmentanzeige, Taster, Stereo-DAC, zwei 256K x 16 RAMs&lt;br /&gt;
* &#039;&#039;kein&#039;&#039; on-board Flash RAM für FPGA-Konfiguration, diese muss nach dem Einschalten neu geladen werden&lt;br /&gt;
* Ports: PS2-Maus &amp;amp; -Tastatur, RS232, VGA (512 Farben), 2x18 IO-Pins für allgemeine Zwecke &lt;br /&gt;
* Endpreis: ~150 Euro (inkl. MwSt. und Versand)&lt;br /&gt;
&lt;br /&gt;
==== Terasic TREX C1 Multimedia Development Kit ====&lt;br /&gt;
* Altera EP1C6Q240C8 &amp;amp; EP1S Serial Configuration Device&lt;br /&gt;
* Built-in USB Blaster programming circuitry (JTAG and AS mode)&lt;br /&gt;
* 1 MiB Flash Memory &amp;amp; 8 MiB SDRAM (1M x 4 x 16)&lt;br /&gt;
* CF Card Socket, 16-bit CD-quality Audio DAC&lt;br /&gt;
* TV Encoder, VGA, RS-232, PS/2, and more&lt;br /&gt;
* Many reference designs and C++ applications&lt;br /&gt;
* [http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;amp;CategoryNo=39&amp;amp;No=14 www.terasic.com.tw]&lt;br /&gt;
* fertiger Core eines CPC6128 (8-Bit Homecomputer von 1984) für dieses Board, inlusive Sourcecode (eigener Z80 in AHDL, mit 24MHz eingesetzt): [http://www.symbos.de/trex.htm http://www.symbos.de/trex.htm]&lt;br /&gt;
* Listenpreis $149,-&lt;br /&gt;
&lt;br /&gt;
==== Altera Cyclone II 2C20 ====&lt;br /&gt;
* Altera Cyclone II EP2C20F484C7N FPGA mit 20000 LEs&lt;br /&gt;
* USB-BlasterTM download cable (integriert)&lt;br /&gt;
* EPCS4 serial configuration Flash&lt;br /&gt;
* 8-Mbyte SDRAM, 512-Kb SRAM, 4-Mbyte flash &lt;br /&gt;
* externer SMA - Clock-Eingang&lt;br /&gt;
* 24-bit Audio coder/decoder (CODEC) &lt;br /&gt;
* 10 Schalter, 4 Druckknöpfe inkl Reset &lt;br /&gt;
* 4St. 7-Segmentanzeigen, 10 rote LEDs + 8 grüne LEDs&lt;br /&gt;
* VGA, RS-232, and PS/2 Stecker&lt;br /&gt;
* Zwei 40-pin expansion ports + SD/MMC socket&lt;br /&gt;
* USB-Kabel, externes Steckernetztteil, CD-Rom&lt;br /&gt;
* Reference designs&lt;br /&gt;
* Qartus II Web Edition + NIOS II Web Edition&lt;br /&gt;
* http://www.altera.com/products/devkits/altera/kit-cyc2-2C20N.html&lt;br /&gt;
* Listenpreis $150,-&lt;br /&gt;
&lt;br /&gt;
==== Hpe Mini AC II - Cyclone II board von Gleichmann Research ====&lt;br /&gt;
* Altera Cyclone II EP2C35 FPGA (speed grade 6)&lt;br /&gt;
* Mit reprogrammierbarem Flash zur automatischen FPGA-Konfiguration&lt;br /&gt;
* 25 pin SUB-D connector (parallel) für direktes FPGA-Programmieren&lt;br /&gt;
* RS232 (9 pin SUB-D) &lt;br /&gt;
* VGA (15 pin SUB-D) mit 64 möglichen Farben&lt;br /&gt;
* Ethernet 10/100 Mbit/s, full/half duplex&lt;br /&gt;
* 1 USB 2.0 compatible full-speed target connector&lt;br /&gt;
* 3 USB 2.0 compatible full-speed host connectors&lt;br /&gt;
* Santa Cruz connector mit 40 nutzbaren I/Os&lt;br /&gt;
* Audio interface (line-in and line-out) mit CODEC&lt;br /&gt;
* SODIMM144 Sockel für (SDRAM) 256MB&lt;br /&gt;
* SDRAM-Speichersockel mit nur 32-Bit angebunden, die Hälfte des Speichers bleibt nicht nutzbar&lt;br /&gt;
* 25 MHz oscillator&lt;br /&gt;
* Prototyping area, Lötfläche&lt;br /&gt;
* 8 LEDs, grün, blau, 3x4 key matrix, 4-bit DIP switch&lt;br /&gt;
* LCD connector, 2-character 7-segment display&lt;br /&gt;
* Single step Knopf und Reset Knopf&lt;br /&gt;
* Parallelportkabel für PC&lt;br /&gt;
* Beispieldesign, Testprogramme, Datenblätter&lt;br /&gt;
* LEON3-CPU Design inkl. Source Code, Quartus IDE, SnapGear Linux&lt;br /&gt;
* Nicht mehr im Programm - war ca 399,-&lt;br /&gt;
&lt;br /&gt;
==== Altera DE2 - Development and Education Board V2 ====&lt;br /&gt;
* Altera Cyclone II 2C35 FPGA mit 35000 LEs&lt;br /&gt;
* Altera Serial Configuration devices (EPCS16) für Cyclone II 2C35&lt;br /&gt;
* USB Blaster board zur Programmierung und User API&lt;br /&gt;
* 8 MB SDRAM, 4 MB Flash Memory, 512KB SRAM&lt;br /&gt;
* SD Card Sockel, RS-232, Ethernet, 10-bit VGA, 24-bit Audio CODEC&lt;br /&gt;
* TV Decoder (NTSC/PAL), IrDA, USB (Host + Slave)&lt;br /&gt;
* Viele Besipiel mit Source Code wie TV, SD Music Player)&lt;br /&gt;
* [http://www.fh-wedel.de/fileadmin/mitarbeiter/bos/files/VHDL/VhdlEinfuehrung.pdf Kleines aber nettes Tutorial zum Altera DE2 Dev. Board]&lt;br /&gt;
* Listenpreis US $495,-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Altera DE2-115 - Development and Education Board V3 ====&lt;br /&gt;
* Altera Cyclone IV FPGA mit 115000 LEs&lt;br /&gt;
* Altera Serial Configuration device EPCS64&lt;br /&gt;
* USB Blaster zur Programmierung und für User API&lt;br /&gt;
* User-Applikations und Steuerungssoftware&lt;br /&gt;
* 128 MB SDRAM, 8 MB Flash Memory, 2 MB SRAM&lt;br /&gt;
* SD Card Sockel, RS-232, 2x GBit-Ethernet, &lt;br /&gt;
* 8-bit VGA, 24-bit Audio CODEC&lt;br /&gt;
* TV Decoder (NTSC/PAL), IrDA, USB (Host + Slave)&lt;br /&gt;
* 18 Schalter, 4 Drucktasten, PS2-Maus/Tastatur-Anschluss&lt;br /&gt;
* 27 LEDs, 16x2-LCD-Display, 8 7-Segment-Anzeigen&lt;br /&gt;
* IR-Fernsteuerung&lt;br /&gt;
* HSMC-Stecker&lt;br /&gt;
* Viele Besipiel mit Source Code wie TV, SD Music Player, Audiorecorder&lt;br /&gt;
* Listenpreis US $595,- (academic = $299,-)&lt;br /&gt;
&lt;br /&gt;
==== Cyclone III embedded Development Kit====&lt;br /&gt;
* Altera Cyclone III EP3C25 FPGA&lt;br /&gt;
* 640x480 LCD Display mit touch screen function&lt;br /&gt;
* MiniSD-Card Sockel&lt;br /&gt;
* Audio Interface ADC CODEC&lt;br /&gt;
* 10/100 Mbit Fast Ethernet Schnittstelle&lt;br /&gt;
* FPGA-Konfiguration über USB&lt;br /&gt;
* NIOS II EVAL Lizenz&lt;br /&gt;
* IP LIB Altera&lt;br /&gt;
* Listenpreis US $495,-  über ALtera Webseite&lt;br /&gt;
* Bei EBV €349,- inkl. MwSt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== NanoBoard-NB1 von Altium ====&lt;br /&gt;
* kompatibel mit den LiveDesign-fähigen Entwicklungstools von Altium&lt;br /&gt;
* Unterstützt eine breite Palette von Ziel-FPGAs durch Aufsteckplatinen &lt;br /&gt;
* Altera Cyclone (EP1C12-Q240C7) Aufsteckplatine enthalten &lt;br /&gt;
* Xilinx Spartan IIE (XC2S300E-PQ208) im Lieferumfang enthalten &lt;br /&gt;
* Enthält Stromversorgung mit verschiedenen Steckern für unterschiedliche Konfigurationen &lt;br /&gt;
* Mit Flachbandkabel für PC-Verbindung sowie weiteren Kabeln und Verbindern &lt;br /&gt;
* NanoBoard-NB1 Reference-Handbuch zur Hardware &lt;br /&gt;
* Peripherie: LCD, LEDs, Dip-Schalter, Tastenblock, Summer, ADC/DAC, 256K x 8 RAM, 8 MiB Serial Flash RAM, on-board Serial Flash RAM für FPGA-Konfig.&lt;br /&gt;
* Ports: PS2-Maus &amp;amp; -Tastatur, RS232, CAN, VGA, I2C, IO Stecker für allg. Zwecke &lt;br /&gt;
* Upgradefähige NanoBoard Controller Firmware &lt;br /&gt;
* Stabiler NanoBard-Sockel&lt;br /&gt;
* Listenpreis €995,-&lt;br /&gt;
&lt;br /&gt;
=== Boards für Lattice-FPGAs ===&lt;br /&gt;
==== www.hardware-design.de ====&lt;br /&gt;
* bietet verschiedene einfache Boards mit Lattice-Bausteinen an&lt;br /&gt;
* FPGA-Board mit XP2-17/XP2-8/XP2-5 -&amp;gt; 113,- bis 101,- Euro&lt;br /&gt;
* CPLD-Boards u.a. mit MachXO640 -&amp;gt; 89,- Euro&lt;br /&gt;
&lt;br /&gt;
=== Debugging-Hilfen ===&lt;br /&gt;
Gerade beim [[Debugging]] größerer FPGA-Designs ist es oft notwendig, auf interne Signale und Busse zuzugreifen, die aus routing- oder Platzgründen nicht an Pins des FPGAs gelegt - und mit konventionellen Analysatoren beobachtet werden können. Nebst den einschlägigen Tools der Hersteller, welche Signal probing über JTAG gestatten (z.&amp;amp;nbsp;B. ChipsScope und SignalTap), werden in FPGAs oft mehr oder weniger komplexe [[Logic Analyzer]] integriert, welche die internen Signale in vielfältiger Weise aufzeichnen. Diese werden in Block-RAMs oder FIFOs gespeichert und durch externe Master ausgelesen. Hier kommen auf der Platine befindliche MCUs oder fremd zugreifende FPGAs / CPUs in Betracht, welche über unterschiedliche Kommunikationsverbindungen (seriell, parallel, LVDS) angeschlossen sind. Dazu werden in die FPGAs entsprechende Cores / Treiber eininstanziiert.&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Beispiele:&lt;br /&gt;
&lt;br /&gt;
====Proprietärer serieller Logic Analyzer ====&lt;br /&gt;
&lt;br /&gt;
Die einfachste Möglichkeit ist die direkte Instanziierung eines Blockrams als FIFO mit &amp;quot;breitem&amp;quot; Busanschluss: Linksseitig besitzt das FIFO eine Breite von z.&amp;amp;nbsp;B. 256 Bit (Xilinx-Rams lassen sich ohne weitere Umbeschaltung über den Wizzard mit bis zu 1024 Bits deklarieren und nutzen). Rechtsseitig einen 16- oder 32 Bit breiten Busanschluss für einen Prozessor bzw Parallelinterface oder einen 1 Bit breiten Anschluss für ein serielles streaming interface. Mit einem FiFo-enable können die zu sampelnden Zeiten (Busphasen) festgelegt werden, z.&amp;amp;nbsp;B. anhand eines Kriteriums wie die Erfüllung einer bestimmten mathematischen Bedingung, die man in VHDL formuliert, oder es wird einfach ein Trigger gesetzt. Solange das FiFo nicht voll ist, kann geschrieben werden, was durch die interne FiFo-Verwaltung selbst bereits komplett geregelt wird.&lt;br /&gt;
&lt;br /&gt;
Beim einfachen seriellen Logic Analyzer benötigt man nur noch einen kleinen Core, der permanent das FiFo liest, und den seriellen Overhead (Startbit, Stoppbit, Parity und gfs CRC) hinzufügt. Mit einem einfach Pegelwandler kann so ein PC direkt angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Auch denkbar ist die Anbindung an ein fremdes FPGA-board mit viel Speicher über (LV-)DS-Kommunikation. In komplexeren Systemen wird ein CAN- oder USB-Core eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Wenn mittels des Kriteriums nur ganz bestimmte kritische Phasen herausgesampelt werden (z.&amp;amp;nbsp;B. das Auftauchen eines bestimmten Rechenfehlers im FPGA) und so das Datenaufkommen je Zeiteinheit über längere Zeit betrachtet eher gering ist, kann bei geeignetem Datendurchsatz in Echtzeit dauerhaft mitprotokolliert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BusProbe, der Debugging Core von abaxor engineering  ====&lt;br /&gt;
Mit der BusProbe kann der Entwickler den Signalfluss im FPGA-Design auch über einen längeren Zeitraum überwachen und am PC aufzeichnen. Der Core verarbeitet an jedem Eingang einen kompletten Bus. &lt;br /&gt;
&lt;br /&gt;
Die Daten werden gemultiplext zum PC geschickt und dort per Software demultiplext. Im PC erfolgt auch die Auswertung mit beliebigen Analyse-Tools.&lt;br /&gt;
&lt;br /&gt;
Gegenüber dem Betriebssystem verhält sich die BusProbe wie eine Festplatte, von der die Daten mit gewöhnlichen Zugriffen gelesen werden können.&lt;br /&gt;
&lt;br /&gt;
* Streaming der Daten zum PC mit mehr als 20 MByte/s&lt;br /&gt;
* keine Treiber im PC da Nutzung von Standardschnittstellen (USB oder IDE)&lt;br /&gt;
* Hot-Plugging&lt;br /&gt;
* Visualisierung mit beliebigen Programmen&lt;br /&gt;
* geringer Logikaufwand&lt;br /&gt;
&lt;br /&gt;
[http://www.abaxor.de/produkte.html abaxor.de-Webseite]&lt;br /&gt;
&lt;br /&gt;
==== open source Logikanalysator von sump.org====&lt;br /&gt;
Ein einfacher, übersichtlicher Logikanalysator findet sich auf sump.org. Er liegt im Quelltext vor wird mit ins Design einsynthetisiert. Als Speicher dient wahlweise SRAM oder internes RAM. Es können 32 Kanäle mit 100 MHz (oder weniger) gesampelt werden. Die Bediensoftware läuft platformunabhängig unter Java und benötigt eine serielle Schnittstelle (auch über USB-seriell Wandler) zum Core.&lt;br /&gt;
&lt;br /&gt;
[http://de.sump.org/projects/analyzer/ sump.org-Webseite]&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Hardwarebeschreibungssprachen]]&lt;br /&gt;
* [[Reset für FPGA/CPLD]]&lt;br /&gt;
* [[Taktung FPGA/CPLD]]&lt;br /&gt;
* Projekt [[Audio-DSP mit Spartan 3-FPGA]]&lt;br /&gt;
* Projekt [[FPGA Lab]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.fpga4fun.com/index.html FPGA4Fun] - FPGA-Projekte, größtenteils mit Altera und Verilog&lt;br /&gt;
* [http://video.google.com/videoplay?docid=-4969729965240981475 Ein Vortrag, auf Englisch: General Purpose, Low Power Supercomputing Using Reconfiguration Logic]&lt;br /&gt;
* http://www.opencores.org - FPGA-Projekte, Opensource, jeder kann seine Eigenen einstellen und an anderen mitarbeiten. U.a. gibt es verschiedene CPUs für FPGAs.&lt;br /&gt;
* [http://members.optushome.com.au/jekent/FPGA.htm John&#039;s FPGA Page]&lt;br /&gt;
* [http://www.embedded.com/columns/whatsnew/197003073 More about designing with embedded FPGAs] by Bernard Cole, Embedded.com&lt;br /&gt;
&lt;br /&gt;
[[Category:FPGA und Co| ]]&lt;/div&gt;</summary>
		<author><name>Mw1987</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_Net-IO_Bausatz_von_Pollin&amp;diff=31461</id>
		<title>AVR Net-IO Bausatz von Pollin</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_Net-IO_Bausatz_von_Pollin&amp;diff=31461"/>
		<updated>2008-09-27T12:10:53Z</updated>

		<summary type="html">&lt;p&gt;Mw1987: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier steht eine Beschreibung des Pollin Bausatzes [http://www.pollin.de/shop/shop.php?cf=detail.php&amp;amp;pg=NQ==&amp;amp;a=MTQ5OTgxOTk= AVR-NET-IO. Best.Nr. 810 058]&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Features:&lt;br /&gt;
&lt;br /&gt;
Ethernet-Platine mit ATMega32 und Netzwerkcontroller ENC28J60. Die Platine verfügt über 8 digitale Ausgänge, 4 digitale und 4 ADC-Eingänge, welche alle über einen Netzwerkanschluss (TCP/IP) abgerufen bzw. geschalten werden können.&lt;br /&gt;
&lt;br /&gt;
Technische Daten:&lt;br /&gt;
&lt;br /&gt;
* Betriebsspannung 9 V~&lt;br /&gt;
* Stromaufnahme ca. 190 mA&lt;br /&gt;
* 8 digitale Ausgänge (0/5 V)&lt;br /&gt;
* 4 digitale Eingänge (0/5 V)&lt;br /&gt;
* 4 ADC-Eingänge (10 Bit)&lt;br /&gt;
* [[ENC28J60]]&lt;br /&gt;
* [http://www.atmel.com/dyn/Products/Product_card.asp?part_id=2014 ATmega32] Mikrocontroller&lt;br /&gt;
&lt;br /&gt;
Maße (LxBxH): 108x76x22 mm.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:AVR-NET-IO.JPG|thumb|400px|AVR-NET-IO (links) mit zusätzlicher SUB-D Anschlussplatine (rechts, nicht im Lieferumfang). Ebenso ist zusätzlich ein nicht im Lieferumfang enthaltener kleiner Kühlkörper auf einem der Spannungsregler montiert und die Schraubklemmen sind nicht wie vorgesehen angereiht.]]Die Schaltung des AVR-NET-IO ist recht einfach:&lt;br /&gt;
* Ein ATmega32 Mikrocontroller enthält die gesamte Software&lt;br /&gt;
* Ein ENC28J60 Ethernet-Controller für das Senden und Empfangen von Ethernet Frames (MAC und PHY Ethernet Layer) ist über [[SPI]] mit dem ATmega32 verbunden&lt;br /&gt;
* Ein Ethernet RJ-45 MagJack TRJ 0011 BA NL von [http://www.trxcom.com/ Trxcom] mit eingebautem Übertrager und Anzeige-LEDs am ENC28J60.&lt;br /&gt;
* Ein MAX232 für die serielle Schnittstelle&lt;br /&gt;
* Zwei Spannungsregler, 5 V und 3,3 V&lt;br /&gt;
* &amp;quot;Hühnerfutter&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Fast alle I/O Pins des ATmega32 sind irgendwo auf Anschlüssen herausgeführt. Entweder auf dem SUB-D Stecker, dem EXT oder ISP Wannensteckern oder den blauen Anschlussklemmen. Sie sind nicht(!) besonders geschützt, es finden sich zum Beispiel keine Schutzdioden für die Pins in der Schaltung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Hardware-Umbauten &amp;amp; -Verbesserungen ====&lt;br /&gt;
&lt;br /&gt;
* Kühlkörper auf dem 7805&lt;br /&gt;
* MAX232 nach anfänglicher Konfiguration nicht bestücken um Strom zu sparen oder um zwei weitere I/O-Pins zu gewinnen&lt;br /&gt;
* &#039;&#039;Netz&#039;&#039; LED nicht bestücken um Strom zu sparen&lt;br /&gt;
* Linear-Spannungsregler ersetzen&lt;br /&gt;
* Kondensator an AREF-Pin des ATmega32 (ATmega32 Datenblatt)&lt;br /&gt;
* Kondensator an den RESET-Pin des ATmega32 ([http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf Atmel Application Note AVR042: AVR Hardware Design Considerations])&lt;br /&gt;
* Umbau auf 3,3 V:&lt;br /&gt;
** Ersatz der Spannungsregler durch einen einzigen 3,3 V Regler&lt;br /&gt;
** Anpassen (verkleinern) des LED-Vorwiderstands R3 für 3,3 Volt Betrieb&lt;br /&gt;
** Reduktion der Taktfrequenz (Austausch von Q2) auf den bei 3,3V erlaubten Bereich des ATmega32&lt;br /&gt;
** Ersatz des MAX232 durch einen MAX3232&lt;br /&gt;
* ATmega32 vom ENC28J60 takten (OSC2)&lt;br /&gt;
* Betrieb mit Gleichspannung:&lt;br /&gt;
** Dioden D2 und D5 durch Drahtbrücken ersetzen, D1 und D4 nicht bestücken (komplette Entfernung des Brückengleichrichters, beinhaltet Verlust des Verpolungsschutzes)&lt;br /&gt;
** Diode D2 bestücken, D5 durch Drahtbrücke ersetzen, D1 und D4 nicht bestücken (Brückengleichrichter durch Verpolungsschutze ersetzen)&lt;br /&gt;
* Ersatz des ATmega32 durch einen ATmega644 mit mehr FLASH-Speicher.&lt;br /&gt;
&lt;br /&gt;
== Inbetriebnahme der Originalsoftware ==&lt;br /&gt;
=== Einleitung ===&lt;br /&gt;
&lt;br /&gt;
Die bei Auslieferung (Stand September 2008) in den ATmega32 gebrannte Firmware stellt sich recht zickig an. In vielen Fällen scheint weder die serielle Schnittstelle, noch die Netzwerkschnittstelle zu funktionieren.&lt;br /&gt;
&lt;br /&gt;
Mit den im folgenden beschriebenen Schritten sollte die Inbetriebnahme der Software möglich sein. Dazu benötigt man:&lt;br /&gt;
&lt;br /&gt;
* Einen Windows-PC mit Ethernet-Schnittstelle und RS232-Schnittstelle (ein Prolific RS232-USB Konverter funktioniert)&lt;br /&gt;
* Entweder&lt;br /&gt;
**zwei normale (&#039;&#039;straight through&#039;&#039;) Ethernet-Kabel und einen Ethernet Switch/Hub, oder&lt;br /&gt;
**ein gekreuztes(&#039;&#039;cross over&#039;&#039;) Ethernet-Kabel&lt;br /&gt;
* Einen AVR Programmer (Hardware und Software). Zum Beispiel einen AVR Dragon oder STK 500 mit AVR Studio oder das Pollin AVR Eval Board und avrdude.&lt;br /&gt;
* Die [http://www.pollin.de/shop/shop.php?cf=downloads_suchergebnis.php&amp;amp;fp=OA==&amp;amp;pg=NQ==&amp;amp;a=MTQ5OTgxOTk= Pollin NetServer Software], Version 1.01 (oder neuer)&lt;br /&gt;
&lt;br /&gt;
=== Gelieferten ATmega32 richtig einstellen ===&lt;br /&gt;
&lt;br /&gt;
Die Fuses der gelieferten ATmega32s scheinen nicht immer mit den im Handbuch auf Seite 12 als erforderlich angegebenen Fuse-Einstellungen übereinzustimmen.&lt;br /&gt;
&lt;br /&gt;
Dies kann man mittels eines Programmers ändern. LFuse = 0xBF, HFuse = 0xD2. Das genaue Vorgehen hängt dabei vom verwendeten Programmer ab. Bei der Gelegenheit kann man ebenfalls eine Sicherheitskopie des ursprünglichen Flash-Inhalts und des EEPROMs anfertigen. Das EEPROM scheint die MAC-Adresse des Ethernet-Ports zu enthalten&lt;br /&gt;
&lt;br /&gt;
=== PC Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
==== PC normalerweise nicht im 192.168.0/24 Subnetz ====&lt;br /&gt;
&lt;br /&gt;
Betreibt man den PC normalerweise nicht im 192.168.0/24 Subnetz, muss er wie folgt umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
Den PC vom normalen Netzwerk abstecken. Zur Umkonfiguration dazu bei Windows XP in der Systemsteuerung &#039;&#039;Netzwerkverbindungen&#039;&#039; aufrufen und die lokale &#039;&#039;LAN-Verbindung&#039;&#039; markieren. Dann in der rechten Leiste &#039;&#039;Einstellungen dieser Verbindung ändern&#039;&#039; aufrufen. &lt;br /&gt;
&lt;br /&gt;
Es erscheint der Dialog &#039;&#039;Eigenschaften von &amp;lt;Verbindungsname&amp;gt;&#039;&#039;. In der Liste im Dialog zu &#039;&#039;Internetprotokoll (TCP/IP)&#039;&#039; gehen. Ein Doppelklick auf den Eintrag öffnet den &#039;&#039;Eigenschaften von Internetprotokoll (TCP/IP)&#039;&#039; Dialog.&lt;br /&gt;
&lt;br /&gt;
In diesem Dialog &#039;&#039;Folgende IP-Adresse verwenden:&#039;&#039; auswählen und zum Beispiel&lt;br /&gt;
&lt;br /&gt;
IP-Adresse: &#039;&#039;&#039;192.168.0.100&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Subnetzmaske: &#039;&#039;&#039;255.255.255.0&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Standardgateway: &#039;&#039;&#039;192.168.0.1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
eingeben. &lt;br /&gt;
&lt;br /&gt;
Alle geöffneten Dialoge nacheinander mit OK schließen.&lt;br /&gt;
&lt;br /&gt;
Im Normalfall (danke Bill Gates! :-() muss der PC jetzt neu gebootet werden.&lt;br /&gt;
&lt;br /&gt;
==== PC bereits im 192.168.0/24 Subnetz ====&lt;br /&gt;
&lt;br /&gt;
In diesem Fall muss man prüfen, ob die IP-Adresse 192.168.0.90 bereits im Subnetz verwendet wird. Ist dies der Fall, muss der PC wie oben beschrieben umkonfiguriert werden. Ansonsten muss auf dem PC nichts geändert werden und er kann in seinem Netz verbleiben.&lt;br /&gt;
&lt;br /&gt;
=== AVR-NET-IO anschließen ===&lt;br /&gt;
&lt;br /&gt;
Musste man den PC umkonfigurieren, so werden jetzt nur der PC und der AVR-NET-IO über Ethernet miteinander verbunden. Je nach Ethernet-Kabel benötigt man dazu einen Switch/Hub oder nicht.&lt;br /&gt;
&lt;br /&gt;
Musste man den PC nicht umkonfigurieren, so kann man den AVR-NET-IO wie einen normalen Rechner an das vorhandenen Netz anschließen.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich schließt man die serielle Schnittstelle des AVR-NET-IO an den PC an.&lt;br /&gt;
&lt;br /&gt;
=== Firmware 1.01 einspielen ===&lt;br /&gt;
&lt;br /&gt;
Laut Handbuch sollte der AVR-NET-IO jetzt über Ethernet funktionieren. Ebenso sollte er über die serielle Schnittstelle und ein Terminalprogramm konfigurierbar sein. Beides ist offensichtlich im Auslieferungszustand selten der Fall.&lt;br /&gt;
&lt;br /&gt;
Auch wenn sich Pollins NetServer Software nicht mit dem AVR-NET-IO verbinden lässt, so ist sie jedoch in der Lage eine neue Firmware 1.01 einzuspielen. Das Vorgehen ist im Handbuch auf Seite 12 beschrieben. NetServer präsentiert dabei ein paar einfache Anweisungen denen man folgen sollte.&lt;br /&gt;
&lt;br /&gt;
=== Abschluss ===&lt;br /&gt;
&lt;br /&gt;
Jetzt sollte sich die NetServer Software mit dem AVR-NET-IO über Ethernet verbinden lassen. Dies macht es wiederum möglich den AVR-NET-IO mit einer anderen IP-Adresse zu versehen. Will man den AVR-NET-IO in einem anderen Subnetz betreiben kann man dies jetzt einstellen.&lt;br /&gt;
&lt;br /&gt;
Nachdem man die IP-Adresse neu eingestellt hat, muss man den PC zurückkonfigurieren und kann dann sowohl den AVR-NET-IO und den PC zusammen betreiben.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Fehler ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[#Hardware-Umbauten_.26_-Verbesserungen|Hardware-Umbauten und Verbesserungen]]&lt;br /&gt;
&lt;br /&gt;
* Stückliste in der Anleitung mit der Versionsangabe &#039;&#039;Stand 20.08.2008, kloiber, #1100, wpe&#039;&#039; auf der ersten Seite ist falsch. Pollin legt irgendwann ab September 2008 einen Korrekturzettel bei.&lt;br /&gt;
* Im schaltplan der Anleitung (Version &#039;&#039;Stand 20.08.2008, kloiber, #1100, wpe&#039;&#039;) ist eine 25-polig SUB-D Buchse gezeichnet. Geliefert wird (und in der Stückliste verzeichnet ist) ein Stecker.&lt;br /&gt;
* Ausgelieferte Software (September 2008) funktioniert nicht und muss erst upgedatet werden (siehe [[#Inbetriebnahme der Originalsoftware|Inbetriebnahme der Originalsoftware]])&lt;br /&gt;
* Fuse-Konfiguration des ausgelieferten ATmega32 entspricht nicht der Anleitung (siehe [[#Inbetriebnahme der Originalsoftware|Inbetriebnahme der Originalsoftware]])&lt;br /&gt;
* Käufer berichten von fehlenden Bauteilen im Bausatz (Wannenstecker, Widerstände). Für Reklamationen: [https://www.pollin.de/shop/fragen_reklamation.php]&lt;br /&gt;
&lt;br /&gt;
== Andere Software statt der Originalsoftware ==&lt;br /&gt;
&lt;br /&gt;
Die Umrüstung auf einen Webserver durch Austausch der Software (und ev. des ATmega32 bietet sich an):&lt;br /&gt;
&lt;br /&gt;
* Angepasster Sourcecode von U.Radig: http://www.mikrocontroller.net/attachment/40027/Webserver_MEGA32.hex&lt;br /&gt;
IP: 192.168.1.90&amp;lt;br&amp;gt;&lt;br /&gt;
User: admin&amp;lt;br&amp;gt;&lt;br /&gt;
Pass: tim&amp;lt;br&amp;gt;&lt;br /&gt;
Test: http://beitz-online.dyndns.org&amp;lt;br&amp;gt;&lt;br /&gt;
Test: http://pieper-online.dyndns.org&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Angepasster Sourcecode von Simon K: http://www.mikrocontroller.net/attachment/39939/uWebSrv.zip&lt;br /&gt;
IP: 192.168.0.93:8080&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* Diskussion zu diesem Projekt: http://www.mikrocontroller.net/topic/109988&lt;br /&gt;
* [http://www.atmel.com/dyn/Products/Product_card.asp?part_id=2014 ENC28J60 Datenblatt]&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte|P]]&lt;br /&gt;
[[Category:AVR|P]]&lt;/div&gt;</summary>
		<author><name>Mw1987</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Lokale_Elektroniklieferanten&amp;diff=31217</id>
		<title>Lokale Elektroniklieferanten</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Lokale_Elektroniklieferanten&amp;diff=31217"/>
		<updated>2008-09-20T20:50:03Z</updated>

		<summary type="html">&lt;p&gt;Mw1987: /* Nordrhein-Westfalen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Da nicht jeder beim Fehlen einzelner Bauteile eine Online-Bestellung aufgeben möchte und der eine oder andere regionale Anbieter nicht so gut zu finden ist, soll hier eine Liste entstehen, die hilft Anbieter zu finden. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Falls die Darstellungsart nicht gefällt oder Rubriken fehlen, so bitte nicht hier ändern, sondern das Template anpassen: [[Vorlage:ElektronikLieferant]]&amp;lt;br&amp;gt;&lt;br /&gt;
So soll das Template ausgefüllt werden:&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=hier Firmenname eintragen&lt;br /&gt;
|Straße=Straßenname, z.B. Musterstraße 123&lt;br /&gt;
|PLZ=PLZ, z.B. 12345&lt;br /&gt;
|Ort=Ort, z.B. München&lt;br /&gt;
|Telefon=Telnr., z.B. 012345/12341234&lt;br /&gt;
|Fax=Faxnr., z.B. 012345/12345234&lt;br /&gt;
|Öffnungszeiten=Öffnungszeiten eintragen&amp;lt;br&amp;gt;Neue Zeile mit &amp;quot;br&amp;quot; abgetrennt&lt;br /&gt;
|Weblink=http://www.mikrocontroller.net Link ohne umschliessende eckige Klammern&lt;br /&gt;
|Email=Emailadresse, z.B. xxx@yyy.de&lt;br /&gt;
|Bemerkung=ggf. Bemerkung, ansonsten Rubrik/Feld/Variable leer lassen&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Sachsen=&lt;br /&gt;
==Chemnitz==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=mükra electronic shop GmbH&lt;br /&gt;
|Straße=Hartmannstr.45&lt;br /&gt;
|PLZ=09113&lt;br /&gt;
|Ort=Chemnitz&lt;br /&gt;
|Telefon=0371/365736&lt;br /&gt;
|Fax=0371/365736&lt;br /&gt;
|Öffnungszeiten=Mo.-Fr. 10.00 Uhr - 18.00 Uhr&amp;lt;br&amp;gt;Sa. 10.00 Uhr - 13.00 Uhr&lt;br /&gt;
|Weblink=http://onlineshop.muekra-electronic.com&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=köhler-elektronik&amp;lt;br&amp;gt;Firma Michael Köhler&lt;br /&gt;
|Straße=Erfenschlager Strasse 31&lt;br /&gt;
|PLZ=09125&lt;br /&gt;
|Ort=Chemnitz&lt;br /&gt;
|Telefon=(03 71) 51 91 03&lt;br /&gt;
|Fax=(03 71) 51 91 04&lt;br /&gt;
|Öffnungszeiten=Mo.-Fr. von 9 - 18 Uhr &amp;lt;br&amp;gt; Sa. von 9 - 12 Uhr&lt;br /&gt;
|Weblink=http://www.koehler-elektronik.de&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dresden==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Conrad&lt;br /&gt;
|Straße=Friedrich-List-Platz 2&amp;lt;br&amp;gt;gegenüber Hauptbahnhof&lt;br /&gt;
|PLZ=01069&lt;br /&gt;
|Ort=Dresden &lt;br /&gt;
|Telefon=&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Mo.-Fr. 09.30-20.00 Uhr, &amp;lt;br&amp;gt;Sa. 09.00-20.00 Uhr&lt;br /&gt;
|Weblink=&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Leipzig==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Conrad&lt;br /&gt;
|Straße=Neumarkt 20&lt;br /&gt;
|PLZ=04109&lt;br /&gt;
|Ort=Leipzig &lt;br /&gt;
|Telefon=&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Mo.-Sa.: 09.30-20.00 Uhr&lt;br /&gt;
|Weblink=&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Sachsen-Anhalt=&lt;br /&gt;
==Magdeburg==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=mittrenga electronic&lt;br /&gt;
|Straße=Maxim-Gorki-Str. 34&lt;br /&gt;
|PLZ=39108&lt;br /&gt;
|Ort=Magdeburg&lt;br /&gt;
|Telefon=0391/7333500&lt;br /&gt;
|Fax=0391/7346538&lt;br /&gt;
|Öffnungszeiten=?&lt;br /&gt;
|Weblink=&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Nova Electronic&lt;br /&gt;
|Straße=Leipziger Str. 31&lt;br /&gt;
|PLZ=39112&lt;br /&gt;
|Ort=Magdeburg&lt;br /&gt;
|Telefon=0391/6272537&lt;br /&gt;
|Fax=?&lt;br /&gt;
|Öffnungszeiten=?&lt;br /&gt;
|Weblink=&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=Mecklenburg-Vorpommern=&lt;br /&gt;
==Rostock== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Nordrhein-Westfalen=&lt;br /&gt;
==Aachen==&lt;br /&gt;
Siehe http://aachen.wikia.com/wiki/Elektronik-Teile&lt;br /&gt;
&lt;br /&gt;
==Bielefeld==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=alpha electronic Ing. A. Berger GmbH&lt;br /&gt;
|Straße=Oldentruper Str. 104&lt;br /&gt;
|PLZ=33604&lt;br /&gt;
|Ort=Bielefeld&lt;br /&gt;
|Telefon=0521-324333&lt;br /&gt;
|Fax=0521-320435&lt;br /&gt;
|Öffnungszeiten=Mo. – Sa.    9.00 – 13.00 Uhr&amp;lt;br&amp;gt;Mo. – Fr.   14.00 – 18.00 Uhr&lt;br /&gt;
|Weblink=http://www.alphaelectronic-bielefeld.de/&lt;br /&gt;
|Email=info@alphaelectronic.de&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dortmund==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Conrad Electronic&lt;br /&gt;
|Straße=Westenhellweg 95-101&lt;br /&gt;
|PLZ=44137&lt;br /&gt;
|Ort=Dortmund&lt;br /&gt;
|Telefon=01805-564445 &lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Mo. – Fr.    10.00 – 20.00 Uhr&amp;lt;br&amp;gt;Sa.  9.30 – 20.00 Uhr&lt;br /&gt;
|Weblink=http://www.conrad.de&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=direkt in der Innenstadt&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=SR-Tronic&lt;br /&gt;
|Straße=Beratgerstr. 28&lt;br /&gt;
|PLZ=44149&lt;br /&gt;
|Ort=Dortmund&lt;br /&gt;
|Telefon=0231-33671-0&lt;br /&gt;
|Fax=0231-33671-25&lt;br /&gt;
|Öffnungszeiten=Mo. – Fr.    10.00 – 18.00 Uhr&lt;br /&gt;
|Weblink=http://www.sr-tronic.de&lt;br /&gt;
|Email=info@sr-tronic.de&lt;br /&gt;
|Bemerkung=Ist zwar ein Versandhandel, Abholung ist aber möglich&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Paderborn==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Jansen-Elektronik GmbH &amp;amp; Co. KG&lt;br /&gt;
|Straße=Heiersstrasse 24&lt;br /&gt;
|PLZ=33098 &lt;br /&gt;
|Ort=Paderborn&lt;br /&gt;
|Telefon=05251-282848&lt;br /&gt;
|Fax=05251-282851&lt;br /&gt;
|Öffnungszeiten=Mo. – Sa.    9.30 – 13.00 Uhr&amp;lt;br&amp;gt;Mo. – Fr.   14.30 – 18.00 Uhr&lt;br /&gt;
|Weblink=http://www.jansen-elektronik.de/&lt;br /&gt;
|Email=info@jansen-elektronik.de&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Hessen=&lt;br /&gt;
==Darmstadt==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Zimmermann Electronic GmbH&lt;br /&gt;
|Straße=Kasinostr. 2&lt;br /&gt;
|PLZ=64293 &lt;br /&gt;
|Ort=Darmstadt&lt;br /&gt;
|Telefon=06151 - 66 69 - 240&lt;br /&gt;
|Fax=06151 - 66 69 - 290&lt;br /&gt;
|Öffnungszeiten=Mo.- Fr. 9:00 - 19:00 Uhr&amp;lt;br&amp;gt;Sa. 9:00 - 14:00 Uhr&lt;br /&gt;
|Weblink=http://www.zeg-shop.de&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=EBG Electronic Business GmbH&lt;br /&gt;
|Straße=Bismarckstr. 61&lt;br /&gt;
|PLZ=64293 &lt;br /&gt;
|Ort=Darmstadt&lt;br /&gt;
|Telefon=06151 / 82 91 - 0&lt;br /&gt;
|Fax=06151 / 82 91 - 20&lt;br /&gt;
|Öffnungszeiten=Montag-Freitag: 9:00 bis 19:00 Uhr&amp;lt;br&amp;gt;Samstag:        9:00 bis 14:00 Uhr&lt;br /&gt;
|Weblink=http://www.ebg-darmstadt.de&lt;br /&gt;
|Email=info@ebg-darmstadt.de&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Frankfurt/Main==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Conrad Elektronik&lt;br /&gt;
|Straße=Zeil 58 + 64 (Konstabler Wache)&lt;br /&gt;
|PLZ=60313 &lt;br /&gt;
|Ort=Frankfurt&lt;br /&gt;
|Telefon=0180 5 564445&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Mo.-Mi. 10.00-20.00 Uhr&amp;lt;br&amp;gt;Do.-Sa. 10.00-21.00 Uhr&lt;br /&gt;
|Weblink=http://www.conrad.de&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Bayern=&lt;br /&gt;
==Fürth==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=B+D Electronic GmbH&lt;br /&gt;
|Straße=Königstr. 107 (gegenüber Citycenter und neben Feuerwehr)&lt;br /&gt;
|PLZ=90762 &lt;br /&gt;
|Ort=Fürth&lt;br /&gt;
|Telefon=0911 - 77 30 40&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Mo - Fr:   10.00 - 12.30 &amp;amp; 14.00 - 19.00&amp;lt;br&amp;gt;Sa:        10.00 - 13.00&lt;br /&gt;
|Weblink=http://www.bdelectronic.de/&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==München==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Conrad Elektronik&lt;br /&gt;
|Straße=Tal 29&lt;br /&gt;
|PLZ=80331 &lt;br /&gt;
|Ort=München&lt;br /&gt;
|Telefon=&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Mo - Fr:   9:00 - 20:00&amp;lt;br&amp;gt;Sa:        9:00 - 20:00&lt;br /&gt;
|Weblink=http://www.conrad.de/&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Conrad Elektronik&lt;br /&gt;
|Straße=Hanauer Straße 91 (gegenüber OEZ)&lt;br /&gt;
|PLZ=80993 &lt;br /&gt;
|Ort=München - Moosach&lt;br /&gt;
|Telefon=&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Mo - Fr:   9:30 - 20:00&amp;lt;br&amp;gt;Sa:        9:00 - 20:00&lt;br /&gt;
|Weblink=http://www.conrad.de/&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Bürklin&lt;br /&gt;
|Straße=Schillerstr. 41&lt;br /&gt;
|PLZ=80336 &lt;br /&gt;
|Ort=München&lt;br /&gt;
|Telefon=&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Mo - Do:   9:00 - 16:30&amp;lt;br&amp;gt;Fr:        9:00 - 13:00&lt;br /&gt;
|Weblink=http://buerklin.de/&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Strixner &amp;amp; Holzinger&lt;br /&gt;
|Straße=Schillerstraße 25-29&lt;br /&gt;
|PLZ=80336 &lt;br /&gt;
|Ort=München&lt;br /&gt;
|Telefon=&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Mo - Fr:   9:30 - 18:00&lt;br /&gt;
|Weblink=http://sh-halbleiter.de/&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Hamburg=&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Electronic 70&lt;br /&gt;
|Straße=Küchgarten 21&lt;br /&gt;
|PLZ=21073&lt;br /&gt;
|Ort=Hamburg &lt;br /&gt;
|Telefon=040 / 77 81 08&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Mo. - Fr.  9.30 - 13.00 Uhr     14.00 - 18.00 Uhr&amp;lt;br&amp;gt;&lt;br /&gt;
Samstag 10.00 - 14.00 Uhr&lt;br /&gt;
|Weblink=http://electronic70.de&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Rheinland-Pfalz=&lt;br /&gt;
==Mainz==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Conrad Elektronik&lt;br /&gt;
|Straße=Binger Str. 14-16 (nähe Hauptbahnhof)&lt;br /&gt;
|PLZ=55122 &lt;br /&gt;
|Ort=Mainz&lt;br /&gt;
|Telefon=0180 5312111&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=&lt;br /&gt;
|Weblink=http://www.conrad.de/&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Elektronik Schmidt&lt;br /&gt;
|Straße=Boppstrasse 62 - 64&lt;br /&gt;
|PLZ=55118 &lt;br /&gt;
|Ort=Mainz&lt;br /&gt;
|Telefon=0180 5312111&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Montag - Freitag 09.00 Uhr - 13.00 Uhr und 14.00 Uhr - 18.00 Uhr&amp;lt;br&amp;gt;&lt;br /&gt;
Samstag 09.00 Uhr - 13.00 Uhr&lt;br /&gt;
|Weblink=http://www.schmidt-electronic.de&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Österreich=&lt;br /&gt;
==Graz== &lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Neuhold Elektronik&lt;br /&gt;
|Straße=Griesplatz 1&lt;br /&gt;
|PLZ=A-8020 &lt;br /&gt;
|Ort=Graz&lt;br /&gt;
|Telefon=+43 (0) 316 711245&lt;br /&gt;
|Fax=+43 (0) 316 717419&lt;br /&gt;
|Öffnungszeiten=Montag bis Freitag von 9.00 - 18.00 Uhr&amp;lt;br&amp;gt;Samstag 9.00-12.30 Uhr&lt;br /&gt;
|Weblink=http://www.neuhold-elektronik.at/&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Salzburg==&lt;br /&gt;
{{ElektronikLieferant&lt;br /&gt;
|Firmenname=Conrad&lt;br /&gt;
|Straße=Alpenstraße 95 - 97&lt;br /&gt;
|PLZ=A-5020  &lt;br /&gt;
|Ort=Salzburg&lt;br /&gt;
|Telefon=050 - 20 40 81 00&lt;br /&gt;
|Fax=&lt;br /&gt;
|Öffnungszeiten=Mo.-Fr. 9.00-19.00 Uhr&amp;lt;br&amp;gt;Sa. 9.00-18.00 Uhr&lt;br /&gt;
|Weblink=http://www.conrad.at/megastores&lt;br /&gt;
|Email=&lt;br /&gt;
|Bemerkung=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Siehe auch =&lt;br /&gt;
* [[Platinenhersteller]]&lt;br /&gt;
* [[Elektronikversender]]&lt;/div&gt;</summary>
		<author><name>Mw1987</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_und_Linux&amp;diff=28926</id>
		<title>AVR und Linux</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_und_Linux&amp;diff=28926"/>
		<updated>2008-07-06T13:30:13Z</updated>

		<summary type="html">&lt;p&gt;Mw1987: /* Konfiguration, Probleme, Erfahrungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Was ist zu beachten, wenn man mit einer Linux-Distribution AVRs programmieren möchte? Hier ist eine offene Liste von verschiedenen Tipps dazu...&lt;br /&gt;
&lt;br /&gt;
==Toolchain beschaffen==&lt;br /&gt;
&lt;br /&gt;
Evtl. sind die benötigten Pakete schon in der Distribution enthalten. Es sollte unbedingt geprüft werden, ob sie aktuell sind, es hat sich einiges geändert.&lt;br /&gt;
&lt;br /&gt;
Alternativ: &lt;br /&gt;
* AVR Cross Development Kit - http://cdk4avr.sourceforge.net/&lt;br /&gt;
* Selbst kompilieren - &lt;br /&gt;
** http://www.nongnu.org/avr-libc/user-manual/install_tools.html&lt;br /&gt;
** http://www.roboternetz.de/wissen/index.php/Avr-gcc_und_avrdude_installieren&lt;br /&gt;
** http://www.linuxfocus.org/Deutsch/November2004/article352.shtml#352lf&lt;br /&gt;
** http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;t=42631&lt;br /&gt;
&lt;br /&gt;
==Editor==&lt;br /&gt;
&lt;br /&gt;
Der Editor sollte das Bearbeiten vom Programm einfach machen. Evtl. nützlich sind Features, um z.B. per Knopfdruck zu kompilieren und das Programm auf den AVR zu übertragen. Ansonsten: Editoren sind Geschmackssache, d.h. ausprobieren.&lt;br /&gt;
&lt;br /&gt;
: gedit [gnome] (kann nicht per TAB die Auswahl einrücken, ein Plugin benutzt T)&lt;br /&gt;
: kate [kde]&lt;br /&gt;
: eclipse [Java]&lt;br /&gt;
&lt;br /&gt;
Es lassen sich aber Programme auch in &#039;fremden&#039; Desktopumgebungen ausführen.&lt;br /&gt;
&lt;br /&gt;
==C-Compiler: avr-gcc==&lt;br /&gt;
&lt;br /&gt;
Macht aus dem C-Code den vom AVR ausführbaren binären Programmcode.&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
* [[AVR-GCC]]&lt;br /&gt;
* [[AVR-GCC-Tutorial]]&lt;br /&gt;
&lt;br /&gt;
==Laufzeitbibliothek: avr-libc==&lt;br /&gt;
&lt;br /&gt;
Enthält Makros und Hardwaredefinitionen wie Registernamen für (die meisten) AVRs. Man muss sich deswegen um die echten Adressen in der Prozessor-Logik nicht mehr selbst kümmern, sondern kann direkt die Namen und Werte aus dem Datenblatt benutzen.&lt;br /&gt;
&lt;br /&gt;
http://www.nongnu.org/avr-libc/user-manual/index.html&lt;br /&gt;
&lt;br /&gt;
==Makefile==&lt;br /&gt;
&lt;br /&gt;
Enthält Informationen zum Kompilieren. Das Programm make startet damit den angegeben Compiler. Im einfachsten Fall muss man also nur &#039;&#039;&#039;make all&#039;&#039;&#039; im entsprechenden Projektverzeichnis aufrufen, der Rest läuft automatisch. Die Datei heisst einfach nur Makefile.&lt;br /&gt;
&lt;br /&gt;
Hier ein Skript, mit dem man die Einstellungen zusammenklicken kann (benötigt aber auch wieder anderes, z.B. TCL/TK, ..): http://www.sax.de/~joerg/mfile/ Dessen Aufruf erfolgt dann z.B. mit &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wish mfile.tcl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über ein Menü kann man dann die Einstellungen zusammenklicken. Das Editieren des Makefiles für Spezialanpassungen lässt sich aktivieren.&lt;br /&gt;
&lt;br /&gt;
Wer sie von Windows kennt und sucht: Die Definition F_CPU der Taktfrequenz ist in der aktuellen Linux-Version nicht vorgesehen. Macht nichts, siehe dazu http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Taktfrequenz&lt;br /&gt;
&lt;br /&gt;
==Programmierprogramm==&lt;br /&gt;
&lt;br /&gt;
Schreibt mit entsprechender Hardware auf den Controller bzw. liest ihn aus.&lt;br /&gt;
&lt;br /&gt;
Mit mfile lässt sich auch im Makefile gleich das Programmierprogramm zur Übertragung auf den Controller festlegen ([[AVRDUDE]], [[uisp]]): http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Programmierger.C3.A4t_einstellen&lt;br /&gt;
&lt;br /&gt;
===Fuses, Lockbits===&lt;br /&gt;
&lt;br /&gt;
Wer bislang Atmels AVR Studio unter Windows zum Programmieren der [[AVR_Fuses]] benutzt hat, kann das z.B. mit [[AVRDUDE]] machen, allerdings über die Shell.&lt;br /&gt;
Wer die Dokumentation sucht, findet sie mit Sicherheit im [http://download.savannah.gnu.org/releases/avrdude/ gepackten Programmpaket]. Ein aktuelles PDF&lt;br /&gt;
&lt;br /&gt;
Z.B. bekommt man als Resultat folgenden Aufrufes den Hexwert der lfuse eines Tiny13 über einen [http://www.mikrocontroller.net/articles/AVR_In_System_Programmer AVR-ISP] mit aktueller Firmware, der an einem USB-Seriell-Wandler angeschlossen ist.&lt;br /&gt;
&lt;br /&gt;
Durch die Option -v ([http://en.wiktionary.org/wiki/verbose verbose]) wird aber noch viel mehr [http://www.mikrocontroller.net/forum/read-1-399733.html?#399834 angezeigt]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
avrdude -p t13 -c avrispv2 -P /dev/ttyUSB0 -v -U lfuse:r:-:i&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das - anstelle von FILENAME leitet die Ausgabe auf &amp;lt;stdout&amp;gt; (Bildschirm) um.&lt;br /&gt;
&lt;br /&gt;
Frontend?&lt;br /&gt;
Shellbefehl, um die Werte binär anzuzeigen?&lt;br /&gt;
&lt;br /&gt;
Eine Anleitung zum Umgang:&lt;br /&gt;
http://www.mikrocontroller.net/forum/read-1-152502.html&lt;br /&gt;
&lt;br /&gt;
Eine 0 steht für eine gesetzte Fuse.&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Bits findet sich im Datenblatt unter &amp;quot;Memory Programming -&amp;gt; Fuse Bytes&amp;quot; (tiny13).&lt;br /&gt;
&lt;br /&gt;
===Program/Burn Flash===&lt;br /&gt;
&lt;br /&gt;
Der Mikrocontroller wird wie beim Kompilieren mithilfe von make und der eingestellten Programmiersoftware mit dem Befehl &#039;&#039;&#039;make program&#039;&#039;&#039; geflasht&lt;br /&gt;
&lt;br /&gt;
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Anwendung&lt;br /&gt;
&lt;br /&gt;
==Konfiguration, Probleme, Erfahrungen==&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&lt;br /&gt;
* Toolchain-Build: http://blog.coldtobi.de/index.php?op=ViewArticle&amp;amp;articleId=21&amp;amp;blogId=1&lt;br /&gt;
&lt;br /&gt;
===Gentoo===&lt;br /&gt;
Gentoo bietet mit dem Shellscript &amp;quot;crossdev&amp;quot; eine einfache automatisierte Möglichkeit die Toolchain zu erstellen. Genauere Versionen von binutils/gcc/libc können via parameter übergeben werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge crossdev&lt;br /&gt;
crossdev –target avr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mandrake===&lt;br /&gt;
&lt;br /&gt;
* Toolchain-Build: http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;t=42631&lt;br /&gt;
* 2007: benötigt &amp;quot;texinfo&amp;quot; Package &lt;br /&gt;
&lt;br /&gt;
===Suse 10===&lt;br /&gt;
&lt;br /&gt;
* Toolchain-Build: http://www.linuxjournal.com/article/7289&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Suse 10.1===&lt;br /&gt;
&lt;br /&gt;
* Toolchain-Build: http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;t=42631&lt;br /&gt;
* 2007: benötigt &amp;quot;texinfo&amp;quot; Package&lt;br /&gt;
&lt;br /&gt;
===Ubuntu 6.06===&lt;br /&gt;
&lt;br /&gt;
* Pakete veraltet; ist bereits als bug gemeldet&lt;br /&gt;
* Toolchain selbst kompilieren:&lt;br /&gt;
** default system path steht in /etc/environment&lt;br /&gt;
** Toolchain-Build: http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;t=42631&lt;br /&gt;
&lt;br /&gt;
===Ubuntu 7.04===&lt;br /&gt;
&lt;br /&gt;
* Toolchain-Build: http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;t=42631&lt;br /&gt;
&lt;br /&gt;
===Ubuntu 8.04===&lt;br /&gt;
* einfach eine universe-Paketquelle von Ubuntu 8.10 (Intrepid Ibex) hinzufügen. Dort gibt es dann aktuelle AVR-Pakete (gcc 4.3, libc 1.6.2 usw.). Anleitung hier: http://packages.ubuntu.com/de/intrepid/i386/gcc-avr/download&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>Mw1987</name></author>
	</entry>
</feed>