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 ?
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/
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.
wenn, solltest du auf jeden Fall das mainstream buildroot nehmen. Die builds auf der Atmel Seite sind veraltet. http://buildroot.uclibc.org/download.html
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.
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.
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.
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.
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.
So OK das habe ich auch gefunden. das kleine Linuxproc "setserial" kann dies tun. Danke allen die sich hiermit beschäftigt haben.
Wie Funktioniert das einlesen der Fader mit dem D/A Wandler?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.