Club robotique de Sophia-Antipolis

Accueil > Essais > Cartes électroniques > Premiers pas avec l’OpenSCB

Premiers pas avec l’OpenSCB

mercredi 9 février 2011, par Julien H.

Pobot a la chance d’être parmi les premiers à pouvoir tester l’OpenSCB, une carte de contrôle de servomoteurs programmable open source. Nous présentions le projet à ses débuts en décembre 2010, et nous avons eu le plaisir de recevoir le premier prototype en version 0.1.

OpenSCB

Voici ce que cette carte contient :

 le micro-contrôleur programmable : un AVR32 "AT32UC3B1256"
 un connecteur HE10 pour le JTAG (test et debug)
 trois leds (bleu, rouge, vert)
 deux boutons poussoirs : 1 de reset, 1 de démarrage "DFU"
 un bornier pour une alimentation 6 volts
 8 connecteurs 3 points pour radio-commande
 10 connecteurs 3 points pour servomoteurs (mais les 3 suivants sont utilisables aussi par des servos)
 2 connecteurs 3 points pour l’I2C
 1 connecteur 3 points pour un servo spécial Dynamixel AX-12
 1 jumper 2 points pour choisir entre Dynamixel ou tension de servomoteur sur la sortie 13
 2 borniers à vis SW1 et SW2 non connectés pour des relais (interrupteurs électroniques ASSR - solid state relay)
 2 jumpers mâles pour activer les interrupteurs ASSR SW1 et SW2

Note : il est possible que les ASSR disparaissent en seconde version.

Les codes sources et les documents techniques sont mis à disposition sur le SVN du site Open SCB. Je n’ai pas encore tout bien compris donc contactez-nous pour qu’on corrige les erreurs.

Matériel

Les fichiers de schéma et de circuit sont disponibles au format Altium (un logiciel de design professionnel), mais un fichier PDF est disponible (dans le répertoire openscb\trunk\HW Design\Schematics\Outputs) avec toutes les informations utiles, y compris l’implantation des composants :

Attention, le prototype v0.1 utilise bien un B1 256 et pas un B1 128 comme annoncé dans le PDF. Ce sera important au moment de programmer la puce.

Le CPU

Quelques mots sur la puce AVR UC3 série B : il s’agit ici d’un grand frère musclé des micro-contrôleurs que nous utilisons habituellement. Même s’il fait partie de la grande famille des AVR RISC du fabriquant ATMEL, il a les caractéristiques supérieures suivantes :
 fonctionne en 32 bits (contre 8 bits pour la puce qui équipe les Arduino par exemple),
 capable de gérer des instructions spécifiques de traitement du signal (DSP)
 communique en USB (voir plus bas)
 grosse mémoire (256k de flash et 32k de ram - la mémoire vive - sur l’OpenSCB)

De fait, c’est la seule puce nécessaire sur cette carte pour tout gérer. Je dis ça parce que je me demandais où était le convertisseur FTDI... avant de m’apercevoir que ce n’était pas un ATmega :). Cela dit, il est possible d’émuler un port série "UART" afin d’avoir un accès COM (Windows) ou tty (Linux) sur son ordinateur. Pratique pour des prototypes rapides avec Flash ou Processing ou PureData.

Le mode DFU

Cette série de contrôleurs (UC3) dispose nativement d’un mode de programmation de son logiciel appelé "DFU Bootloader", où DFU est l’acronyme de Device Firmare Update en anglais, ce qui signifie bien la mise à jour du logiciel interne du circuit.

Un petit outil permet la programmation directe sur le circuit ("in-situ" qu’on retrouve dans le terme ISP) en passant par l’USB, sans outil supplémentaire.

Les logiciels nécessaires

Informations utiles

Le site OpenSCB se met à jour en direct ! Les conseils pour l’environnement de développement sont déjà disponibles :

J’ai profité de cette première expérience avec un µC 32 bits pour tester AVR32 Studio 2.6 (basé sur Eclipse) mais il est possible d’utiliser des outils GNU. Il faut également télécharger l’outil Atmel Flip. J’ai choisi la version 3.4.2 pour Windows sans Java intégré (vu que j’ai déjà un JDK et un JRE).

Installation

Le pilote USB est disponible dans le partage des sources (répertoire "openscb\trunk\Software\Driver"), pour toutes versions de Windows, sous la forme d’une DLL "libusb-win32" sous licence GPL.

Lors de l’insertion dans un port USB d’un ordinateur sous Windows, le gestionnaire de périphériques la détecte et l’identifie par son nom, mais nécessite qu’on lui indique le chemin vers le pilote.

Sur ma machine (Windows XP SP3 sur Pentium Core 2), le gestionnaire s’est chargé de trouver la bonne version (x86) grâce aux informations du fichier de définition "OpenSCB.inf".

Après installation, la carte apparait dans les périphériques dans un nouveau groupe "libusb", ne la cherchez pas dans les ports séries !

Première programmation

Je n’ai pas attendu que le logiciel soit installé, j’ai appuyé sur le bouton "DFU boot" et j’ai connecté l’USB en restant appuyé : le gestionnaire de périphériques s’est de nouveau activé car il détecte cette fois-ci la carte en AT32U3CB DFU (voir les explications ci-dessus).

Il faut avoir installé Atmel Flip (voir ci-dessus) qui contient un répertoire avec le descripteur de périphérique DFU pour AVR U3C.

Vos commentaires

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.