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
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