Forum: Mikrocontroller und Digitale Elektronik Steuersignal-Degradation bei Zusammenschaltung mehrerer Dynamixel-Servos


von Markus L. (markus_fh)


Angehängte Dateien:

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

von Max D. (max_d)


Lesenswert?

Zu schwacher UART Ausgang. Treiber dazwischen und gut ist.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Nimm einen 74HC244, schalte alle Gatter parallel und puffere damit das 
TTL Signal. Anderer Puffer wäre z.B. der 74HC573, den man auf 
transparent stellt. Das sind Bustreiber, die ein hohes Fan-Out haben.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Die unbekannte Quelle ist zu hochohmig. 1MHz Baudrate ist schon verdammt 
sportlich.

von Wolfgang (Gast)


Lesenswert?

Markus L. schrieb:
> ich habe einen Aufbau mit einem dutzend Dynamixel Servos.

Und wie sieht der aus, insbesondere wie ist die Signalquelle 
spezifiziert?

von Markus L. (markus_fh)


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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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.

von H.Joachim S. (crazyhorse)


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

von Wolfgang (Gast)


Lesenswert?

H.Joachim S. schrieb:
> Die Dinger sehen doch recht ordentlich aus, da hätte ich ne andere
> Schnittstelle als erbärmliche TTL-UART erwartet

TTL wird´s wohl kaum sein. Der ATMega32u2 besitzt C-MOS Push-Pull 
Ausgänge und zieht damit genauso gut nach VDD wie nach Gnd.

von Dieter W. (dds5)


Lesenswert?

Wolfgang schrieb:
> Der ATMega32u2 besitzt C-MOS Push-Pull
> Ausgänge und zieht damit genauso gut nach VDD wie nach Gnd.

Es ist trotzdem keine glückliche Entscheidung, einen Portpin ungepuffert 
als Bustreiber zu benutzen.

von Markus L. (markus_fh)


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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Dieter W. schrieb:
> Es ist trotzdem keine glückliche Entscheidung, einen Portpin ungepuffert
> als Bustreiber zu benutzen.

ACK. Riskiert unnötig den MC. Aber der TE hats vermutlich nicht so mit 
Hardware.

von Markus L. (markus_fh)


Lesenswert?

Matthias S. schrieb:
> Aber der TE hats vermutlich nicht so mit
> Hardware.
Nicht so sehr bisher. Aber das Ding wird ja so immerhin verkauft, das 
ist ja nicht meine Eigenentwicklung: 
https://www.generationrobots.com/de/401584-usb2ax-fur-dynamixel-servomotors.html

von H.Joachim S. (crazyhorse)


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.

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
Noch kein Account? Hier anmelden.