User Guide

comandos de forma rápida. El protocolo Mini SSC transmite un 0xFF (255 en decimal) como
primer byte de comando seguido del byte de numero de servo y otro de bits con el destino a realizar.
El paquete sería el siguiente:
0xFF, byte numservo, byte destinoservo
Por ejemplo si estas buscando ajustar el destino del servo 0 a la posición neutral, debes enviar la
secuencia siguiente:
en hex: 0xFF, 0x00, 0x7F
en decimal: 255, 0, 127
Maestro puede configurarse para responder a bloques contiguos de servos numerados de 0 a 254.
Maestro identifica los protocolos Pololu, Compact y Mini-SSC en el acto y no es necesario usar
parámetros para detectar el protocolo. Incluso puedes mezclar comandos de los tres.
5.d. Control de redundancia cíclica (CRC) Detección de errores
Para algunas aplicaciones es importante la verificación de la integridad de los datos que se envían o
reciben. Maestro puede realizar un chequeo de 7-bit CRC, que es algo similar a un checksum pero
mas robusto y que puede detectar errores que quizás no afectarían a un checksum, como un byte 0
extra o bytes fuera de orden. La verificación se realiza habilitando la casilla “Enable CRC” de la
pestaña “Serial Settings” de Maestro Control Center. En modo CRC, Maestro espera la
recepción de un byte extra añadido al final del paquete de comandos (excepto en los de Mini SSC).
El bit más significativo de este byte se pone a 0 y los siete bits menos significativos corresponden a
los siete bit de control. Si el byte CRC es incorrecto, Maestro puede activar un bit de error Serial
CRC al registro e ignorar el comando. Maestro no anexa un byte CRC a los datos que transmite en
respuesta a los comandos. Una lista detallada de cómo hace la comprobación se puede encontrar en
Wikipedia. Maestro utiliza CRC-7, lo que significa utiliza un polinomio de 8 bits y como resultado
produce un resto de 7 bits. En notación binaria el número 0x91 es 10010001. Sin embargo los bits
se transmiten en este orden: 1, 0, 0, 0, 1, 0, 0, 1, por lo que utilizamos 10001001 para el cálculo.
Pasos 1 & 2 (escribe binario, primero bit menos significativo añade 7 ceros al
final del mensaje):
CRC-7 Polynomial = [1 0 0 0 1 0 0 1]
mensaje = [1 1 0 0 0 0 0 1] [1 0 0 0 0 0 0 0] 0 0 0 0 0 0 0
Pasos 3, 4, & 5:
_______________________________________________
1 0 0 0 1 0 0 1 ) 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
XOR 1 0 0 0 1 0 0 1 | | | | | | | | | | | | | | |
--------------- | | | | | | | | | | | | | | |
1 0 0 1 0 0 0 1 | | | | | | | | | | | | | |
shift ----> 1 0 0 0 1 0 0 1 | | | | | | | | | | | | | |
_______________ | | | | | | | | | | | | | |
1 1 0 0 0 0 0 0 | | | | | | | | | | |
1 0 0 0 1 0 0 1 | | | | | | | | | | |
_______________ | | | | | | | | | | |
1 0 0 1 0 0 1 0 | | | | | | | | | |
1 0 0 0 1 0 0 1 | | | | | | | | | |
_______________ | | | | | | | | | |
1 1 0 1 1 0 0 0 | | | | | | |
1 0 0 0 1 0 0 1 | | | | | | |
_______________ | | | | | | |
1 0 1 0 0 0 1 0 | | | | | |
1 0 0 0 1 0 0 1 | | | | | |
_______________ | | | | | |
1 0 1 0 1 1 0 0 | | | |
1 0 0 0 1 0 0 1 | | | |
_______________ | | | |
1 0 0 1 0 1 0 0 | |
1 0 0 0 1 0 0 1 | |
_______________ | |
1 1 1 0 1 0 0 = 0x17
Luego el paquete total para el comando que se envía con el CRC habilitado es: 0x83, 0x01, 0x17.
20