Carte ACCEL Documentation Stéphane Witryk, Sébastien Piérard février 009 Introduction La carte ACCEL constitue un capteur d'accélération à interface numérique. Elle est principalement composée d'un connecteur, d'un pic F88 et d'un capteur d'accélération MMA0QT. Le pic sert d'interface entre le capteur et le monde extérieur. Initialement, le pic contient un programme, mais il peut être changé facilement. Le rmware fourni est décrit dans ce document.
Interface Le connecteur de la carte est branché comme ceci : 0 9 8. tension positive interne (sortie de puissance, V). ligne de communication RX (entrée numérique). ligne de communication TX (sortie numérique). _MCLR ou VPP (tension de programmation) (entrée analogique). _MCLR ou VPP (tension de programmation) (entrée analogique). ligne de communication (entrée/sortie numérique). alimentation positive, max 0V (entrée de puissance) 8. pin PGC de programmation du PIC (entrée numérique) 9. pin PGD de programmation du PIC (entrée/sortie numérique) 0. alimentation négative, 0V(entrée de puissance) Alimentation et reprogrammation du PIC La carte ACCEL est munie de son propre régulateur de tension. Il s'agit d'un régulateur de tension LP90 à, V. Cette tension est disponnible en sortie de la carte sur la pin du connecteur (nécessaire pour la communication en milieu hétérogène ).. En mode de fonctionnement La carte est alimentée par les pins et 0 du connecteur. La tension d'alimentation ne doit pas dépasser 0V. La tension en sortie du régulateur alimente le PIC, qui lui-même alimente le capteur. Il ne faut absolument pas alimenter la carte par la pin! Lorsque les cartes ne sont pas alimentées sous la même tension, on parle de milieu hétérogène.
H G F E D C B A 8 9 8 9 0 I choix de la valeur de la résistance : -> avec 0R et sous V (programmation du pic), la led ne claque pas -> avec 0R et sous.v (mode normal), la led s'allume 9 8 9 I H G F E D C B A 00nF PICF88 U D VDD VSS 0 R RA RA0 Vss Vss G_SELECT_: PGD: découplage C RA RA PGC: G_SELECT_: DAT: 0 k R k R8 k R9 MCLR RA RC RC0 RC RC RC RC VPP: 00 R0 RX: TX: ON_OFF: U G_SELECT_: G_SELECT_: ON_OFF: 00nF C 00nF C 00nF C Xout Yout Zout Vss Vss Vss Vdd CONN g-select Sleep Mode g-select FREESCALE VDD MMA0QT 0 VSS Vss D N8 U IN OUT GND LP90CZ,.V RX: 00 R TX: 00 R VPP: DAT: D 00 R PGC: 00 R N8 PGD: 00 R low ESR 00nF C découplage 8 C.uF D N8 C uf ordre des fils de la nappe :, 0,, 9,, 8,,,, 0 Vss la diode en sortie du régulateur sert a le protéger lors de la programmation du PIC la diode sur la masse du régulateur sert a compenser (imparfaitement) la premiere, pour avoir.v attention aux capas utilisées avec le régulateur. le capteur d'acceleration ne consomme pas beaucoup de courant (00 ua) le datasheet est assez précis sur le sujet (application hints > external capacitors) nous l'alimentons par une patte du PIC ainsi, nous ne le grillons pas lorsque l'on reprogramme le PIC (Vdd passe alors a V) ACCELERATION SENSOR MINI PCB TITLE.0 ( 0 FEV 009 ) FILE: REVISION: SEBASTIEN PIERARD DRAWN BY: PAGE OF 8 9 0 Fig. Schematic
. En mode de programmation Nous avons conçu la carte de manière à ce qu'on puisse facilement reprogrammer le PIC. Seules les pins,, 8, 9 et 0 peuvent être utilisées. Elles ont le même emplacement que les pins correspondantes du PIC, ce qui permet d'encher le connecteur dans un programmateur tel que l'icd, un DATAMAN,... Il ne faut absolument pas alimenter la carte par la pin! Le PIC est alors alimenté en V, et le capteur n'est pas alimenté. Communication de bas niveau La communication implémentée est de type série asynchrone. Chaque carte connectée au bus possède une ligne du bus sur laquelle elle peut reporter des évènements (ligne de contrôle). Une ligne supplémentaire (DAT) est présente sur le bus, pour les données elles-mêmes. Une carte reporte un évènement en changeant la valeur de sa ligne. Les lignes de contrôle ont initialement une valeur haute. Les divers évènements qui doivent être reportés sont les suivants : j'ai écrit un bit sur la ligne DAT ; j'ai lu le bit de la ligne DAT ; je n'ai plus besoin de la ligne DAT. Dans notre cas, le bus est conçu pour connecter la carte ACCEL à une seule autre. Trois ls de communication sont donc présents. La ligne appartenant à la carte ACCEL est dénommée TX. La ligne appartenant à l'autre carte est dénommée RX. Quand un des deux acteurs veut envoyer un bit, il place la valeur sur la ligne DAT et eectue une transition sur sa ligne de contrôle. Cette transition a pour but de prévenir l'autre acteur qu'un bit a été placé sur DAT. Celui-ci peut alors le lire, après quoi il eectuera lui même une transition sur sa ligne de contrôle. Il y aura une stricte alternance des évnènements reportés sur RX et TX. Chacune des deux cartes présentes sur le bus peut ralentir la communication en retardant le changement de sa ligne. La vitesse du bus se régule ainsi automatiquement en fonction des vitesses des cartes connectées. An d'éviter tout court-circuit sur la ligne DAT, une résistance tire-haut à, V devra être placée sur celle-ci. Chacun des deux acteurs pourra soit forcer la ligne à 0V, soit la laisser à son potentiel par défaut en mettant sa pin en entrée. Nous avons introduit la notion de paquet. Une carte peut envoyer consécutivement un maximum de bits, ce qui correspond à la taille maximale de paquet. Un paquet de taille nulle peut exister. Pour garantir la stricte alternance des évènements, il est nécessaire d'introduire un paquet de taille nulle en sens inverse, entre deux paquets transitants dans le même sens.
Communication en milieu hétérogène Lorsque la carte qui communique avec avec ACCEL n'est pas alimentée en, V, il faut faire très attention! Par exemple, un PIC alimenté en V est capable de lire les signaux émis par un PIC alimenté en, V, mais l'inverse peut être destructif pour le PIC alimenté en, V! Dans ce cas, on place une résistance tire-haut sur la ligne, et le PIC alimenté en V peut soit forcer la ligne à 0V, soit la laisser à son potentiel par défaut en mettant sa pin en entrée. Si le PIC externe est alimenté en V, il vous faut résistances tire-haut à, V dans votre montage, une sur DAT et une sur RX. Si le PIC externe est alimenté en.v, il vous faut résistance tire-haut à, V dans votre montage, sur DAT. Communication de haut niveau On distingue un maître (la carte externe) et un esclave (la carte ACCEL). Une communication est toujours initiée par le maître, et se termine toujours par l'envoi d'un paquet (qui peut être de taille nulle) par l'escalve. Elle commence toujours par l'envoi, par le maître, d'un paquet de bits spéciant une commande. Ces bits déterminent la suite des opérations (nombre de bits renvoyés par l'esclave). Par conséquent, les deux acteurs savent toujours s'ils doivent être en attente d'un bit de donnée ou s'ils doivent envoyer un bit de donnée. Le détail des réponses éventuelles sont spéciés ci-dessous. La gure présente brièvement les diérents messages. Message 0 Permet de récupérer la version du rmware. Ce message ne prend pas d'arguments et renvoie deux entiers de bits, représentant la version majeure et mineure. Messages à Permettent de récupérer les accélérations X, Y et Z. Ces messages ne prennent pas d'argument et renvoient la valeur représentant l'accélération, codée sur 0 bits. Cette valeur est simplement l'échantillon du capteur le plus récent, c'est-à-dire une valeur résultant d'une conversion analogique-digitale. Consutez la documentation du MMA0QT pour plus d'informations sur la sensibilité du capteur et la compensation à apporter en fonction de la température.
ID DESCR 0000 0 Get rmware version 000 Get X acceleration 000 Get Y acceleration 00 Get Z acceleration 000 Set sensitivity to. g (default) 00 Set sensitivity to.0 g 00 Set sensitivity to.0 g 0 Set sensitivity to.0 g 000 8 Get ags 00 9 Set XYZ mode (default) 00 0 Set XY mode 0 Not implemented 00 Not implemented 0 Not implemented 0 Not implemented Not implemented Fig. Liste des messages et brève description Messages à Permettent de sélectionner la gamme. Ces messages ne prennent pas d'argument et ne renvoient rien. Par défaut, la gamme est.g. Consutez la documentation du MMA0QT pour plus d'informations. Message 8 Permet de récupérer les ags du PIC. Ce message ne prend pas d'argument et renvoie 8 bits, ceux-ci étant les ags du PIC. Les diérents ags sont présentés dans la gure. Brièvement, les ags 0, et sont levés si la valeur d'accélération pour respectivement x, y et z sont disponnibles. Lorsqu'une valeur est échantillonnée, disons pour la composante X, le ag x available est levé. Dès que le message Get X acceleration est exécuté, le ag x available est baissé. Ceci permet de ne pas lire deux fois le même échantillon. Si une demande de changement de la gamme est exécutée, tous les ags de type x available sont baissés, car les valeurs ne sont plus pertinentes. Le ag est levé si le capteur est allumé. Les ags et ont les mêmes valeurs logiques que celles en entrée du capteur d'accélération. Le ag est levé si on est en mode XY. Le mode permet d'activer et de désactiver l'échantillonnage de la composante Z du capteur.
0 x available y available z available sensor on g_select g_select z_disabled not implemented 8 not implemented Fig. Flags Message 9 Sélectionne le mode XYZ. Ne prend pas d'argument et ne retourne rien. Par défaut, le mode est XYZ. Message 0 Sélectionne le mode XY. Ne prend pas d'argument et ne retourne rien. Par défaut, le mode est XYZ.