S
server
Guest
message unavailable
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Hallo,
ich möchte einen Servomotor Robotis AX-12A
(<https://emanual.robotis.com/docs/en/dxl/ax/ax-12a/>) über eine
serielle Schnittstelle bedienen. Die serielle Schnittstelle hängt an
einer SPS, daher kommen die von Robotis angebotenen Lösungen (IDE,
Contollerboard, ...) wohl nicht wirklich in Betracht, weil die darauf
abstellen, dass ein Stück Elektronik an einem PC hängt und von da
bedient wird.
....
Soweit so schön. Ist das plausibel, oder habe ich irgendwo einen
Denkfehler gemacht?
ich möchte einen Servomotor Robotis AX-12A
(<https://emanual.robotis.com/docs/en/dxl/ax/ax-12a/>) über eine
serielle Schnittstelle bedienen. Die serielle Schnittstelle hängt an
einer SPS, daher kommen die von Robotis angebotenen Lösungen (IDE,
Contollerboard, ...) wohl nicht wirklich in Betracht, weil die darauf
abstellen, dass ein Stück Elektronik an einem PC hängt und von da
bedient wird.
Ich kenne mich mit den Details nicht wirklich aus, daher schildere ich
etwas ausschweifenden meinen Gedankengang:
Nun spricht der AX-12A ein serielles Protokoll (\"Half Duplex
Asynchronous Serial Communication (8bit, 1stop, No Parity)\"), das
Robotis freundlicherweise offengelegt hat, aber mit TTL-Pegeln,
d.h. Spannung zwischen 0 und 5 Volt.
Die RS232 hat RS232-Pegel, also zwischen -12V und +12V.
Ich brauche also einen Pegelumsetzer, typischerweise etwas wo der
MAX232-IC drin arbeitet. Die gibt es fertig zu kaufen. Aber im Manual
steht, dass es halbduplex sein soll, d.h. mit Richtungsumschaltung,
weil es nur eine Leitung für Senden und Empfangen gibt. Vgl. das
Schema in Kap. 5.4.1 im Manual, Link s.o.
Nico Hoffmann schreibt:
Ich sende also von der SPS Daten zum MAX232 raus (TX), gehe über die
TTL-Seite des MAX232 zurück und bekomme dieselben Daten über die
RX-Leitung wieder in die SPS. Bis hierher ist es wie ein
\"Kurzschlußstecker\" mit Pegelwandlung.
Auf der TTL-Seite ist dann noch der Dynamixel angeschlossen.
Die SPS hört ihr eigenes Echo. Wenn ich die Verbindung auf der
TTL-Seite des MAX232 auftrenne, bleibt das Echo aus. Funktioniert also
soweit.
Leider höre ich keine Antwort vom Dynamixel, obwohl ich eigentlich ein
Statuspaket erwarte. Ich habe ein bischen an den Einstellungen
rumprobiert, aber der Dynamixel bleibt stumm.
Am 16.10.2020 um 18:27 schrieb Nico Hoffmann:
Nico Hoffmann schreibt:
Ich sende also von der SPS Daten zum MAX232 raus (TX), gehe über die
TTL-Seite des MAX232 zurück und bekomme dieselben Daten über die
RX-Leitung wieder in die SPS. Bis hierher ist es wie ein
\"Kurzschlußstecker\" mit Pegelwandlung.
Auf der TTL-Seite ist dann noch der Dynamixel angeschlossen.
Die SPS hört ihr eigenes Echo. Wenn ich die Verbindung auf der
TTL-Seite des MAX232 auftrenne, bleibt das Echo aus. Funktioniert also
soweit.
Vermutlich ist der Max232 stärker als der Dynamixel, d.h. der TTL
Ausgang des Max232 schaltet den TTL Eingang des Max232 auf High wenn der
RS232 Eingang des Max232 auf ca. -10V liegt. Im Ruhezustand ist das
Eingangssignal des Max232 ca. -10V, der TTL Ausgang dann +5V.
Das angeschlossene Gerät schaltet ebenfalls zwischen +5V und 0V hin und her.
Leider höre ich keine Antwort vom Dynamixel, obwohl ich eigentlich ein
Statuspaket erwarte. Ich habe ein bischen an den Einstellungen
rumprobiert, aber der Dynamixel bleibt stumm.
Wenn der Max genug Strom liefert, kann der Dynamixel den Eingang nicht
auf GND ziehen.
stefan schreibt:
Am 16.10.2020 um 18:27 schrieb Nico Hoffmann:
Nico Hoffmann schreibt:
Ich sende also von der SPS Daten zum MAX232 raus (TX), gehe über die
TTL-Seite des MAX232 zurück und bekomme dieselben Daten über die
RX-Leitung wieder in die SPS. Bis hierher ist es wie ein
\"Kurzschlußstecker\" mit Pegelwandlung.
Auf der TTL-Seite ist dann noch der Dynamixel angeschlossen.
Die SPS hört ihr eigenes Echo. Wenn ich die Verbindung auf der
TTL-Seite des MAX232 auftrenne, bleibt das Echo aus. Funktioniert also
soweit.
Vermutlich ist der Max232 stärker als der Dynamixel, d.h. der TTL
Ausgang des Max232 schaltet den TTL Eingang des Max232 auf High wenn der
RS232 Eingang des Max232 auf ca. -10V liegt. Im Ruhezustand ist das
Eingangssignal des Max232 ca. -10V, der TTL Ausgang dann +5V.
Im Ruhezustand hab\' ichs mit dem Multimeter genau so gemessen.
Das angeschlossene Gerät schaltet ebenfalls zwischen +5V und 0V hin und her.
Leider höre ich keine Antwort vom Dynamixel, obwohl ich eigentlich ein
Statuspaket erwarte. Ich habe ein bischen an den Einstellungen
rumprobiert, aber der Dynamixel bleibt stumm.
Wenn der Max genug Strom liefert, kann der Dynamixel den Eingang nicht
auf GND ziehen.
Das könnte sein. Wie schaffe ich Abhilfe?
N.
ungefähr so: nur eine Idee, nicht getestet
https://www.directupload.net/file/d/5974/mid8ax3c_jpg.htm
Am 16.10.2020 um 20:20 schrieb Nico Hoffmann:
stefan schreibt:
Am 16.10.2020 um 18:27 schrieb Nico Hoffmann:
Leider höre ich keine Antwort vom Dynamixel, obwohl ich eigentlich ein
Statuspaket erwarte. Ich habe ein bischen an den Einstellungen
rumprobiert, aber der Dynamixel bleibt stumm.
Wenn der Max genug Strom liefert, kann der Dynamixel den Eingang nicht
auf GND ziehen.
Das könnte sein. Wie schaffe ich Abhilfe?
Man könnte es mit einem Widerstand in der TX Leitung des Max232
versuchen, aber dann ist der Dynamixel stärker.
stefan schreibt:
Am 16.10.2020 um 20:20 schrieb Nico Hoffmann:
stefan schreibt:
Am 16.10.2020 um 18:27 schrieb Nico Hoffmann:
Man könnte es mit einem Widerstand in der TX Leitung des Max232
versuchen, aber dann ist der Dynamixel stärker.
Ich hab\' das mal probiert. 1,2kOhm vom TTL-Ausgang des MAX232 zum
\'Data\' des Dynamixel, und dann 1:1 an den TTL-Eingang des MAX232.
http://lewonze.de/bilder/2020/max232-AX12-A.png
Ohne Ergebnis, Der Dynamixel ist wie tot. Ich habe mit dem Oszi die
Data-Leitung abgegriffen. Wenn der Dynamixel zu schwach wäre, sollte
ich wenigstens irgendein bischen Gewackel sehen, aber nichts, null.
Ich seh\' nur mein \'ping\'-Telegramm.
Ich habe daher weitere Schaltungen nicht ausprobiert, weil es offenbar
nicht erfolgversprechend ist.
Der Plan ist jetzt, von Dynamixel einen USB-TTL-Adapter zu besorgen,
der vom PC aus mit einem Dynamixel-Programm betrieben werden
kann. Dann habe ich eine reine Dynamixel-Lösung ohne Eigenanteil, die
ja wohl hoffentlich funktioniert.
Dann könnte ich mit dem Oszi schauen, was passiert und mit meiner
jetzigen Nicht-Lösung vergleichen, um den Fehler zu finden. Leider hat
die SPS, die den Dynamixel steuern soll, kein USB...
Am 21.10.2020 um 21:17 schrieb Nico Hoffmann:
stefan schreibt:
Am 16.10.2020 um 20:20 schrieb Nico Hoffmann:
stefan schreibt:
Am 16.10.2020 um 18:27 schrieb Nico Hoffmann:
Man könnte es mit einem Widerstand in der TX Leitung des Max232
versuchen, aber dann ist der Dynamixel stärker.
Ich hab\' das mal probiert. 1,2kOhm vom TTL-Ausgang des MAX232 zum
\'Data\' des Dynamixel, und dann 1:1 an den TTL-Eingang des MAX232.
http://lewonze.de/bilder/2020/max232-AX12-A.png
Ohne Ergebnis, Der Dynamixel ist wie tot. Ich habe mit dem Oszi die
Data-Leitung abgegriffen. Wenn der Dynamixel zu schwach wäre, sollte
ich wenigstens irgendein bischen Gewackel sehen, aber nichts, null.
Ich seh\' nur mein \'ping\'-Telegramm.
Es müssen beide senden können, d.h. du solltest an T1in(11) ein halbwegs
sauberes TTL Signal sehen und du solltest ein Eche bekommen.
Wenn der Pull-Up im AX-12A zu klein ist, kann der Max232 das Signal
nicht nach GND ziehen. Der AD-12A empfängt dann nichts und antwortet
auch nicht.
Ich habe daher weitere Schaltungen nicht ausprobiert, weil es offenbar
nicht erfolgversprechend ist.
Die anderen Schaltungsvorschläge hatten schon einen Sinn, weil bei der
simplen Schaltung mit dem Widerstand der Max232 unter Umständen nicht in
der Lage ist, die TXT Leitung sauber nach GND zu schalten.
Es ist immer ein Problem, wenn gar nichts läuft. Dann stochert man im
Nebel.
stefan schreibt:
Am 21.10.2020 um 21:17 schrieb Nico Hoffmann:
stefan schreibt:
Ich kopple ja das von mir gesendete Signal zurück und werte das \"Echo\"
aus. Das Echo entspricht genau dem, was ich losschicke.
Daraus läßt sich schließen:
- Der MAX232 sendet TTL-seitig.
- Der MAX232 empfängt auch TTL-seitig, sonst könnte ich das Echo nicht
bekommen.
- Dann muss auch der Dynamixel empfangen, denn er hängt direkt auf dem
TTL-Eingang des MAX232.
Ich habe daher weitere Schaltungen nicht ausprobiert, weil es offenbar
nicht erfolgversprechend ist.
Die anderen Schaltungsvorschläge hatten schon einen Sinn, weil bei der
simplen Schaltung mit dem Widerstand der Max232 unter Umständen nicht in
der Lage ist, die TXT Leitung sauber nach GND zu schalten.
Das hätte ich im Oszillogramm gesehen!
Ich sehe aber nur das Signal, was ich sende, und dann nichts
mehr.
Konstant 5V, wie mit dem Lineal gezogen. Wenn vom AX-12A eine
Antwort gekommen wäre, hätte es zumindest einen kleinen Wackler geben
müssen.
Dann hätte ich an dieser Stelle weitergemacht. Aber so ist es
zwecklos.
Es ist immer ein Problem, wenn gar nichts läuft. Dann stochert man im
Nebel.
So ist es.
N.
Am 21.10.2020 um 23:52 schrieb Nico Hoffmann:
stefan schreibt:
Am 21.10.2020 um 21:17 schrieb Nico Hoffmann:
stefan schreibt:
Ich kopple ja das von mir gesendete Signal zurück und werte das \"Echo\"
aus. Das Echo entspricht genau dem, was ich losschicke.
Daraus läßt sich schließen:
- Der MAX232 sendet TTL-seitig.
- Der MAX232 empfängt auch TTL-seitig, sonst könnte ich das Echo nicht
bekommen.
korrekt, zumindest so, dass der Max232 es \"versteht\"
- Dann muss auch der Dynamixel empfangen, denn er hängt direkt auf dem
TTL-Eingang des MAX232.
Eigentlich schon, zumindest wenn das Signal sauber auf 0 gezogen wird.
Es könnte aber sein, dass der Dynamixel eine niedrigere Schaltschwelle
hat wie der Max232. Wenn das Signal nur zwischen +5V und +1V schaltet,
könnte es sein, dass der deine Baustein es korrekt verarbeitet, der
andere aber nicht.
Ich habe daher weitere Schaltungen nicht ausprobiert, weil es offenbar
nicht erfolgversprechend ist.
Die anderen Schaltungsvorschläge hatten schon einen Sinn, weil bei der
simplen Schaltung mit dem Widerstand der Max232 unter Umständen nicht in
der Lage ist, die TXT Leitung sauber nach GND zu schalten.
Das hätte ich im Oszillogramm gesehen!
ja, das sollte man
Ich sehe aber nur das Signal, was ich sende, und dann nichts
mehr.
wichtig ist, dass das was vom Max232 kommt vom Dynamixel \"verstanden\"
wird. Deshalb solltest du auch schauen, ob das Signal wirklich sauber
nach 0 gezogen wird.
Konstant 5V, wie mit dem Lineal gezogen. Wenn vom AX-12A eine
Antwort gekommen wäre, hätte es zumindest einen kleinen Wackler geben
müssen.
Das ist korrekt.
Dann hätte ich an dieser Stelle weitergemacht. Aber so ist es
zwecklos.
Es ist immer ein Problem, wenn gar nichts läuft. Dann stochert man im
Nebel.
So ist es.
Am 21.10.2020 um 23:52 schrieb Nico Hoffmann:
stefan schreibt:
Am 21.10.2020 um 21:17 schrieb Nico Hoffmann:
stefan schreibt:
Ich kopple ja das von mir gesendete Signal zurück und werte das \"Echo\"
aus. Das Echo entspricht genau dem, was ich losschicke.
Daraus läßt sich schließen:
- Der MAX232 sendet TTL-seitig.
- Der MAX232 empfängt auch TTL-seitig, sonst könnte ich das Echo nicht
bekommen.
korrekt, zumindest so, dass der Max232 es \"versteht\"
- Dann muss auch der Dynamixel empfangen, denn er hängt direkt auf dem
TTL-Eingang des MAX232.
Eigentlich schon, zumindest wenn das Signal sauber auf 0 gezogen wird.
Es könnte aber sein, dass der Dynamixel eine niedrigere Schaltschwelle
hat wie der Max232. Wenn das Signal nur zwischen +5V und +1V schaltet,
könnte es sein, dass der deine Baustein es korrekt verarbeitet, der
andere aber nicht.
stefan schreibt:
Das hätte ich im Oszillogramm gesehen!
Ich sehe aber nur das Signal, was ich sende, und dann nichts
mehr. Konstant 5V, wie mit dem Lineal gezogen. Wenn vom AX-12A eine
Antwort gekommen wäre, hätte es zumindest einen kleinen Wackler geben
müssen. Dann hätte ich an dieser Stelle weitergemacht. Aber so ist es
zwecklos.
Es ist immer ein Problem, wenn gar nichts läuft. Dann stochert man im
Nebel.
So ist es.
stefan <adresse@ist.invalid> writes:
Am 21.10.2020 um 23:52 schrieb Nico Hoffmann:
stefan schreibt:
Am 21.10.2020 um 21:17 schrieb Nico Hoffmann:
stefan schreibt:
Es ist immer ein Problem, wenn gar nichts läuft. Dann stochert man im
Nebel.
So ist es.
Mein Verständnis von \"Halbduplex\" ist, dass es nicht darum geht, welcher
Treiber nun der stärkere ist, sondern um ein Protokoll, das angibt, wer
senden darf, und die andere Seite muss den Treiber hochohmig schalten.
http://lewonze.de/bilder/2020/max232-AX12-A.png
Die Schaltung ist wenig geeignet.
Sauber ist die Variante von Motorola oben:
http://www.embeddedFORTH.de/temp/halfduplex.pdf
Unten ist das wired OR für Transistoren dargestellt,
funktioniert bei 9600 Baud auch.
Der Dynamixel ist wie tot.
Man erwartet von einer 5V-UART zwar die Polarität
wie sie aus der UART kommt. Erfahrung mit z.B.
Barcodelesern zeigt aber, daß Pegel auch
invertiert sein können.
Lohnt sich im Breadboard gesockelte 74HC04 Gates
vorzusehen die überbrückt werden können.
MfG JRD
Am 22.10.2020 um 11:20 schrieb Rafael Deliano:
http://lewonze.de/bilder/2020/max232-AX12-A.png
Die Schaltung ist wenig geeignet.
Sauber ist die Variante von Motorola oben:
http://www.embeddedFORTH.de/temp/halfduplex.pdf
Unten ist das wired OR für Transistoren dargestellt,
funktioniert bei 9600 Baud auch.
Der Dynamixel ist wie tot.
Man erwartet von einer 5V-UART zwar die Polarität
wie sie aus der UART kommt. Erfahrung mit z.B.
Barcodelesern zeigt aber, daß Pegel auch
invertiert sein können.
Lohnt sich im Breadboard gesockelte 74HC04 Gates
vorzusehen die überbrückt werden können.
MfG JRD
Das wäre eine Möglichkeit.
Nico Hoffmann schreibt:
ich möchte einen Servomotor Robotis AX-12A
(<https://emanual.robotis.com/docs/en/dxl/ax/ax-12a/>) über eine
serielle Schnittstelle bedienen. Die serielle Schnittstelle hängt an
einer SPS, daher kommen die von Robotis angebotenen Lösungen (IDE,
Contollerboard, ...) wohl nicht wirklich in Betracht, weil die darauf
abstellen, dass ein Stück Elektronik an einem PC hängt und von da
bedient wird.
Ich kenne mich mit den Details nicht wirklich aus, daher schildere ich
etwas ausschweifenden meinen Gedankengang:
Nun spricht der AX-12A ein serielles Protokoll (\"Half Duplex
Asynchronous Serial Communication (8bit, 1stop, No Parity)\"), das
Robotis freundlicherweise offengelegt hat, aber mit TTL-Pegeln,
d.h. Spannung zwischen 0 und 5 Volt.
Die RS232 hat RS232-Pegel, also zwischen -12V und +12V.
Ich brauche also einen Pegelumsetzer, typischerweise etwas wo der
MAX232-IC drin arbeitet. Die gibt es fertig zu kaufen. Aber im Manual
steht, dass es halbduplex sein soll, d.h. mit Richtungsumschaltung,
weil es nur eine Leitung für Senden und Empfangen gibt. Vgl. das
Schema in Kap. 5.4.1 im Manual, Link s.o.
Es gibt einen USB-TTL-Adapter von Dynamixel, d.h. Robotis, der
zusammen mit der Robotis-IDE den Dynamixel steuern können soll. Den
besorge ich mir mal. Das hilft mir zwar bei meiner SPS nicht weiter,
aber wenn ich den Dynamixel damit am PC zum Leben erwecken kann, werde
ich versuchen, die TTL-Seite über den MAX232 \"abzuhören\". Vielleicht
sehe ich dann, warum es nicht klappt.