ETC SD20-20

roboter-teile.de
SD20 - 20 Kanal I²C RC-Servocontroller
Der SD20 ist ein vorprogrammierter PIC16F872 und läuft mit einer Geschwindigkeit von
8MHz. Positions-Steuerbefehle für bis zu 20 Modellbau Servos werden über den I²C Bus an
den Controller gesendet.
Funktionen
–
–
–
–
–
–
–
–
Einfaches I²C Bus Protokoll - ähnlich wie die bekannten EEPROM's 24C02
bis zu 20 Servos anschließbar
Servos sind inaktiv nach einschalten bis zur Übertragung der ersten Position
Wiederholrate min. 20mS bei einem angeschlossenen Servo, dann proportional zur
Anzahl der angeschlossenen Servos
Alle Register im SD20 sind les- und beschreibbar, so kann durch geschickte Nutzung u.U.
wertvoller Speicherplatz im Controller gespart werden
Standard Modus: 256 Bit Auflösung von 1ms bis 2ms
Erweiterter Modus: erlaubt die Ausdehnung des Impulses auch außerhalb der
Grenzen von 1-2ms für größere Drehwinkel am Servo
jitterfreie Ausgänge durch 0.5µs Timerauflösung
Beschaltung
– Der SD20 ist auf einer Universalleiterplatte aufzulöten (IC-Fassung empfohlen) und
entsprechend der Schaltung zu bestücken
– Für eine einwandfreie Funktion ist der Blockkondensator mit 100nF zwischen. +5V und
GND in der Nähe der Pins unbedingt erforderlich
– Da der Pin 6 (Servo5) des SD20 keinen internen Pull-Up Widerstand besitzt, muss dieser
extern bestückt werden, dazu einen Widerstand mit 4,7K von Pin6 nach +5V schalten
– Wegen der hohen Stromaufnahme der Servos ist es günstiger, insbesondere bei
Verwendung von mehreren Servos für diese eine getrennte Stromversorgung vorzusehen
(4,5-7V)
Servocontroller SD20
Ausgabe 2.2 29.07.2005 JP
Seite 1
roboter-teile.de
Servocontroller SD20
Ausgabe 2.2 29.07.2005 JP
Seite 2
roboter-teile.de
Belegung der SD20-Register
Register
Funktion
Register
Funktion
0
Software Revision
12
Servo12 Position
1
Servo1 Position
13
Servo13 Position
2
Servo2 Position
14
Servo14 Position
3
Servo3 Position
15
Servo15 Position
4
Servo4 Position
16
Servo16 Position
5
Servo5 Position
17
Servo17 Position
6
Servo6 Position
18
Servo18 Position
7
Servo7 Position
19
Servo19 Position
8
Servo8 Position
20
Servo20 Position
9
Servo9 Position
21
Standard / Erweiterter Modus
Servo10 Position
22 -23
Erweiterter Modus
Offset -16bit, high Byte zuerst
Servo11 Position
24 -31
unbenutzt, frei verfügbar für
Anwender
10
11
Standard Modus
Das ist der Einschaltzustand. Der Stellbereich geht von 1ms bis 2ms bei 1,5ms Mittelstellung
(entspricht der RC-Modellbau Spezifikation). Um in den Standard Modus zurückzukommen
(falls zuvor in den erweiterten Modus gegangen wurde), muss eine 0 (Null) in das Reg 21
geschrieben werden. Werte von 1 - 255 (0x01 - 0xff) im Reg 21 schalten in den Erweiterten
Modus.
Erweiterter Modus
Bei Verwendung dieser Betriebsart besteht die Gefahr, dass der Servo in die mechanische
Begrenzung fährt und dabei u.U. beschädigt wird. Deshalb Vorsicht bei der Anwendung!
Der Modus erlaubt einen größeren Stellbereich indem die Pulsweite auch außerhalb der
Grenzen von 1ms-2ms einstellbar ist. Ein Wert größer 0 im Register 21 schaltet den
Erweiterten Modus ein und setzt den möglichen Stellbereich nach folgender Formel:
Delta (µs) = (255 * 256) / Reg21
wobei Delta den Änderungsbereich ausdrückt. Wird zum Beispiel Reg 21 auf den Wert 65
gesetzt, kann die Länge des Servoimpulses wie folgt variieren:
(255*256)/65 = 1004µs = 1.004ms.
Der Offset wird im 16bit Register 22-23 wie folgt eingestellt:
Offset (µs) = (Reg22:23 + 20)
Servocontroller SD20
Ausgabe 2.2 29.07.2005 JP
Seite 3
roboter-teile.de
Soll entsprechend dem obigen Beispiel vom SD20 eine Impulslänge von 1ms bis 2,004ms
erzeugt werden, muss ein Offset von 1ms eingestellt werden. Dazu muss ein Reg 22:23 der
Wert 980 eingestellt werden (High-Byte (3) in Reg 22, Low-Byte (212) in Reg 23).
Das entspricht der Einstellung im Standard-Modus.
Die Werte 43 und 820 ergeben einen Bereich von 0.84ms bis 2.36ms. Das ist z.B. ein guter
Wert für den HS-311 Servo.
Wiederholrate
Die Wiederholrate ergibt sich aus der Zeit zwischen den Impulsen für jeden Servo. Die
Servoausgänge sind inaktiv solange bis die entsprechende Position gesetzt wird. Die
Wiederholzeit ist abhängig von der Anzahl der angeschlossenen Servos und beträgt 20ms,
sofern die Summe der angeschlossenen Ausgänge (Zeiten) kleiner / gleich 20ms ist.
Anderenfalls erhöht sich die Wiederholzeit um den entsprechenden Betrag.
Software Revision
Register 0 beinhaltet nach dem Power-Up die Softwareversion. Diese kann ausgelesen
werden, das Register kann jedoch auch für Benutzerzwecke beliebig beschrieben und
gelesen werden.
Adresse
Der SD20 Servo-Controller hat die feste Adresse 0xC2 auf dem I2C Bus.
Hinweise zur beschränkten Garantie und Haftung
sowie zur bestimmungsgemäßen Verwendung
roboter-teile.de übernimmt keine Garantie dafür, dass die Leistungsmerkmale individuellen
Ansprüchen genügen.
Die Gewährleistung von roboter-teile.de beschränkt sich ausschließlich auf den Austausch
des Moduls/Bauteils innerhalb der Garantiezeit bei offensichtlichen Defekten an dem
Modul/Bauteil.
Auf Fehler, die am Modul/Bauteil durch Betrieb außerhalb der technischen Spezifikationen
(z.B. Fehlanschluss, falsche Betriebsspannung, Spannungsspitzen) entstehen, kann keine
Gewährleistung übernommen werden.
Es besteht keine Haftung für Schäden, die unmittelbar durch oder in Folge der Anwendung
des Moduls entstehen. Unberührt davon bleiben Ansprüche, die auf den gesetzlichen
Vorschriften zur Produkthaftung beruhen.
Das Modul/Bauteil kann in beliebige technische Systeme integriert werden, die nicht direkt
oder indirekt medizinischen, gesundheits- oder lebenssichernden Zwecken dienen oder
durch deren Betrieb Gefahr für Personen oder Sachwerte entstehen können. Sollen diese
Geräte in einem derartigen System eingesetzt werden, muss der Kunde für die notwendigen
Tests und Zulassungen selbst aufkommen. roboter-teile.de übernimmt in diesem Fall
keinerlei Haftung für Personen- oder Sachschäden.
roboter-teile.de
Jörg Pohl
Baluschekstr. 9
01159 Dresden
Servocontroller SD20
http://www.roboter-teile.de
[email protected]
Ausgabe 2.2 29.07.2005 JP
Seite 4