mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einzelnes Byte von atmega8 zu atmega8 über langen Kabelweg senden?


Autor: Phillip P. (phillip)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin ein blutiger µC-Anfänger (bzw. hatte noch nie einen µC in der 
Hand, aber meine Bestellung ist unterwegs ;-)), und bin dabei 
Vorüberlegungen für mein "Jungfern-Projekt" anzustellen bzw. mich 
einzulesen.

Wenn ich das Projekt kurz schildern darf:

Ich bin Gitarrist und will einen Fußschalter (mit 8 Tastern) bauen, der 
mir über ein 5-10m Kabel ein Relais-Board ansteuert, welches 
verschiedene Gitarren-Effektgeräte aus dem Signalweg nimmt bzw. 
reinschaltet.

Im Fußschalter soll ein atmega8 sein, der einerseits meine 
Schaltzustände "toggelt" (und entsprechend 8 Status-LEDs ansteuert), 
sowie die 8-bit-Zahl, die den Zustand des Fußschalter repräsentiert, bei 
jeder Änderung über das lange Kabel an den zweiten atmega8 sendet. 
Programmieren will ich (erst mal) mit Bascom.

Meine Frage:

Welche Schnittstelle / welches Protokoll soll ich für die Übertragung 
nehmen?

(ideal wäre, wenn ich mit einem 5-adrigen Kabel auskommen könnte, 2 
Leitungen sind bereits für Masse und Stromversorgung vorgesehen)

Ich hatte eigentlich TWI/I2C im Auge, aber in einem Beitrag stand, diese 
wäre für lange Verbindungswege nicht geeignet (?). Warum ist das so - 
wegen der möglichen Einstreuungen?

Ich habe die Aufgabe, ein Byte über ein 5-10m Kabel zu schicken, wohl 
etwas unterschätzt :-/. Kann mir da jemand Tipps geben, damit ich mein 
neu gewonnenes Hobby nicht gleich wieder frustriert an den Nagel hänge 
;-)?

Danke und lg,
Phil

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RS232 ist dafür geeignet

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da auf der bühne doch einige geräte sind und kabel über kabel rumliegen 
..

wäre vlt eine RS485 verbindung im halbduplexmode was
man brauch 2 adern und vlt nen schirm ..
man könnte quasi eine XLR strippe verwenden die eh überall da rumliegt 
^^

wenn es nur die 2 teilnehmer sind .. is das gesammte protokoll sehr 
einfach


serielle schnittstelle mit max485 treiber
in den senderoutinen den sendepin aktivieren und gut is


bei 9600baud sind so ohne was mehre hundert meter möglich

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Phillip P. schrieb:
> Ich bin Gitarrist und will einen Fußschalter (mit 8 Tastern) bauen, der
> mir über ein 5-10m Kabel ein Relais-Board ansteuert, welches
> verschiedene Gitarren-Effektgeräte aus dem Signalweg nimmt bzw.
> reinschaltet.
schönes projekt!

> Welche Schnittstelle / welches Protokoll soll ich für die Übertragung
> nehmen?
das protokoll ist ja softwareseite - das musst du dir selber überlegen.
mein tipp wäre, keins zu verwenden und einfach jedes byte als daten zu 
verwenden.


> Ich hatte eigentlich TWI/I2C im Auge, aber in einem Beitrag stand, diese
> wäre für lange Verbindungswege nicht geeignet (?). Warum ist das so -
> wegen der möglichen Einstreuungen?
alles richtig.
ich würde dir eine differentielle übertragung empfehlen. rs422 zum 
beispiel.
differentiell heißt, dass zum eigentlichen signal noch das logisch 
inverse parallel mitübertragen wird.
sprich: eine 1 ist auf leitung A 5V und auf leitung B 0V.
das nutzsignal entsteht dann aus der wortwörtlichen differenz beider 
signale. dabei wird ausgenutzt, dass sich eingekoppelte störungen (R) 
auf leitung A und B gleich auswirken.
du hast also A+R und B+R. bei der subtrahierung (A+R)-(B+R) verschwindet 
die störung R wieder. so viel zum theoretischen exkurs.
du brauchst also 2 differentiell-wandler wie z.b. den max485 und 
entweder 2 oder 4 leitungen - je nachdem, ob du gleichzeitig senden und 
empfangen willst, oder nicht.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...und wenn man sich etwas tiefer mit der Materie auseinandersetzt, 
stellt man fest, dass man 2 oder 4 Leitungen PLUS MASSE braucht. Beim 
Auswählen der Kabel beachten ;-)
Gruss,
Thorsten

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
^^
naja 5 adriges XLR liegt auch meist in der kiste  :P

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde auch zu RS485 raten. Die Treiber sind auch nicht
teurer als RS232.
Als Kabel reicht Klingeldraht völlig aus.

TWI hat 4,7K gegen +. Das ist nicht besonders resistent gegen
Störungen von außen...

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thorsten schrieb:
> stellt man fest, dass man 2 oder 4 Leitungen PLUS MASSE braucht. Beim
er schreibt, dass spannung darüber übertragen wird. ich geh davon aus, 
dass masse da dabei ist =)

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und als protokoll

entweder  datenbyte + CRC
oder 2x das selbe datenbyte  hintereinander
mehr aufwand würde ich dort nicht betreiben

Autor: Phillip P. (phillip)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erst mal vielen Dank für die schnellen Antworten!!!
Ist das normal hier im Forum ;-)?

Ich werde mir also mal die vorgeschlagenen RS-Specs genauer ansehen.

Das heißt also ohne zusätzlichen Treiber ist das nicht umsetzbar?

Ich hatte als Kabelverbindung ein Midi-Kabel (5-polig) geplant. Ich 
möchte wie gesagt über dieses Kabel auch den im Fußschalter befindlichen 
mega8 und die LEDs speisen.

@Michael: Wenn dich das Projekt interessiert können wir ja in Kontakt 
bleiben, dann kann ich dir meine Resultate zukommen lassen. Für die 
Relais-Geschichte habe ich geeignete Schaltpläne für das Entprellen der 
Relais etc. gefunden (ist ja gar nicht so unheikel bei 
Gitarren-Signalen).

zu "differentielle übertragung": hmmm, das erinnert doch irgendwie an 
die Übertragung von Mikro-Pegeln über XLR? Ist ja dasselbe Prinzip...

Zum Senden/Empfangen: Eigentlich ist die Verbindung nur in eine Richtung 
(nennt man das Halb-Duplex?) - d.h. ich habe eine Chance mit 2 Leitungen 
+ Masse auszukommen, richtig?


HMMM, ok, danke für die Impulse - wenn noch mehr kommen, bin ich auch 
nicht böse :-).

LG! Phillip

Autor: Experte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> und als protokoll
>
> entweder  datenbyte + CRC

Wozu? Viel zu kompliziert!

Einfach zyklisch übertragen. Du willst ja nur von A nach B ein Byte 
übetragen.

Am einfachsten serielle Schnittstelle, z.B. mit 300 Baud, damit kannst 
Du 30 mal die Sekunde ein Byte übertragen. Das machst Du aber nur z.B. 
15 mal in der Sekunde, dann gibt es auch keine Probleme falls der 
Empfänger mal aus dem Tritt kommt.

In der Epfangssoftware kannst Du noch einen "Filter" einbauen z.B. nur 
wenn ein Byte zwei oder dreimal hintereinander gleich empfangen wurde, 
wird wirklich umgeschaltet. Damit bist Du sehr immun gegen Störungen.

Und bei 300 Baud, 15 Bytes die Sekunde reicht sogar ein einfacher 
Controller-Pin unsymetrisch als Ausgang. Ausgang am Sender und Eingang 
am Empfänger z.B. mit 470 Ohm in Serie schützen.

Das dürfte für den Anfang mehr als ausreichend sein.

Autor: flotter dreier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>entweder  datenbyte + CRC
>oder 2x das selbe datenbyte  hintereinander
>mehr aufwand würde ich dort nicht betreiben

wennschon mehrfach, dann 3-fach. von zweifach hat man garnix, weil man 
evtl. nicht weiß, welches der beiden nun falsch ist.

Autor: Phillip P. (phillip)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@experte:

OK, danke für den Tipp - klingt einfach ;-).


> Ausgang am Sender und Eingang
> am Empfänger z.B. mit 470 Ohm in Serie schützen.

Dumme Frage: D.h. der Widerstand kommt jeweils zw. Pin am Controller und 
der Leitung? Wovor schützt dieser Widerstand? Danke.

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der kommt nirgens hin =)
nimm lieber die "handfeste" variante mit dem differentiellen treiber.

Autor: Experte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Dumme Frage:

Gibt es nicht.

>  D.h. der Widerstand kommt jeweils zw. Pin am Controller und
> der Leitung?

Ja.

> Wovor schützt dieser Widerstand?

Am Ausgang schirmt der Widerstand die Kabelkapazität ab und macht das 
Signal auf dem Kabel "langsamer". Das verhindert Über- und 
Unterschwinger und schützt den Ausgang vor Überlastungen.

Am Eingang (und am Ausgang) begrenzt der Widerstand, falls doch Über- 
oder Unterschwinger auftreten oder Falls Störungen einstrahlen, die 
Ströme über die Schutzdioden auf erträgliche Größen.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich finde gerade hier sollte man nicht sparen !!
aufer bühne soll viel passieren ... aber die hardware muss sicher sein

ich würde beim max485 bleiben und gut
das ding isn 8pinner
alternativ SN75176 .. is baugleich zum max485 aber billiger


der portpin geht auch ... wenn aber dort störungen reinkommen ..
geht die sucherei los

auf kurzen strecken und zum testen kann man sowas machen ..
aber ansonst wenn es ein fester berieb sein soll ...
immer über einen treiber

Autor: H.J.Seifert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was auch sicher funktioniert - TTY-Schnittstelle mit 20mA.
Direkte Kopplung ist wirklich nicht zu empfehlen, wird bei der 
Leitungslänge aber auch funktionieren.
Im Bühnenbetrieb ist mit heftigen Störungen zu rechnen, zyklische 
Übertragung würde das aber überdecken.
Also: RS485.

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Treiberbausteine sind ja auch nicht furchtbar teuer.

Wenn Du später mal auf Drahtlosumsteigen willst, schau Dir mal die xBee 
Module an.

Gruß

Tom

Autor: Phillip P. (phillip)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Tipp mit xBee.
Sind aber relativ teuer, diese Module...?

Ich hab mir schon Threads zu den Pollin-Billig-Funkmodulen angesehen, 
vielleicht versuche ich es später mal damit.

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die xBees kosten so um die 20€ und ist eben zigBee standard. Ich 
sicherlich sicherer als die Billig Funkmodule.

Gruß

Tom

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz ehrlich:
Für Bühnentauglichkeit würde ich einen großen Bogen um Funk machen.

In Abwandlung des Sprichworts:
Wer WLAN kennt nimmmt Kabel

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na zigBee ist ja im gegensatz zu WLAN genau für zuverlässigen Einsatz 
bei kleinen Datenmengen konzipiert worden.

Ich baue gerade an einer Bühneneffektsteuerung für meine Auftritte mit 
zigBee Modulen.

Gruß

Tom

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.