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