Steuersignal-Degradation bei Zusammenschaltung mehrerer Dynamixel-Servos

#6962334
Lesenswert?

Hallo zusammen,

ich habe einen Aufbau mit einem dutzend Dynamixel Servos. Jedes Servo 
hat neben der Spannungsversorgung einen Signalanschluß, mit dem es durch 
eindeutige ID angesteuert werden kann. Das Signal ist ein 5 V TTL 
Signal. Schließt man mehrere Servos nacheinander an den Bus 
verschlechtert sich die Qualität des Steuersignals rapide, sodass eine 
Kommunikation nicht mehr möglich ist. Siehe dazu die Screenshots mit 
zunehmender Anzahl an Servos.

Gibt es eine Idee, was die Ursache ist und wie man das ggfs. verbessern 
kann? Ist das eher durch den Widerstand der Kabel für die höheren 
Frequenzen bedingt oder werden da parasitäre Kapazitäten während des 
Schaltvorgangs umgeladen? Im ersteren Fall könnte man ja Kabel mit einem 
höheren Querschnitt versuchen, im letzteren Fall dürfte das eher nichts 
bringen.

Viele Grüße
Markus
Angehängte Dateien:
#6963089
Lesenswert?

Danke für den Input. Das mit dem Treiber klingt gut, allerdings bräuchte 
ich einen bidirektionalen, da die gesamte Kommunikation über ein Kabel 
läuft. Muss ich mal danach suchen.

Wolfgang schrieb:
> Und wie sieht der aus, insbesondere wie ist die Signalquelle
> spezifiziert?

Die Quelle ist hier spezifiziert inkl. Schaltplan: 
http://xevelabs.com/doku.php?id=product:usb2ax:specs

Das Steuerignal hängt im Grunde direkt an einem RX/TX eines Atmega 32U2. 
Das klingt dann natürlich plausibel, dass der einfach zu schwach ist.
(Firma: matzetronics) #6963103
Lesenswert?

Markus L. schrieb:
> Das Steuerignal hängt im Grunde direkt an einem RX/TX eines Atmega 32U2.
> Das klingt dann natürlich plausibel, dass der einfach zu schwach ist.

Dann setze den Buffer nur in die TX Leitung und schliesse RX danach an. 
Optional kannst du auch in die RX Leitung noch ein Schmitttrigger Gatter 
setzen, damit die Antwort etwas deutlicher wird.
Man könnte auch sowas wie 74HC245 einsetzen, der bidirektional ist, aber 
das erfordert ein Signal zur Richtungsumschaltung.
#6963142
Lesenswert?

Noch nie was von Dynamixel gehört, aber das heisst ja nichts...
Die Dinger sehen doch recht ordentlich aus, da hätte ich ne andere 
Schnittstelle als erbärmliche TTL-UART erwartet, das ist doch nichts für 
einen Bus.
Das schreit ja förmlich nach RS485. Braucht zwar eine zweite Leitung, 
aber vom Prinzip her geeignet (immer nur einer sendet).
#6963867
Lesenswert?

Ich habe vermutlich das Problem identifiziert. Es gibt auf github eine 
aktuellere Version dieses Adapters, bei dem die Widerstände in den 
RX/TX-Leitungen von 150 auf 47 Ohm verringert wurden, mit dem Vermerk 
"Upgraded to v3.2b : changed R3 from 150 to 47ohms for stronger line 
drive".

https://github.com/Xevel/usb2ax/tree/master/hardware

Das spricht ja dafür, dass mein Problem wohl bekannt ist/war und dem 
schon Abhilfe geschaffen wurde. Ich habe nämlich noch die Version 3.2a 
mit 150 Ohm. Ich werde jetzt die Adapter tauschen und dann 
weiterschauen, vermutlich /hoffentlich wird sich das Problem damit 
erledigen.
#6963942
Lesenswert?

Trotzdem ist und bleibt es eine lächerlich anmutende Hilfskrücke. Hat 
nur einen Zweck: billig, billig.
Damit geht man einfach nicht ins Feld und verbindet mehrere Servos.
Es kommt ja neben den von Hause aus vorhandenen prinzipiellen Problemen 
noch was gravierendes hinzu: Masseversatz bei ordentlich Stromfluss der 
Motore. Und da sieht es eben ganz schnell ganz böse aus mit dem 
Störabstand, da braucht noch gar keine externen Störungen bemühen.

Ich seh gerade: du hast aufs falsche Pferd gesetzt, die Teile gibt es 
(sinnvollerweise) auch mit RS485. Keine Ahnung wie alt der Standard ist, 
40 Jahre sind es mindestens und wird heute noch reichlich verwendet. Hat 
schon seinen Sinn, tut nicht weh und kostet auch nicht viel. Vor allem: 
es funktioniert im realen Leben und nicht nur auf der Werkbank.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren