Conception d’une carte à microcontrôleur ARM pour le robot Amphibot II LSL – BIRG Projet de Semestre Conception d’une carte à microcontrôleur ARM pour le robot Amphibot II Alain Dysli 20 Juin 2005 Assistant: A.Crespi Professeur: A.J.Ijspeert
Plan de la présentation LSL – BIRG Projet de Semestre Plan de la présentation Introduction – Pourquoi une nouvelle carte pour Amphibot II Cahier des charges Microcontrôleur choisi Hardware – Architecture de la carte Implementation software et hardware des fonctions Améliorations Conclusion
Introduction Pourquoi avoir besoin d’une nouvelle carte pour LSL – BIRG Projet de Semestre Introduction Pourquoi avoir besoin d’une nouvelle carte pour Amphibot II? Le PIC n’est pas assez puissant pour en même temps contrôler les moteurs, communiquer avec des capteurs et communiquer avec d’autres modules Pour donner plus d’autonomie à Amphibot II Il faut un microcontrôleur plus puissant capable de communiquer rapidement avec tous les modules!
Cahier des charges Concevoir une carte à microcontrôleur avec les LSL – BIRG Projet de Semestre Cahier des charges Concevoir une carte à microcontrôleur avec les spécificités suivantes: μc plus rapide que le PIC Plus de mémoire que le PIC Bus CAN pour une communication haut débit entre les modules Bus I2C I/O utilisable pour modules externes Taille minimale Compatible avec les modules Amphibot II
Choix du microcontrôleur LSL – BIRG Projet de Semestre Choix du microcontrôleur Microcontrôleur Philips ARM Fréquence de 60 MHz 256 kB Flash 16 kB RAM CAN & I2C en hardware Convertisseur A/D Taille relativement faible
Hardware - Éléments LSL – BIRG Projet de Semestre Battery Motor SALAMPOWER SALAMCTRL
Hardware - Microcontrôleurs LSL – BIRG Projet de Semestre Hardware - Microcontrôleurs Battery μc ARM XTAL Motor μc PIC XTAL SALAMPOWER SALAMCTRL
Hardware - Énergie LSL – BIRG Projet de Semestre Battery Battery Manager 3.3 V μc ARM 1.8 V XTAL 5 V Motor μc PIC XTAL SALAMPOWER SALAMCTRL
Hardware – Contrôle du moteur LSL – BIRG Projet de Semestre Hardware – Contrôle du moteur Battery Battery Manager 3.3 V μc ARM 1.8 V XTAL 5 V Motor μc PIC Motor Manager XTAL SALAMPOWER SALAMCTRL
Hardware – Moteur & Batterie LSL – BIRG Projet de Semestre Hardware – Moteur & Batterie Battery Battery Manager 3.3 V μc ARM 1.8 V XTAL 5 V I2C Bus Motor μc PIC Motor Manager XTAL SALAMPOWER SALAMCTRL
Hardware - Communication LSL – BIRG Projet de Semestre Hardware - Communication Battery Battery Manager 3.3 V μc ARM LEDs 1.8 V XTAL 5 V I2C Bus Motor μc PIC LEDs Motor Manager XTAL SALAMPOWER SALAMCTRL
Hardware - Communication LSL – BIRG Projet de Semestre Hardware - Communication Prog & Sensors Bus Ext I2C Battery Battery Manager 3.3 V μc ARM LEDs 1.8 V XTAL 5 V I2C Bus Motor μc PIC LEDs Motor Manager XTAL SALAMPOWER SALAMCTRL Prog Bus
Hardware - Communication LSL – BIRG Projet de Semestre Hardware - Communication Prog & Sensors Bus Ext I2C Battery Battery Manager 3.3 V μc ARM LEDs 1.8 V XTAL 5 V I2C Bus Motor μc PIC LEDs Motor Manager CAN Controller XTAL SALAMPOWER SALAMCTRL Prog Bus Previous module CAN Bus Next module
Hardware LSL – BIRG Projet de Semestre PIC LEDs Ext I2C Reg 5 V μc PIC Prog PIC ARM LEDs Salam_power Prog ARM CAN ctrl Sensor 1 Sensor 2 μc ARM
Système - Software Set complet de routines pour: LSL – BIRG Projet de Semestre Système - Software Set complet de routines pour: Initialiser le microcontrôleur pour qu’il tourne à 60 MHz Initialiser l’horloge des périphériques internes à 60 MHz Enclencher le Memory Accelerator Module
LEDs - Hardware Affichage à 2 LEDs rouge et verte Utile pour déboguer! LSL – BIRG Projet de Semestre LEDs - Hardware Affichage à 2 LEDs rouge et verte Utile pour déboguer!
LEDs - Software Set complet de routines pour: LSL – BIRG Projet de Semestre LEDs - Software Set complet de routines pour: Initialiser l’accès aux LEDs Allumer les LEDs Eteindre les LEDs Faire clignoter les LEDs
Programmation - Hardware LSL – BIRG Projet de Semestre Programmation - Hardware Port de programmation du PIC identique à la version précédente Programmation du ARM grâce à un programmateur brancher sur port série Le programmateur permet également de communiquer par UART
Programmation - Software LSL – BIRG Projet de Semestre Programmation - Software Set complet de routines pour: Initialiser la communication UART Envoyer des chaînes de caractères par UART Envoyer des nombres par UART Recevoir des caractères par UART La programmation se fait avec un logiciel tiers
Capteurs - Hardware Possibilité de brancher deux capteurs ou modules LSL – BIRG Projet de Semestre Capteurs - Hardware Possibilité de brancher deux capteurs ou modules Ports multifonctions avec alimentation et 4 entrées sorties digitales dont 2 entrées analogiques possibles Chaque pin est configurable
Capteurs - Software Set complet de routines pour: LSL – BIRG Projet de Semestre Capteurs - Software Set complet de routines pour: Initialiser les fonctions Lire la valeur d’un pin Changer l’état d’un pin Acquérir une tension analogique
LSL – BIRG Projet de Semestre I2C – Hardware Communication possible entre le gestionnaire de batterie, le PIC, le ARM et des périphériques extèrnes Le ARM est maître. Les autres périphériques sont esclaves
I2C - Software Set complet de routines pour: Initialiser l’I2C LSL – BIRG Projet de Semestre I2C - Software Set complet de routines pour: Initialiser l’I2C Écrire une valeur dans un registre d’un module Lire un registre d’un module
LSL – BIRG Projet de Semestre CAN – Hardware Le bus CAN permet une communication entres les microcontrôleurs ARM de chaque modules Le bus n’est pas maître-esclave
CAN - Software Set complet de routines pour: Initialiser le bus CAN LSL – BIRG Projet de Semestre CAN - Software Set complet de routines pour: Initialiser le bus CAN Envoyer des données avec un identifiant à choix Lire des données reçues Filtrer les messages reçus selon les identifiants
Améliorations Quelques bogues hardware mineurs LSL – BIRG Projet de Semestre Améliorations Quelques bogues hardware mineurs Problèmes software avec le bus I2C Problèmes software avec le bus CAN
LSL – BIRG Projet de Semestre Conclusion Le microcontrôleur ARM dispose d’une grande puissance de calcul Le bus CAN permet une communication rapide entre les modules L’architecture est extensible grâce aux ports pour capteurs et à l’I2C Les fonctions de base pour manipuler les I/O sont implantées Possibilité de brancher des périphériques haut débit (camera,…) Amphibot II peut maintenant être totalement autonome Quelques problèmes doivent encore être régler…