Support
Wiki Documentation
Support Forum
Mobile
- andRoc Android
- Rocweb Browser
- WIO-Control ESP32
- Rocview Tablet
- RC-Cab Android
DIY
User
Wiki writer
Legal
Support
Wiki Documentation
Support Forum
Mobile
DIY
User
Wiki writer
Legal
Die ArduCAN Familie besteht aus Modulen zum Anschluss an den CAN-Bus. Allen gemein ist, dass sie auf Basis eines Arduino nano und eines gewöhnlichen CAN-Transceivermoduls aufgebaut sind. Der Aufbau ist auch für Lötneulinge relativ einfach möglich, da nur wenige Bauteile einzulöten sind und keine SMD-Teile verwendet werden.
Derzeit besteht die Familie aus:
ArduCAN Servo | ArduCAN-GBM Masse | ArduCAN-GBM Strom |
---|---|---|
![]() | ![]() | ![]() |
Der „ArduCAN-GBM Masse“ ist ein Decoder für den CAN-Bus auf Basis eines Arduino nano und verfügt über 20 vollständige galvanische getrennte Eingänge zur Rückmeldung. Damit ist der Decoder ideal geeignet als Masserückmelder im 3-Leiter-System. Eine Schiene wird isoliert und direkt an die Platine angeschlossen. Diese Schiene führt nun +5V (mehr als der Bezugspunkt, d.h. das Masseniveau des DCC-Signals). Wenn sich nun eine Achse im entsprechenden Gleisabschnitt befindet, wird das DCC-Signal eben auf diese Schiene geleitet und der ArduCAN-GBM Masse detektiert dies. Damit ist auf sehr einfache Art eine Rückmeldung möglich. Damit es keine Nachteile in der Kontaktsicherheit gibt, kann zusätzlich noch der allgemein bekammte Diodentrick angewendet werden. Ich hab mir dazu auch eine kleine Platine gemacht, die möglichst nahe am Gleis montiert wird. (Möglichst nahe, damit man einen dünnen Draht zum "ArduCAN-GBM Masse" führen kann. Dauf diesem Draht wird kein Strom in nennenswerter Menge fließen, sondern nur das Potential "geschnüffelt")
Es wurde eine vollständige galvanische Trennung zwischen Rückmeldung (d.h. Gleismasse) und Bus geachtet. Daher sind 2 "Arduinos" verbaut. Ein Arduino läuft auf der Masse des CBUS (derjenige in der Mitte der Platine), der andere auf der Masse des DCC-Signals. Beide Arduinos kommunizieren über Optokoppler miteinander. Die Stromversorgung erfolgt für die beiden Prozessoren aus dem CBUS bzw. aus dem DCC-Signal.
Zur Konfiguration kann der in rocrail bereits bestehendene Programmierdialog des CAN-GC2 verwendet werden. Dieser spricht die ersten 16 Kanäle an. Die Kanäle 17-20 können über den Programmiertab "Variablen" und "Events" konfiguriert (Invertierung des Signal, bzw. Anpassung der Eventnummer) werden.
Der „ArduCAN-GBM Masse“ wird an den CAN-Bus angeschlossen; entweder über D-Sub Stecker oder Standard-Netzwerkkabel, je nachdem welche Buchsen auf der Platine verbaut wurden. Der mit „Busende“ gekennzeichnete Jumper dient dazu den CAN-Bus zu terminieren. Dieser ist am Ende eines CAN-Bus Stranges zu setzen. Die u.g. Details zur Stromversorgung bitte ebenfalls beachten.
Nachdem der „ArduCAN-GBM Masse“ mit Strom versorgt ist, blinken die LEDs „RX“ und „TX“ des Arduinos für circa fünf Sekunden recht schnell. In dieser Zeit kann durch Drücken und Gedrückthalten des Arduinotasters ein Reset aller Einstellungen des Bausteines ausgelöst werden (Bitte erst Drücken, wenn die LEDs schon 4-5x geblinkt haben). Wenn der Reset abgeschlossen ist, leuchten die beiden LEDs „RX“ und „TX“ dauerhaft. Nun kann der Taster wieder losgelassen werden und der Baustein geht nach Neustart (Netztrennung) normal in Betrieb. Wird währed des Betriebes der Taster des Arduinos kurz gedrückt, so wechselt der Baustein in den Modus zum Einlernen der Knoten-Nummer.
Signal-LED | Bedeutung |
---|---|
„RX“ und „TX“ blinken schnell für circa 5 Sekunden | Initialisierung des Prozessors. Resetbefehl durch Drücken und Gedrückthalten des Tasters möglich. Taster erst drücken, wenn „RX“ und „TX“ schon 4-5x geblinkt haben. |
„RX“ oder „TX“ flackern | Datenübertragung zum 2.Arduino |
„RX“ und „TX“ aus | Normaler Betriebsmodus |
„RX“ und „TX“ blinken langsam | Prozessorfehler! Entweder Software nicht richtig eingespielt oder Probleme mit der Spannungsversorgung. |
Am mit DCC-IN gekennzeichneten Anschluss wird das DCC-Sgnal eingespeist. Dieses versorgt den "Fühler"-Chip und wird entsprechend bearbeitet auf die isolierte Schiene geleitet.
Der Decoder ist für den Eigenbau gedacht. Unbestückte Platinen oder programmierte Prozessoren können aber beim Verfasser (schumo99) angefragt werden. Ich helfe gerne!
Die 20 Eingänge sind in einer Leiste für Schraubklemmen im 3,5mm Raster an den Rand der Platine geführt.
Neben den Anschlüssen für die Reflexlichtschranken muss der ArduCAN-IR auch an den CAN-Bus angeschlossen werden. Das kann entweder über D-Sub-Stecker oder über RJ45-Buchsen erfolgen, so dass normale Netzwerkkabel verwendet werden können. Auch ein Mischbetrieb ist möglich. Der Vorteil der Netzwerkkabel ist, dass sie in allen Längen günstig überall zu finden sind. Dem steht der Nachteil gegenüber, dass die Strombelastbarkeit deutlich geringer ist. Deshalb ist die Möglichkeit gegeben auf den ArduCAN die Spannung erneut einzuspeisen und dadurch die geringere Strombelastbarkeit der Kabel auszugleichen. Dies ist nicht auf jedem Modul nötig, kann aber nach eigenen Wünschen von Zeit zu Zeit vorgenommen werden.
Ja nach gewünschter Konfiguration müssen auf der Unterseite der Platine die entsprechenden Lötjumper geschlossen werden. Welche Jumper bei welcher Kombination zu schließen sind, ist praktischerweise direkt auf der Platine aufgedruckt.
Die Anschlussbelegung der D-Sub Stecker/Buchsen ist identisch zum bereits bei anderen CAN-Bus Komponenten verwendeten Standard (siehe Punkt Anschlusskabel).
Die RJ45-Steckverbindung ist wie folgt beschaltet:
Pin | Belegung | Kabelfarbe |
---|---|---|
1 | +V Versorgung | ws/gn |
2 | +V Versorgung | gn |
3 | CAN L | ws/or |
4 | GND | bl |
5 | +V Versorgung | ws/bl |
6 | CAN H | or |
7 | GND | ws/br |
8 | GND | br |
Die Beschaltung der RJ45-Buchse entspricht der Belegung ab Version 2.0 aller anderen ArduCAN-Baugruppen.
Die Stromversorgung des erfolgt standardmäßig aus dem CAN-Bus. Der Lötjumper „Ext.Power“ auf der Unterseite bleibt standardmäßig offen. Dadurch wird der Kommunikations-Arduino mit dem Strom des CAN-Bus versorgt.
Folgende Möglichkeiten stehen zur Verfügung:
Ext.Power-Jumper | Bedeutung/Verwendung |
---|---|
nichts angeschlosssen | Standardbetriebsart. Der „ArduCAN-GBM“ Kommunikations-Arduino und alle Anschlüsse wird über den CAN-Bus mit Strom versorgt. |
Geschlossen Richtung CAN-Bus Stecker | Die Spannung des CAN-Busses wird über einen DC/DC-Wandler für den Kommunikations-Arduino aufbereitet. Dieser kann an die 4-poligen Kontakte eingesetzt werden (Sinnvoll, wenn die Busspannung im CBUS höher als 12V liegt.) |
Geschlossen, alle 3 Kontakte | Die auf der Platine bei "Ext.Power" angeschlossene Spannung wird in den CBUS geleitet und versorgt diesen mit Strom (Achtung; dient nur dazu evtl. Spannungsverluste im CBUS durch erneute Einspeisung aus der identischen Stromquelle auszugleichen) |
Fertig bestückte Decoder gibt es keine, jedoch kann ich Platinen und auch programmierte Prozessoren (nanos) abgeben. Für Fragen oder Hilfe stehe ich gerne im rocrailforum oder stummiforum zur Verfügung.
Beim Design der Platine wurde auf einfachen Aufbau geachtet. Daher sind keine SMD-Bauteile einzulöten. Stattdessen müssen hauptsächlich vorgefertigte Baugruppen über Buchsenleisten miteinander verbunden werden.
Anzahl | Bauteil | Verwendung |
---|---|---|
2x | Arduino Nano V3.0 5V | Mikroprozessor. Entsprechende "clones" sind auch möglich. Der darauf verbaute USB Chip ist irrelevant. |
1x | CAN-Bus Modul MCP2515 TJA1050 | CAN-Transceiver |
1x | DC/DC-Wandler | DC/DC-Wandler |
4x | Buchsenleiste 15-polig | Zum Aufstecken des Arduino nano |
1x | Buchsenleiste 7-polig | Zum Aufstecken des CAN-Transceivers |
2x | Buchsenleiste 2-polig | Zum Aufstecken des CAN-Transceivers |
2x | D-Sub Stecker/Buchse oder RJ45-Buchse | Zum Anschluss an den CAN-Bus |
1x | Steckerleiste 2-Pin | Terminierung des CAN-Busses |
5x | Widerstandsnetzwerk 22k z.B. SIL 8-4 22k | Strombegrenzung zum Schutz des Arduinos |
2x | Widerstandsnetzwerk 10k z.B. SIL 9-8 10k | Potentialverbinder zur Schiene |
1x | Widerstandsnetzwerk 10k z.B. SIL 5-4 10k | Potentialverbinder zur Schiene |
1x | Diode 1N400x | "Gleichrichtung" des DCC-Signals für die Stromversorgung |
1x | Elko 100µF 35V | Spannungsstabilierung |
1x | Keramischer Kondensator 100n | Spannungsstabilierung |
2x | Widerstand 220Ohm | Strombegrenzung für Optokoppler |
2x | Widerstand 4,7kOhm | Pull-up für Optokoppler |
2x | 6N137 | Optokoppler |
2x | GS 8 | IC-Sockel für Optokoppler |
Schraubklemmen für Anschluss der Gleise RM3,5mm (gesamt 20-Pins) | ||
Schraubklemmen für Anschluss des DCC-Signals RM5mm (gesamt 4-Pins) |
Wenn die Buchsenleisten nicht in der richtigen Länge zu bekommen sind, diese zuerst mit Säge/Feile auf die richtige Länge bringen (16 → 15-Pin bzw. 3 → 2-Pin). Dann einfach alle Bauteile einlöten und zum Schluss die programmierten Arduinos und den CAN-Transceiver aufstecken. Orientierung beachten! Achtung die Widerstandsnetzwerke 10k sind nicht symmetrisch. Der auf der Platine gekennzeichnete Pin muss mit dem auf dem Widerstand gekennzeichneten Pin übereinstimmen. So sieht der Melder ohne "Arduinos" aus.
Der Fühler-Arduino wird mit der Software „ArduCAN_GBM_Masse.hex“ programmiert. Die Fuses bei Standard-Arduinos können unverändert bleiben. Die mit "L" oder "LED" beschriftete LED muss deaktiviert werden, damit auch der Kanal 17 funktioniert. Ich empfehle einfach den Vorwiderstand, der sich direkt neben der LED befindet auszulöten.
Der Kommunikations-Arduino muss mit der Software „ArduCAN_GBM_Masse_Gateway.hex“ programmiert werden. Die Fuses sind so zu setzen, dass der Reset-Pin als I/O-Pin aktiviert wird. Es empfiehlt sich einen Bootloader zu benutzen, da sonst keine weitere Programmierung des Arduinos (z.B. Updates) mehr möglich ist.
Achtung: Werden die Fuses falsch gesetzt ist es möglich, dass der Arduino irreparabel beschädigt ist!
Wer es sich nicht zutraut, biete ich gerne an seinen/ihren Arduino zu programmieren oder einen bereits entsprechend programmierten Mikroprozessorbaustein zur Verfügung zu stellen. Gleiches gilt für Platinen.
Einfach kurze PN an schumo99
Der Verfasser übernimmt keine Verantwortung für Funktionsfähigkeit oder etwaige Schäden, die durch die Nutzung der Schaltung entstehen. Der Aufbau erfolgt auf eigene Verantwortung.
Gerberdateien und HEX-files können hier geladen werden: https://github.com/schumo99/ArduCAN-GBM-Masse
Matthias (schumo99)