2011-2012
Projet Drone Semestre 9 Partie lectronique
Carte mre
STRUB Guillaume
Mcatronique 5e anne
MIQ5
2011 2012
Introduction
Le prsent rapport se consacre la description de la carte mre du projet Drone et au travail effectu
sur celle-ci au cours du semestre. Il est compos de deux parties relativement indpendantes.
La premire partie est crite de faon servir de manuel de rfrence pour les gnrations futures
dtudiants qui seront amens travailler sur la carte mre. Larchitecture matrielle et logicielle y
sera dtaille, ainsi que les diffrents brochages et rglages ncessaires.
La seconde partie prsente le travail effectu au cours du semestre sur la carte mre. Elle prsente
plus en dtail la conception de la nouvelle carte mre et les diffrents problmes qui ont pu tre
rencontrs avant, pendant et aprs cette conception.
Sommaire
Introduction............................................................................................................................................. 2
Sommaire ................................................................................................................................................ 2
Partie I : Notice dutilisation de la carte mre version 2011-2012 ......................................................... 4
Architecture matrielle ....................................................................................................................... 5
Implantation des composants principaux ........................................................................................... 6
Attribution des broches et brochage des connecteurs ....................................................................... 8
Connecteurs PPM (servos et variateurs) : J1, J2, J3 ........................................................................ 8
Connecteur IMU (Centrale inertielle MicroStrain 3DM-GX2) : J4 ................................................... 9
Connecteur GPS (EM-406) : J5....................................................................................................... 10
Connecteur ICSP (Programmation in-situ) : J6 .............................................................................. 11
Connecteur BATT. CM (Alimentation par batterie) : J7................................................................. 11
Connecteur CAPTEURS (Carte capteurs) : J8 ................................................................................. 12
Connecteur XBee : J9, U4 .............................................................................................................. 13
Connecteur DEBUG : J10 ............................................................................................................... 14
Bus SPI matre : U2, J11 ................................................................................................................ 15
Connecteur I2C : J12 ...................................................................................................................... 16
Connecteur de mesure de tension batterie : J14 .......................................................................... 16
Configuration de lalimentation ........................................................................................................ 17
Architecture logicielle........................................................................................................................ 18
Fichier trames.h ............................................................................................................................. 19
Fonctions de rception .................................................................................................................. 19
Fonctions gnrales ................................................................................................................. 22
Fonctions spcifiques chaque modle de drone ........................................................................ 22
Mise en route .................................................................................................................................... 23
Page 2 sur 34
MIQ5
2011 2012
Page 3 sur 34
MIQ5
2011 2012
Capteurs
Tlcommande
Carte mre
Actionneurs
Station au sol
Page 4 sur 34
MIQ5
2011 2012
Architecture matrielle
La prsente carte mre est construite autour dun dsPIC33EP256MU806 de Microchip. Il sagit dun
microcontrleur 16 bits possdant des fonctions additionnelles de traitement des signaux (DSP). Il a
t choisi pour sa puissance de calcul, son espace mmoire important et le nombre de sorties PWM
disponibles (16 dont 12 utilises), ce qui permet de contrler de multiples actionneurs.
Ce dsPIC est aliment en 3,3V et est cadenc 117,9648 MHz, grce un quartz de 7,3728MHz et un
coefficient multiplicateur x16 obtenu par PLL. De ce fait, on obtient une puissance de calcul proche
de 60 MIPS (Millions dInstructions Par Seconde), soit une instruction tous les deux coups dhorloge.
On rappelle les caractristiques principales de ce microcontrleur dans le tableau suivant :
Tableau 1: caractristiques principales du dsPIC33EP256MU806
Mmoire programme
Mmoire SRAM
Timers
Sorties PWM
Ports srie asynchrone (UART)
Ports srie synchrone (SPI)
Ports srie synchrone (I2C)
Convertisseurs analogique/numrique
Botier
La figure suivante prsente larchitecture matrielle gnrale de la carte mre du drone. Les blocs
colors en rose correspondent des priphriques aliments sous 5V tandis que les blocs en bleu
correspondent des lments aliments en 3,3V. Les ports de communication utiliss sont prciss
sur la flche reprsentant la liaison.
Module XBee vers
station sol et
tlcommande
Centrale inertielle
MicroStrain
3DM-GX2
UART1
UART2
Port UART
supplmentaire
GPS EM-406
UART3
UART4
SPI1
Carte capteurs
Batterie principale
AN27
dsPIC33EP256M
U806
AN25
Batterie carte
mre
Carte MicroSD
SPI2
Alimentation
5V et 3.3V
Port SPI
supplmentaire
PGEC3, PGED3
Connecteur de
programmation
OC1 OC12
Servomoteurs et
variateurs
(12 lignes)
IC
Port IC
supplmentaire
Page 5 sur 34
MIQ5
2011 2012
Page 6 sur 34
MIQ5
2011 2012
Repre
J1
J2
J3
J4
J5
J6
J7
J8
J9
J10
J11
J12
J13
J14
U1
U2
U3
U4
U5
U7
SW1
D6
D5
D4
D3
Rfrence
IMU
GPS
ICSP
BATT. CM
CAPTEURS
XBEE
DEBUG
SPI
I2C
BATT.
dsPIC33EP256MU806
MicroSD
MAX3232
XBee
MC33269-3.3
L4941BDT-TR
RESET
LED_ROUGE
LED_ROUGE
LED_VERT
LED_VERT
Dsignation
Connecteur servos / ligne signaux
Connecteur servos / ligne 5V
Connecteur servos / ligne 0V
Connecteur centrale inertielle MicroStrain 3DM-GX2
Connecteur GPS EM-406
Connecteur de programmation in-situ
Alimentation de la carte mre par batterie ddie
Connecteur carte capteurs via cble dadaptation
Connecteur UART XBEE (drivation)
Connecteur UART supplmentaire
Connecteur SPI supplmentaire (partag avec le support SD)
Connecteur IC supplmentaire
Cavalier de choix de la source dalimentation
Connecteur de mesure de la tension de la batterie principale
Microcontrleur
Connecteur pour carte mmoire MicroSD
Convertisseur de niveaux RS232 TTL 3.3V
Connecteur XBee
Rgulateur LDO 3,3V
Rgulateur LDO 5V
Redmarrage de la carte (broche MCLR)
Indicateur LED rouge (broche RB6)
Indicateur LED rouge (broche RB7)
Indicateur LED vert (broche RB8)
Indicateur LED vert (broche RB9)
Page 7 sur 34
MIQ5
2011 2012
Les signaux de commande sont gnrs au moyen du module Output Compare, qui permet la
gnration de signaux PWM. Par dfaut, la frquence de rafrachissement est fixe 50Hz.
Attention : le brochage des connecteurs doit tre STRICTEMENT respect, sous peine
dendommager dfinitivement la broche incrimine voire le dsPIC !
Les 12 lignes de commande prsentes sur J1 sont attribues de la faon suivante :
Tableau 3 : attribution des broches de J1
N
1
2
3
4
5
6
7
8
9
10
11
12
Nom
OC1
OC2
OC3
OC4
OC5
OC6
OC7
OC8
OC9
OC10
OC11
OC12
Broche dsPIC
RE4/RP84 (OC1)
RE2/RP83 (OC2)
RE0/RP80 (OC3)
RF1/RP97 (OC4)
RF0/RP96 (OC5)
RD7/RP71 (OC6)
RD6/RP70 (OC7)
RD5/RP69 (OC8)
RD4/RP68 (OC9)
RD3/RP67 (OC10)
RD2/RP66 (OC11)
RD1/RP65 (OC12)
Sens
Commentaire
Rapport cyclique dfini par OC1R
Rapport cyclique dfini par OC2R
Rapport cyclique dfini par OC3R
Rapport cyclique dfini par OC4R
Rapport cyclique dfini par OC5R
Rapport cyclique dfini par OC6R
Rapport cyclique dfini par OC7R
Rapport cyclique dfini par OC8R
Rapport cyclique dfini par OC9R
Rapport cyclique dfini par OC10R
Rapport cyclique dfini par OC11R
Rapport cyclique dfini par OC12R
Remarques :
Page 8 sur 34
MIQ5
2011 2012
Toutes les broches RPxx peuvent tre attribues des entres ou des sorties de
priphriques via la fonction PPS. De plus, elles peuvent galement fonctionner en
entre/sortie standard (GPIO).
4 3 2 1
Figure 7 : brochage du connecteur IMU (vue de dessus)
Tableau 4 : attribution des broches de J4
N
1
2
3
4
Nom
5V
IMU_MRST
IMU_MTSR
GND
Broche dsPIC
RG7/RPI119 (U2RX)
RG6/RP118 (U2TX)
-
Sens
Commentaire
Alimentation 5V
Rception des donnes de lIMU
Envoi de donnes vers lIMU
Masse
Remarques :
Page 9 sur 34
MIQ5
2011 2012
6 5 4 3 2 1
Figure 8 : brochage du connecteur GPS (vue de dessus)
Tableau 5 : attribution des broches de J5
N
1
2
3
4
5
6
Nom
GND
5V
GPS_MRST
GPS_MTSR
GND
Broche dsPIC
RB10/RPI42 (U3RX)
RE7/RP87 (U3TX)
-
Sens
Commentaire
Masse
Alimentation 5V
Rception des donnes du GPS
Envoi de donnes vers le GPS
Masse
Sortie 1Hz du GPS ; non relie sur la carte
Remarques :
Page 10 sur 34
MIQ5
2011 2012
5 4 3 2 1
Figure 9 : brochage du connecteur ICSP (vue de dessus)
Tableau 6 : attribution des broches de J6
N
1
2
3
4
5
Nom
MCLR
VDD
GND
PGD
PGC
Broche dsPIC
MCLR
RB1
RB0
Sens
Commentaire
Remise zro du dsPIC (actif ltat bas)
Alimentation 3.3V
Masse
Donnes de programmation
Horloge de programmation
Remarques :
Les broches utilises (RB0 et RB1) correspondent au canal de programmation 3, tel que dfini
par la macro _FICD(ICS_PGD3 & JTAGEN_OFF);. Ce rglage ne doit tre modifi sous
aucun prtexte sous peine de ne pas pouvoir reprogrammer le dsPIC (par prcaution).
N
1
2
3
Nom
NC
VB
GND
Commentaire
Broche non relie (fil jaune)
Alimentation (fil rouge)
Masse (fil noir)
Page 11 sur 34
MIQ5
2011 2012
La mesure de la tension de cette batterie est possible via la broche RE1/AN25 du dsPIC ; la tension
prsente sur cette broche tant gale 1/10e de la tension de la batterie.
6 5 4 3 2 1
Figure 11 : brochage du connecteur SPI (vue de dessus)
Tableau 8 : attribution des broches de J8
N
1
2
3
4
5
6
Nom
5V
CAPTEURS_MOSI
CAPTEURS_MISO
CAPTEURS_CLK
CAPTEURS_CS
GND
Broche dsPIC
RB14/RPI46
RF4/RP100
RB13/RPI45
RB11/RPI43
-
Sens
Commentaire
Alimentation 5V
Rception de donnes
Envoi de donnes
Horloge SPI
Ligne de slection (active ltat bas ?)
Masse
Remarques :
Page 12 sur 34
MIQ5
2011 2012
4 3 2 1
Figure 12 : brochage du connecteur XBEE J9 (vue de dessus)
Tableau 9 : attribution des broches de J9
N
1
2
3
4
Nom
VDD
XBEE_MRST
XBEE_MTSR
GND
Broche dsPIC
RD8/RPI72 (U1RX)
RF5/RP101 (U1TX)
-
Sens
Commentaire
Alimentation 3.3V
Rception des donnes du PC/XBee
Envoi de donnes vers le PC/XBee
Masse
Remarques :
Page 13 sur 34
MIQ5
2011 2012
4 3 2 1
Figure 13 : brochage du connecteur DEBUG J10 (vue de dessus)
Tableau 10 : attribution des broches de J10
N
1
2
3
4
Nom
VDD
DEBUG_MRST
DEBUG_MTSR
GND
Broche dsPIC
RE6/RPI86 (U4RX)
RE5/RP85 (U4TX)
-
Sens
Commentaire
Alimentation 3.3V
Rception des donnes du priphrique
Envoi de donnes vers le priphrique
Masse
Remarques :
Page 14 sur 34
MIQ5
2011 2012
6 5 4 3 2 1
Figure 14 : brochage du connecteur SPI (vue de dessus)
Tableau 11 : attribution des broches de J11
N
1
2
3
4
5
6
Nom
VDD
SD_MISO
SD_MOSI
SD_CLK
SPARE_CS
GND
Broche dsPIC
RB15/RPI47
RD0/RP64
RF3/RP99
RB3
-
Sens
Commentaire
Alimentation 3.3V
Rception de donnes (partage)
Envoi de donnes (partage)
Horloge SPI (partage)
Ligne de slection (active ltat bas)
Masse
Remarques :
Page 15 sur 34
MIQ5
2011 2012
4 3 2 1
Figure 15 : brochage du connecteur I2C (vue de dessus)
Tableau 12 : attribution des broches de J13
N
1
2
3
4
Nom
VDD
SCL_I2C
SDA_I2C
GND
Broche dsPIC
RD10
RD9
-
Sens
Commentaire
Alimentation 3.3V
Horloge
Bus de donnes
Masse
2 1
Figure 16 : brochage du connecteur BATT (vue de dessus)
Tableau 13 : attribution des broches de J14
N
1
2
Nom
VBATT_AUX
GND
Broche dsPIC
RE3/AN27
-
Sens
-
Commentaire
Mesure de tension batterie par pont 1/10e
Masse
Page 16 sur 34
MIQ5
2011 2012
Configuration de lalimentation
La ligne 5V dalimentation peut tre fournie par deux sources :
Un rgulateur 5V aliment par une batterie externe connecte sur BATT. CM (J7)
Une source 5V relie au connecteur PPM (par exemple circuit BEC de variateur brushless).
Le cavalier J13 permet de choisir laquelle de ces deux source est utilise pour lalimentation de la
carte mre. Les configurations possibles sont les suivantes :
Tableau 14 : attribution des broches de BATT. CM
Position Nom
1-2
2-3
Commentaire
5V fourni par
5V_REG
rgulateur interne.
5V fourni par
5V_SERVO
connecteur PPM.
le
le
Dans les deux cas, la tension choisie est filtre au moyen dune inductance et dun condensateur au
tantale afin de limiter lintroduction de parasites lis aux actionneurs.
Page 17 sur 34
MIQ5
2011 2012
Architecture logicielle
Le programme de la carte mre a t rcrit durant lanne 2010-2011 afin dadopter une
conception modulaire. Ainsi, le mme code source est utilis pour lensemble des drones utiliss
(planeur, mulet, quadri et orange), seuls les fichiers spcifiques chaque drone (asservissements,
attribution des voies) sont rcrire. Cette approche permet de rendre le code plus lisible et de
centraliser les fichiers communs, afin dviter la prolifration de versions diffrentes.
Les fonctions communes sont rparties de la faon suivante :
-
Les sections suivantes dtaillent la structure du fichier trames.h, la structure gnrale des fonctions
de rception, les fonctions gnrales et les fonctions spcifiques chaque modle de drone. Elles ont
t reprises du rapport de projet S7 MIQ4 2010-2011.
Page 18 sur 34
MIQ5
2011 2012
Fichier trames.h
Ce fichier regroupe lensemble des trames utilises actuellement dans le projet drone. Une trame se
compose des lments suivants :
1 Octet de dbut
1 Octet de type
Do une taille totale de N+3 octets.
N octets de donnes
1 octet de checksum
Loctet de dbut (DEBUT_TRAME) et les octets de type sont dfinis dans ce fichier par un #define,
afin de pouvoir les changer plus facilement que sils taient en dur dans le code.
Loctet de checksum est calcul en faisant la somme de tous les octets prcdents, il permet de
vrifier que la trame a bien t transmise.
On retrouve pour chaque trame les deux constantes :
-
TYPE_TRAME_XXX
LG_TRAME_XXX
Le fichier trames.h dfinit galement les constantes derreurs pouvant survenir lors de la rception
(pas derreur, mauvais octet de dpart, type de trame inconnu et checksum incorrect) :
TRAME_ERR_NOERR, TRAME_ERR_DEBUT, TRAME_ERR_TYPE, TRAME_ERR_CHECK.
Le fait de dfinir lensemble des constantes dans ce fichier plutt que de les coder en dur comme
prcdemment amliore grandement la lisibilit du code et le rend plus comprhensible.
Fonctions de rception
Ces fonctions sont ralises dans la fonction dinterruption de linterface correspondante
(_SPI1Interrupt pour la carte capteurs, _U1RXInterrupt pour le XBee, _U2RXInterrupt pour la centrale
inertielle). Lalgorithme utilis est le suivant :
Lors de la rception dun octet :
Erreur = ERR_TRAME_NOERR
Si compteur = 0 :
Si octet DEBUT_TRAME : Erreur += ERR_TRAME_DEBUT
Si compteur = 1 :
Si le type de trame nest pas connu : Erreur += ERR_TRAME_TYPE
Si compteur = longueur_trame 1
Si le checksum est incorrect : Erreur += ERR_TRAME_CHECK
Sinon :
Traiter trame
Mettre le flag TrameMAJ 1
Mettre le flag ResetTrame 1
Fin si
Si ResetTrame = 1 ou Erreur ERR_TRAME_NOERR
Remettre le compteur zro
Sinon
Enregistrer loctet dans le buffer de trame
Incrmenter le compteur
Ajouter loctet au checksum
Fin si
Il est plus simple que lalgorithme utilis prcdemment et utilise moins de variables. Il a galement
t utilis avec succs dans la communication inter-cartes au Club Robot lors de ldition 2010.
Page 19 sur 34
MIQ5
2011 2012
Certaines variables (compteur, checksum, buffer de trame) doivent garder leurs valeurs entre deux
appels de linterruption. Il existe plusieurs faons de raliser cela :
-
En utilisant une variable globale lensemble du code : dconseill, surtout quelle na pas
tre rcrite ailleurs.
En utilisant une variable locale au module (dclare dans le .c uniquement).
En utilisant une variable locale statique : cest la solution qui a t retenue ici.
Le traitement des trames est maintenant intgr aux fonctions de rception, les donnes des trames
sont enregistres dans des structures qui permettent daccder directement la valeur voulue. Ainsi,
on a par exemple pour les capteurs la structure suivante :
//! Structure contenant les donnes des capteurs
typedef struct {
//! Latitude GPS
signed long gps_x;
//! Longitude GPS
signed long gps_y;
//! Vitesse GPS en m/s
signed int gps_vitesse;
//! Altitude baromtrique en m
signed int gps_cap;
//! Altitude baromtrique en m
unsigned int altitude_baro;
//! Altitude ultrasons en cm
unsigned int altitude_us;
//! Vitesse Pitot en m/s
unsigned int vitesse;
//! Jauge de batterie
unsigned int jauge;
//! Flags d'tat envoys la carte mre et la station au sol
unsigned int status;
} CAPTEURSDATA;
MIQ5
2011 2012
sur le PIC. Comme on doit convertir des donnes en octet (char) en donnes virgule flottante
(float), il nest pas possible dutiliser la mthode de rotation gauche et daddition. Deux fonctions
ont t crites pour raliser la conversion de donnes de 4 octets et de 2 octets respectivement :
byteSwap4 et byteSwap2.
void byteSwap4 (void* dest, const void* source) {
((char*)(dest))[3] = ((char*)(source))[0];
((char*)(dest))[2] = ((char*)(source))[1];
((char*)(dest))[1] = ((char*)(source))[2];
((char*)(dest))[0] = ((char*)(source))[3];
}
Elles fonctionnent en convertissant le pointeur dentre en pointeur sur un tableau de char, ce qui
permet dadresser directement les octets de la variable dans la mmoire, indpendamment du type
de la variable. On peut donc les utiliser pour travailler sur des entiers sur 4 octets (long) ou des
nombres virgule flottante (float).
Page 21 sur 34
MIQ5
2011 2012
Fonctions gnrales
Il sagit des autres fonctions, utilises quel que soit le type de drone et qui ne font pas partie des
fonctions de communication. On y retrouve les fonctions lies la commande PPM : conversion des
donnes de la tlcommande vers un pourcentage, conversion dun pourcentage vers la valeur
crire dans les registres de PWM du PIC et fonction de bornage de la largeur dimpulsion.
Lautre module (mode_vol) contient la boucle principale du programme (boucleGestionVol) : il sagit
dun automate tats permettant la gestion des diffrents modes de vol (FAILSAFE, MANUEL,
SEMI_AUTO et AUTO), dfinis dans mode_vol.h
La boucle principale est compose dune structure switch(modeVol) permettant de grer les
diffrents tats :
-
Page 22 sur 34
MIQ5
2011 2012
Mise en route
Les lments suivants sont ncessaires pour commencer dvelopper et tester des programmes sur
la carte mre :
-
Aprs avoir install les diffrents logiciels, il est ncessaire de rcuprer le code source sur le SVN.
Pour cela, on utilise la commande SVN Checkout de TortoiseSVN avec ladresse suivante :
http://insa-projet-drone.googlecode.com/svn/ insa-projet-drone-read-only
Pour enregistrer des modifications sur le SVN, vous devez avoir un compte Google et demander au
responsable du SVN de vous ajouter la liste des commiters . Ladresse de checkout devient
alors :
svn
checkout
https://insa-projet-drone.googlecode.com/svn/
drone --username <votre adresse email>
insa-projet-
Le
programme
de
la
carte
mre
se
trouve
ensuite
dans
le
dossier
Programme_carte_mere_2011_2012 . Le fichier carte_mere.mcp souvre avec MPLAB et contient
lensemble des informations ncessaires la compilation. Vous pouvez alors lancer la compilation
pour vrifier le bon fonctionnement de linstallation. En cas derreur, vrifiez que le code source nest
pas mis en cause (en rcuprant une version antrieure connue pour fonctionner) et assurez-vous
que les outils de dveloppement sont bien reconnus par MPLAB : dans la fentre accessible par le
menu Project->Set Language Tool Locations puis Microchip C30 Toolsuite , les chemins daccs
doivent tre renseigns avec les chemins utiliss pour linstallation.
Pour fonctionner correctement, la carte mre doit de prfrence tre alimente par une source
autre que le programmateur. Celui-ci est reli la carte mre au moyen dun cble adaptateur
normalement fourni avec la carte ; le fil blanc correspond la broche n1 du connecteur ICSP.
Le programmateur doit tre de prfrence reli la carte mre avant de lancer MPLAB, afin dviter
les messages derreurs lis une non-dtection du PIC. En cas de problme de dtection, il convient
de vrifier le bon branchement du cble (absence de faux-contacts et polarit correcte).
Lenvironnement MPLAB permet ensuite de programmer et dboguer le programme de la carte mre
au moyen des fonctions idoines : il nest pas ncessaire de flasher la carte par un logiciel annexe.
En cas derreur de programmation, il convient de vrifier les branchements et la source
dalimentation ; en gnral il suffit de relancer la procdure de programmation.
Page 23 sur 34
MIQ5
2011 2012
Labsence de circuit de protection sur les broches PPM, ce qui peut provoquer la destruction
du driver de broche et/ou du microcontrleur en cas derreur de branchement.
Le dsPIC30F6014A consomme plus de 250mA sous 5V et chauffe excessivement.
Les rgulateurs embarqus chauffent exagrment et plusieurs sont dj tombs en panne.
Lintgration est difficile, notamment dans le mulet, en raison de lespace occup par les
connecteurs (pas de 2,54mm)
Tous les UARTs sont utiliss et les autres ports disponibles (SPI et IC) ne sont pas accessibles,
ce qui limite lvolutivit de la carte mre et empche lintgration de fonctionnalits telles
que la lecture/criture de cartes SD.
Une interface microSD, qui pourra servir pour lenregistrement du journal de bord ou la
lecture des coordonnes GPS suivre (plan de vol).
Des ports de communications supplmentaires (UART, SPI et IC) pour interfacer la carte
mre avec dautres priphriques (par exemple les centrales inertielles des MIQ4 2011-2012)
Page 24 sur 34
MIQ5
2011 2012
De plus, limpact sur le programme existant doit tre le plus faible possible, do le choix dun
microcontrleur de la famille dsPIC de Microchip. Dautres familles de microcontrleur ont t
considres, comme la famille AVR32 dAtmel, cependant lINSA ne dispose pas de tous les outils
permettant de travailler avec ces circuits (programmateur, dbogueur, etc.)
partir de ces critres et du slecteur de produits Microchip en ligne
(http://www.microchip.com/productselector/MCUProductSelector.html), le dsPIC33EP256MU806 a
t retenu. Le tableau suivant permet de comparer certaines fonctionnalits de lancien et du
nouveau microcontrleur :
Critre
dsPIC30F6014A
dsPIC33EP256MU806
Performance
Jusqu 30 MIPS
Jusqu 60 MIPS
16
USB
Non
Oui
Prix
10.85
9.58
Botier
TQFP80
TQFP64
5V
3.3V
Mmoire
Ports de communication
Sorties PWM
Alimentation
Remarque : Comme la famille dsPIC33EP est relativement rcente (t 2011), seuls les
programmateurs/dbogueurs PicKIT3 et ICD3 sont compatibles avec le dsPIC choisi.
Alimentation
Deux tensions doivent tre prsentes sur la carte mre :
-
Au dpart, il tait galement prvu dalimenter les servomoteurs par la carte mre. Un prototype
dalimentation dcoupage 5V 4A a t dvelopp, mais la tension de sortie tait assez bruite. De
plus, lencombrement du circuit est tel quil nest pas pertinent de lintgrer la carte mre.
La tension de 5V est donc obtenue avec un rgulateur linaire ; les servomoteurs ne seront pas
aliments par celui-ci. Cette solution est aussi plus lgante dun point de vue lectrique puisque les
alimentations de logique et de puissance sont spares.
Page 25 sur 34
MIQ5
2011 2012
Comme la consommation sur le rail 3,3V est relativement faible, celui-ci est obtenu partir du rail 5V
et dun rgulateur linaire.
Connecteurs
Les anciens connecteurs au pas de 2,54mm taient encombrant et peu pratiques intgrer. De plus,
la largeur des cbles posait de frquents problmes de fiabilit (arrachement sur les broches situes
aux extrmits).
Le choix sest port sur des connecteurs JST de la srie SH pour les interconnexions entre les
diffrents priphriques. Lencombrement est bien plus faible, ce qui permet dintgrer la carte mre
plus facilement dans les diffrents drones.
Sur lancienne carte mre, les actionneurs (variateurs et servomoteurs) taient branchs sur un
connecteur 3 ranges situ sur une petite carte annexe monte angle droit sur la carte principale.
Mcaniquement, cette solution nest pas satisfaisante car lintgralit des contraintes est supporte
par les soudures de la face suprieure : en cas de choc, les pistes allant ce connecteurs peuvent se
dtacher de la carte mre.
Figure 18 : lancienne carte mre munie de la carte capteurs. Noter la vulnrabilit du connecteur PPM
Pour rsoudre ce problme, jai choisi un connecteur 3 ranges angle droit disponible chez Samtec.
Comme il est soud travers la carte, les contraintes sont mieux rparties sur la carte.
Conception de la carte
Le schma et le routage sont prsents en annexe.
Schma
Le dsPIC33EP256MU806 intgre la fonction Peripheral Pin Select. Celle-ci permet de remapper les
connexion internes aux priphriques (UART, SPI, etc.) (presque) nimporte quelle broche physique
du dsPIC. Par consquent, lattribution dfinitive des broches sest faite en fonction du routage, afin
de minimiser la longueur des pistes et le nombre de croisements (et donc de vias).
Routage
Initialement, il tait prvu de raliser la carte au Laboratoire Mcatronique avec la fraiseuse PCB.
Cette machine permet de graver des cartes double-face avec une prcision suffisante pour raliser
des pistes de 1/100e de pouce de largeur. Cependant, les trous et vias ne peuvent tre mtalliss
Page 26 sur 34
MIQ5
2011 2012
comme sur des cartes industrielles, ce qui rajoute des contraintes : les connecteurs traversants ne
peuvent tre souds que par le dessous de la carte et un via ne peut dboucher sous un composant
CMS.
La machine tant tombe en panne avant de pouvoir raliser la carte mre, la fabrication de cette
dernire a t confie Eurocircuits.
des tests lectriques mens durant la soudure : vrification des courts-circuits et circuits
ouverts, polarit des LEDs et rgulation des tensions
dtection et programmation du dsPIC au moyen dun PicKIT3
Ces tests ont permis de constater une erreur de routage au niveau du rgulateur 5V (AP1117,
rfrence U7 sur la carte) : les broches Vout et GND sont inverses. Par consquent, la source externe
connecte sur BATT. CM est court-circuite et la carte est inutilisable dans cette configuration.
Une solution temporaire consiste nutiliser que le connecteur PPM comme source 5V, le jumper J13
doit donc se trouver en position 5V_SERVO. Si aucun variateur brushless nest utilis, lalimentation
peut tre fournie par un rgulateur externe.
Le brochage a t corrige sur la version de la carte fournie avec ce rapport ; le rgulateur a t
remplac par un L4941 dont le brochage est diffrent. Celui-ci peut tre mont sur les cartes
actuelles en le soudant lenvers , cest--dire avec le ct plastique du botier pos sur la carte et
la partie mtallique en lair.
Laisser les broches sur la bande mtallique avec laquelle elles sont livres. Cela permet de les
maintenir lors de la soudure et du sertissage
Ecarter les lvres du connecteur avec un scalpel ou un cutter pour viter que la soudure ne
remonte par capillarit et les colle ensemble
Appliquer une goutte de soudure sur la partie mdiane de la broche
Page 27 sur 34
MIQ5
2011 2012
IMU
PicKIT3
Rgulateur
externe
GPS
Carte mre
XBee
Servomoteur
Batterie
externe
(LiPo 2S)
Dans chaque fichier du programme, linclusion <p30Fxxxx.h> a t remplace par <p33Exxx.h> pour
reflter le changement darchitecture. Les bibliothques de priphriques sont identiques, il nest
donc pas ncessaire dapporter de changements supplmentaires pour leur utilisation.
Il a cependant t ncessaire de rcrire la routine dinitialisation :
-
MIQ5
2011 2012
Linitialisation de la fonction PPS a t rajoute, elle consiste attribuer les lignes internes
des priphriques aux broches physiques correspondant au routage. Les broches attribues
des priphriques non utilises sont disponibles comme E/S gnriques.
La configuration du module PWM a t change pour ajouter les 4 sorties supplmentaires,
ce qui porte le nombre de lignes disponibles pour la commande des servos/variateurs 12.
Comme les registres utiliss diffrent entre la famille dsPIC30F et la famille dsPIC33EP, les
rfrences OCxRS ont t remplaces par OCxR (avec x le numro du module PWM).
Problmes logiciels
Certaines broches du dsPIC33EP256MU806 partagent plusieurs fonctionnalits, ce qui ncessite
certaines oprations pour obtenir un fonctionnement correct :
-
Conclusion
ce jour (15/01/2012), le code est suffisamment jour pour effectuer des essais en vol avec les
programmes existants. Ceux-ci devront tre modifis pour utiliser linclusion <p33Exxxx.h> et les
registres OCxR en lieu et place de <p30Fxxxx.h> et OCxRS.
Il reste prsent intgrer les fonctionnalits suivantes :
-
Page 29 sur 34
MIQ5
2011 2012
Page 30 sur 34
MIQ5
2011 2012
Page 31 sur 34
MIQ5
2011 2012
Page 32 sur 34
MIQ5
2011 2012
Page 33 sur 34
MIQ5
2011 2012
Face infrieure
Page 34 sur 34