Forum: Mikrocontroller und Digitale Elektronik NGW100 mit Linux -RS485 über USART-


von Philipp H. (ennox)


Lesenswert?

Hallo alle zusammen,

ich bin derzeit dabei dem NGW100 über Usart3 das RS485 Protokol 
beizubiegen.
Genauer gesagt ich versuche das DMX Protokol darüber abzuwickeln.

Ich kann dem Gerät zwar die Geschwindikeit sagen, mit der es laufen 
soll, aber habe keinen Befehl gefunden,der den Port in den RS485 Modus 
schaltet.Laut Atmel ist das möglich.

Beim Durchstöbern dieverser Foren, bin ich häufig auf die Problematik 
Userspace und Registerzugriff gestoßen. Man kann also aus dem Userspace 
keinen direkt Registerzugriff durchführen. Würde auch mit dem Embedded 
System vollkommen konträr laufen.

Doch alle Beiträge sind von 2008 und älter.Sie beschreiben das es keine 
Implementation von dieser Moduswahl im Treiber für Usart gibt.
Sie sprechen daher immer von einem Kernelhack um den Treiber dazu zu 
veranlassen den RS485 Modus zu benutzen.

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=60750&start=20

Ich habe aber keine FAQ zu diesem Thema, geschweige denn genaue Angaben 
über die durchzuführeneden Änderungen in den Kerneldatein gefunden.

Weis einer von euch eventuel was ?

von ... (Gast)


Lesenswert?

frag mal hier nach:
http://www.mediamatech.com/

von Gast1 (Gast)


Lesenswert?

viellecht hilft das weiter

http://www.terminal-systems.de/software-tools.htm
 Rubrik RS485 KERNEL TREIBER
   mal den FTP Server duchsuchen
    ftp://www.ssv-embedded.de/ssv/products/trm916-rev-b/sample/1520/linux/se 
rial/

von Philipp H. (ennox)


Lesenswert?

danke

ich habe mir gerade mal ein wenig mit linux26-menuconfig die möglichen 
Kernel Einstellungen angeschaut. Die haben da irgentwas mit userspace 
i/o devices im Angebot, nur ob der rs485 dabei ist stand da natürlich 
nicht. Einfach mal testen würde ich da sagen.

von ... (Gast)


Lesenswert?

wenn, solltest du auf jeden Fall das mainstream buildroot nehmen. Die 
builds auf der Atmel Seite sind veraltet.
http://buildroot.uclibc.org/download.html

von Weingut P. (weinbauer)


Lesenswert?

naja, ne Softwarelösung ist zwar möglich, für DMX aber nicht unbedingt
nötig, da das eh nur eine Simlexverbindung ist kann der Master
einfach der 485-Baustein auf Dauersenden gelötet werden.
Wenns Halbduplex sein soll kannste auch einfach nen CAN Baustein
verwenden z.B. PCA82C250, dann brauchts die aktive Umschaltung nicht.

von Philipp H. (ennox)


Lesenswert?

Wie gesagt es wird ein reiner DMX - Tranmitter. Ich brauch keine 
Umschaltung. Halt nur den Zustand "ON" und "OFF". Der USART soll im 
asyncronmodus bloß die Daten rausgeben. Die Perepherieschaltung steht 
mit optokoppler und RS485 Baustein im Dauersendebetrieb. Was das NGW 
leisten soll ist lediglich, 250kbis an Baudrate 2 Stopbits 1 Startbit. 
Das Mark after Breaksignal wird simuliert durch usart "OFF". Die Zeit 
von 0,7 Sekunden in denen ein DMX Empfänger wartet bis "Blackout" wird 
genutzt um Daten anzuliefern. Es sind 6 Fader die über D/A Wandler an 
I^2C die Werte geben.

Oder habe ich da noch was falsch verstanden ?

Der RS485 Baustein ein "SN65176B" brauch doch die Stopbits und Startbits 
um umzuschalten. Ich habe daher nur den sende POrt des Usart 3 auf den 
OPtokoppler geführt.

von Weingut P. (weinbauer)


Lesenswert?

Philipp H. schrieb:
> Der RS485 Baustein ein "SN65176B" brauch doch die Stopbits und Startbits
> um umzuschalten.

der SN65176B braucht selbst garkeine Bits, der winkt nur alles was 
ankommt durch, die Richtung des Datenflusses ob Sender oder Empfänger 
wird einfach über DI - RE festgelegt.
Da der am DMX Master aber eh nur sendet kannst Du die auch gleich fest
an GND legen.

Ach so, eins noch, Abschlusswiderstände nicht vergessen und GND mit 
durchschleifen von Master zu Slave.

von Philipp H. (ennox)


Lesenswert?

Das ist alles schon gereglt, die Hardware steht.Mein Problem ist 
eigentlich nur, dass ich den Port dazu bringen muss vor jedem Byte, 1 
Startbit und nach jedem Byte, zwei Stoppbits zu senden. Das Ganze dann 
noch mit der passenden geschwindigleit von 250000 bits/s.
Deswegen bringt mich die Aussage mit der Softwarelösung ein wenig 
durcheinander.

Oder brauch ich gar nicht in den RS485 Modus ?

Wenn das so wäre, müsste ich den Port ja nur sagen "2 Stoppbits" , denn 
das Startbit müsste ja automatisch gesetzt werden.

von Philipp H. (ennox)


Lesenswert?

OK den Wald vor lauter Bäumen nicht gesehen. RS485 brauch ich nicht !

Bleibt nur die Frage wie bekomme ich die 2 STopbits in den Treiber denn 
der müsste Standartmäßig1 SToppbit haben.

von Philipp H. (ennox)


Lesenswert?

So OK das habe ich auch gefunden.

das kleine Linuxproc "setserial" kann dies tun.


Danke allen die sich hiermit beschäftigt haben.

von ... (Gast)


Lesenswert?

Wie Funktioniert das einlesen der Fader mit dem D/A Wandler?

von Philipp H. (ennox)


Lesenswert?

Also als Grundlage sind da 7 Fader. Also 6 Fader für die von mir 
benötigten Kanäle und einer als Master. Wie von einem Mischpult bekannt.

Diese Fader sind Linearpotentiometer und hängen auf 2 A/D Wandler mit 
i2c Anbindung.
Sprich, an den Eingängen der Wandler liegt eine Analogspannung an. Der 
A/d Wandler hat aber noch eine Referenzspannung. Erreicht ein Eingang 
den Referenzwert gibt der Wandler eine 8 Bit Binärzahl mit dem WErt 
11111111 ab also den Dezimalwert 255. Je kleiner die Spannung an den 
Fadereingängen desto kleiner dieser Wert. Die einzelnen Kanäle des A/D - 
Wandlers werden vom I^2 C Bus abgefragt. Sprich wir digitalisieren einen 
analgogen Spannungswert und verarbeiten ihn.

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.