Ich hab mit dem SD20 noch nicht gearbeitet, aber meistens schreibt man
die Slave Adresse, dann die Registernummer und dann die Daten.

Also z.B.
Code:
buf[0] = SD20_ADRESS | WRITE;
buf[1] = register;    // z.B 0x01 für Register 1
buf[2] = data;    // servostellung
TWI_Start_Transceiver_With_Data(buf, 3);
Wenn du Daten lesen willst musst du erst die Registeradresse senden
und dann die Daten lesen:
Code:
buf[0] = SD20_ADRESS | WRITE;
buf[1] = register;    // z.B 0x01 für Register 1
TWI_Start_Transceiver_With_Data(buf, 2);     /* Slave Adresse und Registernummer senden */
TWI_Get_Data_From_Transceiver(buf, 2); /* Slave Adresse senden und Daten 
lesen */

Thorsten