TTL to RS-485 module

swarkn

swarkn

Stefans Schwerpunkte liegen im Umfeld von Betriebssystemen, serverbasierten Diensten und im weitesten Sinne in allgemeiner technischer Infrastruktur. Tagsüber mit strategischen IT-Themen beschäftigt, tackert er Nachts doch mal gerne ins schwarze Loch.
swarkn

Hallo zusammen,

ich möchte euch heute gerne die Baugruppe „TTL to RS-485 module“ vorstellen.

EDIT (02.05.2016): Wiring ergänzt.
EDIT (03.05.2016): Einfache Arduino MAX485 Library geschrieben.
EDIT (05.05.2015): Projektseite mit mehr Details erstellt.

Die beschriebene Baugruppe selbst ist nicht brandneu. Wann sie allerdings das erste Mal erschienen ist konnte ich nicht herausfinden. Erste Schaltungsbeispiele kommen aber aus den 90er Jahren.

Sie ermöglicht Daten über Distanzen von bis zu 1.2km zu übertragen, welche mit I2C oder OneWire nie erreicht werden könnten. Im Grunde konvertiert sie Serielle Bit-Stöme und überträgt diese via dem technischen Standard RS-485 (eigentlich EIA-485) über eine Zweidrahtverbindung zu einem Empfänger.

Der EIA-485 Standard stellt bei Verbindungen zu anderen Geräten die physische Verbindungsschicht des OSI Schichtenmodells dar und beschreibt daher nur die physischen und elektrischen Spezifikationen einer Datenübertragung. Von einem Übertragungsprotokoll wie IP (OSI Schicht 3) oder TCP (OSI Schicht 4) sind wir hier mal ganz weit weg.

Trotzdem – wenn so vieles fehlt, warum kann die Baugruppe so interessant sein und wie kann sie in räumlich verteilten Projekten gut eingesetzt werden? Den Antworten auf diese Fragen möchte ich mich in der folgenden Baugruppenbeschreibung nähern.

Beschreibung „TTL to RS-485 module“

Baugruppe

NameTTL to RS-485 module
Revisionunbekannt
Designunbekannt
Herstellerunterschiedlich (z.B. LC Tech. Inc)

Beschreibung

Der Hauptzweck dient der Verwendung einer standardisierten physischen Verbindung von mehreren Busteilnehmern. Man würde sich für die Verwendung beispielsweise deshalb entschieden, um keinen eigenen Verbindungsstandard zwischen einzelnen Baugruppen oder Sensoren entwickeln zu müssen.

Der EIA-485 Standard sieht das Verbinden von bis zu 32 Slaves (Empfänger) an einen Master (Sender) vor. Dabei sind je nach Kabellänge Übertragungsgeschwindigkeiten von bis zu 12Mbps möglich.

Die Baugruppe bietet eine vollständige Schaltung eines EIA-485 Schnittstellentreibers/-Empfängers, welche direkt kompatibel zu der seriellen Schnittstelle eines Arduinos ist.

Schaltungsbeispiele eines Schnittstellentreibers findet ihr unter anderem in einem pdf-Dokument auf embeddedsys.com.

Wie man einen EIA-485 Bus aufbaut, findet ihr in einem sehr guten pdf-Dokument von Texas Instruments.

Übertragungsprotokolle

Da es keine spezielle Treibersoftware für diese Baugruppe gibt, möchte ich euch hier auf einige mögliche Protokolle zur Kommunikation zwischen Busteilnehmern hinweisen.

MODBUShttp://www.modbus.org

Download | Spezifikation

PROFIBUShttp://www.profibus.com

kein Download | Spezifikation

DMXhttp://www.esta.org (auch RDM)

Download | Spezifikation

Chipsatz

MAX485maxim integrated

Bilder der Baugruppe

 TTL to RS-485 moduleTTL to RS-485 module

 Das Wiring

Arduino UNO/NanoTTL to RS-485 module
GNDGND
5VVCC
RxD (digital Pin 0)RO (receiver output)
TxD (digital Pin 1)DI (driver input)

Das Wiring (Control Input Voltage)

is master, sending:
receiver output enable (RE)=HIGHreceiver output (RO) = disabled
driver output enable (DE)=HIGHY & Z mode: driver output
is slave, listening:
receiver output enable (RE)=LOWreceiver output (RO) = enabled
driver output enable (DE)=LOWY & Z mode: line receivers
is master, not sending:
receiver output enable (RE)=HIGHreceiver output (RO) = disabled
driver output enable (DE)=LOWY & Z mode: line receivers

Original Beispiel-Code

MODBUS/tree/master/examples/Basic/Basic.pde

Unser Beispiel-Code

 Leider gibt es aktuell noch keinen Beispiel-Code von uns. Möglich wäre aber:

– Netzwerk mehrerer Umgebungssensoren (Temperatur, Luftfeuchtigkeit, Luftdruck, etc.)

Viel Spaß!

swarkn

pinterest

Tiny RTC I2C Module

swarkn

swarkn

Stefans Schwerpunkte liegen im Umfeld von Betriebssystemen, serverbasierten Diensten und im weitesten Sinne in allgemeiner technischer Infrastruktur. Tagsüber mit strategischen IT-Themen beschäftigt, tackert er Nachts doch mal gerne ins schwarze Loch.
swarkn

Hallo zusammen,

ich möchte euch heute gerne das Tiny RTC I2C Module vorstellen. Das Modul selbst dürfte alter Kaffee sein. Ich habe aber festgestellt, dass sich im Internet seit der ersten Veröffentlichung um 2010 wohl so einiges geändert hat. Es tummeln sich jede Menge veralteter Code und Libraries da draußen.

Wir hatten ohnehin vor, die Baugruppen in unserem Besitz auf unserer Seite ins rechte Bild zu setzen. *daumenhoch*

Baugruppe

NameTiny RTC I2C Module
Revisionv1.1
Designhttp://www.dfrobot.com (Waiman)
Herstellerunterschiedlich

Beschreibung

Der hauptsächliche Einsatzzweck des Tiny RTC I2C Modules ist sicherlich die zur Verfügungstellung des aktuellen Datums und Uhrzeit. Das Besondere ist in jedem Fall die integrierte Batterie. Das Datum und Uhrzeit sollte laut dem Designer mindestens 9 Jahre ohne externe Stromversorgung gepuffert werden. Interessant in Schaltungen, welche aus Stromspargründen nur wenige Male am Tag/Monat mit Strom versorgt werden.

Das Package unterstützt Schaltjahre, 12h und 24h Anzeige (abhängig von der verwendeten Bibliothek) und einen Kalender bis ins Jahr 2100. Weiter werden 4k programmierbarer EEPROM Speicher sowie 56Bytes nicht-flüchtigen RAM Speichers zur Verfügung gestellt.

Weitere Besonderheiten sind der Frequenz-Ausgang welcher für externe Schaltvorgänge verwendet werden kann, ein über I2C programmierbares EEPROM, sowie ein digitales Thermometer. Mögliche Taktungen für den Frequenzausgang sind 1, 4, 8 und 32Hz.

Software

Designers Libraryhttp://www.dfrobot.com

Download | Dokumentation

Unsere Empfehlunghttp://jeelabs.org

Download | Dokumentation

Chipsatz

DS130764 x 8, Serial, I²C Real -Time Clock
DS18B201-Wire Digital Thermometer

Sollte kein DS18x20 auf eurem Package verbaut sein, einfach kaufen und auf den Platzhalter löten (s. unten Bilder, Form beachten!).

24C32I2C EEPROM chip

Bilder des Tiny RTC I2C Module

 Das Wiring

Arduino UNO/NanoTiny RTC I2C Modules
GNDGND
5VVCC
analog 4SDA
analog 5SCL
digital 10DS

Original Beispiel-Code

examples/ds1307/ds1307.inohttp://github.com

Screenshot des seriellen Monitors

RTClib_output

Unser Beispiel-Code

Interoperatibilität DS18B20 & 24C32

Benutzen des DS1307 NVRAM

Möglich wären weiter:

Benutzen des 1Hz Frequenz-Ausganges

Viel Spaß!

swarkn

pinterest