PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dumme Frage zur RS485



Hellmut
30.11.2013, 02:27
Hallo Freunde

Eigentlich bin ich kein Freund solcher nichts sagender Titel, aber hier schäme ich mich schon fast!

Hintergrund. Ich will eine LPCxpresso1769 Karte zur Steuerung einer Trinamic stepRocker Karte verwenden. Da die LPCxpresso 1769 von Haus aus RS485 nicht unterstützt, habe ich angefangen mich in das Thema einzulesen. Ich möchte hier gerne das Ergebnis mir hoffentlich bestätigen lassen und dann zur Anwendung was fragen.

Die RS485 scheint eigentlich primär eine elektrische Spezifikation zu sein, welche eine differentielle 2-Draht-Verbindung bereitstellt, jeweils über ein 120R Widerstand auf VCC, bzw GND gepusht oder gepulled zu sein. Die Definition, jetzt wohl EIA485, spricht auch die Protokollebene an, aber physikalisch wird ein differentieller serieller Datenstrom, halfduplex erzeugt. Ist das richtig? Achso und so wie ich gelesen habe sollte man GND ebenfalls verbinden, also eine 3-Draht Verbindung.

Der M0 ARM Cortex Controller von Samsung, S3FN41F auf der stepRocker-Karte, diese sowohl bei Conrad als auch bei Reichelt zu beziehen, verwendet meiner Meinung nach die UART in seiner Firmware und fährt mit dieser sein Protokoll. Also eigentlich eine UART Verbindung! Verwende ich also einen IC der mir auf de Lpcxpresso1769 Seite ebenfalls die RS485 Verbindung elektrisch erzeugt, kann ich beide über RS485 kommunizierend haben, betrachte es aber von der LPC-Firmware-Seite wie eine "normale UART-Kommunikation?

Das wäre toll, da ich dann weder auf der stepRocker, noch auf der LPCXpresso1769 Seite, von der Firmware gesprochen, irgend was tun müsste. Da kann ich die RS485 Thematik vergessen und das ganze wie eine normale UART-Verbindung handhaben.

Sollten meine Annahmen korrekt sein, dann noch eine Frage. Ich mache eine kleine Adapterplatine, welche die LPCXpresso und die StepRocker-Karte a la piggypack verbindet. Diese Adapterplatine könnte dann die erforderlichen Ergänzungen zur Systemintegration enthalten, so auch z.B. den IC der die UART-Pins des LPC1769, ein ARM Cortex M3 mit einem RS485 IC verbindet und so die stepRockerkarte über die RS485 anspricht. Nun die Frage. Lohnt der Aufwand eine RS485 Verbindung auf einer solchen Adapterplatine zu integrieren? Ansonsten setze ich ja für die Kommunikation in meinem Modell I2C ein, wobei ich über Buffer die I2C-Leitungen mit 12VDC betreibe, um so Störungssicherheit zu erreichen.

Als kleines Dankeschön will ich nur das Blockdiagram meiner Segelsteuerung im Modell mit Schrittmotor als Winden und mit einem speziellen von mir kreirten Verfahren zur Wuhling-Vermeidung mit euch teilen, wo der LPCXpresso1769, nur 23,80 Euro bei Watterott, mit einer nachfolgeplatine zum stepRocker, hier mit bis zu 60 VDc für die Motorversorgung betrieben werden kann!

http://farm6.staticflickr.com/5448/9774113161_368d60fd87_z.jpg

Verzeiht, das die Beschriftung auf Spanisch ist, mein Partner bei der Programmierung ist ein Spanier. Ganz schnell erläutert. Das System zur Segelsteuerung ist 2x vorhanden, 1x Hauptsegel und 1x Vorsegel. Ein magnetischer Sensor, 12 bit Auflösung und standard Quadratur-Enkoder Output erfasst den Winkel des Baumes des jeweiligen Segels, beim Lümmelbeschlag wird eine Welle bis unmittelbar auf die deckoberfläche geführt, unten der Magnet. Unter Deck, nur durch ein dünnes Plastik verdeckt damit kein wasser unter Deck und an den Sensor kommen kann. So erhält die LPCXpresso 1769 die Rückmeldung der Öffnung des Segels als Winkelinfo mit 12 Bit Auflösung. Eine tabelle im Flasch und etwas SW geben damit der LPCXpresso1769 die Info auf welche Position der Schrittmotor durch die stepRockerkarte gefahren werden muss, damit damit nur die dafür erforderliche Schotlänge bereitgestellt wird. Die LPCXpresso1769 steuert dann die stepRockerkarte über die RS485 Verbindung.

http://farm3.staticflickr.com/2886/9657008962_1a66a7bb32_z.jpg

Hier der Schrittmotor mit der schottrommel im Rohbau, die Lauffläche für die nur 0,9mm starke Aramidschot wird einen exakten Umfang von 400 mm haben, so dass die 8,4 meter Schotverstelllänge mit nur 21 Umdrehungen des Schrittmotors erreicht werden.

Auf der Trommel kommt mittig ein weiterer Magnet und in das Gehäuse, in welchem die Trommel dreht der gleiche Sensor wie für die Winkelermittlung der Bäume von Großsegel und Vorsegel, die 3 Leitungen vom Sensor kommen an die stepRockerkarte, so dass hier die Firmware die Schrittposition zwischen Sensorinput und SW Zählung zur Erkennung von Schrittfehlern und der Korrektur verwenden kann. Da die Segelsteuerung nur eine der umfangreichen Funktionsblöcke im Modell wird, habe ich eine weitere LPCXpresso Karte als Zentrale geplant. Diese nimmt dann zum Beispiel die Info über die Stellung des Steuerknüppels am RC Sender und Informiert die LPCXpresso1769 karte, falls hier Änderungen der Stellung der Steuerknüppelposition vom Empfänger im Modell gemeldet werden. Diese Info wird zur Ermittlung jener Position des Schrittmotors verwendet, welche die Begrenzung der Segelöffnung durch den Benutzer entspricht und über welche dann keine weitere Schot mehr bereitgestellt wird und so die Position des Segels begrenzt wird!

Mein Verfahren erlaubt mir in meinem Modell die dem Vorbild equivalente Schotführung zu implementieren.

http://farm6.staticflickr.com/5276/7214799452_212145281f_z.jpg

Klebwax
30.11.2013, 04:58
Die RS485 scheint eigentlich primär eine elektrische Spezifikation zu sein, welche eine differentielle 2-Draht-Verbindung bereitstellt
Einfache Antwort: ja.
Der logische Zustand der Leitung bestimmt sich aus der Spannungsdifferenz zwischen den beiden Datenleitungen. Überträgt man Daten unidirektional, gibt es die RS422 (oder früher für Europa V11), überträgt man abwechselnd in die eine und die andere Richtung, halbduplex, nennt man das RS485.

jeweils über ein 120R Widerstand auf VCC, bzw GND gepusht oder gepulled zu sein.
Nein. Die 120 Ohm haben nur etwas mit der Leitungsphysik zu tun. Für die Definition der logischen Spannungspegel sind sie unerheblich. Da zählt nur die Polarität der Spannungsdifferenz. Vcc und GND kommen da nicht vor.

Achso und so wie ich gelesen habe sollte man GND ebenfalls verbinden, also eine 3-Draht Verbindung.
Das hat mit RS485 nichts zu tun. Da die Dateninformation nur in der Spannungsdifferenz der beiden Signale steckt, wären Signale von 102V auf der Plus-Leitung und 98V auf der anderen gültig. Dieses verträgt aber kein IC am Eingang. Man muß also drauf achten, daß der Sender und der Empfänger in etwa das gleiche Potential haben. Daher verbindet man beide Massen.

MfG Klebwax

Hellmut
30.11.2013, 10:58
Vielen Dank!

seite5
30.11.2013, 13:21
Hi,
man sollte durchaus in einem RS485-Netz die A-Leitung mit einem PullUp nach "oben ziehen", das sorgt am
Receiver-Ausgang für definierte Werte, allerdings nicht mit 120 Ohm, ein 4,7k tut's schon.
mfg
Achim

Hellmut
30.11.2013, 15:07
Achim, die 120R stammen aus den Datenblättern und aus Wikipedia. Den Einsatz der RS485 ergibt sich aus dem Wunsch die stepRockerekarte nicht zu manipulieren, wo eben nur die RS285 herausgeführt wird. Der MAX285 ist aber schon relativ teuer. Könnt ihr ein anderes preiswerteres Bauelement nennen, und wo man es inkl. Porto am billigsten bekommt? Bei Conrad bekommen ich es ohne Porto, da es in der Regel nur wenig Bauelemente im laden gibt und so ein kostenloser versand zugesagt wird, Kundenkarte!

BMS
30.11.2013, 19:32
Der MAX285 ist aber schon relativ teuer. Könnt ihr ein anderes preiswerteres Bauelement nennen
Hallo,
also wenn du den MAX485 meinst - eine preiswerte Alternative wäre z.B. der SN75176. Beim C für etwa 70 Cent.
Grüße, Bernhard

Hellmut
01.12.2013, 13:00
Danke und den bekomme ich von Conrad nach Hause geschickt, ohne Portokosten, da in meiner Filiale nicht verfügbar. werde in mir als DIP und als SMD Variante kaufen und ins Inventar aufnehmen!