Forum: Mikrocontroller und Digitale Elektronik Leitungslänge Raspberry->ATtiny 100m+ 1-wire oder Alternative


von Norbert (Gast)


Lesenswert?

Liebe Gemeinde,

ich plane zZ. ein Projekt mit einer relativ langen Leitung, bin aber neu 
im Thema Signalübertragung.

Als Steuerung und für das UI soll ein Raspberry zum Einsatz kommen, der 
über eine Signalleitung an einigen entfernten Relais eine 12V Spannung 
schalten soll. An jedem Relais ist ein ATTiny85 (hier: Digispark), der 
ein Signal für an/aus und ggf. ein paar weitere Werte empfangen soll 
(ein Datenpaket mit 2-3 Byte). Als Zuleitung steht 3x1,5mm² zur 
Verfügung, davon sind 2 Adern für die 12V der per Relais zu schaltenden 
Geräte belegt (am Ort der ATTinys ist also 12V verfügbar). Über die 
Gesamtstrecke von 100m+ werden verschiedene Relais-ATtinys-Boxen 
verteilt. Die  Übertragungsrate ist eher nebensächlich; wenn das 
Schaltsignal 'ne Sekunde Verzögerung hat wg. niedriger Datenrate wäre 
das kein Problem. Wenn der ATTiny dabei auch Werte von einem 
angeschlossenen Sensor senden könnte, wäre das schick.

Der Digispark hat i2c - würde sich also aufdrängen. i2c kommt aber nach 
meiner Recherche auf keinen Fall mit der Leitungslänge klar.
Kann 1-wire mit dieser Leitungslänge arbeiten? Ich finde immer nur 
Angaben, die auch eine Versorgungsspannung der jeweiligen Elektronik 
über die 1-wire-Ader vorsehen, was aber hier dank 12V "vor Ort" nicht 
nötig ist.
Ich mache mir Gedanken, ob 3,3V für 1-wire auf 100m+ nicht zu wenig 
sind. Oder verwenden Raspberry/ATTiny da 5V?

Da relativ viele der Relaisboxen zum Einsatz kommen, sollten die Kosten 
niedrig bleiben; all zu viele Zusatzbauteile würde ich gern vermeiden.

Danke für jeden Tip im Vorraus!

von TestX (Gast)


Lesenswert?

Bei 100m kommst du um tranceiver nicht herum. Evtl lin oder Single wire 
can solange es keine größeren emv Probleme gibt. Einfacher wäre 
definitiv ein richtiges bus Kabel mit 2 verdrillten Leitungen. Darüber 
kann man dann mit den richtigen transceivern auch i2c nutzen (oder 
gleich can..)

von Stefan F. (Gast)


Lesenswert?

Ich habe das vor langer Zeit mal gemacht, um das Bedienfeld einer 
Alarmanlage in ein benachbartes Gebäude zu duplizieren. Da standen nur 
zwei Drähte zur Verfügung.

Da habe ich die Daten mit 300 Baud auf die 12V Stromversorgung 
aufmoduliert, mit einem Pegel von ungefähr 0,5 Volt.

Da das Bedienfeld nur Tasten und ein unbeleuchtetes LCD hatte, also 
wenig Stromaufnahme, war das relativ simpel mit R/C Filtern und OP-Amps 
realisierbar.

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Da habe ich die Daten mit 300 Baud auf die 12V Stromversorgung
> aufmoduliert, mit einem Pegel von ungefähr 0,5 Volt.

Da hier noch eine Leitung frei ist, könnte man sich sogar den Luxus 
leisten, die Datenübertragung differentiell zu machen.

D.h.: man führt die 12V über zwei Adern und speist die Modulation 
gegenphasig ein. Damit ist DC-mäßig bereits alles in Butter, weil sich 
die Wirkung der Modulation aufhebt. Und was das Signal betrifft, trifft 
es sich glücklich, dass die Tiny85 dazu passende differentielle analoge 
Eingänge besitzen.

Mit diesem Ansatz sollten über 100m Datenraten bis um die 10kBaud sehr 
sicher mit recht geringem Aufwand an Hardware und Software machbar sein.

von Norbert (Gast)


Lesenswert?

Hm, die Idee mit Signal aufmodulieren hatte ich auch am Anfang, aber da 
hätte ich nichtmal einen Hauch von Ansatz, wie das umzusetzen wäre. Ich 
hatte die ein oder andere Stunden mit der Websuche dazu verbracht, aber 
die Diskussionen dazu waren weit über meiner Gehaltsklasse...

Hat jmd. einen Startpunkt, der auch für Nicht-Fernmeldetechniker 
geeignet wäre?

Danke!

von Norbert (Gast)


Lesenswert?

Hallo von TestX (Gast),
was ist denn "lin" bzw. "single wire can"? Ist single wire was anders 
als 1-wire?

Gruß,
Norbert

von Toni (Gast)


Lesenswert?

Sehr gute Erfahrungen habe ich mit dem RS485 Sytem von ICPcon (blaue 
Kisten), aber die Nachbauten davon, die auch Reichel't mal hatte (Marke 
Expert, wimre), liefen nicht so stabil. Die Produktpalette umfaßt 
verschiedenste I/Os, Relais, Sensoreingänge usw.
Auch MOXA war immer zuverlässig per Ethernet auf RS485 und hat in den 
Jahren seine Produktvielfalt ausgebaut. Damit könnte schon deine 
Eigenentwicklung entfallen. Die Preise sind zwar keine Schnapper, aber 
die Geräte dafür zuverlässig.

von Toni (Gast)


Lesenswert?

LIN ist eher für kurze Distanzen im KFZ mit Leitungslängen bis 40 m, 
wenn ich das recht sehe.
https://de.m.wikipedia.org/wiki/Local_Interconnect_Network

von Stefan F. (Gast)


Lesenswert?

Norbert schrieb:
> Hm, die Idee mit Signal aufmodulieren hatte ich auch am Anfang, aber da
> hätte ich nichtmal einen Hauch von Ansatz, wie das umzusetzen wäre.

Dann lass es besser, die Theorie dahinter ist nämlich wirklich nicht auf 
Anfänger-Niveau und die Schaltung müsstest du dann ja auch noch 
entwickeln, weil man das nicht fertig kaufen kann. Ist zu speziell.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Norbert schrieb:
> Als Zuleitung steht 3x1,5mm² zur Verfügung, davon sind 2 Adern für die
> 12V der per Relais zu schaltenden Geräte belegt (am Ort der ATTinys ist
> also 12V verfügbar).
Irgendwie müssen die ja auch versorgt werden...

Also hast du jetzt mit 12V und GND 2 der 3 Leitungen verbruacht und 
kannst auf der restlichen Ader noch das Steuersignal übertragen. Ich 
würde da drauf ein 12V Signal mit niedriger Baudrate modulieren und auf 
den Empfängern heftig filtern. Alles andere übersteigt dein Können und 
Wissen derzeit bei weitem (nein, das ist jetzt nicht böse gemeint, 
sondern nur realistisch, denn DU wirst hinterher Probleme haben, wenn 
die hocheffiziente Trickschaltung nicht funktioniert, und DU wirst im 
Zweifelsfall diese Probleme mit deinem Wissen beheben müssen).

Wieviele Daten musst du denn pro Sekunde übertragen? Wie schnell und oft 
musst du deine Relais umschalten?

Norbert schrieb:
> was ist denn "lin" bzw. "single wire can"?
Was sagt denn Google?
> Ist single wire was anders als 1-wire?
Ja, der Eindraht-CAN ist was anders als der 1-Wire Bus von Dallas. 
Bezeichnenderweise gibt es aber sowieso keinen "Eindrahtbus", weil immer 
auch die Masse als Bezugspunkt mit im Spiel ist.

Toni schrieb:
> Sehr gute Erfahrungen habe ich mit dem RS485 Sytem
Mag sein, geht mit 1 einzigen übrigen Ader halt nicht. Denn du darfst da 
nicht einfach eine der RS485/RS422 Leitungen auf GND oder 12V legen und 
zudem funktioniert eine differentielle Übertragung auch nur mit 
verdrilltem Kabel richtig gut, denn nur dann heben sich die 
eingekoppelten Störungen pro Verdrillung auf.

: Bearbeitet durch Moderator
von Stefan F. (Gast)


Lesenswert?

Für einen Draht würde ich RS232 Treiber nutzen, zum Beispiel den 
MAX3232. 100 Meter habe ich damit aber noch nicht gemacht. Meine längste 
Leitung war 25 Meter mit 38400 Baud. Da geht bestimmt noch was.

von M. K. (Gast)


Lesenswert?

Norbert schrieb:
> 3,3V für 1-wire auf 100m+

Du brauchst bessere Signalabstände. Auf 100m fängst Du Dir alles 
mögliche ein und dazu sind die Ports nicht gedacht oder geeignet.

LIN wäre doch okay.

Du brauchts ausserden eine CRC, um Übertragungsfehler zu erkennen zu 
können und ein Half Duplex Zugriffsprotokoll, um Daten hin und 
herschieben zu können.

von Bauform B. (bauformb)


Lesenswert?

Damals™ hat mit 20...60mA Kilometer überbrückt, Stichwort: 
Stromschleife.

von Norbert (Gast)


Lesenswert?

Lothar M. schrieb:
> Wieviele Daten musst du denn pro Sekunde übertragen? Wie schnell und oft
> musst du deine Relais umschalten?

Für die Relais sind ein/aus Signale nicht öfter als 1x pro 5 Minuten (so 
ganz grob) vorgesehen. Wäre aber natürlich schön, wenn das Relais 
innerhalb von ein, zwei Sekunden nach den Schalten am Raspberry auch 
reagiert. Es werden selten mehr als 3 Relais aktiv sein, daher wäre auch 
bei 20+ angeschlossenen Relais immer noch sehr wenige Signale zum 
ungefähr gleichen Zeitpunkt nötig.

Bei einem hier großzügigen 4-Byte Datenpaket x 3 Empfänger/Relais 
"gleichzeitig" wäre das wohl selbst mit BTX-Datenrate noch zu schaffen.

RS485 hatte ich auf dem Schirm, aber da müsste dann eben zusätzlich 
verkabelt werden, was die Kosten in die Höhe treibt, neben den 
RS485-Bausteinen natürlich.

Gruß,
Norbert

von Toni (Gast)


Lesenswert?

Stromschleife stimmt, ist bei M-Bus in der Datenübertragung mit 9k6, 
glaube ich, angwendet.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Norbert schrieb:
> RS485 hatte ich auf dem Schirm, aber da müsste dann eben zusätzlich
> verkabelt werden, was die Kosten in die Höhe treibt, neben den
> RS485-Bausteinen natürlich.
Die Idee war, eine der RS4xx Leitungen z.B. auf GND oder 12V zu legen 
und auf der anderen dazu differentiell das andere RX4xx Signal zu 
übertragen. Dazu müssen der RS4xx Sender und Empfänger natrülich 
potentialfrei ausgeführt werden.

Norbert schrieb:
> wenn das Relais innerhalb von ein, zwei Sekunden nach den Schalten am
> Raspberry auch reagiert.
> ... bei 20+ angeschlossenen Relais
Eine Baudrate von 50 Bit/s reicht also eigentlich schon locker aus, 
damit könntest du pro Sekunde netto 5*8 Bit übertragen und wenn du es 
wie Midi machst und den Telegrammbeginn mit einem gesetzten MSB 
kennzeichnest, bleiben bei 50 Bit/s und einer Rektionszeit von 1s netto 
35 Relais übrig.

Norbert schrieb:
> Kann 1-wire mit dieser Leitungslänge arbeiten?
Du könntest die Idee (Pulsdauermodulation), die hinter 1-Wire steckt, 
für dein Protokoll verwenden. Allerdings musst du halt auch wesentlich 
niedrigere Baudraten fahren.

von Stefan F. (Gast)


Lesenswert?

Lothar M. schrieb:
> Die Idee war, eine der RS4xx Leitungen z.B. auf GND oder 12V zu legen

Ich denke, das geht völlig am Sinn von RS4xx vorbei.

von Christian K. (christian_rx7) Benutzerseite


Lesenswert?

Sieh dir doch mal die Hardware für DALI an, ist für 300m auf 1,5mm² 
ausgelegt, kommt mit UART aus und ist günstig.

von Norbert (Gast)


Lesenswert?

M. K. schrieb:
> LIN wäre doch okay.

Klingt in der Tat gut. Die genannten 40m max. scheinen für 19200 Baud zu 
gelten, ich würde also hoffen, dass bei geringerer Datenrate auch mehr 
Länge drin in.

Da gehe mal nach Bibliotheken für den Attiny/Raspberry suchen.

Grüße,
Marobert

von c-hater (Gast)


Lesenswert?

Lothar M. schrieb:

> Ich
> würde da drauf ein 12V Signal mit niedriger Baudrate modulieren und auf
> den Empfängern heftig filtern. Alles andere übersteigt dein Können und
> Wissen derzeit bei weitem

Das ist wohl eine ziemlich realistische Einschätzung.

> Wieviele Daten musst du denn pro Sekunde übertragen? Wie schnell und oft
> musst du deine Relais umschalten?

Genau das ist der springende Punkt. Wenn man mit ein paar Bit/s 
auskommt, hängt man sich nicht freiwillig all die Probleme ans Bein, die 
entstehen, wenn man halt mehr braucht...

> zudem funktioniert eine differentielle Übertragung auch nur mit
> verdrilltem Kabel richtig gut, denn nur dann heben sich die
> eingekoppelten Störungen pro Verdrillung auf.

Naja, das ist dann doch etwas sehr vereinfacht. Klar ist tatsächlich 
nur, dass eine enge paarweise Verdrillung die Sache einfacher (und auch 
relativ einfach berechenbar) macht. Das schließt allerdings nicht aus, 
dass differentielle Übertragung bei weniger idealen Medien nicht auch 
dramatische Vorteile gegenüber single-ended haben könnte.

Bitte zu bedenken: Typische Kabel sind allesamt "verseilt". Das ist 
natürlich sehr viel lockerer als eng verdrillte Paare und es sind da 
noch ein (oder mehrere) weitere Leiter mit im Verbund. Aber das 
Grundprinzip der differentiellen Übertragung funktioniert auch hier. Nur 
halt weniger gut.

von Tilo R. (joey5337) Benutzerseite


Lesenswert?

Deine Beschreibung liest sich ja so, dass nur der Raspi sendet, alle 
anderen Knoten am Bus "hören" nur.
D.h. es gibt keinen Rückkanal. Das ist ein wichtiger Punkt bei dem du 
dir sicher sein musst.

Solltest du einen Rückkanal brauchen (und sei es nur für das "Ack, habe 
verstanden") ist das eine ganz andere Spielwiese.
Und dann müsstest du dir überlegen, ob ein Master-Slave-System reicht 
(d.h. der Raspi "fragt" jeweils einen einzelnen Knoten, der dann 
antwortet) oder ob du einen "richtigen" Bus brauchst, auf dem jeder 
Knoten etwas senden kann wenn er Bedarf hat. (Dann braucht man 
Verfahren, die den Buszugriff regeln und auch das Problem lösen, wenn 
zwei entfernte Knoten gleichzeitig anfangen zu senden)

Aber nehmen wir den einfachsten Fall an, nur der raspi sendet.
Ich würde es auch (wie oben schon von anderen vorgeschlagen) mit einem 
UART und den Signalpegeln GND und 12V probieren. Da brauchst du am 
wenigsten extra-Hardware.

Tips, wenn es nicht so toll funktioniert:
* Baudrate runter. 9600, 4800, 1200 oder noch weniger reicht für deine 
Aufgabenstellung
* Serienterminierung. Auf der Senderseite ein Serienwiderstand von 75 
Ohm in der Datenleitung kann helfen. (Die Idee ist, dass der mit dem 
Wellenwiderstand der Leitung einen 1:1 Spannungsteiler bildet. Wenn das 
gesendete Signal dann nach der Reflektion am offenen Ende der Leitung 
als Welle zurückkommt frisst dieser Widerstand sie auf und der 
Spannungspegel passt dann überall)
* CRC oder zumindest das Parity-Bit als Checksumme wurden ja schon 
genannt. Du kannst Befehle auch 3x wiederholen und die Mehrheit bilden.

* Wenn das alles immer noch nicht reicht (was ich allerdings nicht 
erwarte) kann man überlegen, ob man bei den Knoten unterwegs oder am 
Ende der Leitung noch mit einem Widerstand und Dioden gegen 12V und GND 
klemmt. Das würde dann Überschwinger auf der Leitung bremsen. Wie Lothar 
schon sagte: bei den Empfängern filtern. Schmitt-Trigger-Eingänge sind 
auch eine Option.

: Bearbeitet durch User
von Tilo R. (joey5337) Benutzerseite


Lesenswert?

Atmel hat mal eine Application Note gemacht, wo sie auf einer Leitung 
Halb-Duplex mit einem Software-UART machen, der einen 
Open-Collector-Ausgang mit Pullup-Widerstand ansteuert.
http://ww1.microchip.com/downloads/en/AppNotes/AVR274.pdf

Du hast den Luxus von Hardware-UARTs (UART im Raspi und das Universal 
Serial Interface im Tiny), es wird also einfacher.

Für den Buszugriff musst du selber ein Master-Slave-Protokoll bauen, 
d.h. jeder Tiny sendet nur nachdem er vom Raspi gefragt wurde.
Mit den Bitraten musst du im Vergleich zur Application Note deutlich 
runter (ich würde aber bei Vielfachen von 50Hz bleiben). Grund ist auch, 
dass sendende Knoten auch irgendwo in der Mitte vom Kabel sitzen können. 
Die schöne Serienterminierung, mit der Reflektion am gegenüberliegenden 
Ende, funktioniert dann natürlich nicht mehr.

LIN und CAN sind interressant zu lesen, aber aus Kostengründen hier 
nicht erste Wahl.

von A. S. (Gast)


Lesenswert?

Die wichtigste Frage:
a) Alle parallel? (also Bus)
b) oder hat jeder Tiny seine eigene Kommunikationsleitung?
c) Oder Daisy Chain?


a) wie viele in etwa und wie lang in Summe?

b) das wäre das einfachste

c) dann spielt die Anzahl keine Rolle, sondern die Zeiten

bei b oder c sind 100m mit 10k auch mit einer Leitung und bidirektional 
kein Problem, jedoch evt. das Timing.

von Norbert (Gast)


Lesenswert?

> Deine Beschreibung liest sich ja so, dass nur der Raspi sendet, alle
> anderen Knoten am Bus "hören" nur.

Ja, das ist die primäre Anforderung. Wie es aber so ist, wenn erstmal 
was da ist, kommen Ideen und Anforderungen hinzu. Hier würde ich aber 
bei Polling durch den Raspberry-Master eine Grenze ziehen (Status des 
Relais oder einen  ggf. am Attiny angehängten Sensor abfragen). Ein 
aktives Senden von Attiny kann ich in der Anwendung weg definieren.

Daher scheint mir das genannte LIN gut zu passen.

Danke für die Tips bzgl. der Verschaltung!

Gruß, Norbert

von Norbert (Gast)


Lesenswert?

Tilo R. schrieb:

> LIN und CAN sind interressant zu lesen, aber aus Kostengründen hier
> nicht erste Wahl.

Tilo, danke für den Link.

Bzgl. LIN: sprichst Du da von Lizenzkosten, oder Hardwarekosten? Ich 
hatte everstanden, dass sich LIN als Protokoll in Software abbilden 
lässt.

Gruß, Norbert

von Johannes S. (Gast)


Lesenswert?

Können RPi und Tiny auch 9 Bit und Multiprozessor Mode? Damit ginge das 
über RS485 auch einfach und effizient.

Für den AVR habe ich das gefunden:
Beitrag "Multi-processor Communication Mode AVR"

Edit:
Ok, 3 Leitungen, ziehe meinen Vorschlag zurück.

Die STM32 haben LIN Unterstützung in HW.

von Norbert (Gast)


Angehängte Dateien:

Lesenswert?

A. S. schrieb:
> Die wichtigste Frage:
> a) Alle parallel? (also Bus)
> b) oder hat jeder Tiny seine eigene Kommunikationsleitung?
> c) Oder Daisy Chain?

Hallo A.S.

Es gibt wie beschrieben 3 Adern, die sich alle teilen müsssen, also Bus. 
(Wenn ich je eine Adern pro Attiny/Relais hätte würde einfach die Relais 
direkt ab Rasberry anklemmen.)

Die verfügbare freie 1,5mm² "Signalader" liegt vom Rasbperry bis zum 
letzten Attiny/Relais (ca. 100m), zusammen mit den 12V/GND-Adern. Alle 
anderen Relais sind irgendwo dazwischen. Wie viele Relais es wirklich 
werden wird die Praxis zeigen; ich plane vorsorglich mit 10-20. Das 
Timing darf gern im Bereich von manuellem Morsen sein ;-)

Ich hänge mal eine Skizze an.

Grüße,
Norbert

von Tilo R. (joey5337) Benutzerseite


Lesenswert?

Norbert schrieb:
> Tilo R. schrieb:
>
>> LIN und CAN sind interressant zu lesen, aber aus Kostengründen hier
>> nicht erste Wahl.
>
> Tilo, danke für den Link.
>
> Bzgl. LIN: sprichst Du da von Lizenzkosten, oder Hardwarekosten? Ich
> hatte everstanden, dass sich LIN als Protokoll in Software abbilden
> lässt.

Von der Hardware ist LIN wie in der verlinkten Application Note nur ein 
Wired-OR, da ist kein Unterschied. Und Lizenzkosten wären mir egal. (Du 
programmierst irgendwas, schreibst nicht LIN drauf und es funktioniert 
halt so ähnlich.)
Was ich meinte: LIN legt auch das gesprochene Protokoll fest (bin da 
zugegeben kein Experte). LIN hat vorgegebene Busbefehle, eine Checksumme 
und Knoten müssen ihr eigenes Signal kontrollieren. Das ist alles gut 
und schön und die Geräte sind dann auch kompatibel. Mit einem 
einfacheren, selbstausgedachten Protokoll bist du aber vermutlich 
schneller am Ziel.

Zu CAN: CAN ist toll und nimmt einem viel Arbeit ab. Es ist Multimaster, 
regelt den Buszugriff, hat Fehlererkennung und Checksumme und alles in 
Hardware, ohne dass man sich drum kümmern muss. Das lohnt sich auf jeden 
Fall mal anzuschauen, welche Gedanken die sich gemacht haben und welche 
Fehler erkannt werden.
Aber man braucht zwingend einen CAN-Controller, in Software geht das 
nicht. Und die ganzen Features nützen dir in deinem 
Master-Slave-Szenario nur begrenzt.

von A. S. (Gast)


Lesenswert?

Norbert schrieb:
> Alle anderen Relais sind irgendwo dazwischen.

Dann ist das einfachste (robusteste) für unidirektional: ein Treiber 
0/3.3V, 20mA, 110...150R in Reihe, hinten der gleiche Widerstand ans 
Ende gegen gnd und in jedem tiny ein Komparator bei ~0.7V.

Einfacher Uart, mit 0V Ruhepegel (also invertiert)

Und Rückkanal auf gleicher Leitung halt mit Serien-schottkydiode (0.3V) 
an jedem tiny-TX + 110R.
Ja, eigentlich sollte dann die Schwelle am raspi tiefer liegen, da 1V 
max, aber da die Flanken unsymmetrisch sind, eher nicht.

von Horst72 (Gast)


Lesenswert?

Wenn man den Kosten- und Bastelfaktor außen
vor läßt, dann wäre das Ganze doch eine schöne
Aufgabe für ein bekanntes/funktionierendes
Bus-System, wie z.B. KNX oder LCN oder
auch Loxone Tree o.ä.

von Johannes S. (Gast)


Lesenswert?

3x 1,5 qmm reicht auch so gerade eben um einen ESP mit Strom zu 
versorgen, Daten dann per WLAN. Warum wurde diese   Lösung hier im ESP 
Forum noch nicht genannt :)

von Stefan F. (Gast)


Lesenswert?

Johannes S. schrieb:
> Warum wurde diese Lösung hier im ESP Forum noch nicht genannt

100 Meter

von Johannes S. (Gast)


Lesenswert?

Mit ner halbwegs guten Antenne (Ikea Klobürstenhalter aus Edelstahl) 
schafft man auch 1000m. Gut, sollte Sichtverbindung haben.
War aber nicht ganz Ernst gemeint.

von Stefan F. (Gast)


Lesenswert?

Johannes S. schrieb:
> Mit ner halbwegs guten Antenne (Ikea Klobürstenhalter aus Edelstahl)
> schafft man auch 1000m.

Du hast jetzt die Gelegenheit, es zu beweisen.

von Norbert (Gast)


Lesenswert?

Tilo R. schrieb:

> und schön und die Geräte sind dann auch kompatibel. Mit einem
> einfacheren, selbstausgedachten Protokoll bist du aber vermutlich
> schneller am Ziel.

Hallo Tilo,
ah, ok. Ja, eigenes Protokoll ist nachvollziehrbar und natürlich 
überlegenswert; eine Aufwandasabwägung natürlich. Ich war über den 
Hinweis auf Kosten gestolpert.

Grüße, Norbert

von Johannes S. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Du hast jetzt die Gelegenheit, es zu beweisen.

Das hier habe ich mit einem Kumpel mal nachgebaut, er hat damit rund 800 
m überbrücken können. Ist schon etwas her, mittlerweile hat das Dorf 
auch Glasfaser.
https://www.heise.de/ct/artikel/WLAN-Richtfunk-mit-Hausmitteln-221433.html?seite=all

von Norbert (Gast)


Lesenswert?

Johannes S. schrieb:
> 3x 1,5 qmm reicht auch so gerade eben um einen ESP mit Strom zu
> versorgen, Daten dann per WLAN. Warum wurde diese   Lösung hier im ESP
> Forum noch nicht genannt :)

Hallo Johannes,

Funk ist keine Option. Aussenbereich, Master im Innenbereich, lange 
Wege, keine Sichtverbindung. WLAN, Bluetooth, LoRa, 433 Mhz etc. hatte 
ich zuerst eruiert & verworfen.

Grüße, Norbert

von Klaus R. (klara)


Lesenswert?

Stefan ⛄ F. schrieb:
> Für einen Draht würde ich RS232 Treiber nutzen, zum Beispiel den
> MAX3232. 100 Meter habe ich damit aber noch nicht gemacht. Meine längste
> Leitung war 25 Meter mit 38400 Baud. Da geht bestimmt noch was.

Eine Halbierung der Datenrate bringt in der Regel die doppelte 
Reichweite.

38400 Baud = 25 m
19200 Baud = 50 m
9600  Baud = 100 m
4800  Baud = 200 m
mfg klaus

von Nils S. (wall-e)


Lesenswert?

Klaus R. schrieb:
> Stefan ⛄ F. schrieb:
>> Für einen Draht würde ich RS232 Treiber nutzen, zum Beispiel den
>> MAX3232. 100 Meter habe ich damit aber noch nicht gemacht. Meine längste
>> Leitung war 25 Meter mit 38400 Baud. Da geht bestimmt noch was.
>
> Eine Halbierung der Datenrate bringt in der Regel die doppelte
> Reichweite.
>
> 38400 Baud = 25 m
> 19200 Baud = 50 m
> 9600  Baud = 100 m
> 4800  Baud = 200 m
> mfg klaus

Alles andere als RS232 wäre wahrscheinlich komplett oversized.
Die für wenige Cent kaufbaren RS232 Transceiver sind auch ESD-fest und 
in der Regel unkaputtbar.
Echter RS232 hat einen so hohen Signalpegel das Störungen keine Chance 
haben.

von MiWi (Gast)


Lesenswert?

Nils S. schrieb:
> Klaus R. schrieb:
>> Stefan ⛄ F. schrieb:
>>> Für einen Draht würde ich RS232 Treiber nutzen, zum Beispiel den
>>> MAX3232. 100 Meter habe ich damit aber noch nicht gemacht. Meine längste
>>> Leitung war 25 Meter mit 38400 Baud. Da geht bestimmt noch was.
>>
>> Eine Halbierung der Datenrate bringt in der Regel die doppelte
>> Reichweite.
>>
>> 38400 Baud = 25 m
>> 19200 Baud = 50 m
>> 9600  Baud = 100 m
>> 4800  Baud = 200 m
>> mfg klaus
>
> Alles andere als RS232 wäre wahrscheinlich komplett oversized.
> Die für wenige Cent kaufbaren RS232 Transceiver sind auch ESD-fest und
> in der Regel unkaputtbar.
> Echter RS232 hat einen so hohen Signalpegel das Störungen keine Chance
> haben.

Echter V24/RS232 hat so geringe Eingangswiderstände und 
Ausgangsimpedanzen  das Signale über lange Leitungen am Empfänger nicht 
mehr im zulässigen Spannungspegel sind.

Darum wurden für solche Anforderungen Stromschleifen mit dem selben 
Protokoll verwendet, die lösen auch ausreichend Robust das Problem der 
unterschiedlichen GND-Pegel, vor allem wenn nebenan ein gröberes 
Stromgewitter, sei das durch eine Halle mit Neonröhren, ein brizzelnder 
Schalter oder ein Blitz in der mittelbaren Umgebung verusacht.

es hat schon einen Grund warum bei EMV-Messungen Leitungslängen über 30m 
deutlich heftiger getestet werden als Leitungen, die kürzer als 30m 
sind.

Als Protokoll bietet sich MIDI an, das Rad muß nicht neu erfunden 
werden, damit wäre das "alle höhren zu und einer sendet" schon einmal 
relativ elegant erledigt, der TE braucht es ja nicht mit 31,5kbaud 
fahren... eine Ringleitung genügt, damit wäre auch ein Rückkanal 
möglich.

von Einer K. (Gast)


Lesenswert?

Nils S. schrieb:
> Die für wenige Cent kaufbaren RS232 Transceiver sind auch ESD-fest und
> in der Regel unkaputtbar.
Auch das ist mittlerweile leider den Bach runter gegangen...
Suche mal nach "Fake Max232"

von Nils S. (wall-e)


Lesenswert?

Arduino Fanboy D. schrieb:
> Nils S. schrieb:
>> Die für wenige Cent kaufbaren RS232 Transceiver sind auch ESD-fest und
>> in der Regel unkaputtbar.
> Auch das ist mittlerweile leider den Bach runter gegangen...
> Suche mal nach "Fake Max232"

Wer sich ICs beim Chinamann bestellt hat selber Schuld. Kein Mitleid !


you get what you pay for

von Johannes S. (Gast)


Lesenswert?

LIN Bus hört sich doch wirklich brauchbar an, Transceiver bekommt man 
bei Reichelt oder Distris. Nur die Auswahl ist erschlagend groß.
Und wie schon vorgeschlagen, mit Master Slave Ping Pong muss man ja 
nicht irgendwelche komplexen Standards implementieren. Oder gibts 
günstige Komponenten aus dem KFZ die man verbinden könnte?

von Stefan F. (Gast)


Lesenswert?

Nils S. schrieb:
> Echter RS232 hat einen so hohen Signalpegel das Störungen keine Chance
> haben.

RS232 erfordert, dass beide Kommunikationspartner das gleiche GND 
Potential haben. RS422 und RS485 erlauben hingegen einige Volt 
differenz.

von wall-e (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Nils S. schrieb:
>> Echter RS232 hat einen so hohen Signalpegel das Störungen keine Chance
>> haben.
>
> RS232 erfordert, dass beide Kommunikationspartner das gleiche GND
> Potential haben. RS422 und RS485 erlauben hingegen einige Volt
> differenz.

Er hat aber nur eine Signalleitung.

von A. S. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Für einen Draht würde ich RS232 Treiber nutzen, zum Beispiel den
> MAX3232.

Wenn die Laufzeit des Signals in die Größenordnung der Baudrate kommt, 
wird die Annäherung des Eingangswiderstands an den Wellenwiderstand 
wichtig.

200m wären etwa 1µs. Mit 5k Eingangswiderstand und 110 Wellenwidertand 
läuft Dir das Signal quasi wie eine E-Funktion mit 40 Stufen = 40µs 
(kannst Du am Oszi einfach nachstellen, aber nimm richtige Widerstände).

Darum ist es sinnvoller, mit 3V und 2*110...160R zu arbeiten. Ist auch 
einfacher, wenn Ports/Treiber direkt 20mA können (Dann halt 165R nehmen 
für Kurzschluss-Fehler). Damit kommst Du ein vielfaches weiter. Probleme 
machen die kleinen Spannungen, wenn der GND nicht stabil ist und sich 
z.B. um 0.5V durch die parallel betriebene Last anheben kann. Dann ist 
es besser, z.B. mit 12V-Signalen zu arbeiten, mit z.B. 1k beim Sender 
(Und klar, je hochohmiger der Sender, je störanfälliger)

Beim Empfänger ist es optimal, wenn der Pegel etwa 1.5V beträgt. Dann 
reicht ein Transistor, 2 Dioden (eine gegen negative Spannungen, eine 
von Basis zum Kollektor gegen Sättigung) und 3 Widerstände (110 
Eingangswiderstand, ~1k Basis, ~10k Kollektor) statt Komparator.

Mit sowas kannst Du einen Uart über 100m bei 100k betreiben.

Die RS232 ist nicht für Reichweiten sondern für Kompatibilität und 
Einfachheit. Egal was der Sender liefert (+5/-5, +15/-15, +5/0, +15/0, 
mit 1mA oder 100mA, mit guten Kabeln oder schlechten, mit 
Potentialanhebungen zwischen den Geräten ...) der Empfang klappt 
trotzdem meist für alle direkten Verbindungen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.