<?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=Micha68</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=Micha68"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/Micha68"/>
	<updated>2026-05-18T02:17:50Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Benutzer:Micha68&amp;diff=63470</id>
		<title>Benutzer:Micha68</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Benutzer:Micha68&amp;diff=63470"/>
		<updated>2012-01-21T21:34:03Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Projekte: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projekte: ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DCC-Decoder für Weichen mit Servoantrieb inklusive Lage- und Belegtmelder per S88n&#039;&#039;&#039; (frei nach opendcc.de)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.mikrocontroller.net/articles/Modellbahn_Servodecoder_f%C3%BCr_Weichen_mit_R%C3%BCckmeldung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PC-gesteuerte Modellbahnbeleuchtung&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.mobalist.de&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Equipment: ==&lt;br /&gt;
STK500&amp;lt;br&amp;gt;&lt;br /&gt;
2x Dragon&amp;lt;br&amp;gt;&lt;br /&gt;
Oszi Tektronix 422&amp;lt;br&amp;gt;&lt;br /&gt;
Messgerät&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
KiCad&amp;lt;br&amp;gt;&lt;br /&gt;
AVRStudio&amp;lt;br&amp;gt;&lt;br /&gt;
WinAVR&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=63198</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=63198"/>
		<updated>2012-01-08T16:03:19Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* RS485-Bus */&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;
ACHTUNG! Diese Seite wird nicht weiter gepflegt. Mehr über das Projekt MoBaLiSt gibts hier: http://www.mobalist.de&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 10µF 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 500.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 120Ω (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;
Demovideo 1: http://www.youtube.com/watch?v=7bBNUzgwtRw&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;
weitere News im Forum: http://www.stummiforum.de/viewtopic.php?f=21&amp;amp;t=61640&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=63197</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=63197"/>
		<updated>2012-01-08T15:45:12Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Einleitung */&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;
ACHTUNG! Diese Seite wird nicht weiter gepflegt. Mehr über das Projekt MoBaLiSt gibts hier: http://www.mobalist.de&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 10µF 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 120Ω (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;
Demovideo 1: http://www.youtube.com/watch?v=7bBNUzgwtRw&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;
weitere News im Forum: http://www.stummiforum.de/viewtopic.php?f=21&amp;amp;t=61640&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=62843</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=62843"/>
		<updated>2011-12-29T15:33:08Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bilder */&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 10µF 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 120Ω (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;
Demovideo 1: http://www.youtube.com/watch?v=7bBNUzgwtRw&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=62842</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=62842"/>
		<updated>2011-12-29T15:32:54Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bilder */&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 10µF 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 120Ω (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;
Demovideo 1: http://www.youtube.com/watch?v=7bBNUzgwtRw&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Kicad2.gif&amp;diff=61186</id>
		<title>Datei:Kicad2.gif</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Kicad2.gif&amp;diff=61186"/>
		<updated>2011-10-20T14:54:22Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Kicad1.gif&amp;diff=61128</id>
		<title>Datei:Kicad1.gif</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Kicad1.gif&amp;diff=61128"/>
		<updated>2011-10-18T19:20:19Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Schaltplaneditoren&amp;diff=61126</id>
		<title>Schaltplaneditoren</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Schaltplaneditoren&amp;diff=61126"/>
		<updated>2011-10-18T15:22:35Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Kicad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AACircuit ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AACircuit&#039;&#039;&#039; ist ein Schaltplaneditor mit einer Ausgabe als ASCII-Grafik. Das Programm wurde dafür entwickelt, um mal eben eine Frage oder eine Antwort in &#039;&#039;newsgroups&#039;&#039;, Chats oder Foren zu veranschaulichen, wenn keine Upload-Möglichkeit von Bilddateien da ist. AACircuit gibt es bei http://www.tech-chat.de/&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  .---o----o------o---o---------------o---o----o------------o 12-15V&lt;br /&gt;
  |   |    |  22uF| + |               |   |    |&lt;br /&gt;
 .-.  |   .-.    ###  |              .-.  |    |    .-------o&lt;br /&gt;
 | |&amp;lt;-&#039;   | |    ---  |              | |  |    |    |   .---o&lt;br /&gt;
 | |5k    | |5k6  |   |              | |  |    |    |   |&lt;br /&gt;
 &#039;-&#039;      &#039;-&#039;     |   o--.           &#039;-&#039;  |   _|_   o  /o&lt;br /&gt;
  |        |     ===  |  |            |   |  |_/_|-   /&lt;br /&gt;
 .-.       |     GND  | ---100n   LED V   -    |     /&lt;br /&gt;
 | |       |          | ---           -   ^    |    o&lt;br /&gt;
 | |6k2    |          |  |            |   |    |    |&lt;br /&gt;
 &#039;-&#039;       |          | GND           &#039;---o----o    &#039;-------o&lt;br /&gt;
  |        |       2|\|7                       |&lt;br /&gt;
  o-----------------|-\ LM741      ___       |/&lt;br /&gt;
  |        |        |  &amp;gt;-------o--|___|--o---|&lt;br /&gt;
  |        o---o----|+/ 6      |   22k   |   |&amp;gt;  BC547&lt;br /&gt;
  |        |   |   3|/|4       |         |     |&lt;br /&gt;
 .-.       |   |     ===       o---.    .-.    |&lt;br /&gt;
 | |       |   o---. GND       |   |    | |5k6 |&lt;br /&gt;
 | |2k7   .-.  |   |   ___    _V_  |    | |    |&lt;br /&gt;
 &#039;-&#039;     KTY10 | + &#039;--|___|--|___|-&#039;    &#039;-&#039;    |&lt;br /&gt;
  |       | | ###      47k   220k        |     |&lt;br /&gt;
  |       &#039;-&#039; ---                        |     |&lt;br /&gt;
  |        |   |                         |     |&lt;br /&gt;
  |        |   |                         |     |&lt;br /&gt;
  &#039;--------o---o-------------------------o-----o------------o GND&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAE ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B&#039;&#039;&#039;artels &#039;&#039;&#039;A&#039;&#039;&#039;uto &#039;&#039;&#039;E&#039;&#039;&#039;ngineer unterstützt die Erstellung von Schaltplänen, Leiterplatten und integrierten Schaltungen und läuft unter Windows, Linux und verschiedenen X11-/Unix-Systemen. Der Schaltplaneditor kann Pläne auf beliebig vielen Blättern erstellen, wobei auch hierarchische Strukturen möglich sind. Der Autorouter erzeugt recht brauchbare Ergebnisse, wobei beliebige Teile mit der Hand vorab geroutet werden können. Ein Autoplacer ist ebenfalls vorhanden.&lt;br /&gt;
&lt;br /&gt;
Eine auf Schaltplaneingabe beschränkte Version und eine kastrierte Evaluierungsversion sind auf der [http://www.bartels.de/bae/bae_de.htm BAE Homepage] downloadbar.&lt;br /&gt;
&lt;br /&gt;
Die [http://www.bartels.de/bae/baeprice_de.htm preiswerteste] kostenpflichtige Version ist das &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;BAE Light&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. Diese Version ist auf Leiterplatten der Groesse 180x120 mm² und auf 2 Lagen beschränkt, eine Beschränkung auf eine bestimmte Pinanzahl gibt es aber nicht.&lt;br /&gt;
&lt;br /&gt;
Ansonsten wird eine Economy-, Professional- und Highendversion angeboten, die jeweiligen Eigenschaften sind im Abschnitt [http://www.bartels.de/baedoc/inst_de.htm Bartels AutoEngineer Softwarekonfigurationen] erklärt. Interessant ist z.&amp;amp;nbsp;B. der Bauteilhöhencheck.&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;BAE IC Design&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; dringt man bis in den Bereich der IC-Entwicklung vor.&lt;br /&gt;
&lt;br /&gt;
[[BAE-Tutorial]]&lt;br /&gt;
&lt;br /&gt;
== Basic Schematic == &lt;br /&gt;
&lt;br /&gt;
[[Bild:Base schematic example.png|right|thumb|Screenshot Base Schematic]]&lt;br /&gt;
&lt;br /&gt;
Basic Schematic (&#039;&#039;&#039;BSch3V&#039;&#039;&#039;) ist ein freier Schaltplaneditor für Windows (98/Me/2000/XP). Es enthält einen Component Library Editor, einen Parts List Generator und einen Netlist Generator, sowie eine Automatic Numbering Funktion.&lt;br /&gt;
&lt;br /&gt;
Ein ZIP-Archiv mit engl. Programm, Handbuch und Sourcecode gibt es bei http://www.suigyodo.com/online/e/index.htm.&lt;br /&gt;
&lt;br /&gt;
Ebenso ist dort eine Cross-Plattform Version &#039;&#039;&#039;Qt-BSch3V&#039;&#039;&#039; auf der Basis von Qt-Grafiklibraries erhältlich.&lt;br /&gt;
&lt;br /&gt;
Das Programm ist bis dato (2011) gut gepflegt.&lt;br /&gt;
&lt;br /&gt;
== BlackBoard Breadboard Designer == &lt;br /&gt;
&lt;br /&gt;
[[Bild:BlackBoard.png|right|thumb|Screenshot]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;BlackBoard Breadboard Designer&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; ist ein freier Editor für Lochrasterplatinen Layouts, der das Planen der Bauteilplazierung sowie der beidseitigen Verdrahtung deutlich vereinfacht und sich u.a. auch für die Dokumenation solcher Prototypenaufbauten eignet.&lt;br /&gt;
&lt;br /&gt;
Er läuft auf allen Plattformen für die eine Java Runtime zur Verfügung steht.&lt;br /&gt;
&lt;br /&gt;
Die Homepage von Blackboard ist unter http://blackboard.serverpool.org zu erreichen. Blackboard steht unter Der GPL V2 und wird ständig weiterentwickelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DipTrace ==&lt;br /&gt;
&lt;br /&gt;
Design-Editor für PCB-Leiterplatten für Windows NT, 2000, XP, Server 2003&lt;br /&gt;
- erweiterte Pro-Version erlaubt den Export in DXF, Gerber und N/C Drill sowie Leiterplattenlayouts mit mehr als 250 Pins.&lt;br /&gt;
&lt;br /&gt;
http://www.diptrace.com/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Eagle ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Eagle.png|right|thumb|Screenshot]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Eagle&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; von Cadsoft ist nicht nur ein &amp;lt;b&amp;gt;Schaltplaneditor&amp;lt;/b&amp;gt;, sondern ein komplettes Paket mit &amp;lt;b&amp;gt;Layoutprogramm&amp;lt;/b&amp;gt; und &amp;lt;b&amp;gt;Autorouter&amp;lt;/b&amp;gt;. Das hat den Vorteil, dass man einen erstellten Schaltplan gleich zur Platine weiterverarbeiten kann.&lt;br /&gt;
&lt;br /&gt;
Mitgeliefert werden umfangreiche Symbol- bzw. Bauteilbibliotheken, von Widerständen in allen Bauformen über Taster bis hin zu [[AVR]]s. Eine Library für viele aktuelle AVRs findet sich im Download-Bereich &lt;br /&gt;
von [http://www.embedit.de http://www.embedit.de].&lt;br /&gt;
&lt;br /&gt;
Eagle läuft unter Linux, Windows (2000/XP/Vista/7) und Mac OS X.&lt;br /&gt;
&lt;br /&gt;
Eine für nichtkommerzielle Anwendungen kostenlose Version ist von [http://www.cadsoft.de/ CadSoft] erhältlich. Diese ist auf zweilagige Platinen im halben Euro-Format (80x100mm) sowie Schaltpläne mit nur einer Seite beschränkt.&lt;br /&gt;
&lt;br /&gt;
=== 3D-Ansicht===&lt;br /&gt;
[[Bild:Stereobild-elektronik-3d.jpg|right|thumb|Rot-Grün-Stereo-Bild]]&lt;br /&gt;
Zum Betrachten des fertigen, bestückten Platinenentwurfs in Form eines 3D-Bilds bietet sich das Paket [http://www.matwei.de/doku.php?id=en:eagle3d:eagle3d eagle3D] an. Mit Hilfe eines ULP wird eine Beschreibungsdatei für den open source Renderer &amp;lt;i&amp;gt;POVray&amp;lt;/i&amp;gt; erzeugt, welche dann anschließend halbautomati generiert werden kann. Auch Bewegungsanimation und KAmeraflug ist möglich. Es wird bereits ein große Zahl an Bauteilen unterstützt.&lt;br /&gt;
&lt;br /&gt;
Anwendungshinweise:&lt;br /&gt;
* [[Eagle im Hobbybereich]]&lt;br /&gt;
* [http://gaussmarkov.net/wordpress/category/tools/software/eagle/ Eagle CAD Tutorial] im Blog von gaussmarkov: diy fx (englisch)&lt;br /&gt;
* [[Stereobilder mit EAGLE 3D]]&lt;br /&gt;
&lt;br /&gt;
== FreePCB ==&lt;br /&gt;
&lt;br /&gt;
FreePCB ist ein freier, open-source PCB editor für Microsoft Windows, der unter der GNU General Public License veröffentlicht wurde. Er wurde entwickelt, um ihn einfach erlernen und nutzen zu können und dennoch für professionellesArbeiten geeignet. Er besitzt keinen eingebuten Auto Router, kann jedoch den web-basierten auto router auf www.freerouting.net verwenden.&lt;br /&gt;
&lt;br /&gt;
== Electric ==&lt;br /&gt;
&lt;br /&gt;
Das [http://www.staticfreesoft.com/index.html Electric(TM)] VLSI Design System ist ein Open Source Electronic Design Automation (EDA) System.&lt;br /&gt;
&lt;br /&gt;
== ExpressPCB ==&lt;br /&gt;
&lt;br /&gt;
Die Firma &amp;lt;b&amp;gt;ExpressPCB&amp;lt;/b&amp;gt; bietet den kostenlosen Schaltplaneditor &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;ExpressSCH&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; an. Zusätzlich gibt es das kostenlose Layoutprogramm &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;ExpressPCB&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; zum Erstellen von zwei- und vierlagigen Leiterplatten. Die beiden Programme sind auf Windows (NT, 2000, XP, Vista) beschränkt. Die Firma bietet auf der [http://www.expresspcb.com/ ExpressPCB Homepage] ausserdem einen kommerziellen Service für die Herstellung von zwei- und vierlagigen Leiterplatten an. Auf der Seite finden sich [http://www.expresspcb.com/ExpressPCBHtm/Tips.htm hier] einige Hinweise zum Entwurf von Leiterplatten.&lt;br /&gt;
&lt;br /&gt;
== FidoCadJ ==&lt;br /&gt;
&lt;br /&gt;
[http://davbucci.chez-alice.fr/index.php?argument=elettronica/fidocadj/fidocadj.inc&amp;amp;language=English FidoCadJ] is a very easy to use editor, with a library of electrical symbols and footprints (through hole and SMD). Albeit its ease of use, it is a very immediate and effective EDA tool for the hobbyst. FidoCadJ stores its drawings in a compact text format. This choice is well suited for the copy and paste in newsgroups and forums. This explains the success of FidoCadJ in Usenet groups and in several portals. FidoCadJ is multi-platform Java program and runs on MacOSX, Linux and Windows. FidoCadJ and its manuals are in english, french and italian. Lizenz: Creative Commons 3.0 BY-NC-ND&lt;br /&gt;
&lt;br /&gt;
== Fritzing ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fritzing&#039;&#039;&#039; verwendet die Metapher eines Breadboards (Steckbretts), auf dem die Benutzer virtuell Bauteile einstecken. Fritzings Zielgruppe sind Künstler, Designer und Hobbyisten aber nicht unbedingt Profielektroniker, und die Software soll speziell auf die Zielgruppe zugeschnitten werden. Dabei wird auf eine niedrige Zugangsschwelle wert gelegt. Versionen für Mac OS X, Linux und Windows (XP/Vista) sind bei http://www.fritzing.org/ erhältlich.&lt;br /&gt;
&lt;br /&gt;
== Gschem ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Gschem.png|right|thumb|Screenshot]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;gschem&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; ist der Schaltplaneditor aus dem Open Source Projekt gEDA. &amp;lt;i&amp;gt;gschem&amp;lt;/i&amp;gt; wird hauptsächlich auf Linux Rechnern entwickelt, läuft aber auch auf anderen Unix-Betriebssystemen und unter Windows. &amp;lt;i&amp;gt;gschem&amp;lt;/i&amp;gt; ist für die Linuxdistributionen RedHat und Debian als Paket verfügbar, für Windows ist nur eine ältere Version erhältlich und für alle anderen ist selber kompilieren angesagt.&lt;br /&gt;
&lt;br /&gt;
Die Bedienung ist nicht sonderlich anfängerfreundlich. Hat man sich aber mal daran gewöhnt, dass jeder Menupunkt mit 1 oder 2 Tasten erreichbar ist, läßt sich&#039;s mit &amp;lt;i&amp;gt;gschem&amp;lt;/i&amp;gt; prima arbeiten. &lt;br /&gt;
&lt;br /&gt;
In der Symbolbibliothek (die auch online betrachtet werden kann) sind etwas mehr als 1000 Symbole; das Selbsterzeugen von Symbolen ist jedoch problemlos möglich. Insbesondere ist es aufgrund des gut dokumentierten und einfachen Datei-Formates möglich, mit einfachen Perl-Programmen z.&amp;amp;nbsp;B. aus Reports von Xilinx ISE Symbole zu erzeugen und automatisch zu aktualisieren, wenn sich die Pinzuordnung ändert. Das fehlerhafte Eingeben der Pinbelegung von CPLDs und FPGAs von Hand und die Änderung derselben ist damit für &amp;lt;i&amp;gt;gschem&amp;lt;/i&amp;gt; User Geschichte.&lt;br /&gt;
&lt;br /&gt;
Die Schaltpläne lassen sich als png und als Postscript exportieren. &lt;br /&gt;
&lt;br /&gt;
Netzlisten (insgesamt über 20 Formate für PCB, Protel, Eagle, BAE, spice, pads, ... ) lassen sich mit dem Programm &amp;lt;i&amp;gt;gnetlist&amp;lt;/i&amp;gt; generieren. Aus diesem Grund ist man (bis auf die Namen der Footprints) unabhängig von der verwendeten Layout-Software und kann diese auch sehr leicht wechseln.&lt;br /&gt;
&lt;br /&gt;
Ein großer Vorteil der gEDA-Suite sind die Dateiformate, welche alle reiner ASCII-Text sind. Dies macht die Entwicklung von Helper-Tools zur Lösung von speziellen Aufgaben sehr leicht. Außerdem können die Dateien deswegen sehr einfach in Versionsverwaltungssystemen wie CVS verwaltet werden, was insbesondere die Entwickler größerer Projekte zu schätzen wissen.&lt;br /&gt;
&lt;br /&gt;
Nähere Informationen über &amp;lt;i&amp;gt;gschem&amp;lt;/i&amp;gt; (gEDA) gibt es unter [[http://www.geda.seul.org/ http://www.geda.seul.org/]].&lt;br /&gt;
&lt;br /&gt;
== Inkscape ==&lt;br /&gt;
&lt;br /&gt;
Etwas bekannter noch als Jfig ist [http://inkscape.org/ &#039;&#039;&#039;Inkscape&#039;&#039;&#039;], ebenfalls ein reines Vektorzeichenprogramm, das vor allem (aber nicht nur) SVG-Dateien erstellt, die mit der Wikipedia eine große Verbreitung gefunden haben. Es ist in fast jeder gängigen Linux Distribution enthalten, eine Windowsversion sowie eine [http://portableapps.com/apps/graphics_pictures/inkscape_portable &#039;&#039;&#039;portable Windowsversion&#039;&#039;&#039;] existiert auch. In der Wikipedia findet sich eine Sammlung von Elektroniksymbolen im [http://commons.wikimedia.org/wiki/Category:SVG_electrical_symbols SVG-Format] und [http://commons.wikimedia.org/wiki/File:Electrical_symbols_library.svg hier]. Als Beispiele damit gezeichneter Schaltpläne sei diese [http://commons.wikimedia.org/wiki/Category:Created_with_electrical_symbols_librarySeite] genannt.&lt;br /&gt;
&lt;br /&gt;
== JFig ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Jfig.png|right|thumb|Screenshot]]&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;JFig&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; ist eigentlich ein &amp;quot;ganz normales&amp;quot; Vektorzeichenprogramm. Um Schaltpläne zu zeichnen benötigt man deshalb zusätzliche Symbolbibliotheken. &lt;br /&gt;
&lt;br /&gt;
Die Exportmöglichkeiten für das weitverbreitete fig-Format sind sehr vielfältig: mit dem Zusatzprogramm &amp;lt;i&amp;gt;fig2dev&amp;lt;/i&amp;gt;, das direkt aus dem &amp;lt;i&amp;gt;jfig&amp;lt;/i&amp;gt;-Menü aufgerufen kann, bleiben von Postscript über PNG bis hin zu [[LaTeX]] kaum Wünsche offen. Für kleine Schaltpläne oder Diagramme, die ausgedruckt oder in PDF-Dateien verbreitet werden sollen, gibt es deshalb nichts besseres.&lt;br /&gt;
&lt;br /&gt;
Das Programm ist ein komplett in [http://java.sun.com/ Java] geschriebener 1:1-Klon des [[Linux]]-Programms &amp;lt;i&amp;gt;xfig&amp;lt;/i&amp;gt; und sollte daher mit jedem Betriebssystem von Windows bis Mac OS laufen. Es ist kostenlos auf [http://tams-www.informatik.uni-hamburg.de/applets/jfig/ http://tams-www.informatik.uni-hamburg.de/applets/jfig/] erhältlich. (Leider ist der Download schon geraume Zeit nicht mehr möglich. Zitat von der Seite: &amp;quot;Sorry. Recently, I got two serious bug reports which have now been confirmed, and jfig downloads are suspended until these have been resolved.&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
Die Bedienung wird für Windows-Benutzer am Anfang wohl ziemlich ungewohnt sein, aber wenn man mal das Grundprinzip verstanden, hat findet man sich durch die eindeutig beschrifteten Schaltflächen schnell zurecht.&lt;br /&gt;
&lt;br /&gt;
== Kicad ==&lt;br /&gt;
[[Bild:kicad1.gif|right|thumb|Screenshot]]&lt;br /&gt;
[[Bild:kicad2.gif|right|thumb|Screenshot]]&lt;br /&gt;
&lt;br /&gt;
[[KiCAD]] ([http://www.lis.inpg.fr/realise_au_lis/kicad/ Homepage&amp;amp;Download]) ist ein Paket aus Design / Layout / Routing Programmen. Es basiert auf wxWidgets und ist damit plattformübergreifend. Die Progamme sind unter der GPL veröffentlicht und damit Open Source.&lt;br /&gt;
&lt;br /&gt;
Eine Kicad User-Group findet sich unter http://groups.yahoo.com/group/kicad-users/. Die Anmeldung erfolgt erst, nachdem man vom Besitzer der User-Group freigeschaltet wurde (wie üblich für die meisten Yahoo-Groups).&lt;br /&gt;
&lt;br /&gt;
Neben der mitgelieferten, bereits umfangreichen Bibliothek gibt es auf vielen anderen Seiten (z.&amp;amp;nbsp;B. http://www.kicadlib.org/) weitere Bibliotheken zum Download, die einfach integriert werden können.&lt;br /&gt;
&lt;br /&gt;
Für Umsteiger von anderen Programmen sollten sich nach wenigen Stunden bereits die gleichen Ergebnisse erzielen lassen. Beim Erlernen kann das Tutorial von http://www.curiousinventor.com/guides/kicad helfen.&lt;br /&gt;
&lt;br /&gt;
Kicad liefert eine schöne 3D-Ansicht des fertigen Layouts einschließlich der bestückten Bauteile, so dass man an dieser Stelle schon einmal einen Überblick bekommt, ob vielleicht nicht doch etwas vergessen wurde. Es gibt zwar nicht für alle Bauformen ein 3D-Modell, allerdings lassen sich diese selbst erstellen.&lt;br /&gt;
&lt;br /&gt;
Als Nachteil ließe sich noch aufführen, dass der PCB-Layouter in der Version vom Januar 2006 etwas instabil ist und gerne abstürzt. Die Version vom Mai 2010 läuft aber sehr stabil. Ebenso sind die Autorouterfunktionen nicht gut dokumentiert. Ein weiterer Kritikpunkt wäre, dass die offizielle Symbolbibliothek nur amerikanische, aber keine europäischen Schaltplansymbole enthält.&lt;br /&gt;
&lt;br /&gt;
== Lochmaster ==&lt;br /&gt;
&lt;br /&gt;
[http://www.abacom-online.de/html/lochmaster.html Lochmaster] ist ein Programm zur Erstellung von Layouts speziell auf [[Lochrasterplatine]]n. Schaltplan und Layout sind ein und das selbe.&lt;br /&gt;
&lt;br /&gt;
== PCB ==&lt;br /&gt;
&lt;br /&gt;
[http://pcb.sourceforge.net/index.html PCB] ist ein freies (open source) Layoutprogramm inklusive Autorouter. Zum Zeichnen der Schaltpläne kann [[Schaltplaneditoren#Gschem|Gschem]] verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;PCB&amp;lt;/i&amp;gt; wurde ursprünglich für den Atari ST entwickelt und später nach &lt;br /&gt;
Unix portiert. &amp;lt;i&amp;gt;PCB&amp;lt;/i&amp;gt; läuft meist unter Linux, kann allerdings mit [http://www.cygwin.com/ Cygwin] auch unter Windows betrieben werden.&lt;br /&gt;
&lt;br /&gt;
Als Ausgabeformate stehen [http://de.wikipedia.org/wiki/Postscript Postscript] und Gerber RS-274-X zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Ein großer Vorteil von &amp;lt;i&amp;gt;PCB&amp;lt;/i&amp;gt; ist, dass alle Funktionen auch über &lt;br /&gt;
Hotkeys gesteuert werden können, was insbesondere nach längerer Einarbeitungszeit ein großer Gewinn gegenüber manchen Windows-Programmen ist.&lt;br /&gt;
&lt;br /&gt;
Zur Einarbeitung ist es meines Erachtens sehr wichtig, sich das [http://www.geda.seul.org/wiki/geda:gsch2pcb_tutorial Tutorial] durchzulesen. &amp;lt;i&amp;gt;PCB&amp;lt;/i&amp;gt; und &amp;lt;i&amp;gt;Gschem&amp;lt;/i&amp;gt; sind nicht besonders einfach zu benutzen. Gerade am Anfang, wenn man sich versucht damit einzuarbeiten. Aber wenn man einmal mit dem Werkzeug arbeiten kann, wird man es nicht mehr missen wollen.&lt;br /&gt;
&lt;br /&gt;
=== Wichtige Einstellungen &amp;amp; Tips ===&lt;br /&gt;
&lt;br /&gt;
Die neue GTK+ Version aus dem CVS Archiv ist der alten, etwas angestaubten Version vorzuziehen. Auch das Kompilieren ist nicht wirklich schwierig. Alles, was dazu notwendig ist (und das Programm hat keine großen Abhängigkeiten), ist in der Readme erklärt. Somit fällt die Kompilierung recht einfach aus.&lt;br /&gt;
&lt;br /&gt;
Auf der linken Seite befindet sich die Auswahl der jeweiligen Layer. Gerade bei Verwendung des Autorouters sollte man hier den 2. Layer deaktivieren. Dies kann ganz einfach mit einem Klick auf die Beschriftung erfolgen (component, GND-comp und VCC-comp). Ebenso sollte man unused (grün) und unused (blau) deaktivieren.&lt;br /&gt;
&lt;br /&gt;
Als Route Style verwende ich den &#039;&#039;Power Style&#039;&#039; mit einer Dicke von 25 Mil (0.6 mm). Der &#039;&#039;Signal Style&#039;&#039; scheint mir gerade bei schlechten Belichtungsverhältnissen nicht ganz optimal zu sein.&lt;br /&gt;
&lt;br /&gt;
=== Autorouter ===&lt;br /&gt;
&lt;br /&gt;
Der Autorouter von &amp;lt;i&amp;gt;PCB&amp;lt;/i&amp;gt; hat einige Schwächen, welche allerdings bei Hobby-Projekten völlig belanglos sind: Beispielsweise kann es bei TQFP-Gehäusen mit 100 Pins u. 0.5mm Pinabstand zu Problemen kommen, 64polige TQFP-Gehäuse (z.&amp;amp;nbsp;B. vom ATmega 128) gehen jedoch ohne Probleme. &lt;br /&gt;
&lt;br /&gt;
Hat man sich soweit im [http://www.geda.seul.org/wiki/geda:gsch2pcb_tutorial Tutorial] durchgearbeitet und seine Bauteile positioniert, kann der Autorouter zum Einsatz kommen. Auch hier ist ein wenig Experimentierfreude erforderlich, um zu zufriedenstellenden Ergebnissen zu kommen.&lt;br /&gt;
&lt;br /&gt;
Unter &#039;&#039;&#039;Connects / Optimize routed Tracks / Miter&#039;&#039;&#039; können die gerouteten Linien in 45 Grad Winkel modifiziert werden.&lt;br /&gt;
&lt;br /&gt;
=== Footprints ===&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pcbgtk.png|right|thumb|Screenshot]]&lt;br /&gt;
&lt;br /&gt;
Sehr wichtig für das Zusammenspiel zwischen dem Schaltplaneditor [http://www.geda.seul.org/tools/gschem/ Gschem] und dem [http://pcb.sourceforge.net PCB] ist die Verwendung der richtigen Footprints.&lt;br /&gt;
&lt;br /&gt;
Mir persönlich ist aufgefallen, daß viele Pads zu klein sind. Gerade im Bereich der Hobbyätzerei könnten sie ruhig größer ausfallen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Element&amp;lt;/th&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Footprint&amp;lt;/th&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Alternativer Footprint&amp;lt;/th&amp;gt;&lt;br /&gt;
   &amp;lt;th&amp;gt;Beschreibung&amp;lt;/th&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;Widerstand 1/4 Watt&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;R0w4&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;R025&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;Ich benutze R0w4, weil es die Pads größer sind.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;Elko&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;CR200&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;RADIAL_CAN 200&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;CR200 ist für größere Elkos (Umfang), während bei RADIAL_CAN 200 der Umfang kleiner ist. Leider fehlt die Polarität bei diesem Symbol.  Allgemein jedoch sind bei beiden Elementen die Pads zu klein.&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pcb_widerstand.png]]&lt;br /&gt;
&lt;br /&gt;
Mir waren irgendwie alle Widerstände nicht ideal genug.&lt;br /&gt;
Die Löcher werden ja meist mit 0.8mm gebohrt: (0.8 mm * (1 mil/ 0.0254 mm) = 31 mil. Eine Richtlinie für den gesamten Paddurchmesser habe ich nicht gefunden. Aus einer Elektor Platine habe ich mit Meßschieber ungefähr 2 mm gemessen, also 78 mil.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Element[&amp;quot;&amp;quot; &amp;quot;R__0w4_10.16mm&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; 0 0 0 -10300 0 100 &amp;quot;&amp;quot;]&lt;br /&gt;
(&lt;br /&gt;
    Pin[0 0 7800 3100 6100 3500 &amp;quot;&amp;quot; &amp;quot;1&amp;quot; &amp;quot;edge2&amp;quot;]&lt;br /&gt;
    Pin[40000 0 7800 3100 6100 3500 &amp;quot;&amp;quot; &amp;quot;2&amp;quot; &amp;quot;edge2&amp;quot;]&lt;br /&gt;
    ElementLine [7900 0 4400 0 1000]&lt;br /&gt;
    ElementLine [32000 0 35500 0 1000]&lt;br /&gt;
    ElementLine [7900 -3300 7900 3300 1000]&lt;br /&gt;
    ElementLine [32000 -3300 32000 3300 1000]&lt;br /&gt;
    ElementLine [7900 -3300 32000 -3300 1000]&lt;br /&gt;
    ElementLine [7900 3300 32000 3300 1000]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Kapazitäten mit einer Breite von 2.54 mm oder 5.08 mm nutze ich folgendes Element&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Element[&amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; 65000 78500 0 0 0 100 &amp;quot;&amp;quot;]&lt;br /&gt;
(&lt;br /&gt;
    Pin[2000 -2500 7000 3000 4200 2000 &amp;quot;&amp;quot; &amp;quot;cap_2&amp;quot; &amp;quot;edge2&amp;quot;]&lt;br /&gt;
    Pin[-8000 -2500 7000 3000 4200 2000 &amp;quot;&amp;quot; &amp;quot;cap_1&amp;quot; &amp;quot;edge2&amp;quot;]&lt;br /&gt;
    Pin[-18000 -2500 7000 3000 4200 2000 &amp;quot;&amp;quot; &amp;quot;cap_1&amp;quot; &amp;quot;edge2&amp;quot;]&lt;br /&gt;
    Pad[-16000 -2500 -10000 -2500 1000 2000 3000 &amp;quot;&amp;quot; &amp;quot;1&amp;quot; &amp;quot;&amp;quot;]&lt;br /&gt;
    ElementLine [-4000 -6500 -4000 2500 1399]&lt;br /&gt;
    ElementLine [-2000 -6500 -2000 2500 1399]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Breite von 5.08 mm oder 7.62 mm nutze ich folgendes Element:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Element[&amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; &amp;quot;&amp;quot; 63000 93500 0 0 0 100 &amp;quot;&amp;quot;]&lt;br /&gt;
(&lt;br /&gt;
    Pin[14000 -4500 7000 3000 4200 2000 &amp;quot;&amp;quot; &amp;quot;cap_2&amp;quot; &amp;quot;edge2&amp;quot;]&lt;br /&gt;
    Pin[4000 -4500 7000 3000 4200 2000 &amp;quot;&amp;quot; &amp;quot;cap_2&amp;quot; &amp;quot;edge2&amp;quot;]&lt;br /&gt;
    Pin[-16000 -4500 7000 3000 4200 2000 &amp;quot;&amp;quot; &amp;quot;cap_1&amp;quot; &amp;quot;edge2&amp;quot;]&lt;br /&gt;
    Pad[5500 -4500 12500 -4500 1000 2000 3000 &amp;quot;&amp;quot; &amp;quot;1&amp;quot; &amp;quot;edge2&amp;quot;]&lt;br /&gt;
    ElementLine [-7500 -8500 -7500 500 1399]&lt;br /&gt;
    ElementLine [-5500 -8500 -5500 500 1399]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ProtoCAD ==&lt;br /&gt;
&lt;br /&gt;
[http://protomind.net/page.php?7 ProtoCAD] ist ein Werkzeug, um schnell Schaltpläne zu entwerfen. Es ist für [[Lochrasterplatine]]n entwickelt worden, kann aber auch für andere Methoden genutzt werden. (Java 1.5 kompatibel, Swing GUI, Open Source)&lt;br /&gt;
&lt;br /&gt;
== QCAD ==&lt;br /&gt;
&lt;br /&gt;
[http://www.ribbonsoft.de/qcad.html QCAD] gibt es in einer lizenzpflichigen und in einer Open Source Community Version. QCAD ist kein ausschliesslicher Schaltungseditor, sondern kann auch für andere 2D Zeichnungen (Konstruktionen etc.) eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== sPlan ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sPlan&#039;&#039;&#039; ist ein relativ preiswerter Schaltplaneditor für Windows (95,98,ME,NT,2000,XP)&lt;br /&gt;
Infos und eine Demoversion von sPlan gibt es u.a. bei http://www.abacom-online.de/html/splan.html&lt;br /&gt;
&lt;br /&gt;
== TARGET 3001! == &lt;br /&gt;
&lt;br /&gt;
[[Bild:target3001.png|right|thumb|Screenshot]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;TARGET 3001!&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; für Windows (ME/NT4/2000/XP/Vista/Win7) bietet folgende Funktionen&lt;br /&gt;
&lt;br /&gt;
* Schaltplan&lt;br /&gt;
* Bauteilerstellung &lt;br /&gt;
* Schaltungssimulation (PSPICE-Syntax)&lt;br /&gt;
* Platinen-Layout mit Autoplatzierer&lt;br /&gt;
* Autorouter &lt;br /&gt;
* Anzeige der Platine in 3D&lt;br /&gt;
* Frontplattenentwurf direkt an oder über der Platine&lt;br /&gt;
&lt;br /&gt;
Die Platinen-Layout-Software ist in deutscher, englischer oder französischer Sprache. Es gibt eine für nicht kommerzielle Anwendungen kostenlose Version: &amp;lt;b&amp;gt;TARGET 3001! discover&amp;lt;/b&amp;gt; ist beschränkt auf 250 Pins/Pads, 2 Kupferlagen&lt;br /&gt;
und 30 Signale sind simulierbar, die Fläche ist unbeschränkt (1,2m x 1,2m).&lt;br /&gt;
&lt;br /&gt;
Auf der c&#039;t 11/07 CD ist eine &amp;lt;b&amp;gt;SE Version&amp;lt;/b&amp;gt; von TARGET 3001! verfügbar welche 400 Pins/Pads verarbeiten kann. &lt;br /&gt;
&lt;br /&gt;
Die &amp;lt;b&amp;gt;PCB-Pool Edition&amp;lt;/b&amp;gt; hat keine Beschränkungen, speichert aber die Layouts in einem von normalen Target Versionen nicht lesbaren Format. Diese Layouts können dann allerdings nur zum selbst Ätzen ausgedruckt werden oder vom PCB-POOL® produziert werden.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://server.ibfriedrich.com/wiki/ibfwikide Target3001 Homepage]&lt;br /&gt;
* [http://www.pcb-pool.com/ppde/service_downloads.html Target3001 PCB-Pool-Edition]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;TARGET 3001!&amp;lt;/i&amp;gt; bietet ein typisches Windows Look-And-Feel. Eine einfache Einführung findet sich &#039;&#039;&#039;[http://server.ibfriedrich.com/wiki/ibfwikide/index.php?title=Kurzeinführung2 hier]&#039;&#039;&#039;. Wer sich schon mit Eagle auskennt, kann auch &#039;&#039;&#039;[http://server.ibfriedrich.com/wiki/ibfwikide/index.php?title=Eagle hier]&#039;&#039;&#039; schauen. Es gibt kostenlosen direkten Service durch den Hersteller telefonisch oder per E-Mail auch für Einsteiger oder Demo-User.&lt;br /&gt;
&lt;br /&gt;
== TinyCAD ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TinyCAD&#039;&#039;&#039; ist ein weiterer &#039;&#039;Open Source&#039;&#039; Schaltplaneditor für Windows. Mehr Infos gibt es auf der [http://tinycad.sourceforge.net Projektseite]. TinyCAD kann z.&amp;amp;nbsp;B. mit VeeCAD (s.u.) kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
== VeeCAD ==&lt;br /&gt;
&lt;br /&gt;
[http://veecad.com/ VeeCAD] Stripboard Layout Editor ist ein Werkzeug, um [[Lochrasterplatine]]n zu entwerfen. VeeCAD ist als kommerzielle Version und als eingeschränkte Freiversion erhältlich.&lt;br /&gt;
&lt;br /&gt;
== ZenitPCB Suite ==&lt;br /&gt;
&lt;br /&gt;
[http://www.zenitpcb.com/eng/Index_Eng.html ZenitPCB Suite] is directed to all those people who want to make printed circuit board for hobby, or to student and academics from universities or high schools, who want to create their own pcb with a professional approach and particularly without having to pay for expensive licenses. ZenitPCB Layout (part of the ZenitPCB Suite) is completely freeware for personal or semi-professional use, limited to [http://www.zenitpcb.com/images/MainBoard_01_01.gif 800 pins]. (Windows XP, Vista)&lt;br /&gt;
&lt;br /&gt;
Übersetzung: ZenitPCB richtet sich an all diejenigen, welche fürs Hobby, Schule, Studium etc professionelle PCBs erstellen möchten, ohne viel Geld für Lizenzen ausgeben zu müssen. ZenitPCb ist in der eingeschränkten Version mit 800 Pins für den semi-professionellen und privaten Gebrauch kostenfrei benutzbar.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[Schaltungssimulation]]&lt;br /&gt;
* [[Dos and don&#039;ts - Platinenlayout]]&lt;br /&gt;
* [[Lochrasterplatine]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Platinen]]&lt;br /&gt;
[[Kategorie:Schaltplaneditoren| ]]&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=59046</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=59046"/>
		<updated>2011-07-29T22:29:11Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Software */&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Benutzer:Micha68&amp;diff=58976</id>
		<title>Benutzer:Micha68</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Benutzer:Micha68&amp;diff=58976"/>
		<updated>2011-07-25T18:23:14Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Equipment: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projekte: ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DCC-Decoder für Weichen mit Servoantrieb inklusive Lage- und Belegtmelder per S88n&#039;&#039;&#039; (frei nach opendcc.de)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.mikrocontroller.net/articles/Modellbahn_Servodecoder_f%C3%BCr_Weichen_mit_R%C3%BCckmeldung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PC-gesteuerte Modellbahnbeleuchtung&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.mikrocontroller.net/articles/RS485_IO_Board_-_ModellBahnLichtSteuerung&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Equipment: ==&lt;br /&gt;
STK500&amp;lt;br&amp;gt;&lt;br /&gt;
2x Dragon&amp;lt;br&amp;gt;&lt;br /&gt;
Oszi Tektronix 422&amp;lt;br&amp;gt;&lt;br /&gt;
Messgerät&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
KiCad&amp;lt;br&amp;gt;&lt;br /&gt;
AVRStudio&amp;lt;br&amp;gt;&lt;br /&gt;
WinAVR&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58961</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=58961"/>
		<updated>2011-07-25T13:22:18Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
*AVR&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
&lt;br /&gt;
*PC&lt;br /&gt;
Die PC-Software dient zum Konfigurieren und Steuern der Module. Ich schreibe das Programm mit Realstudio für Linux und Windows.&amp;lt;br&amp;gt;&amp;lt;bR&amp;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_Module.gif|thumb|200px|Module]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Gruppen.gif|thumb|200px|Gruppen]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Zeit.gif|thumb|200px|Zeitsteuerung]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Hand.gif|thumb|200px|Handsteuerung]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Module&#039;&#039;&#039;&amp;quot; werden die Parameter der einzelnen Module und Ausgänge eingestellt.&amp;lt;br&amp;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,&amp;lt;br&amp;gt;&lt;br /&gt;
die Funktion, zB Blinken etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Ausserdem können für das gesamte Modul die Konfigurationen eingestellt werden:&amp;lt;br&amp;gt;&lt;br /&gt;
-Startmodus: gibt an, wie das Modul gestartet wird: 0=Grundkonfig und warten auf PC-Befehle, 1=Start aller Programme wie im EEprom abgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Gruppen&#039;&#039;&#039;&amp;quot; werden die Ausgangs-Gruppen definiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu werden den einzelnen Gruppen einzelne Ausgänge zugeordnet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ausgänge können in mehreren Gruppen enthalten sein. Die letzte Gruppenschaltung &amp;quot;gewinnt&amp;quot;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Zeitsteuerung&#039;&#039;&#039;&amp;quot; können den Gruppen Ein- und Ausschaltzeiten zugeordnet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Uhrzeit kann entweder aus RocRail übernommen oder die interne FastClock benutzt werden.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Handsteuerung&#039;&#039;&#039;&amp;quot; können die Gruppen als Schalter frei auf dem Bildschirm platziert werden (Übersicht Anlage).&amp;lt;br&amp;gt;&lt;br /&gt;
Von hier aus können Gruppen dann per Hand aktiviert werden.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Ansicht &amp;quot;&#039;&#039;&#039;DCC&#039;&#039;&#039;&amp;quot; ist noch in der Entwicklung. Möglich ist im Moment, von Rocrail die MoBa-Zeit zu übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
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;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58957</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=58957"/>
		<updated>2011-07-25T12:29:27Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
*AVR&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
&lt;br /&gt;
*PC&lt;br /&gt;
Die PC-Software dient zum Konfigurieren und Steuern der Module. Ich schreibe das Programm mit Realstudio für Linux und Windows.&amp;lt;br&amp;gt;&amp;lt;bR&amp;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_Module.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Gruppen.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Zeit.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Hand.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Module&#039;&#039;&#039;&amp;quot; werden die Parameter der einzelnen Module und Ausgänge eingestellt.&amp;lt;br&amp;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,&amp;lt;br&amp;gt;&lt;br /&gt;
die Funktion, zB Blinken etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Ausserdem können für das gesamte Modul die Konfigurationen eingestellt werden:&amp;lt;br&amp;gt;&lt;br /&gt;
-Startmodus: gibt an, wie das Modul gestartet wird: 0=Grundkonfig und warten auf PC-Befehle, 1=Start aller Programme wie im EEprom abgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Gruppen&#039;&#039;&#039;&amp;quot; werden die Ausgangs-Gruppen definiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu werden den einzelnen Gruppen einzelne Ausgänge zugeordnet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ausgänge können in mehreren Gruppen enthalten sein. Die letzte Gruppenschaltung &amp;quot;gewinnt&amp;quot;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Zeitsteuerung&#039;&#039;&#039;&amp;quot; können den Gruppen Ein- und Ausschaltzeiten zugeordnet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Uhrzeit kann entweder aus RocRail übernommen oder die interne FastClock benutzt werden.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Handsteuerung&#039;&#039;&#039;&amp;quot; können die Gruppen als Schalter frei auf dem Bildschirm platziert werden (Übersicht Anlage).&amp;lt;br&amp;gt;&lt;br /&gt;
Von hier aus können Gruppen dann per Hand aktiviert werden.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Ansicht &amp;quot;&#039;&#039;&#039;DCC&#039;&#039;&#039;&amp;quot; ist noch in der Entwicklung. Möglich ist im Moment, von Rocrail die MoBa-Zeit zu übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
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;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58952</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=58952"/>
		<updated>2011-07-25T10:03:14Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
*AVR&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
&lt;br /&gt;
*PC&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_Module.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Gruppen.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Zeit.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Hand.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Module&#039;&#039;&#039;&amp;quot; werden die Parameter der einzelnen Module und Ausgänge eingestellt.&amp;lt;br&amp;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,&amp;lt;br&amp;gt;&lt;br /&gt;
die Funktion, zB Blinken etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Ausserdem können für das gesamte Modul die Konfigurationen eingestellt werden:&amp;lt;br&amp;gt;&lt;br /&gt;
-Startmodus: gibt an, wie das Modul gestartet wird: 0=Grundkonfig und warten auf PC-Befehle, 1=Start aller Programme wie im EEprom abgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Gruppen&#039;&#039;&#039;&amp;quot; werden die Ausgangs-Gruppen definiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu werden den einzelnen Gruppen einzelne Ausgänge zugeordnet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ausgänge können in mehreren Gruppen enthalten sein. Die letzte Gruppenschaltung &amp;quot;gewinnt&amp;quot;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Zeitsteuerung&#039;&#039;&#039;&amp;quot; können den Gruppen Ein- und Ausschaltzeiten zugeordnet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Uhrzeit kann entweder aus RocRail übernommen oder die interne FastClock benutzt werden.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Handsteuerung&#039;&#039;&#039;&amp;quot; können die Gruppen als Schalter frei auf dem Bildschirm platziert werden (Übersicht Anlage).&amp;lt;br&amp;gt;&lt;br /&gt;
Von hier aus können Gruppen dann per Hand aktiviert werden.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Ansicht &amp;quot;&#039;&#039;&#039;DCC&#039;&#039;&#039;&amp;quot; ist noch in der Entwicklung. Möglich ist im Moment, von Rocrail die MoBa-Zeit zu übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
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;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58951</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=58951"/>
		<updated>2011-07-25T10:00:34Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
*AVR&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
&lt;br /&gt;
*PC&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_Module.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Gruppen.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Zeit.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Hand.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Module&#039;&#039;&#039;&amp;quot; werden die Parameter der einzelnen Module und Ausgänge eingestellt.&amp;lt;br&amp;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,&amp;lt;br&amp;gt;&lt;br /&gt;
die Funktion, zB Blinken etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Ausserdem können für das gesamte Modul die Konfigurationen eingestellt werden:&amp;lt;br&amp;gt;&lt;br /&gt;
-Startmodus: gibt an, wie das Modul gestartet wird: 0=Grundkonfig und warten auf PC-Befehle, 1=Start aller Programme wie im EEprom abgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Module&#039;&#039;&#039;&amp;quot; werden die Gruppen definiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu werden den einzelnen Gruppen einzelne Ausgäöngezugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Zeitsteuerung&#039;&#039;&#039;&amp;quot; können den Gruppen Ein- und Ausschaltzeiten zugeordnet werden.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;&#039;&#039;&#039;Handsteuerung&#039;&#039;&#039;&amp;quot; können die Gruppen als Schalter frei auf dem Bildschirm platziert werden (Übersicht Anlage).&amp;lt;br&amp;gt;&lt;br /&gt;
Von hier aus können Gruppen dann per Hand aktiviert werden.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Ansicht &amp;quot;&#039;&#039;&#039;DCC&#039;&#039;&#039;&amp;quot; ist noch in der Entwicklung. Möglich ist im Moment, von Rocrail die MoBa-Zeit zu übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
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;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58950</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=58950"/>
		<updated>2011-07-25T09:53:58Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
*AVR&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
&lt;br /&gt;
*PC&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_Module.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Gruppen.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Zeit.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Hand.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In der Ansicht &amp;quot;Module&amp;quot; werden die Parameter der einzelnen Ausgänge eingestellt.&amp;lt;br&amp;gt;&lt;br /&gt;
Dies sind zB die minimale und maximale Helligkeit, die Zeit zum dimmen von maximal auf minimal und umgekehrt,&amp;lt;br&amp;gt;&lt;br /&gt;
die Funktion, zB Blinken etc.&lt;br /&gt;
Ausserdem können für das gesamte Modul die Konfigurationen eingestellt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
-Startmodus: gibt an, wie das Modul gestartet wird: 0=Grundkonfig und warten auf PC-Befehle, 1=Start aller Programme wie im EEprom abgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:MoBaLiSt_Hand.gif&amp;diff=58949</id>
		<title>Datei:MoBaLiSt Hand.gif</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:MoBaLiSt_Hand.gif&amp;diff=58949"/>
		<updated>2011-07-25T09:49:06Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:MoBaLiSt_Zeit.gif&amp;diff=58948</id>
		<title>Datei:MoBaLiSt Zeit.gif</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:MoBaLiSt_Zeit.gif&amp;diff=58948"/>
		<updated>2011-07-25T09:48:54Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:MoBaLiSt_Gruppen.gif&amp;diff=58947</id>
		<title>Datei:MoBaLiSt Gruppen.gif</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:MoBaLiSt_Gruppen.gif&amp;diff=58947"/>
		<updated>2011-07-25T09:48:45Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:MoBaLiSt_Module.gif&amp;diff=58946</id>
		<title>Datei:MoBaLiSt Module.gif</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:MoBaLiSt_Module.gif&amp;diff=58946"/>
		<updated>2011-07-25T09:48:29Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58945</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=58945"/>
		<updated>2011-07-25T09:47:37Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
*AVR&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
&lt;br /&gt;
*PC&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_Module.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Gruppen.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Zeit.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|[[Bild:MoBaLiSt_Hand.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58944</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=58944"/>
		<updated>2011-07-25T09:46:19Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=KiCad&amp;diff=58300</id>
		<title>KiCad</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=KiCad&amp;diff=58300"/>
		<updated>2011-07-03T17:28:15Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Import */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;KiCAD&#039;&#039;&#039; ist ein Open Source [[Schaltplaneditoren|Schaltplaneditor]] und PCB Layoutprogramm für Windows, Linux, Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Diese Seite ist zunächst eine Zusammenfassung aus den KiCAD Beiträgen im Forum. Und gleich zu Anfang ein grosses DANKE an alle KiCAD-User aus dem Forum. Ihr seid zu viele, um jeden einzeln zu nennen. Aber wer sich diese Seite durchliest und den Links folgt, wird euch kennenlernen.  &lt;br /&gt;
&lt;br /&gt;
Hier sollen alte und neue KiCAD-Anwender einen Anlaufpunkt finden und neue, insbesondere µC-relevante Aktivitäten stattfinden. &lt;br /&gt;
&lt;br /&gt;
Diese Seite will keine Konkurrenz zum offiziellen KiCAD Wiki sein, d.h. was dort steht soll hier nicht wiederholt werden und was hier steht wird hoffentlich zum offiziellen KiCAD Wiki wandern.&lt;br /&gt;
&lt;br /&gt;
Wenn ihr Kritik oder Fragen zu KiCAD habt, dann nutzt das Forum! Sobald KiCAD im Betreff steht, wird der Beitrag gelesen und nach Möglichkeit beantwortet. Auch Ideen zu dieser Seite sind sehr willkommen! &lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch die offizielle FAQ: http://kicad.sourceforge.net/wiki/index.php/FAQ&lt;br /&gt;
&lt;br /&gt;
TODO: Strukturierung (Allg., Schaltplan, Netlists, Module, Bibliotheken, Layout, Export, 3D)&lt;br /&gt;
&lt;br /&gt;
=== Allgemein ===&lt;br /&gt;
* Warum gefällt dir KiCAD?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/70905#584639&lt;br /&gt;
** http://www.mikrocontroller.net/topic/81396#680502&lt;br /&gt;
** http://www.mikrocontroller.net/topic/83311#697917&lt;br /&gt;
** http://www.mikrocontroller.net/topic/42614#321502&lt;br /&gt;
* Warum gefällt dir KiCAD nicht?&lt;br /&gt;
** Ich verstehe nicht, was du meinst ;-)&lt;br /&gt;
** http://www.mikrocontroller.net/topic/81396#680502&lt;br /&gt;
** http://www.mikrocontroller.net/topic/83311#697969&lt;br /&gt;
** Debian Lenny user können zur Zeit als aktuelleste Version nur die vom 05 Mai 2010 auf einfachem Wege nutzen. Grund: Dafür existiert ein gut funktionierendes Ubuntu 8.10 binary. Für aktuellere Versionen existiert kein direkt auf Debian lauffähiges Binary. Aus den Quellen compilieren ist auch nur den versiertesten möglich, weil die aktuellen Sourcen auf Launchpad liegen, dort über Bazaar (bzr) abzurufen sind, und Launchpad nicht das 1.5 bzr akzeptiert, das als Debian Package vorliegt. Es existiert zwar ein ausreichend aktueller Backport für Debian Lenny, aber der führt zu Packetkollisionen. Im Krieg Debian/Ubuntu steht KiCAD also auf Ubuntu Seite.&lt;br /&gt;
***Anmerkung: Mit Squeeze(testing) funktioniert KiCAD einwandfrei, Lenny ist mittlerweile zwei Jahre alt.&lt;br /&gt;
* Wo gibt es weitere Infos zu KiCAD?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/98034#848661&lt;br /&gt;
* Welche Leiterplattenfertiger akzeptieren KiCAD Layouts?&lt;br /&gt;
** http://www.pcb-pool.de KiCAD kann &amp;quot;Extended&amp;quot; Gerber RS-247-X erzeugen. Das wird von PCB-Pool aktzeptiert. Dabei http://www.pcb-pool.com/download/spezifikation/deu_cmso020_ext_gerber.pdf beachten! Alternativ, wer KiCAD (noch) nicht traut, diese RS-247-X in deren (PCB-Pools) Tool GC-Prevue  http://www.mikrocontroller.net/topic/120373#1092375 einlesen und als .GWK exportieren.&lt;br /&gt;
** http://fischer-leiterplatten.de Ohne Aufpreis für Gerber-Import  &lt;br /&gt;
* Wie geht man mit KiCAD-Trollen um?&lt;br /&gt;
** Mit gesundem Menschenverstand. Trollregeln wie die US AIR FORCE (http://blog.wired.com/defense/2009/01/usaf-blog-respo.html) brauchen wir nicht ;-)&lt;br /&gt;
* Wie kriege ich raus, welche Leiterbahn welchen Netznamen hat, bzw. ich habe den Überblick verloren und weiss nicht mehr, was aus dem Layout nun was im Schaltplan ist?&lt;br /&gt;
**http://www.mikrocontroller.net/topic/218922#2211644&lt;br /&gt;
&lt;br /&gt;
=== Schaltplan ===&lt;br /&gt;
* Wie stellt man die Blattgrösse beim Schaltplan ein?&lt;br /&gt;
** In Page Settings die Blattgröße verstellen (zB von A4 auf A3) http://www.mikrocontroller.net/topic/33653#974295&lt;br /&gt;
* Wie kann man den Schaltplan auf mehreren Seiten verteilen (hierachical sheets)?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/96060&lt;br /&gt;
** http://www.mikrocontroller.net/topic/117873#1060062&lt;br /&gt;
*Wie geht man mit &amp;quot;Power Pins&amp;quot; in hierachischen Schaltplänen um?&lt;br /&gt;
**http://www.mikrocontroller.net/topic/207905#new&lt;br /&gt;
* Wie kann man die &amp;quot;hierachical sheets&amp;quot; benutzen, um aus vorgefertigten Subschaltplänen mit immer gleichen Bauteilgruppen rationell Schaltpläne zusammenzustellen (Building Blocks)?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/175597#1687653&lt;br /&gt;
** http://www.mikrocontroller.net/topic/178683#1724114&lt;br /&gt;
*Wie geht man mit Bussen um?&lt;br /&gt;
**http://www.mikrocontroller.net/topic/208870#new&lt;br /&gt;
** und speziell bei hierachischen Schaltplänen: http://www.mikrocontroller.net/topic/209156#new&lt;br /&gt;
* Wie kann man Schaltplanentwurf (KiCAD) und Schaltungssimulation (Spice) verbinden?&lt;br /&gt;
* Ein Tutorial zum Symboleditor für KiCAD, mit dem die Symbole für das Schaltplanmodul (EEschema) erzeugt bzw. editiert werden, findet sich hier: [[Media:SymboleFuerKiCad318082009-RevC-DE.pdf]].&lt;br /&gt;
* Wie kann man im Schaltplan Symbole zum Verschieben gruppieren?&lt;br /&gt;
** Siehe http://www.mikrocontroller.net/topic/170913#&lt;br /&gt;
* Wie wird man den merkwürdigen Rahmen los?&lt;br /&gt;
** 1) Beim Ausdrucken Frame deaktivieren.&lt;br /&gt;
** 2) Als SVG exportieren/plotten. Liegt es als SVG vor, mit einem geigneten Grafikprogramm, z.B. Inkscape, den Rahmen löschen.&lt;br /&gt;
&lt;br /&gt;
=== Netlist ===&lt;br /&gt;
* Was genau muss man beim Übergang vom Schaltplan (SCH) zum Layout (BRD) machen?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/33653#898771&lt;br /&gt;
** http://www.mikrocontroller.net/topic/39243#290309&lt;br /&gt;
** http://www.mikrocontroller.net/topic/39243#891530&lt;br /&gt;
* Kann man fertige Netzlisten für Gruppen von Bauteilen einbinden?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/33653#1462871&lt;br /&gt;
* Kann man Daten für automatische Bestückung erzeugen?&lt;br /&gt;
** Ja. aber nicht in CVpcb für die Symbol &amp;gt; Footprint Zuordnung, sondern im Layout Modul PCBnew.&lt;br /&gt;
* Was bedeuten die Maßangaben in der Netlist?&lt;br /&gt;
&lt;br /&gt;
=== Layout ===&lt;br /&gt;
* Wie stellt man die Rastergrösse im Layout ein?&lt;br /&gt;
** Mit der Rechten Maustaste in das Board klicken. Es poppt ein Menue auf. Dort Raster wählen..... Geht im Modul-Editor genauso.&lt;br /&gt;
* Wie füllt man eine Fläche aus?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/93131#854802&lt;br /&gt;
** Etwas aktueller: http://www.mikrocontroller.net/topic/182271#1772119 Zweiter Teil des Posts.&lt;br /&gt;
* Wie werden Pads und Leiterbahnen verbunden?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/119755#1081455&lt;br /&gt;
** aktueller: http://www.mikrocontroller.net/topic/220733#new&lt;br /&gt;
* Ich bekomme immer eine Fehlermeldung vom DRC, das ein Pad nicht angeschlossen ist, aber ich habe es angeschlossen.&lt;br /&gt;
** http://www.mikrocontroller.net/topic/204717#2018724&lt;br /&gt;
* Ich will ein Bauteil für geringeren Leiterwiderstand sowohl auf der Unterseite- als auch der Oberseite anschliessen. KiCAD löscht aber immer den alten Leiterbahnzug, wenn ich den neuen lege. &lt;br /&gt;
** Deaktiviere unter Einstellungen-&amp;gt;Allgemein das &amp;quot;auto-entfernen-von-Leiterbahnen&amp;quot; (einfachste Lösung). &lt;br /&gt;
** Alternativ: Designe dafür Bauteile mit speziellen Pads. http://www.mikrocontroller.net/topic/187606#1823596 (realistischste u. sauberste Lösung, aber etwas umständlich.)&lt;br /&gt;
* Wie kann man ein Bauteil mit Pads und Leiterbahnen bewegen? &lt;br /&gt;
** http://www.mikrocontroller.net/topic/118539#1067219&lt;br /&gt;
* Wie bekommt man ein vernünftiges Boardoutline hin?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/96060#1057511 &lt;br /&gt;
* Wie erstellt man eine Befestigungsbohrung?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/179308#1726990&lt;br /&gt;
** http://www.mikrocontroller.net/topic/120373#1122219 ?????&lt;br /&gt;
* Wie kann man Bauteilmaße in in den Ansichten (Footprint, Layout, 3D-View) anzeigen?&lt;br /&gt;
** Anzeige im Layout: Layer &amp;quot;Zeichnung&amp;quot; anwählen. In der rechten Menueleiste &amp;quot;Bemaßung hinzufügen&amp;quot; wählen. Das ist der fünfte Button von unten mit der &amp;quot;blauen Bemaßung&amp;quot;. Jetzt an einer Stelle links ins Layout klicken. Maus verschieben und noch einmal links klicken und die Maus seitlich verschieben. Es wird ein Maßpfeilsystem zwischen erstem und und zweitem Mausklick angelegt, deshen höhe man mit der Maus einstellen kan. Ein weiterer linker Mausklick fixiert das System. Das Anklicken der Beschriftung mit der rechten Maustaste erlaubt das Editieren. Das System wird immer in der Einheit angelegt, die in der linken  Menueleiste vorgewählt wurde. Die Rasterung der aktuellen Einstellung wird auch übernommen. Späteres Ändern von Einheit- und Raster ändern die Beschriftung nicht mehr. In 3D und im Footprint geht diese Möglichkeit nicht.&lt;br /&gt;
** Weitere Möglichkeiten: Einen Maßstab als footprint/Modul anfertigen und zum Messen in das Board einfügen.&lt;br /&gt;
** Wenn man im Layout aber direkt etwas ausmessen möchte, so geht das über den relativen Nullpunkt. Unten im Rahmen rechts sind vier Felder. Die beiden linken zeigen die absoluten Koordinaten, an, die beiden rechten die relativen Koordinaten in Bezug auf einen relativen Nullpunkt. Defaultmäßig stimmen absoluter und relativer Nullpunkt ersteinmal überein. Per &amp;quot;Space bar&amp;quot; drücken setzt Du den relativen Nullpunkt an den Ort des Mauszeigers. Wenn Du nun die Maus verfährst, zeigen die relativen Koordinaten nun den vertikalen und horizontalen Abstand zum Nullpunkt. Die Diagonale muss leider über den Pythagoras selber ausgerechnet werden, oder indem man die Polarkoordinateneinstellung wählt (linke Menueleiste). Durch geschicktes setzten des Nullpunktes kann man nun auf der Platine herummessen. Winkel können auch über die Polarkoordinateneinstellung gemessen werden. Im Moduleditor geht das analog. Das 3D-View kann zur Zeit (Jannuar 2011) überhaupt keine Bemaßung.     &lt;br /&gt;
* Wie kann man mit der KiCAD Version 20100314 &#039;&#039;&#039;einseitige&#039;&#039;&#039; Platinen erstellen?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/172015#1651239&lt;br /&gt;
** aktueller: http://www.mikrocontroller.net/topic/172015#1794699&lt;br /&gt;
*Und wie teile ich KiCAD mit, daß der Autorouter nur eine Seite verwenden soll?&lt;br /&gt;
** Auf die doofe Tour: Erst in KiCAD zweiseitig wählen, und dann beide Lagen im Autorouter als &amp;quot;Unterseite&amp;quot; wählen.&lt;br /&gt;
* Wie kann man den Nullpunkt eines Layouts verschieben?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/179680#1730452 für den Layout Editor PCBnew. Im Moduleditor bei Erstellung eines Footprints kann man den Ankerpunkt frei Mithilfe des Anker-Tools aus der rechten Menüleiste (das Ankersymbol) setzten. Gleiches gilt für den Symboleditor.&lt;br /&gt;
* Wie gehen runde Bögen in KiCAD?&lt;br /&gt;
**http://www.mikrocontroller.net/topic/202512#1994063 &lt;br /&gt;
* Ich habe mein Board fertig geroutet, stelle aber jetzt fest, das ich noch einige Leiterbahnbreiten ändern muss. Wie geht das am einfachsten?&lt;br /&gt;
**http://www.mikrocontroller.net/topic/205851#new&lt;br /&gt;
*Ich kann Pads nicht anschlissen bzw. ich bekomme vom DRC Fehlermeldungen, daß ich Pads nicht angeschlossen habe, obwohl sie angeschlossen sind.&lt;br /&gt;
**http://www.mikrocontroller.net/topic/204717#new&lt;br /&gt;
&lt;br /&gt;
=== Module Editor ===&lt;br /&gt;
* Wie erstellt man Footprints für Bauteile?&lt;br /&gt;
* Kann man im Module Editor die Eigenschaften aller Pads gleichzeitig ändern?&lt;br /&gt;
** http://www.mikrocontroller.net/topic/93131#799550 &lt;br /&gt;
* Ich brauche einen Footprint, bei dem mehrere Pads verbunden sind, will aber nicht im Schaltplan zig Pins aufführen und anschliessen müssen.&lt;br /&gt;
**http://www.mikrocontroller.net/topic/208982#new&lt;br /&gt;
**http://www.mikrocontroller.net/topic/204717#new&lt;br /&gt;
* Wie kann man Bauteilmaße in in den Ansichten (Footprint, Layout, 3D-View) anzeigen?&lt;br /&gt;
&lt;br /&gt;
=== 3D-Ansicht ===&lt;br /&gt;
* Kann man die 3D-Ansicht in ein 3D-CAD Programm exportieren? &lt;br /&gt;
**http://www.mikrocontroller.net/topic/203388#new&lt;br /&gt;
* Wie kann man Bauteilmaße in in den Ansichten (Footprint, Layout, 3D-View) anzeigen?&lt;br /&gt;
&lt;br /&gt;
Da KiCAD in Punkto 3D-Ansicht komplett auf Wings3D beruht, und die 3D Modelle der Bauteile wrl-files sind, die mit Wings3D (oder Blender) erstellt werden können, sei hier auf ein Wings3D Handbuch verwiesen: http://www.oortman3d.com/wings3d/TheWings3dHandbook.pdf&lt;br /&gt;
&lt;br /&gt;
=== Drucken / Export ===&lt;br /&gt;
* Wie exportiert man den Schaltplan oder das Layout als Bild (PNG o.ä.)? &lt;br /&gt;
** Drucken über Postscript-Treiber und Umwandeln mit Ghostscript&lt;br /&gt;
** [http://www.mikrocontroller.net/topic/96060#1061492]&lt;br /&gt;
** Plot to Clipboard [http://www.mikrocontroller.net/topic/117562#1056566]&lt;br /&gt;
* Wie kann ich GENAU ausdrucken? Mein Ausdruck auf ABC ist ca. X % zu klein oder Y% zu groß! &lt;br /&gt;
** So genau sind einfache Drucker bzw. Druckertreiber selten. Aber meistens hilft folgendes: Mache einen 1:1 (100%) Probeausdruck. Messe auf dem Ausdruck nach, wie groß er tatsächlich geworden ist. Berechne die Abweichung und gebe sie in den Drucker bzw. Druckertreiber unter Einstellung ein, vorausgesetzt, der Drucker bzw. Druckertreiber kann das. Mit dem Wert machst Du wieder eine Probeausdruck, messe wieder nach, und wenn es mit der Einstellung funktioniert hat, kannst Du Deine Folie bedrucken. Wenn das nicht klappen kann, weil Du stark abweichende Werte für horizontal und vertikal bräuchtest, aber der Drucker nur einen gleichen Wert für beides kennt, hast Du einen (zu) schlechten Drucker. Trozdem nicht verzweifeln, weil KiCAD beim Drucken oder Plotten in der X- und Y-Achse getrennt skalieren kann. Aber Vorsicht bei Weitergabe der so erzeugten Dateien: Sie sind individuell auf einen Drucker angepasst, und produzieren auf einem anderen Drucker nur falsch skalierte Ausdrucke. Weil der Wert von Drucker zu Drucker unterschiedlich ist, ist es auch sinnvoll, diese Skalierung direkt am speziellen Drucker/Druckertreiber zu machen. Tipp: Wenn Du den Wert erfolgreich ermittelt hast, so kleb Dir einen Zettel auf den Drucker mit dem Wert. Die Werte sind zwar individuell für jeden Drucker, aber meistens für den speziellen Drucker durchaus fix. Und Du hast ihn sofort wieder parat, wenn der Drucker resettet wurde. Dies ist übrigens ein allgemeiner Tipp für das Ausdrucken, der auch für Eagle, Target, Altium usw. gilt.&lt;br /&gt;
* Kann man Gerber-Dateien exportieren?&lt;br /&gt;
** Ja. Es wird Gerber 247X exportiert. Einheit ist inch (doppelt sowohl im 247d als auch im 247x Stil definiert). Die Y-Koordinaten sind im allgemeinen negativ. KiCAD verwendet für Flächen das in Gerber spezifizierte Polygon Makro und kein &amp;quot;stroke fill&amp;quot;.&lt;br /&gt;
** Bei Bestellungen bei PCB-Pool ist deren GC-Prevue erforderlich [http://www.mikrocontroller.net/topic/120373#1092375]&lt;br /&gt;
* Wie kann man den Gerber-Plot so ausdrucken, dass in der Mitte von Pads und Vias ein Zentrierloch frei bleibt?&lt;br /&gt;
** http://article.gmane.org/gmane.comp.cad.kicad.user/3457&lt;br /&gt;
* Wie kann man das Layout invers ausdrucken, d.h. alle Leiterbahnen und Pads müssen weiß bleiben, der Rest wird schwarz ausgedruckt?&lt;br /&gt;
** Beim Plotten den Haken bei Negativ-Plot setzen [http://www.mikrocontroller.net/topic/156202#1474507]&lt;br /&gt;
* Ich habe irgendwie Probleme mit dem Ausdrucken.&lt;br /&gt;
** Verzerrt: http://www.mikrocontroller.net/topic/207764#new&lt;br /&gt;
** Sonderzeichen: http://www.mikrocontroller.net/topic/207310#new&lt;br /&gt;
&lt;br /&gt;
=== Import ===&lt;br /&gt;
* Kann man EAGLE Dateien importieren? (=&amp;gt; Obacht bei Weitergabe der Daten!)&lt;br /&gt;
** http://www.mikrocontroller.net/topic/70905#797416&lt;br /&gt;
** http://www.mikrocontroller.net/topic/70905#797486&lt;br /&gt;
** http://www.mikrocontroller.net/topic/120373#1089933&lt;br /&gt;
* Wie bindet man fremde KiCAD Bibliotheken ein?&lt;br /&gt;
** EESchema (Schaltplaneditor) starten, unter Einstellungen &amp;quot;Bibliothek&amp;quot;  auswählen, auf &amp;quot;Hinzufügen&amp;quot; klicken, neue Bibliothek auswählen dann &amp;quot;öffnen&amp;quot; und in der Projektdatei &amp;quot;Speichern&amp;quot;. Gültig für Version 20090216Final, 2011-04-29-BZR2986-WinXP&lt;br /&gt;
&lt;br /&gt;
=== Einstellungen sichern / wiederherstellen===&lt;br /&gt;
* Wo speichert KiCAD die Einstellungen ab und wie lassen sich die originalen Einstellungen wiederherstellen?&lt;br /&gt;
** [[http://kicad.sourceforge.net/wiki/index.php/DE:KiCadHB#Einstellungen_sichern_.2F_wiederherstellen]]&lt;br /&gt;
**Man erstelle ein neues Projekt beliebigen Namens, nehme alle Einstellungen (Bibliotheken, Pfade usw.) vor und speichere diese in der aktuellen Projektdatei &amp;quot;name.pro&amp;quot;. Im Ordner KiCAD Verzeichnis ....../kicad/share/template befindet sich eine Datei &amp;quot;kicad.pro&amp;quot;. Diese Datei &amp;quot;kicad.pro&amp;quot; ist die &amp;quot;Musterprojektdatei&amp;quot;, die für alle neuen Projekte verwendet wird. Man benenne sie um in &amp;quot;kicad-orig.pro, und kopiere die aktuelle Projektdatei &amp;quot;name.pro&amp;quot; nun als &amp;quot;kicad.pro&amp;quot; in diesen Template-Ordner. Leider Funktioniert dieses Verfahren nicht in allen KiCAD Versionen. Den originalen Zustand stellt man wieder her, indem man &amp;quot;kicad.pro&amp;quot; umbenennt, und &amp;quot;kicad-org.pro&amp;quot; wieder in &amp;quot;kicad.pro&amp;quot; zurückumbenennt.&lt;br /&gt;
&lt;br /&gt;
=== Bitmaps als Symbol oder Footprint importieren ===&lt;br /&gt;
Der Programmteil Bitmap2component wandelt Bitmaps wahlweise in Symbole oder in Footprints um. Auf diese Weise können also auch Logos oder spezielle Muster für HF-anwendungen in KiCAD importiert werden, sobald sie als Bitmap vorliegen. Diese Funktion ist allerdings sehr neu (im Frühjahr 2011 eingefügt) und eher als experimentell zu bezeichnen. So funktioniert z.B. der Export in ein Symbol in der Version BZR-2986 NICHT.&lt;br /&gt;
&lt;br /&gt;
== Tipps&amp;amp;Tricks / Eigenheiten / Bugs ==&lt;br /&gt;
&lt;br /&gt;
* Nachbearbeitung mit Skript oder Texteditor (Pin Swapping, Versionskontrolle via SVN, Generierung von Packages aus UCF-Listen) &lt;br /&gt;
** http://www.mikrocontroller.net/topic/120373#1100467&lt;br /&gt;
** http://www.mikrocontroller.net/topic/96860#836967&lt;br /&gt;
** http://stawoo.com/dokuwiki/doku.php?id=ecld:kicad:board&lt;br /&gt;
&lt;br /&gt;
* Schaltplan: Durchnummerieren von GND und PWR erforderlich http://www.mikrocontroller.net/topic/39243#290309&lt;br /&gt;
&lt;br /&gt;
* Zum Verbinden von Schaltplan und Layout müssen an den Bauteilen die Pinnummern mit den Padnummern der Footprints korrespondieren. Das ist &amp;quot;defaultmäßig&amp;quot; nicht immer zu erreichen, weil es unterschiedliche Nummerierungssysteme gibt. Ausser dem Anlegen eines speziellen Footprints kann diese Anpassung für einzelne Bauteile wärend des Layoutens im Moduleditor vorgenommen werden. http://www.mikrocontroller.net/topic/186121#1805890&lt;br /&gt;
&lt;br /&gt;
* In PCBnew lassen sich mit &amp;quot;Datei&amp;gt;Platine hinzufügen&amp;quot; auch schon geroutete Gruppen von Bauteilen quasi als Modul einfügen, wenn sie zuvor als Board abgelegt wurden. Ebenso kann eine Bauteilgruppe, die in der Form mehrmals vorkommt, und die die schon einmal geroutet worden ist, gruppiert, kopiert und wiederverwended werden. Die dazu nötige Annotation und das Löschen der überzähligen Bauteile muss aber sorgfältig von Hand gemacht werden. &lt;br /&gt;
&lt;br /&gt;
* Bibliotheken verwalten, umsortieren bzw. neu strukturieren: http://www.mikrocontroller.net/topic/187107#1817559 &lt;br /&gt;
&lt;br /&gt;
* Layout: Rest-Gummiband an Pins http://www.mikrocontroller.net/topic/120373#1092375&lt;br /&gt;
&lt;br /&gt;
* Produktion: http://www.mikrocontroller.net/topic/98034#848965&lt;br /&gt;
&lt;br /&gt;
* Bug in Version 2010-03-14: Unter Einstellungen lässt sich keine einseitige Platine wählen (wichtig für Autorouter). Lösung: Modifikation des .brd Files mit einem Editor [http://www.mikrocontroller.net/topic/172015#1651239]:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;&lt;br /&gt;
:In der *.brd Datei gleich ganz oben...&lt;br /&gt;
:&lt;br /&gt;
:$GENERAL&lt;br /&gt;
:LayerCount 2                 -&amp;gt; auf 1 setzen&lt;br /&gt;
:&lt;br /&gt;
:$SETUP&lt;br /&gt;
:InternalUnit 0.000100 INCH&lt;br /&gt;
:ZoneGridSize 250&lt;br /&gt;
:Layers 2                     -&amp;gt; auf 1 setzen&lt;br /&gt;
:Layer[0] Rückseite power&lt;br /&gt;
:Layer[15] Vorderseite power  -&amp;gt; hab&#039; ich mal beides so gelassen&lt;br /&gt;
:&amp;lt;/pre&amp;gt;                                                                aktueller: http://www.mikrocontroller.net/topic/172015#1794699&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kühlkörper&#039;&#039;&#039; können als Symbol und Footprint (Modul) angelegt werden. Die Befestigungslöcher können im  Modul als Pad ausgeführt werden. Die Padnummer aller Pads sollte gleich sein (gleicher Anschluss / über Kühlkörper verbunden), z.B. &amp;quot;1&amp;quot;. Entsprechend ein Symbol mit Pin und korrespondierender Pinnummer anlegen. Wenn der Kühlkörper elektrisch nirgendwo verbunden sein soll, dann die Anschlusspinne im Schaltplan als &amp;quot;unused&amp;quot; markieren. Als Referenz in Symbol und Footprint habe ich &amp;quot;HS&amp;quot; (HeatSink) gewählt. Es ist zu überlegen, ob &amp;quot;HS&amp;quot; nicht auch als Padnummer besser wäre.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kartenumrisse/Outlines&#039;&#039;&#039;: Für immer wiederkehrende Platinengrössen, z.B. die beliebte Eurokarte, kann zur Vereinfachung des Zeichnens einmal ein Eurokartenumriss im Layer &amp;quot;outlines&amp;quot; gezeichnet werden, und als Modul abgelegt werden. Um die Zahl der Kollisionen beim Einlesen der Netzliste zu verringern, wird im Schaltplan ein Dummy-Symbol ohne Pinne angelegt. In CVpcb dann dieses Symbol mit dem passenden Kartenumriss Footprint/Modul verbinden, und es wird automatisch in PCBnew eingefügt. Als Referenz in Symbol und Footprint habe ich &amp;quot;Outl&amp;quot; (OUTLine) gewählt.&lt;br /&gt;
&lt;br /&gt;
=== Tipps&amp;amp;Tricks: Building Blocks ===&lt;br /&gt;
* Eine unfertige Dokumentation, wie man das hierarchische Schaltplansystem von KiCAD verwendet, um daraus schnell und rationell Schaltpläne mit vorgefertigten Schaltplänen (Building Blocks) nach dem Baukastensystem aufzubauen. Enthält auch ein Beispielprojekt. Beachte die Liesmich.txt Datei. [[Media:BuildingBlocksKiCAD-EXPERIMENTELL.zip]] Das File  KiCAD-HierarchischeSchaltplaene+buildingBlocksRevA_Vorlaeufig.pdf, enthält eine vorläufige Beschreibung dazu. KiCAD-HierarchischeSchaltplaene+buildingBlocksRevA-EN.pdf is an English description how to use hirarchical schematics as building blocks for a fast and rationel schematic design. Es fehlt noch die Übersetzung und die Bebilderung und ein paar Berichtigungen und Ergänzungen. ;-) . Das echte Hauptbeispielprojekt ist UnderVoltageDetector24V-2Group_Experimental.pro bzw. UnderVoltageDetector24V-2Group_Experimental.sch. Im Ordner Experimentalprojekt23052010 findet sich ein weiterer Ordner BuildingBlocksExperimental. Dieser enthält die Ausgangsbausteine VoltageRegulatorBuildingBlock.sch mit VoltageRegulatorBuildingBlock-cache.lib und  VoltageDetectorBuildingBlock.sch mit VoltageDetectorBuildingBlock-cache.lib. Die Projektdateien der Buildingblocks .pro sind nur der Vollständigkeit und zur leichteren Bearbeitung zugefügt. Aus VoltageDetectorBuildingBlock.sch und VoltageRegulatorBuildingBlock.sch wurde (nach umkopieren, umbenenen und kleiner Änderung) im übergeordneten Ordner das Projekt VoltageRegulatorBuildingBlock.pro unter verwendung des &amp;quot;Zwischenbuildingblocks&amp;quot; UnderVoltageDetectorBuildingBlock.sch zusammengesetzt. NICHT VERGESSEN DIE CACHE.LIB EINZUBINDEN! Sonst gibt es nur Fragezeichen statt Bauteile. Das Beispielprojekt enthält eine 24V Unterspannungsüberwachung für einen Bleiakku, die zwei 12V Gruppen überwacht. Nicht elegant, aber hoffentlich robust. Autor: Bernd Wiebus , GNU-GPL. Der dazubezügliche Beitrag im Forum ist: http://www.mikrocontroller.net/topic/178683#1724114&lt;br /&gt;
*[[Media:BuildingBlocks_06Jul2010.zip]] enthält eine Sammlung von gängigen Schaltungen mit den Längstreglern LM317 /LM78xx /LM79xx und dem Timer 555, die nach dem in obig erwänten Dokument KiCAD-HierarchischeSchaltplaene+buildingBlocksRevA_Vorlaeufig.pdf beschriebenen Vorgehen als Building Blocks in KiCAD verwendet werden können. Autor: Bernd Wiebus, Lizenz: Creative Commons. Experimentell! Ohne Garantie! Mit Vorsicht geniessen!&lt;br /&gt;
&lt;br /&gt;
== Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
In diesem Abschnitt sollen unsere Arbeiten an Bibliotheken koordiniert werden. Dabei sollen alle Arbeiten unter der Creative Commons Lizenz stattfinden. Das heisst insbesondere, dass keine Arbeiten mit anderem Copyright unseren Bibliothekspool vergiften sollen z.&amp;amp;nbsp;B. durch unerwünschte Konvertierung von EAGLE-Bibliotheken.  &lt;br /&gt;
&lt;br /&gt;
Unsere Designziele sind:&lt;br /&gt;
* Frei benutzbar (Creative Commons Lizenz) &lt;br /&gt;
* Einheitlich (Richtlinien?)&lt;br /&gt;
** Vorschlag von Marko für Bohrungen und Pads siehe [http://www.mikrocontroller.net/topic/124070#1176177]&lt;br /&gt;
* Fehlerfrei (Nachkontrolle durch andere User)&lt;br /&gt;
&lt;br /&gt;
=== Wünsche ===&lt;br /&gt;
&lt;br /&gt;
Hier soll eine Strichliste geführt werden, welche neuen Bauteile gesucht sind bzw. welche oder besseren, genaueren Versionen benötigt werden. Bitte gebt an, was bei bestehenden Bauteilen problematisch ist.&lt;br /&gt;
&lt;br /&gt;
Bevor wir Bibliotheken erstellen, sollten auf jeden Fall einige Parameter - insbesondere für die Schaltplansymbole - festgelegt werden: Pinlänge, Pinabstand, Größe der Schriften, Konventionen bzw. Nummerierung (z.B. bei gepolten Bauteilen wie Dioden, Elkos usw.). Sonst entsteht Wildwuchs, weil jeder für sich anderes festlegt.&lt;br /&gt;
&lt;br /&gt;
* Stehende Layouts für 7805 und N-FETs: |||&lt;br /&gt;
** Passt TO220_VERT ? Natürlich! Nur die Anschlussnumerierung muss ev. passend adaptiert werden.&lt;br /&gt;
* LPC21xx / LPC22xx / LPC23xx |&lt;br /&gt;
* EINE AVR ATmega-Bibliothek, wo ALLE Controller drin sind. ||||&lt;br /&gt;
* AT90CAN128 / allgemein mehr AVRs (MEGA &amp;amp; TINY) ||||&lt;br /&gt;
* Schaltregler (u.A. LM257x, LM267x, MC33063, L5973D) ||&lt;br /&gt;
* Spulen (z.&amp;amp;nbsp;B. diverse Wuerth) |&lt;br /&gt;
* Drosseln (B82790 für CAN, Würth 744207) |&lt;br /&gt;
* Ferrite (7427930 - 32, 742792651, 74279263) |&lt;br /&gt;
** ??? Was genau ist nun Footprint und Referenzmaeßig der Unterschied zwischen Drosseln, Spulen und Ferriten, wenn ich jetzt mal davon ausgehe, das die Teile weder Anzapfung noch mehr als eine Wicklung haben (dann wären es Trafos oder Uebertrager), und die elektrischen Werte in ein Feld eingetragen werden?? Wenn Through-Hole langt, schau mal unten in KiCAD-Modules-Footprints-discrete_28Mar2010.zip. Kleinere SMD-Entstörferrite lassen sich uebrigens aus SMD-Widerstaenden zaubern, in dem man sie umbenahmt und mit der Referenz &amp;quot;L&amp;quot; versieht. ;-)&lt;br /&gt;
* STM32 Mikrocontroller Bibliothek (sofern möglich alle) |&lt;br /&gt;
&lt;br /&gt;
=== Entwürfe ===&lt;br /&gt;
&lt;br /&gt;
Neue Bibliotheken oder Änderungen sollen zunächst in diesem Abschnitt &lt;br /&gt;
vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/96460#832961 ATmega3250/TQFP100] von Fred S. (Gast)&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/96460#844741 ATMega3290 im 100Pin-Gehäuse] von Fred S. (Gast)&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/132811#1205130 RFM12-Funkmodul] von Dominik C.&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/133310#1210137 CAN Controller MCP2515 und Transceiver MCP2551] von Dominik C.&lt;br /&gt;
* [[Media:SymbolsSimilarEN60617+oldDIN617-RevB-en.lib]] VERALTET! Nur aus Kompatibilitätsgründen behalten. Ersetzt für Neuentwicklungen durch Revision E1. Schaltplan Symbolbibliothek fuer KiCAD mit Symbolen, die denen aus der EN60617 oder der ALTEN DIN 617 ÄHNLICH sind. Von Bernd Wiebus&lt;br /&gt;
* [[Media:SymbolsSimilarEN60617+oldDIN617-RevC-en.lib]] VERALTET! Nur aus Kompatibilitätsgründen behalten. Ersetzt für Neuentwicklungen durch Revision E1! Schaltplan Symbolbibliothek für KiCAD mit Symbolen, die denen aus der EN60617 oder der ALTEN DIN 617 ÄHNLICH sind. Aenderung gegenueber Rev.B: Kleinere Symbole hinzugefügt. Mit Vorsicht geniessen! Von Bernd Wiebus. &lt;br /&gt;
* [[Media:SymbolsSimilarEN60617+oldDIN617-RevD3-en.lib]] VERALTET! Nur aus Kompatibilitätsgründen behalten. Ersetzt für Neuentwicklungen durch Revision E1! Schaltplan Symbolbibliothek für KiCAD mit Symbolen, die denen aus der EN60617 oder der ALTEN DIN 617 ÄHNLICH sind.  Aenderung gegenueber Rev.C: Kleinere Fehler beseitigt. CLD Symbol hinzugefuegt. Kuehlkoerper Symbol und Dummy-Symbol fuer Boardoutlines hinzugefuegt. Thyristor und Triac Symbol zugefuegt. Copyright Symbole GNU-GPL und CC zugefuegt. Mit Vorsicht geniessen! Von Bernd Wiebus. Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de &lt;br /&gt;
* [[Media:SymbolsSimilarEN60617+oldDIN617-RevE4.lib]] AKTUELLE Version! Ersetzt die Rev. B, C und die Rev. D sowie Vorgängerversionen E1-E3! Schaltplan Symbolbibliothek für KiCAD mit Symbolen, die denen aus der EN60617 oder der ALTEN DIN 617 ÄHNLICH sind.  Aenderung gegenueber Rev.D: Kleinere Fehler beseitigt. Ankerpunkte in die Nähe der Symetrieachsen verlegt. Verbinder DIN41612 / EN60603-2 &amp;quot;Eurokartenstecker&amp;quot; hinzugefügt. Große &amp;quot;BIG&amp;quot; Symbole entfernt und in der Datei BIG-SymbolsSimilarEN60617+oldDIN617-RevE.lib ausgelagert. Mit Vorsicht geniessen! Von Rene Belau und Bernd Wiebus. Unter GNU GPL. Defektes Symbol &amp;quot;RESISTOR_RevE_Date15jun2010&amp;quot; repariert am 02. Maerz 2011. Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de   &lt;br /&gt;
* [[Media:BIG-SymbolsSimilarEN60617+oldDIN617-RevE.lib]] Einige EN60617 oder der DIN 617 ÄHNLICHE Symbole in besonders GROSSER Ausführung. Vermutlich werden Sie diese GROSSEN Symbole eher NICHT benutzen wollen. Mit Vorsicht geniessen! Von Rene Belau und Bernd Wiebus. Unter GNU GPL. Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
* [[http://www.mikrocontroller.net/attachment/74203/obi.lib]] KiCAD Symbol für einen ATMEGA644. Von obi&lt;br /&gt;
* [[Media:Symbols_ICs-Diskrete_RevC.lib]] KiCAD Symbole für einige diskrete ICs. Enthält L200 (Pentawatt Gehäuse), LM2587 (Pentawatt Gehäuse), LM317, LM78xx, LM79xx, NE555, TDA2003 (Pentawatt Gehäuse), UC38xx (DIP8/SO8 und PIP14/SO14), MIC4422 (DIP8/SO8 und Pentawatt Gehäuse). MAX756 und MAX757. Autor Rene Belau und Bernd Wiebus. GNU GPL. Mit Vorsicht geniessen! Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
* [[Media:Symbols_ICs-Opto_RevB_06Apr2011.lib]] KiCAD Symbole für Optokoppler CNY17, IL300. IL388, TLP250, SFH617A-1, SFH617A-2, SFH617A-3, SFH617A-4, KPC357, LTV35x, und PC357. LWL Empfänger Toshiba TORX170 TORX173 TORX193  und TORX194 (Toslink). LWL Sender Toshiba TOTX170 TOTX173 TOTX193  und TOTX194 (Toslink). LWL Empfänger Agilent HFBR-252x und Sender Agilent HFBR-152x Serie (Versatile Link). Autor Rene Belau und Bernd Wiebus. GNU GPL. Mit VORSICHT geniessen! Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
* [[Media:Transformer-Diskrete_RevA.lib]] KiCAD Symbole für einige diskrete Transformatoren. Coilcraft Q4434-B = Rhombus T1311 und Myrra-74040 ETD29. Autor: Bernd Wiebus. Mit Vorsicht geniessen! Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
* [[Media:Symbols_DCDC-Converter_RevB_06Apr2011.lib]] KiCAD Symbole für einige DCDC-Converter. Enthält CINCON EC5BC12, CINCON EC6C11, TRACO TED-1212, TRACO TED-XXXX Dual Output, TRACO TED-XXXX Single Output, TRACO TEN10-1212, TRACO TEN10-XXXX, TRACO TME-XXXX, TRACO TMH-XXXX Single Output, TRACO TMH-XXXX Dual Output, BOTHHAND CF-Serie und DELTA DPS05U09D. Autor: Bernd Wiebus. Mit Vorsicht geniessen! Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Media:KiCAD_Module_Footprints_21Apr2011.zip]] Eine Sammlung von KiCAD Modulen bzw. Footprints diskreter Bauteile. Neben den obligatorischen Rs, Cs und Ls sind Schrack und Omron Kartenrelais (die Footprints passen auch fuer andere Hersteller), diverse Dioden, Klemmen WAGO 236 (RM 5mm) Serie und WAGO 734 Serie, Sicherungshalter (Schurter und Bulgin), Kuehlkoerper und Eurokartenoutlines enthalten. Zusaetzlich TO92, TO220, TO220-5 (Pentawatt) und TO247 Gehaeuse. Ebenso die vermissten PISN und PISR SMD Drosseln. Einige Throughhole C&amp;amp;D Bobin Drosseln, Bourns 3296, Spectrol Type 43 / Econtrim und Piher PT15 Trimmer . Potentiometer Alps RK16 und Spectrol Type 148/149. Transformatoren Coilcraft Q4434-B / Rhombus T1311 sowie ETD29 von Epcos und Myrra sind auch dabei. Eurokartenstecker/-buchsen DIN 41612 Typ B1, B2, C1, C2 und C3. Ebenfalls enthalten: GNU-GPL und Creative Commons  Symbole. Dazu Messpunkte. BNC-Buchse, Quarzoszillator, SMD Widerstände und Kondensatoren.  (0805, 1206, 2512) sowie experimentelle Universalfootprints SMD/Throughole. SMD-Dioden: MELF, Mini-MELF, SMA, SMB und SMC. Neu in der Version vom 27 Juni 2010: Stecker Molex Serie KK, Würth SMD Drosseln und Doppeldrosseln. Alles ohne 3D Modelle, aber manchmal mit PDF-Ausdruck zur leichten Identifikation. Mit Vorsicht geniessen! Ohne Garantie und entweder unter GNU-GPL oder CC. Von Bernd Wiebus. Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
&lt;br /&gt;
* [[Media:KiCAD-Module_Buzzer_Beeper_RevA_25Oct2010.zip]] Einige Footprints von Summern /Buzzern / Beepern für KiCAD. Enthaelt Kingstate KCG0601, Pro Signal ABI-009-RC, Pro Signal ABI-010-RC, Pro Signal ABT-410-RC, Star Micronics HMB-06/HMB-12 und Projects Unlimited AI-4228-TWT-R. Alles ohne 3D Modelle, aber mit PDF-Ausdruck zur leichten Identifikation. Mit Vorsicht geniessen! Ohne Garantie und entweder unter GNU-GPL oder CC. Von Bernd Wiebus. Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
&lt;br /&gt;
* [[Media:KiCAD-Module_CommonModeChokes_Wuerth_WE-CMB-Series_RevA_25Oct2010.zip]] Footprints der Gleichtaktdrosseln der Serie Würth WE CMB (through hole) für KiCAD. Enthält die Verschieden Bauformen XS, S, M, L, XL und XXL. Alles ohne 3D Modelle, aber mit PDF-Ausdruck zur leichten Identifikation. Mit Vorsicht geniessen! Ohne Garantie und entweder unter GNU-GPL oder CC. Von Bernd Wiebus. Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
&lt;br /&gt;
* [[Media:DCDC-Converter_RevB_06Apr2011.zip]] Footprints von DCDC-Convertern für KiCAD. Enthält CINCON EC5BC12, CINCON EC6C11, TRACO TED-1212, TRACO TED-XXXX Dual Output, TRACO TED-XXXX Single Output, TRACO TEN10-1212, TRACO TEN10-XXXX, TRACO TME-XXXX, TRACO TMH-XXXX Single Output, TRACO TMH-XXXX Dual Output, BOTHHAND CF-Serie und DELTA DPS05U09D. Alles ohne 3D Modelle, aber mit PDF-Ausdruck zur leichten Identifikation. Mit Vorsicht geniessen! Ohne Garantie und unter GNU-GPL. Von Bernd Wiebus. Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
&lt;br /&gt;
* [[Media:Opto-Devices_RevC_30Apr2011Amendet02Jul2011.zip]] Footprints von Optoelectronischen Bauteilen für KiCAD. Enthält 6 Polige DIL Footprints für CNY17, auch in &amp;quot;wide&amp;quot;, SMD Optokoppler Footprints (1 Kanalig) und Footprints für Toshiba (Toslink) und Agilent (Versatile Link) LWL Ssender und Empfänger. Alles ohne 3D Modelle, aber mit PDF-Ausdruck zur leichten Identifikation. Mit Vorsicht geniessen! Ohne Garantie und unter GNU-GPL. Von Bernd Wiebus. Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
&lt;br /&gt;
* [[Media:Pentawatt_RevB_30Apr2011.zip‎]] Footprints von Pentawatt Gehäusen für KiCAD. Enthält verschiedene Ausführungen der TO220-5 Gehäuse in gerade und verkröpft, sowie stehend und liegend. Alles ohne 3D Modelle, aber mit PDF-Ausdruck zur leichten Identifikation. Mit Vorsicht geniessen! Ohne Garantie und unter GNU-GPL. Von Bernd Wiebus. Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
&lt;br /&gt;
* [[http://www.mikrocontroller.net/topic/176405#new]] KiCAD Modul / Footprint für ein TSSOP38 Gehäuse. Autor Raphael Reu.&lt;br /&gt;
&lt;br /&gt;
* [[http://www.mikrocontroller.net/topic/190088#1856759]] Texas Instruments TPIC8101 Klopfsensor Interface (für Verbrennungsmotoren). Autor Peter Diener.&lt;br /&gt;
&lt;br /&gt;
* [[Media:IR-directFET_Packages_RevA_30Jun2011.zip]] Footprints von directFET SMD-Transistor Gehäusen von International Rectifier für KiCAD. Enthält die SH, SJ, SQ, ST, S1, MN, MP, MT, MX, MZ und die L8-Outline. Nähere Informationen in den Datenblättern betroffener Transistoren und in der International Rectifier Applikationsnotiz AN-1035. &amp;quot;directFET&amp;quot; ist übrigens eine Handelsmarke von International Rectifier und die Gehäuse sind proprietär. Also vorsichtig sein und an &amp;quot;second source&amp;quot; denken. Alles ohne 3D Modelle, aber mit PDF-Ausdruck zur leichten Identifikation. Mit Vorsicht geniessen! Ohne Garantie und unter GNU-GPL. Von Bernd Wiebus. Verbesserungsvorschläge willkommen an bernd.wiebus@gmx.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn mindestens ein weiterer KiCAD User die Bibliothek geprüft hat, kann sie in den folgenden Unterabschnitt vorschoben werden.&lt;br /&gt;
&lt;br /&gt;
=== Geprüfte ===&lt;br /&gt;
&lt;br /&gt;
Hier sollen geprüfte Bibliotheken gesammelt werden. Bitte angeben, wer die Prüfung gemacht hat.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/132288#new STM32F103xx (LQFP64) Schaltplansymbol] erstellt/geprüft: Dominik C.; Marko S.&lt;br /&gt;
&lt;br /&gt;
=== Sonstige / Netz ===&lt;br /&gt;
&lt;br /&gt;
* http://www.kicadlib.org/&lt;br /&gt;
* http://per.launay.free.fr/kicad/kicad_php/composant.php &lt;br /&gt;
* http://www.reniemarquet.cjb.net/kicad/libs/o_analog.zip (NE555 u.a.)&lt;br /&gt;
* http://github.com/Inte/kicadlib&lt;br /&gt;
* http://www.df0fkw.datenoase.de/index.php?option=com_content&amp;amp;view=article&amp;amp;id=107:kicad-libraries&amp;amp;catid=36:bastelprojekte&amp;amp;Itemid=67&lt;br /&gt;
&lt;br /&gt;
Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
* http://smisioto.no-ip.org/elettronica/kicad/kicad-en.htm&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
* [http://kicad.rohrbacher.net/quicklib.php Quick KICAD Library Component Builder]&lt;br /&gt;
* Gerber-Tools sind für KiCAD weniger nötig, da KiCAD mit GerbView seinen eigenen Gerberviewer mitbringt. Dieser ist mächtig genug, die eingelesenen Gerberfiles als Platine in PCBnew zu exportieren, wo sie manipuliert werden können. Dieses geht aber nur mit Gerber-RS274X Daten. Ebensowenig können Gerberfiles zu Nutzen zusammengefügt werden. Hierzu bietet sich &amp;quot;Gerbmerge&amp;quot; http://claymore.engineer.gvsu.edu/~steriana/Python/gerbmerge/ an. Wer lediglich aus Sicherheitsgründen die von KiCAD erzeugten Gerberdaten mit einem fremden Gerber-Vierer inspizieren möchte, findet hier Hinweise:http://www.mikrocontroller.net/articles/Gerber-Tools&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/204063#2011138 KiCAD (Multi-)Symbol Tool] von Joghurt3000 zur Erstellung von Symbolen aus einer Textvorlage&lt;br /&gt;
* [http://cyclerecorder.org/footprintbuilder Footprintbuilder] Java-Programm zu Erstellung von Footprints.&lt;br /&gt;
&lt;br /&gt;
== Beispielprojekte ==&lt;br /&gt;
&lt;br /&gt;
* http://www.mikrocontroller.net/topic/33653#963083&lt;br /&gt;
* http://www.mikrocontroller.net/topic/120373#1089075 &lt;br /&gt;
* http://www.mikrocontroller.net/topic/98034#848559&lt;br /&gt;
* http://www.mikrocontroller.net/topic/95864#828660&lt;br /&gt;
* http://www.mikrocontroller.net/topic/77738#647041&lt;br /&gt;
* http://www.mikrocontroller.net/topic/103806#907523&lt;br /&gt;
* http://www.mikrocontroller.net/topic/41999#316195&lt;br /&gt;
* http://www.mikrocontroller.net/topic/190088#1856757&lt;br /&gt;
* http://www.mikrocontroller.net/topic/188897&lt;br /&gt;
* http://www.mikrocontroller.net/articles/Modellbahn_Servodecoder_f%C3%BCr_Weichen_mit_R%C3%BCckmeldung&lt;br /&gt;
* http://www.mikrocontroller.net/articles/RS485_IO_Board_-_ModellBahnLichtSteuerung&lt;br /&gt;
* [[Media:UndervoltageProtection_RevB_19Apr2011.zip]] Beispielprojekt eines Tiefentladeschutzes für einen Blei-Gel Akku, der von den Platinenabmessungen her auf einen typischen 12V/7,2Ah Akku passt. Ausserdem bietet er abgesicherten Zugang zu den Akkuklemmen, was auch in vielen Fällen beachtenswert ist. Leider ist das Projekt noch etwas unaufgeräumt, es fehlen noch Bauteilwerte, und in der Form wurde noch keine fertige Platine daraus hergestellt, aufgebaut und getestet. Autor: Bernd Wiebus, GNU-GPL.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://iut-tice.ujf-grenoble.fr/kicad/index.html KiCAD] Homepage 1 und Download&lt;br /&gt;
* [http://www.lis.inpg.fr/realise_au_lis/kicad/ KiCAD] Homepage 2 und Download&lt;br /&gt;
* [http://kicad.sourceforge.net/wiki/index.php/DE:Main_Page KiCAD Wiki]&lt;br /&gt;
* Tutorials: &lt;br /&gt;
** [http://kicad.sourceforge.net/wiki/index.php/DE:Mini_tutorial Mini-Tutorial]&lt;br /&gt;
** http://www.curiousinventor.com/guides/kicad&lt;br /&gt;
** http://xtronics.com/reference/kicad.html&lt;br /&gt;
* Usergroups:&lt;br /&gt;
** [http://tech.groups.yahoo.com/group/kicad-users/ Yahoo-KiCAD-Group]&lt;br /&gt;
* Tools&lt;br /&gt;
** [http://www.freerouting.net/ Freerouting] Autorouter&lt;br /&gt;
* Plattformen&lt;br /&gt;
** Mac: http://brokentoaster.com/kicad/&lt;br /&gt;
&lt;br /&gt;
[[Category:Schaltplaneditoren]]&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:5er.jpg&amp;diff=58143</id>
		<title>Datei:5er.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:5er.jpg&amp;diff=58143"/>
		<updated>2011-06-25T14:50:58Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58142</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=58142"/>
		<updated>2011-06-25T14:50:41Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bilder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58104</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=58104"/>
		<updated>2011-06-22T21:18:57Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* RS485-Bus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
*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;
&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58068</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=58068"/>
		<updated>2011-06-18T21:50:06Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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;
&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58067</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=58067"/>
		<updated>2011-06-18T21:48:48Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bekannte Fehler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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;
&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58066</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=58066"/>
		<updated>2011-06-18T21:48:30Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Stand der Dinge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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;
&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 fer 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58065</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=58065"/>
		<updated>2011-06-18T21:48:17Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bekannte Fehler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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;
&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 fer 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Port_extern.jpg&amp;diff=58064</id>
		<title>Datei:Port extern.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Port_extern.jpg&amp;diff=58064"/>
		<updated>2011-06-18T21:13:38Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58063</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=58063"/>
		<updated>2011-06-18T21:13:30Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_extern.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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;
&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Port_5v_intern.jpg&amp;diff=58062</id>
		<title>Datei:Port 5v intern.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Port_5v_intern.jpg&amp;diff=58062"/>
		<updated>2011-06-18T21:10:50Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58061</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=58061"/>
		<updated>2011-06-18T21:10:42Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:port_5v_intern.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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;
&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58060</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=58060"/>
		<updated>2011-06-18T21:08:11Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P8 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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;
&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:5v_extern.jpg&amp;diff=58059</id>
		<title>Datei:5v extern.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:5v_extern.jpg&amp;diff=58059"/>
		<updated>2011-06-18T21:07:43Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58058</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=58058"/>
		<updated>2011-06-18T21:07:36Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:5v_extern.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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;
&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:5v_zentral.jpg&amp;diff=58057</id>
		<title>Datei:5v zentral.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:5v_zentral.jpg&amp;diff=58057"/>
		<updated>2011-06-18T21:03:31Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58056</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=58056"/>
		<updated>2011-06-18T21:03:21Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:5v_zentral.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:Beispiel.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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;
&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Scanb_bottom.jpg&amp;diff=58039</id>
		<title>Datei:Scanb bottom.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Scanb_bottom.jpg&amp;diff=58039"/>
		<updated>2011-06-17T21:11:36Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Scanb_top.jpg&amp;diff=58038</id>
		<title>Datei:Scanb top.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Scanb_top.jpg&amp;diff=58038"/>
		<updated>2011-06-17T21:11:16Z</updated>

		<summary type="html">&lt;p&gt;Micha68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58037</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=58037"/>
		<updated>2011-06-17T21:08:28Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bilder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:Beispiel.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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;
&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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58028</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=58028"/>
		<updated>2011-06-16T22:41:32Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:Beispiel.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10uF und 100n abgeblockt.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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: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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58027</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=58027"/>
		<updated>2011-06-16T22:38:59Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:Beispiel.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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: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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58026</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=58026"/>
		<updated>2011-06-16T22:38:40Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:Beispiel.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
Die Leds werden an die Ausgänge D1-D24 angeschlossen.&amp;lt;br&amp;gt;Auf der Rückseite befindet sich ebenfalls eine Marlierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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: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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58025</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=58025"/>
		<updated>2011-06-16T22:34:33Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:Beispiel.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&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 ausreichen starken Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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: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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58024</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=58024"/>
		<updated>2011-06-16T22:32:47Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:Beispiel.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Allerdings ist dann die Hitzeentwicklung zu beobachten.&amp;lt;br&amp;gt;&lt;br /&gt;
Um die Ströme zu verteilen, macht es dann eventuell Sinn, alle 4 Gleichrichter zu bestücken und die Versorgungspins P4, P5, P6 und P8 aus einem Netzteil/Trafo zu versorgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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: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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58023</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=58023"/>
		<updated>2011-06-16T22:27:23Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bestückungsvarianten: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:Beispiel.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 20V) angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Der &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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: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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58022</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=58022"/>
		<updated>2011-06-16T22:21:03Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Bilder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:Beispiel.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 16V) angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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: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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58021</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=58021"/>
		<updated>2011-06-16T22:18:13Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Stand der Dinge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:Beispiel.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 16V) angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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. 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: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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS485_IO_Board_-_ModellBahnLichtSteuerung&amp;diff=58020</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=58020"/>
		<updated>2011-06-16T22:17:59Z</updated>

		<summary type="html">&lt;p&gt;Micha68: /* Stand der Dinge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:rs485_test.jpg|thumb|Testaufbau]]&lt;br /&gt;
&#039;&#039;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 -&amp;gt; 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 80x50mm klein sind.&lt;br /&gt;
Die DIP-Version ist für weniger geübte Löter und misst 80x100mm. 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 (2x 3-LED Ampel für Verkehr und 2x 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;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0xAA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sync-Byte&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moduladresse, oder 0 für alle&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1-24&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nummer des Ausgangs auf dem Modul&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-x&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Befehl&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0-255&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wert&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Die Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die RS485-Schnittstelle wird im Interupt abgewickelt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 &amp;quot;prog&amp;quot; (rot) den Programmierstatus an.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.&lt;br /&gt;
----&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;
* &#039;&#039;&#039;5V extern oder per 5V-Regler auf der Platine&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|5V zentral]]&lt;br /&gt;
|Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!).&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden.&amp;lt;br&amp;gt;&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:Beispiel.jpg|thumb|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).&amp;lt;br&amp;gt;&lt;br /&gt;
An P3 kann dann ein Netzteil oder Trafo (&amp;gt;9V, max. 16V) angeschlossen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 1-8&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|LEDs mit 5V]]&lt;br /&gt;
|Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge.&amp;lt;br&amp;gt;&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;
|}&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Beispiel.jpg|thumb|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.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 9-16&#039;&#039;&#039;&lt;br /&gt;
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interne 5V oder externe Versorgung für LED 17-24&#039;&#039;&#039;&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;
* &#039;&#039;&#039;Anschluss von LEDs und die Berechnung der Vorwiderstände&#039;&#039;&#039;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Anschluss von Lämpchen&#039;&#039;&#039;&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;
&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;
*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. 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: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;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:MoBaLiSt_PC.gif|thumb|200px|Konfigurations-Ansicht]]&lt;br /&gt;
|}&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 - bis auf den Atmega - 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 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>Micha68</name></author>
	</entry>
</feed>