<?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=77.198.181.4</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=77.198.181.4"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/77.198.181.4"/>
	<updated>2026-04-10T23:20:35Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Projekt_Netzteiltester&amp;diff=67739</id>
		<title>Projekt Netzteiltester</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Projekt_Netzteiltester&amp;diff=67739"/>
		<updated>2012-08-04T12:46:51Z</updated>

		<summary type="html">&lt;p&gt;77.198.181.4: Änderung 67728 von 87.184.234.211 (Diskussion) wurde rückgängig gemacht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Pstester_img_1.jpg|thumb|Der Netzteiltester in Aktion]]&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Über RS232 vom PC aus frei einstellbare Pulsfolgen, die mit 1kHz Wiederholrate ausgegeben werden&lt;br /&gt;
* Auf Wunsch Speicherung der Folgen-Definition im [[EEPROM]] des Controllers&lt;br /&gt;
* Erzeugung eines Trigger-Impulses für das Oszilloskop (externe Triggerung)&lt;br /&gt;
* Verwendung eines leistungsfähigen HEXFETs von International Rectifier, deshalb sollten Ströme bis 20A kein Problem sein (habe es noch nicht selbst ausprobiert, bei 3A war jedenfalls keine Erwärmung des FETs spürbar)&lt;br /&gt;
* 0.1Ω Keramik-Shuntwiderstand zur Strommessung&lt;br /&gt;
* Platine kleiner als halbe Eurokarte (d.h. kleiner als 80x100mm), trotzdem keine SMD Parts&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[AVR|ATMega8]] mit 16MHz Quarz&lt;br /&gt;
* [[RS-232]] Schnittstelle für die Kommunikation mit PC&lt;br /&gt;
* IRF 1404 HEXFET als Leistungstransistor&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
bisher sind keine Probleme bekannt :-)&lt;br /&gt;
&lt;br /&gt;
== Kontakt und Diskussion ==&lt;br /&gt;
Natürlich freue ich mich auf jeden Kommentar und auf jede Anregung (Flames wandern trotzdem in den Mülleimer :)&lt;br /&gt;
&lt;br /&gt;
In Bälde mehr ...&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Cl|Cl]] 15:36, 14. Mär 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.elektronik-kompendium.de/public/schaerer/pstst1.htm Netzteiltester von Thomas Schaerer] inclusive ausführlicher Erklärung&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;br /&gt;
[[Kategorie:Spannungsversorgung und Energiequellen]]&lt;/div&gt;</summary>
		<author><name>77.198.181.4</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Glitch&amp;diff=65605</id>
		<title>Glitch</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Glitch&amp;diff=65605"/>
		<updated>2012-04-11T16:43:47Z</updated>

		<summary type="html">&lt;p&gt;77.198.181.4: /* Die Grundlagen eines Glitch */ typo&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 || 1&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>77.198.181.4</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=61772</id>
		<title>RS485 IO Board - ModellBahnLichtSteuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=61772"/>
		<updated>2011-11-21T11:26:16Z</updated>

		<summary type="html">&lt;p&gt;77.198.181.4: Änderung 61770 von 2.88.170.5 (Diskussion) wurde rückgängig gemacht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
Von: &#039;&#039;[[Benutzer:Micha68|Micha68]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier stelle ich euch meine Planungen und Baufortschritte zur PC-gesteuerten Modellbahnbeleuchtung vor.&lt;br /&gt;
Die Idee ist, sämtliche Beleuchtungen einzeln steuern zu können. Ich denke, dass damit die Beleuchtung wesentlich realistischer darstellbar ist, als mit ein paar wenigen Schaltern ganze Strassenzüge einzuschalten.&lt;br /&gt;
Dabei soll es die Möglichkeit geben, vordefinierte Abläufe auf den Modulen laufen zu lassen und per PC die komplexe Lichtsteuerung über die Zeit zu machen.&lt;br /&gt;
&lt;br /&gt;
Die Module bieten bisher folgenden Funktionsumfang:&lt;br /&gt;
&lt;br /&gt;
* 24 Ausgänge zum Ansteuern von LEDs und Lämpchen&lt;br /&gt;
* PC-gesteuert per RS485-Bus oder stand-alone&lt;br /&gt;
* Bis zu 255 Module an einem Bus → 6120 Ausgänge!&lt;br /&gt;
* Alle Ausgänge dimmbar&lt;br /&gt;
* Versorgung über ein Zentrales 5V-Netzteil, bei Bedarf kann ein 5V-Regler bestückt werden&lt;br /&gt;
* Die Ausgänge können für den Betrieb mit LEDs mit der Bordinternen 5V-Spannung versorgt werden...&lt;br /&gt;
* ...oder in Blöcken zu je 8 Ausgängen mit externer Spannung versorgt werden (für Lämpchen, Relais..)&lt;br /&gt;
* drei Statusleds zeigen 5V, Datenverkehr und Programmiermodus an&lt;br /&gt;
* 3 Jumper dienen zum Einstellen der Betriebsart (Programmiermodus, Stand-alone und Aktion)&lt;br /&gt;
&lt;br /&gt;
Ich habe zwei Layout-Versionen erstellt. Zum einen mit SMD-Bauteilen. Diese wird bei mir zum Einsatz kommen, da diese Module nur 80×50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80×100mm. Diese wird aber im Moment nicht gepflegt und erst bei Bedarf auf einen Endstand gebracht.&lt;br /&gt;
Die Layouts wurden mit KiCad erstellt.&lt;br /&gt;
Der Preis der SMD-Version bewegt sich für eine Platine um 15€, baut man 25 Platinen kommt man durch Rabatte auf ca. 315€ – macht ca. 12€ pro Platine.&lt;br /&gt;
&lt;br /&gt;
Folgene Befehle sind schon umgesetzt:				&lt;br /&gt;
* Minimale und maximale Helligkeit pro Ausgang einstellen&lt;br /&gt;
* LED An / Aus mit einstellbarer Dimmgeschwindigkeit auf min bzw. max&lt;br /&gt;
* zufälliges Flackern, Geschwindigkeit einstellbar&lt;br /&gt;
* Blinken, Geschwindigkeit einstellbar&lt;br /&gt;
* Wechselblinken von 2 Ausgängen, Geschwindigkeit einstellbar&lt;br /&gt;
* Baustellenblitzer mit 8 Ausgängen, Geschwindigkeit einstellbar&lt;br /&gt;
* Ampelschaltung mit 10 Ausgängen (2× 3-LED Ampel für Verkehr und 2× 2-LED Ampel für Fussgänger), Geschwindigkeit einstellbar&lt;br /&gt;
* Haussteuerung: 4 Leds schalten in einer einstellbaren Zeit zufällig ein, bzw aus, Geschwindigkeit einstellbar&lt;br /&gt;
* Alle 24 Ausgänge Aus / An&lt;br /&gt;
&lt;br /&gt;
Alle Einstellungen lassen sich im EEprom speichern. Somit gibt es die Möglichkeit (über Jumper) das einmal programmierte Modul auch ohne PC laufen zu lassen.&lt;br /&gt;
Ein weiterer Jumper ermöglicht die einfache Programmierung der Adresse: Jumper setzen, einen Befehl senden und die in diesem Befehl enthaltene Moduladresse wird als eigene Adresse übernommen.&lt;br /&gt;
&lt;br /&gt;
Das System bietet pro RS485-Strang die Möglichkeit, bis zu 255 Module (Adresse 1–255) anzusprechen. Die Adresse 0 dient als Broadcast-Adresse an alle Module.&lt;br /&gt;
Hiermit können gleichzeitig alle Ausgänge oder Funktionen Ein- bzw. Ausgeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
Die PC-Software ist noch in der Entwicklung. Hier fehlt mir noch die Idee, wie man eine komplette Anlage übersichtlich darstellen kann.&lt;br /&gt;
&lt;br /&gt;
Das Protokoll auf der seriellen RS485-Schnittstelle ist relativ einfach gehalten:&lt;br /&gt;
&lt;br /&gt;
:{| {{Tabelle}}&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA || Sync-Byte&lt;br /&gt;
|-&lt;br /&gt;
| 0xAA || Sync-Byte&lt;br /&gt;
|-&lt;br /&gt;
| 1–255 || Moduladresse, oder 0 für alle&lt;br /&gt;
|-&lt;br /&gt;
| 1–24 || Nummer des Ausgangs auf dem Modul&lt;br /&gt;
|-&lt;br /&gt;
| 0–x || Befehl&lt;br /&gt;
|-&lt;br /&gt;
| 0–255 || Wert&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
;AVR:&lt;br /&gt;
&lt;br /&gt;
Die AVR-Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&lt;br /&gt;
&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&lt;br /&gt;
&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen. Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an. Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt. Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
&lt;br /&gt;
;PC:&lt;br /&gt;
&lt;br /&gt;
Die PC-Software dient zum Konfigurieren und Steuern der Module. Ich schreibe das Programm mit Realstudio für Linux und Windows.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;2&amp;quot; align=&amp;quot;right&amp;quot;&amp;gt;&lt;br /&gt;
Bild:MoBaLiSt_Module.gif| Module&lt;br /&gt;
Bild:MoBaLiSt_Gruppen.gif| Gruppen&lt;br /&gt;
Bild:MoBaLiSt_Zeit.gif| Zeitsteuerung&lt;br /&gt;
Bild:MoBaLiSt_Hand.gif| Handsteuerung&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Ansicht &amp;quot;Module&amp;quot;: Einstellen der Parameter der einzelnen Module und Ausgänge.&lt;br /&gt;
&lt;br /&gt;
: Dies sind zB die Namen der Module, die Namen der Ausgänge, minimale und maximale Helligkeit, die Zeit zum Dimmen von maximal auf minimal und umgekehrt, die Funktion, zB Blinken etc. Ausserdem können für das gesamte Modul die Konfigurationen eingestellt werden. &#039;&#039;Startmodus&#039;&#039; gibt an, wie das Modul gestartet wird:&lt;br /&gt;
:* 0=Grundkonfig und warten auf PC-Befehle&lt;br /&gt;
:* 1=Start aller Programme wie im EEprom abgelegt.&lt;br /&gt;
&lt;br /&gt;
; Ansicht &amp;quot;Gruppen&amp;quot;: Definition der Ausgangs-Gruppen. Dazu werden den einzelnen Gruppen Ausgänge zugeordnet. Die Ausgänge können in mehreren Gruppen enthalten sein. Die letzte Gruppenschaltung &amp;quot;gewinnt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; Ansicht &amp;quot;Zeitsteuerung&amp;quot;: Den Gruppen Ein- und Ausschaltzeiten zuordnen. Die Uhrzeit kann entweder aus RocRail übernommen oder die interne FastClock benutzt werden.&lt;br /&gt;
&lt;br /&gt;
; Ansicht &amp;quot;Handsteuerung&amp;quot;: Die Gruppen können als Schalter frei auf dem Bildschirm platziert werden (Übersicht Anlage). Von hier aus können Gruppen dann per Hand aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
; Ansicht &amp;quot;DCC&amp;quot;: ist noch in der Entwicklung. Möglich ist im Moment, von Rocrail die MoBa-Zeit zu übernehmen. Ebenso kann der &amp;quot;DCC&amp;quot;-Verkehr mitgehört werden. Dies ermöglicht das Schalten von Guppen &amp;quot;DCC-Abhängig&amp;quot;. Es können auch DCC-Ausgänge angelegt werden, die dann über Gruppen aktiviert werden können (nur RocRail).&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
Genaue Beschreibung folgt, sobald die ersten Platinen bestückt sind.&lt;br /&gt;
&lt;br /&gt;
Die Ausgänge 1-8, 9-16 und 17-24 können jeweils mit max. 500mA belastet werden. Mehr schafft ein ULN2803 nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Bleibt man bei normalen Leuchtdioden kommt man bei 20mA pro LED auf 160mA pro Port, also alles im grünen Bereich.&amp;lt;br&amp;gt;&lt;br /&gt;
Bei normalen Modellbahnbirnchen mit 16V und 30-50mA kommt man auch gerade noch hin. &amp;lt;bR&amp;gt;&lt;br /&gt;
Grössere Lasten sind möglich, aber immer in der Summe max. 500mA pro ULN2803.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bestückungsvarianten: ===&lt;br /&gt;
&lt;br /&gt;
;5V extern oder per 5V-Regler auf der Platine:&lt;br /&gt;
&lt;br /&gt;
[[Bild:5v_zentral.jpg|thumb|left|5V zentral]]&lt;br /&gt;
Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&lt;br /&gt;
&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&lt;br /&gt;
{{Absatz}}&lt;br /&gt;
&lt;br /&gt;
[[Bild:5v_extern.jpg|thumb|left|5V lokal]]&lt;br /&gt;
Hat man keine 5V zur Verfügung, kann die Platine auch mit einem Gleichrichter und einem 5V-Regler bestückt werden. (Bauteile G4, U1, C15, C16 und C17).&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Der Gleichrichter schafft maximal 1,5A. Dies sollte reichen, da die Ausgänge eh nur mit 500mA je Block belastet werden können.&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&lt;br /&gt;
Werden die Treiber maximal belastet, macht es Sinn, alle 4 Gleichrichter zu bestücken und die Versorgungspins P4, P5, P6 und P8 aus einem ausreichend starken Netzteil/Trafo zu versorgen.&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&lt;br /&gt;
{{Absatz}}&lt;br /&gt;
&lt;br /&gt;
;interne 5V oder externe Versorgung für LED 1-8:&lt;br /&gt;
&lt;br /&gt;
[[Bild:port_5v_intern.jpg|thumb|left|LEDs mit 5V]]&lt;br /&gt;
Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&lt;br /&gt;
&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&lt;br /&gt;
Reicht die Spannung von 5V nicht aus - zB beim Betrieb von Lämpchen - können die Ausgänge Blockweise auch extern versorgt werden.&lt;br /&gt;
{{Absatz}}&lt;br /&gt;
&lt;br /&gt;
[[Bild:port_extern.jpg|thumb|left|LEDs extern]]&lt;br /&gt;
Für die Ausgänge 1-8 ist dann der Gleichrichter G1 zu bestücken und der Jumper JP1 in die unteren Position zu setzen.&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&lt;br /&gt;
{{Absatz}}&lt;br /&gt;
&lt;br /&gt;
;interne 5V oder externe Versorgung für LED 9-16:&lt;br /&gt;
&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&lt;br /&gt;
&lt;br /&gt;
;interne 5V oder externe Versorgung für LED 17-24:&lt;br /&gt;
&lt;br /&gt;
Wie oben, jedoch Jumper JP3, Gleichrichter G3 und P6 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Anschluss von LEDs und die Berechnung der Vorwiderstände:&lt;br /&gt;
&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen. Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
; Anschluss von Lämpchen:&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=== RS485-Bus ===&lt;br /&gt;
Der RS485-Bus wird an K1 angeschlossen und kann über K2 zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist auf die Polarität (A und B) zu achten. Ebenso muss die Masse durchgeführt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Baudrate 1.000.000&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*USB&amp;lt;-&amp;gt;RS485-Wandler inkl. galvanischer Trennung: zB http://www.cti-shop.com/epages/15488632.sf/de_DE/?ObjectPath=/Shops/15488632/Products/95031100&lt;br /&gt;
oder&lt;br /&gt;
http://www.hjelmslund.dk/USB485.asp&lt;br /&gt;
*Am letzten Modul den Bus mit 120Ohm (R29) abschliessen!&lt;br /&gt;
*Bis zu 255 Module an einem Bus (bei diesem Transceiver), weitere USB-Wandler und somit weitere 255 Module sind natürlich möglich&lt;br /&gt;
&lt;br /&gt;
===Datenblätter===&lt;br /&gt;
*Atmega16a http://www.atmel.com/dyn/resources/prod_documents/doc8154.pdf&lt;br /&gt;
*ULN2803A http://focus.ti.com/lit/ds/symlink/uln2803a.pdf&lt;br /&gt;
*MC7805BDTG http://www.onsemi.com/pub_link/Collateral/MC7800-D.PDF&lt;br /&gt;
*DF10SCT-ND http://www.fairchildsemi.com/ds/DF/DF005S.pdf&lt;br /&gt;
*MAX3085ECSA+ http://datasheets.maxim-ic.com/en/ds/MAX3080-MAX3089.pdf&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Bilder ==&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_SMD.gif|thumb|SMD-Version]]&lt;br /&gt;
|[[Bild:MoBaLiSt_SMD_shematic.gif|thumb|Schaltbild]]&lt;br /&gt;
|[[Bild:MoBaLiSt_SMD_komplett.gif|thumb|KiCad]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_SMD_top.gif|thumb|Top-Layer]]&lt;br /&gt;
|[[Bild:MoBaLiSt_SMD_bottom.gif|thumb|Bottom-Layer]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:platineV1_top.jpg|thumb|Platine Top (Scan)]]&lt;br /&gt;
|[[Bild:platineV1_bottom.jpg|thumb|Platine Bottom (Scan)]]&lt;br /&gt;
|[[Bild:platineV1_foto.jpg|thumb|Platine Foto]]&lt;br /&gt;
|Die Pads sind vergoldet (ENIG). Leider ist das auf den Scan´s nicht so gut zu erkennen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:bestuckt1.jpg|thumb|]]&lt;br /&gt;
|[[Bild:bestuckt2.jpg|thumb|]]&lt;br /&gt;
|Atmega fehlt noch, weil DigiKey meinte, mir lieber ATXmega128A1 zum Preis der Atmega16A schicken zu müssen... Leider passt das 100-Pin-Monster nicht auf die Platine :)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:scanb_top.jpg|thumb|]]&lt;br /&gt;
|[[Bild:scanb_bottom.jpg|thumb|]]&lt;br /&gt;
|Fertig bestückt und funktioniert :)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5er.jpg|thumb|]]&lt;br /&gt;
|5 Boards für die Softwarentwicklung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_DIP.gif|thumb|DIP-Version]]&lt;br /&gt;
|[[Bild:rs485_test.jpg|thumb|Prototyp]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
* Bauteilliste, Bestellnummern, Preise: [[Media:MoBaLiSt BOM.pdf|Download]] - 10.06.2011&lt;br /&gt;
* SourceCode: [[Media:RS485_AVR.zip|Download]] (AVRStudio-Projekt) - 08.06.2011&lt;br /&gt;
* Befehlsliste: [[Media:rs485_Befehlstabelle.pdf|Download]] - 10.06.2011&lt;br /&gt;
* KiCad Projektdateien Rev 1.1: [[Media:RS485_KiCad_rev1.1.zip|Download]] - 16.06.2011&lt;br /&gt;
* Gerber-Files Rev 1.1: [[Media:485decoder_Rev1.1.zip|Download]] - 16.06.2011&lt;br /&gt;
&lt;br /&gt;
* PC-Programm zur Steuerung / Konfiguration&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Stand der Dinge ==&lt;br /&gt;
* Prototyp läuft&lt;br /&gt;
* Layout erstellt&lt;br /&gt;
* 29.05.2011 - 30 Platinen bestellt (schwarzer Lötstop beidseitig, weisse Beschriftung beidseitig, Lötstop beidseitig, SMD-Pads beidseitig, ENIG - Eine Platine 1.85€, Einrichtung 38.43€, Versand 19.91€ - http://www.pcbcart.com)&lt;br /&gt;
* 06.06.2011 - MAX487 in einen MAX3085 geändert - dadurch 255 Module an einem Bus und BiDiB-tauglich (siehe http://www.bidib.org) !&lt;br /&gt;
* 06.06.2011 - Quarz in 16MHz geändert (höhere Baudraten bei DiDiB)&lt;br /&gt;
* 09.06.2011 - Platinen sind angekommen, Perfekte Qualität&lt;br /&gt;
* 17.06.2011 - Erste Platine gelötet. Erste Tests erfolgreich.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Fehler ==&lt;br /&gt;
* In der ersten Platinenversion sind durch die Änderung von Quarz und RS485-Transceiver die beiden Bestückungsaufdrucke falsch.&lt;br /&gt;
* Der Bestückungsaufdruck (Rahmen) von C13 fehlt, warum weiss ich noch nicht.&lt;br /&gt;
* falsches Footprint für die ULN2803. Reihenanbstand der Pads zu gering. WorkAround: Pins der ULN leicht ans Gehäuse biegen. In Rev 1.1 behoben. (Trottelfehler!)&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* Diskussion zu diesem Projekt: http://www.mikrocontroller.net/topic/216580&lt;br /&gt;
* Im Modellbahnforum: http://www.stummiforum.de/viewtopic.php?f=21&amp;amp;t=61640&lt;br /&gt;
* BiDiB: http://bidib.org&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>77.198.181.4</name></author>
	</entry>
</feed>