Vous êtes sur la page 1sur 34

MIQ5

2011-2012
Projet Drone Semestre 9 Partie lectronique

Carte mre

STRUB Guillaume
Mcatronique 5e anne

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Partie II : reconception de la carte mre ............................................................................................... 24


Cahier des charges............................................................................................................................. 24
Choix des composants ....................................................................................................................... 24
Microcontrleur ............................................................................................................................ 24
Alimentation .................................................................................................................................. 25
Connecteurs .................................................................................................................................. 26
Conception de la carte ...................................................................................................................... 26
Schma .......................................................................................................................................... 26
Routage ......................................................................................................................................... 26
Premiers tests et problmes rencontrs ........................................................................................... 27
Mise niveau du programme ........................................................................................................... 28
Problmes logiciels ............................................................................................................................ 29
Conclusion ......................................................................................................................................... 29
Table des figures.................................................................................................................................... 30
Table des tableaux................................................................................................................................. 30
Annexe 1 : schma lectrique de la carte mre .................................................................................... 32
Annexe 2 : routage de la carte mre ..................................................................................................... 34
Face suprieure ................................................................................................................................. 34
Face infrieure................................................................................................................................... 34

Page 3 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Partie I : Notice dutilisation de la carte mre version 2011-2012


La carte mre est llment principal de llectronique embarque du projet drone. Elle reoit les
ordres de la tlcommande, traite les informations des capteurs, effectue les calculs
dasservissement et pilote les moteurs et gouvernes. Elle assure galement la liaison avec la station
au sol. Ces informations sont rsumes sur le schma synoptique suivant :
Electronique embarque

Capteurs

Tlcommande

Carte mre

Actionneurs

Station au sol

Figure 1 : Schma synoptique de l'lectronique embarque et de la communication

Figure 2: carte mre version 2011-2012 vue de dessus

Page 4 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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

280Ko soit 48K instructions


28Ko
9 timers de 16 bits
16
4
4
2
2 convertisseurs (10 et 12bits), 24 canaux
botier CMS TQFP64

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

Figure 3 : architecture matrielle de la carte mre

Page 5 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Implantation des composants principaux


Les deux figures et le tableau ci-aprs dcrivent limplantation et la fonction des composants
principaux de la carte mre.

Figure 4 : implantation des composants sur la face suprieure de la carte mre

Figure 5 : implantation des composants sur la face infrieure de la carte mre

Page 6 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Tableau 2 : reprage et rfrence des principaux composants de la carte mre

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

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Attribution des broches et brochage des connecteurs


Connecteurs PPM (servos et variateurs) : J1, J2, J3
Le signal de commande est prsent sur la ligne repre par J1 ; la premire broche tant situe
gauche sur le schma ci-dessous (en haut gauche sur la carte mre lorsque celle-ci est vue de face).
Les broches de la ligne J2 sont toutes relies la ligne 5V_SERVO, tandis que le broches de J3 sont
relies la masse.

Figure 6 : reprage de la broche 1 des connecteurs PPM

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 :

Le premier nom de broche correspond la patte physique du dsPIC.


Le second nom correspond au numro de broche pour la fonction Peripheral Pin Select
Le troisime nom correspond la broche de priphrique dfinie dans le programme.

Page 8 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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).

Connecteur IMU (Centrale inertielle MicroStrain 3DM-GX2) : J4


La communication avec lIMU seffectue au travers de lUART2 ; la communication avec la centrale
seffectue avec les niveaux de tension RS232 (+12V/-12V) un baudrate de 115200baud/s. Par
consquent, un convertisseur de niveaux MAX3232 permet dadapter les niveaux RS232 utiliss par
la centrale aux niveaux TTL3.3V (0/3.3V) compatibles avec le dsPIC.

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 :

Le premier nom de broche correspond la patte physique du dsPIC.


Le second nom correspond au numro de broche pour la fonction Peripheral Pin Select
Le troisime nom correspond la broche de priphrique dfinie dans le programme.
Les broches RP118 et RPI119 pourraient tre rattribues dautres fonctions via la fonction
Peripheral Pin Select ; cependant le convertisseur MAX3232 fixe les niveaux et les directions.

Page 9 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Connecteur GPS (EM-406) : J5


Le GPS EM-406 est aliment sous 5V, et la communication seffectue aux niveaux TTL3.3V au moyen
de lUART3. Aucune conversion de niveaux nest donc ncessaire, et les baudrates sont de
4800baud/s par dfaut ou 9600baud/s via une commande PSRF.

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 :

Le premier nom de broche correspond la patte physique du dsPIC.


Le second nom correspond au numro de broche pour la fonction Peripheral Pin Select
Le troisime nom correspond la broche de priphrique dfinie dans le programme.
Les broches RPxx et RPIxx peut tre rattribues comme E/S de priphrique avec la fonction
PPS (les broches RPIxx ne peuvent tre attribues quen entres). De plus, elles peuvent
galement fonctionner en entre/sortie standard (GPIO).

Page 10 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Connecteur ICSP (Programmation in-situ) : J6


Ce connecteur permet la programmation de la carte mre au moyen dun
programmateur/dbogueur PicKIT3 ou ICD3. Les priphriques plus anciens (PicKIT2, ICD2) ne sont
pour linstant pas adapts au dsPIC33EP256MU806. Attention, si la carte est alimente via le
programmateur, les priphriques fonctionnant sous 5V ne fonctionneront pas ou mal.

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).

Connecteur BATT. CM (Alimentation par batterie) : J7


Ce connecteur permet dalimenter la carte mre au moyen dune batterie ddie. La tension de
celle-ci sera rgule par un rgulateur LDO 5V de type L4941. Il est donc prvu pour des batteries de
type LiPo 2S (7,2V) ou 3S (11,8V), munies dun connecteur de modlisme 2 ou 3 broches (au pas de
2,54mm).
Attention : la polarit du connecteur et de la batterie doit tre STRICTEMENT respecte, sous peine
dendommager dfinitivement le rgulateur, la carte mre et/ou la batterie !

Tableau 7 : attribution des broches de BATT. CM

N
1
2
3

Nom
NC
VB
GND

Commentaire
Broche non relie (fil jaune)
Alimentation (fil rouge)
Masse (fil noir)

Figure 10: brochage du connecteur de batterie

Page 11 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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.

Connecteur CAPTEURS (Carte capteurs) : J8


Ce connecteur est prvu pour communiquer avec la carte capteurs actuelle. Comme celle-ci tait
monte en mezzanine sur lancienne carte mre, il est ncessaire de raliser une carte ou un
cble permettant ladaptation avec un connecteur JST 6 broches.
La communication seffectue par un port SPI esclave (la carte capteurs contrle le bus). Etant donn
que la carte capteurs a t conue pour un systme 5V, une adaptation de niveau est ncessaire.

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 :

Le schma/routage actuel prsente une erreur au niveau de ladaptation de tension du bus


SPI. Il peut tre ncessaire de retirer D7 et R10 et deffectuer ladaptation de tension au
niveau de ladaptateur.
Le premier nom de broche correspond la patte physique du dsPIC.
Le second nom correspond au numro de broche pour la fonction Peripheral Pin Select
Le troisime nom correspond la broche de priphrique dfinie dans le programme.
Les broches RPxx et RPIxx peut tre rattribues comme E/S de priphrique avec la fonction
PPS (les broches RPIxx ne peuvent tre attribues quen entres). De plus, elles peuvent
galement fonctionner en entre/sortie standard (GPIO).

Page 12 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Connecteur XBee : J9, U4


La communication vers le sol (tlcommande et interface PC) seffectue au moyen de modules radio
sans fil XBee. Ceux-ci permettent dtablir une liaison srie transparente entre plusieurs modules.
Les connecteurs dsigns par U4 permettent denficher un module XBee, la silhouette est dessine
sur la carte afin de pallier toute erreur de branchement ventuelle.
Le connecteur J9 rplique les lignes du module XBee pour permettre un accs direct au donnes sans
passer par les modules XBee. Afin dviter toute erreur dans la communication, il est dconseill
dutiliser ce connecteur lorsque le module XBee est prsent (risque de collision de donnes). La
communication seffectue 115200baud/s aux niveaux TTL3.3V

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 :

Le premier nom de broche correspond la patte physique du dsPIC.


Le second nom correspond au numro de broche pour la fonction Peripheral Pin Select
Le troisime nom correspond la broche de priphrique dfinie dans le programme.
Les broches RPxx et RPIxx peut tre rattribues comme E/S de priphrique avec la fonction
PPS (les broches RPIxx ne peuvent tre attribues quen entres). De plus, elles peuvent
galement fonctionner en entre/sortie standard (GPIO).

Page 13 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Connecteur DEBUG : J10


Ce connecteur permet daccder lUART4. Celui-ci peut tre utilis des fins de dbogage ou pour
relier dautres priphriques la carte mre.

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 :

Le premier nom de broche correspond la patte physique du dsPIC.


Le second nom correspond au numro de broche pour la fonction Peripheral Pin Select
Le troisime nom correspond la broche de priphrique dfinie dans le programme.
Les broches RPxx et RPIxx peut tre rattribues comme E/S de priphrique avec la fonction
PPS (les broches RPIxx ne peuvent tre attribues quen entres). De plus, elles peuvent
galement fonctionner en entre/sortie standard (GPIO).

Page 14 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Bus SPI matre : U2, J11


Le connecteur J11 permet daccder un port SPI matre afin de relier un priphrique SPI la carte
mre. Il est partag avec le port SPI ddi la carte MicroSD.

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 :

Le premier nom de broche correspond la patte physique du dsPIC.


Le second nom correspond au numro de broche pour la fonction Peripheral Pin Select
Le troisime nom correspond la broche de priphrique dfinie dans le programme.
Les broches RPxx et RPIxx peut tre rattribues comme E/S de priphrique avec la fonction
PPS (les broches RPIxx ne peuvent tre attribues quen entres). De plus, elles peuvent
galement fonctionner en entre/sortie standard (GPIO).
La ligne de slection pour la carte SD (SD_CS) est prsente sur la broche RC13.

Page 15 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Connecteur I2C : J12


Le connecteur J12 permet daccder un bus IC afin de relier des priphriques utilisant cette
norme.

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

Connecteur de mesure de tension batterie : J14


Ce connecteur permet de mesurer la tension de la batterie principale au moyen dun pont diviseur de
tension de rapport 1/10e et dune entre analogique du PIC.
Attention : la polarit du connecteur et de la batterie doit tre STRICTEMENT respecte, sous peine
dendommager dfinitivement le rgulateur, la carte mre et/ou la batterie !

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

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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

Figure 17: brochage du connecteur de batterie

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

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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 :
-

Communication avec les priphriques :


o gps.h, gps.c : communication avec le GPS.
o xbee_comm.h, xbee_comm.c : communication avec la tlcommande et la station
au sol par liaison sans fil XBee.
o imu.h, imu.c : communication avec la centrale inertielle.
o capteurs.h, capteurs.c : communication avec la carte capteurs.
o trames.h : dfinition des trames de communication utilises au sein du projet
Configuration et initialisation du programme :
o config.h : configuration du logiciel (modules activs, type de drone).
o init.h, init.c : initialisation du dsPIC et des priphriques.
Fonctions gnrales :
o ppm.h, ppm.c : calcul de largeur dimpulsion PPM.
o generic.h, generic.c : fonctions gnriques (conversions dendian, saturations).
o global_time.h, global_time.c : base de temps globale.
Gestion des fonctions spciales du dsPIC :
o can.h, can.c : conversion analogique-numrique.
o eeprom.h, eeprom.c : lecture/criture de donnes en mmoire EEPROM.
o Remarque : ces fonctions nont ce jour (20/01/2012) pas encore t adaptes la
nouvelle carte mre !
Gestion des modes de vol :
o mode_vol.h, mode_vol.c : automate tats de gestion des modes de vol.
Point dentre du programme :
o main.c : macros de rglage des bits de configuration, appel de linitialisation et
boucle principale (gestion des modes de vol OU test des priphriques)

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

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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

loctet de type de trame


la longueur totale de la trame

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

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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;

Il nest plus ncessaire de reconstruire linformation lorsque lon en a besoin. Le remplissage de la


structure est trs simple comme elle reprend lordre des informations dans la trame : la fonction
memcpy de <string.h> permet de recopier les octets de donnes directement dans lespace mmoire
allou la structure, ce qui permet un code trs compact et efficace. En effet, le processeur se
contente de recopier le contenu dune adresse mmoire dans une autre, alors que le code prcdent
ncessitait plus de calculs : conversion en long, rotation de Nx8bits vers la gauche et addition.
Considrations particulires sur lendianness
Cela fonctionne la seule condition de conserver lendianness entre lmetteur et le rcepteur, cest-dire la faon dont sont stockes les variables de plus dun octet dans la mmoire. Les compilateurs
Microchip C18 et C30 travaillent en Little-Endian , cest--dire que pour une variable de plus dun
octet, loctet de poids faible est stock ladresse la plus faible. Le code de la carte capteurs faisait
lopration inverse, cest--dire quil envoyait dabord loctet de poids fort. Il a donc fallu inverser
lordre denvoi des donnes de la carte capteurs pour respecter la convention.
La modification entreprise sur la carte capteurs na pas pu tre rplique sur la centrale inertielle :
celle-ci envoie les donnes en format Big Endian , il est donc ncessaire de raliser la conversion
Page 20 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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 :
-

En Failsafe, la fonction modeFailsafe() est appele et la condition de sortie du mode est


teste (si on reoit une trame tlcommande, on passe en mode manuel)
En Manuel, la fonction modeManuel() est appele ds quune nouvelle trame tlcommande
est arrive, et la condition de passage en mode semi-automatique est value
En Semi-auto, la fonction modeSemiAuto() est appele ds quune nouvelle trame de la
centrale est arrive, et la condition de retour en mode manuel est value.
Le mode automatique (fonction modeAuto()) nest pas encore implment : il ny a pas de
transitions vers cet tat.

Les fonctions modeFailsafe(), modeManuel(), modeSemiAuto() et modeAuto() sont dfinies dans le


module spcifique chaque drone. Elles peuvent galement comporter des transitions
supplmentaires non prcises dans la boucle gnrale car dpendantes du modle de drone.
Fonctions spcifiques chaque modle de drone
Elles sont dfinies dans un ensemble de fichiers (.h et .c) portant le nom du modle. Ainsi, les
fonctions correspondant au quadrirotor sont rassembles dans quadrirotor.c et quadrirotor.h
On y retrouve les fonctions de mode de vol, ainsi que les fonctions dasservissement (donc certaines
seront dplaces dans un module ddi car communes tous les drones), les attributions de broches
moteur et de canaux de tlcommande, ainsi que les coefficients dasservissement.

Page 22 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Mise en route
Les lments suivants sont ncessaires pour commencer dvelopper et tester des programmes sur
la carte mre :
-

Un programmateur de PIC avec connecteur ICSP : un PicKIT3 ou un ICD3 sont indispensables


(prsents en laboratoire mcatronique).
Le logiciel MPLAB, tlchargeable sur le site de Microchip (www.microchip.com)
Le compilateur MPLAB C30, tlchargeable galement sur le site de Microchip. Il existe en
version gratuite mais il faut crer un compte sur le site.
Il est galement recommand de se munir dun client SVN : par exemple TortoiseSVN, voir le
rapport Gestionnaire de versionnement de projet subversion , prsent dans la partie
Tlchargements du Google Code du projet drone (http://code.google.com/p/insaprojet-drone).

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

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Partie II : reconception de la carte mre


Cette partie se concentre sur le travail effectu au cours du semestre 9 sur la reconception de la
carte mre du projet Drone (version 2010-2011). Celle-ci est base sur un microcontrleur
dsPIC30F6014A de Microchip pour lexcution des tches logicielles et un module XBee pour les
communications sans fil.
La partie logicielle a t rcrite en 2010-2011 pour suivre une approche modulaire et augmenter la
rutilisabilit du code source. Celui-ci a t divis en diffrents modules affects une tche ou un
priphrique particulier. Cette approche permet une programmation plus aise et simplifie la
communication entre les diffrents membres du projet.
Au cours des stages ST2 de 2011, plusieurs problmes matriels ont t identifis :
-

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.

Cahier des charges


La nouvelle carte mre devra implmenter toutes les fonctionnalits des modles prcdent tout en
rsolvant les problmes rencontrs sur ceux-ci. Elle devra galement tre plus volutive et
implmenter les fonctionnalits absentes des anciens modles, notamment :
-

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)

Choix des composants


Microcontrleur
Le microcontrleur tant le composant principal de la carte mre, cest lui dimplmenter la quasitotalit des fonctionnalits dcrites prcdemment. Plusieurs critres de choix ont t considrs :
-

Puissance de calcul en MIPS (Millions dInstructions Par Seconde)


Consommation de courant
Nombre de ports : UART, SPI, IC, PWM et E/S gnriques (GPIO)
Taille de la mmoire (RAM et ROM)
Prix
Botier (la carte tant soude lINSA)

Page 24 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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

144KB ROM, 8KB RAM

280KB ROM, 28KB RAM

2xUART, 2xSPI, 1xIC

4xUART, 4xSPI, 2xIC

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 :
-

Un rail 5V pour lalimentation du GPS, de lIMU et de la carte capteurs.


Un rail 3.3V pour le dsPIC, le XBee, la carte SD et le MAX3232.
Un rail de 1,8V est galement prsent en interne sur le dsPIC33.

Deux sources dalimentation 5V sont prvues :


-

Un rgulateur 5V aliment par une batterie externe (LiPo 2S ou 3S) .


Une source 5V externe prsente sur le connecteur PPM (par exemple le circuit BEC des
contrleurs de moteurs brushless).

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

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

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.

Premiers tests et problmes rencontrs


Les tests de bases ont consist en :
-

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.

Figure 19 : brochage de lAP1117

Figure 20 : brochage du L4941

Figure 21 : montage du L4941 sur la


carte actuelle

Un autre problme a t rencontr lors de la confection de cbles quips de connecteurs JST. En


effet, le Laboratoire Mcatronique ne dispose pas de la pince sertir spcifique ces cbles et il est
donc ncessaire de les raliser manuellement. La procdure suivante permet de raliser les broches
de ces connecteurs en minimisant les sources de frustration :
-

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

Projet Drone partie lectronique : Carte mre


STRUB Guillaume
-

MIQ5
2011 2012

Insrer et souder le cble sur la broche


Replier les pattes mtalliques au moyen dun pince bout plat
Sparer la broche de la bande mtallique (quelques aller-retours suffisent casser la liaison).

IMU
PicKIT3

Rgulateur
externe
GPS
Carte mre

XBee

Servomoteur

Batterie
externe
(LiPo 2S)

Figure 22 : installation de tests

Mise niveau du programme


Le code source a t adapt au nouveau dsPIC en suivant les instructions de migration de Microchip,
qui sont disponibles dans les documents suivants :
-

dsPIC30F to dsPIC33F Conversion Guidelines


(http://ww1.microchip.com/downloads/en/DeviceDoc/70172A.pdf)
dsPIC33F/PIC24H to dsPIC33E/PIC24E Migration and Performance Enhancement Guide
(http://ww1.microchip.com/downloads/en/DeviceDoc/70637D.pdf)

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 :
-

Linitialisation de la PLL se fait de faon diffrente sur le dsPIC33EP. La frquence dentre


(fournier par le quartz) est dabord prdivise, puis multiplie et postdivise. Le rapport
dentre/sortie est donn par (DSP_PLLFBD + 2)/((DSP_PLLPRE + 2) * 2 * (DSP_PLLPOST + 1)).
En entre, lhorloge est de 7,3728MHz et on choisit les coefficients de la PLL de telle faon
obtenir une vitesse dhorloge de 117,9648MHz, la vitesse maximale de fonctionnement.
La vitesse dexcution des instructions a t double (de DSP_FOSC/4 DSP_FOSC/2, avec
DSP_FOSC la vitesse dhorloge principale) ; par consquent les rglages des ports de
communication et des timers ont t modifis.
Page 28 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume
-

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 :
-

Le convertisseur analogique/numrique initialise chaque broche en mode entre analogique.


Par consquent, il doit tre reconfigur pour nchantillonner que les broches de mesure des
tensions des batteries.
La broche de rception GPS (GPS_MRST, RB10) est galement utilis par le port de test JTAG.
Cette fonctionnalit doit tre dsactive au moyen de la commande _FICD(ICS_PGD3 &
JTAGEN_OFF); afin de ne pas interfrer avec le module UART.
La broche de rception IMU ne fonctionne que si linterruption sur rception est active
avant le module UART.
Les lignes RB6 et RB7 utilises pour les LEDs rouges servent galement comme lignes de
programmation/dbogage (PGEC1, PGED1). Bien que les lignes par dfaut soient configures
sur PGEC3 et PGED3 au moyen de la macro _FICD prcdente, je nai pas russi faire
fonctionner ces deux LEDs

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 :
-

Lecture des tensions de batterie sur AN25 et AN27


La communication avec la carte capteurs
La lecture et lcriture de la carte SD. Un programme a t crit pour cette fonctionnalit en
2009-2010, il doit encore tre mis jour pour fonctionner avec la nouvelle carte.

Page 29 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Table des figures


Figure 1 : Schma synoptique de l'lectronique embarque et de la communication .......................... 4
Figure 2: carte mre version 2011-2012 vue de dessus.......................................................................... 4
Figure 3 : architecture matrielle de la carte mre ................................................................................ 5
Figure 4 : implantation des composants sur la face suprieure de la carte mre .................................. 6
Figure 5 : implantation des composants sur la face infrieure de la carte mre.................................... 6
Figure 6 : rprage de la broche 1 des connecteurs PPM ....................................................................... 8
Figure 7 : brochage du connecteur IMU (vue de dessus) ........................................................................ 9
Figure 8 : brochage du connecteur GPS (vue de dessus) ...................................................................... 10
Figure 9 : brochage du connecteur ICSP (vue de dessus)...................................................................... 11
Figure 10: brochage du connecteur de batterie ................................................................................... 11
Figure 11 : brochage du connecteur SPI (vue de dessus) ...................................................................... 12
Figure 12 : brochage du connecteur XBEE J9 (vue de dessus) .............................................................. 13
Figure 13 : brochage du connecteur DEBUG J10 (vue de dessus) ......................................................... 14
Figure 14 : brochage du connecteur SPI (vue de dessus) ...................................................................... 15
Figure 15 : brochage du connecteur I2C (vue de dessus) ..................................................................... 16
Figure 16 : brochage du connecteur BATT (vue de dessus) .................................................................. 16
Figure 17: brochage du connecteur de batterie ................................................................................... 17
Figure 18 : lancienne carte mre munie de la carte capteurs. Noter la vulnrabilit du connecteur
PPM ....................................................................................................................................................... 26
Figure 19 : brochage de lAP1117.......................................................................................................... 27
Figure 20 : brochage du L4941 .............................................................................................................. 27
Figure 21 : montage du L4941 sur la carte actuelle .............................................................................. 27
Figure 22 : installation de tests ............................................................................................................. 28

Table des tableaux


Tableau 1: caractristiques principales du dsPIC33EP256MU806 .......................................................... 5
Tableau 2 : reprage et rfrence des principaux composants de la carte mre................................... 7
Tableau 3 : attribution des broches de J1 ............................................................................................... 8
Tableau 4 : attribution des broches de J4 ............................................................................................... 9
Tableau 5 : attribution des broches de J5 ............................................................................................. 10
Tableau 6 : attribution des broches de J6 ............................................................................................. 11
Tableau 7 : attribution des broches de BATT. CM ................................................................................. 11
Tableau 8 : attribution des broches de J8 ............................................................................................. 12
Tableau 9 : attribution des broches de J9 ............................................................................................. 13
Tableau 10 : attribution des broches de J10 ......................................................................................... 14
Tableau 11 : attribution des broches de J11 ......................................................................................... 15
Tableau 12 : attribution des broches de J13 ......................................................................................... 16
Tableau 13 : attribution des broches de J14 ......................................................................................... 16
Tableau 14 : attribution des broches de BATT. CM ............................................................................... 17

Page 30 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Page 31 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Annexe 1 : schma lectrique de la carte mre

Page 32 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Page 33 sur 34

Projet Drone partie lectronique : Carte mre


STRUB Guillaume

MIQ5
2011 2012

Annexe 2 : routage de la carte mre


Face suprieure

Face infrieure

Page 34 sur 34