Servo USB

Carte à vocation didactique
Responsable
MESSERLI Etienne
Période
janvier 2013 - juin 2014
Axes
Conception intégrale de systèmes embarqués

Le métier d’ingénieur en informatique embarqué exige de connaissances dans des domaines très divers comme les télécommunications, l’automobile ou encore les automatismes industriels. C’est dans ce contexte que nous avons développé la carte Servo_USB, une carte analogique/numérique qui comporte une partie dédiée à la communication par USB, un FPGA et un étage de puissance nécessaire à l’alimentation et la commande de moteurs.

La carte Servo_USB associée à une table tournante disposant de moteurs et capteurs permet des manipulations de laboratoire intéressantes pour les étudiants en Informatique Embarquée mais aussi pour les étudiants de l’orientation Electronique Embarquée et Mécatronique (EEM) du département TIN. Ils peuvent ainsi appliquer leur compétence dans le domaine de l’automatisation.

Asservissement « numérique » des moteurs

Cette carte comprend un FPGA et un microcontrôleur. Il est dès lors possible de réaliser l’asservissement des moteurs par un design numérique décrit en VHDL dans le FPGA ou par un programme C développé sur le microcontrôleur. 
Dans le cadre des laboratoires de conception de systèmes numériques, les étudiants développent leur propre design dans une carte FPGA tiers, telle que la carte REPTAR ou Max_80p_25p, qui est connectée à Servo_USB par le biais du connecteur d’extension 25 ou 80 pôles. Dans ce cas, la carte Servo_USB intervient uniquement pendant la phase de validation finale. Elle fait donc office d’interface entre la carte contenant le design développé et les moteurs et capteurs. 

 

Interface_Servo_USB

La figure ci-dessous représente l’architecture générale du système de développement utilisé par les étudiants.

Architecture_Servo_USB

Consoles virtuelles Tcl/Tk

Dans le même esprit que la carte Console_USB, la carte Servo_USB dispose d’un microcontrôleur avec lien USB. Il est ainsi possible d'utiliser l’écran d’un PC pour afficher différentes informations de test et de monitoring de l’ensemble du système, typiquement au moyen d’une console virtuelle Tcl/Tk.

Console_virtuelle_Servo_USB

Cette console virtuelle Tcl/Tk tournant sur le PC permet l’envoi de consignes de position ou de vitesse à la carte de développement FPGA. Cette dernière effectue les calculs nécessaires et génère les signaux de contrôle qui sont acheminés à travers la carte Servo_USB vers les moteurs.  

De la conception à la fabrication…

De la spécification, jusqu’à la schématique et le routage, la carte Servo_USB a été entièrement développée à l’institut REDS en collaboration avec l’institut IESE. La fabrication du PCB, en technologie 12 couches, a été mandatée à une entreprise externe, de même  que l’assemblage des composants comportant plusieurs boîtiers à haute densité de type BGA ou LGA.

 Conception_Servo_USB

SpécificationsSpecifications_Servo_USB

  • FPGA EP3C40F484C8N (Cyclone III, 40 kLE, 1Mb RAM)
  • EPCS16 (mémoire 16Mb pour configuration FPGA)
  • Microcontrôleur CY7C68013A (Cypress)
  • USB
  • 512 Mb DDR SDRAM
  • Quartz 24MHz
  • Alimentation 24V
  • 5x boutons pour la FPGA
  • 25x LEDs pour la FPGA
  • 8x LEDs pour le microcontrôleur
  • Protection des I/O par des drivers de ligne
  • 1x SUB25 mâle
  • 1x connecteur DKK 80 pins mâle
  • Connexion JTAG
  • Contrôleur pour moteur à courant continu avec étage de puissance (TMC249A)
  • Contrôleur pour moteur pas-à-pas avec étage de puissance (TB6559FG)
  • 3x connecteurs DIN 41612 pour entrées capteurs