Professional Documents
Culture Documents
Nous recommandons lutilisateur de commencer par lire la notice technique EXTRALINK avant
daborder la prsente et particulirement les pages concernant la description du matriel,
lutilisation des modules et de leurs particularits.
Le Compilateur
Un dongle port parallle port SPI
La librairie XABASELIB.bas (programme inclure)
La programmation seffectue par la liaison SPI sur le port B via un port parallle de PC. Un cble et
le dongle de programmation est disponible chez www.mcselec.com.
Les broches D2 D6 sont ramenes sur le connecteur 16 broches ddi lafficheur LCD
alphanumrique. Ces broches peuvent tre utilises comme broches de contrles pour un afficheur
LCD graphique.
Le port A est configurable en 8 entres analogiques 10 bits ou en port I/O, dans ce dernier cas il
peut servir pour les data dun afficheur graphique.
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 1/12 19/07/17
Utilisation
La programmation est sensiblement diffrente, si nous avons repris lesprit, une fonction style :
Status=Xa(commande, adresse, arg1, arg2, arg3, arg4, arg5) nous allons maintenant directement
lessentiel, le contrle derreur se fait simplement sur lcriture puis sur la lecture de la rponse
du bus I2C. Il ny a ni checksum, ni caractre de dbut, ni caractre de fin.
Nous vous conseillons de respecter le protocole Extralink en ce qui concerne ladressage pour une
meilleure compatibilit.
Il ny a pas de diffrence, vu du module XA-MEGA32 entre un module adressable (EXTRALINK) et un
composant I2C.
Lutilisation des composants I2C adresse ajustable, doit possder une adresse paire que lon divise
par 2 dans le programme (voir lexemple avec le DS1621), dans ce cas, ladresse du composant peut
tre suprieure 127.
Protocole de communication
Il faut insrer le programme : XABASELIB.bas dans lentte du programme, et une tiquette
begin : dans les premires lignes du programme.
En cas dutilisation de composant I2C du commerce, il faut modifier le fichier XABASELIB.bas pour
le rendre compatible (ajout des commandes dans le select case )
Programmation
Nous reprenons le processus Extralink sauf que la DLL est remplacer par le fichier XABASELIB.bas.
Nous adaptons notre programme en fonction des modules utiliss. La mmoire dun micro-
contrleur nest pas extensible linfinie comme celle dun PC.
Ce qui suit ne doit pas tre utilis tel quel, mais modifi par lutilisateur en fonction de ses besoins
et de ces interfaces (afficheur, micro-contrleur)
la fonction XA()
Extralink utilise la fonction XA(commande, adresse, longueur, arg1,arg2,arg3,arg4,arg5) qui
retourne le status dexcution des commandes. Les modules retourne 0 si le dialogue est correct,
Lutilisateur doit crer ses propres routines de traitement derreurs.
Commande est lordre envoy au module. Exemple : 204 = ledON allume la led de contrle du
module.
Longueur est la longueur du message envoy. Exemple : commande= 103 lecture position dun
moteur Pas Pas longueur= 5 parce que la lecture devra nous renvoyer 5 octets : le status du
module et un Long (4 octets).
Arg1 Arg5 sont les arguments envoys aux modules ils sont tous facultatifs.
Exemples : pour commander un moteur il faut prciser la vitesse, pour allumer une led il ni a pas
besoin dargument.
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 2/12 19/07/17
Le gosub de composition de message
lutilisateur devra modifier le select case pour ladapter son usage en fonction des modules
quil utilise et de leurs commandes, en effet il est inutile de remplir la mmoire avec des fonctions
non utilises. Voir en Annexe pour chaque module : les commandes, longueurs
cest Ici que sera rempli le tableau de donnes transmettre au module, il sera aussi prcis la
longueur du message envoy et le cas chant, la longueur du message recevoir.
La fonction Lit()
Ici on gre la lecture de la rponse du module. Le cas chant , lerreur est affiche.
Const Moteur_z = 20
Const Moteur_x = 40
Const Ds1621 = 72
Par exemple faire clignoter la diode dun module moteur ladresse dfinie en tte du programme
Adresse_fonction = Moteur_x
For Bbyte = 1 To 2
Commande = 204 LED ON voir les tableaux de commandes en fonctions des modules
longueur = 1 facultatif si gale 1
Arg1 = 0 : Arg2 = 0 : Arg3 = 0 : Arg4 = 0 : Arg5 = 0 voir les arguments transfrer dans les
tableaux de commandes en fonctions des modules
Statusmodule = Xa(commande , Adresse_fonction , Longueur , Arg1 , Arg2 , Arg3 , Arg4 , Arg5)
la fonction principale
Waitms 200
Commande = 205 LED OFF voir les tableaux de commandes en fonctions des modules
longueur = 1 facultatif si gale 1
Arg1 = 0 : Arg2 = 0 : Arg3 = 0 : Arg4 = 0 : Arg5 = 0
Statusmodule = Xa(commande , Adresse_fonction , Longueur , Arg1 , Arg2 , Arg3 , Arg4 , Arg5)
Waitms 200
Next
___________________
Pour rdiger plus facilement on peut utiliser les procdures propres chaque module voir les
annexes. Ces procdures reprennent les commandes EXTRALINK.
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 3/12 19/07/17
Exemple :
Faire avancer un moteur Pas Pas en vitesse constante de 100000 pas
Adresse_fonction = Moteur_z
Dsi = 4 : Course = 100000 : Sens = 2
Vitesse_constante Adresse_fonction , Dsi , Periode , Course , Sens
Etat_moteur Adresse_fonction
Sachant que les procdures concernant le moteur PAP sont donnes en annexe.
Rst = reset
Scl = bus I2C Extralink
+5V =alimentation
Masse = Alimentation
Sda = bus I2C Extralink
+12V = Tension 12 V redresse filtre mais non rgule,
suivant les alimentations, cette tension peut monter
jusqu 17Volts vide.
Annexes
Les commandes
Lutilisateur comprendra que la fonction est envoyer ladresse du module sous la forme :
Adresse_fonction=x : Commande = n :longueur=m
Arg1 = aaaa : Arg2 = bbbb : Arg3 = cccc : Arg4 = dddd : Arg5 = eeee
Statusmodule = Xa(commande , Adresse_fonction , Longueur , Arg1 , Arg2 , Arg3 , Arg4 , Arg5)
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 4/12 19/07/17
Elements de la rponse : S= status du module, B=Byte, W=Word, L= Long
Pour des complments dinformations sur les modules, il faut se reporter la notice technique
EXTRALINK
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 5/12 19/07/17
Module d'entres analogiques XA-5AI radressable
Fonction Equivalent arguments Rponse Longueur Effet
Rponse
F1 1 - S 1 Slectionner rfrence +5V
F2 2 - S 1 Slectionner rfrence interne ou borne 3
RDCW 121 B S+W 3 Lire lentre B
RDWLL 109 - S+W+W 11 Lire les 5 entres
+W+W+
W
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 6/12 19/07/17
Module moteur Pas Pas
Fonctio Equivalent arguments Rponse Longueur Effet
n Rponse
WRB 20 B S 1 fixe le DSI
WRB1 21 B S 1 Fixe la rampe d'acclration(0254)
WRB2 22 B S 1 Fixe le taux d'acclration (0..7)
WRI 30 W S 1 fixe la priode en mode vitesse constante (16 bits)
WRI1 31 W S 1
WRI2 32 W S 1
WRL 40 L S 1 fixe course /palier (32 bits)
F1 1 - S 1 Dmarrage vitesse constante sens 1
F2 2 - S 1 Dmarrage vitesse constante sens 2
F3 3 - S 1 dmarrage mode progressif sens 1
F4 4 - S 1 dmarrage mode progressif sens 2
F5 5 - S 1 dmarrage sans limite sens 1
F6 6 - S 1 dmarrage sans limite sens 2
F7 7 - S 1 active fin de course
F8 8 - S 1 dactive fin de course
F9 9 - S 1 Arret en dclration
F10 10 - S 1 Arret brusque
F11 11 - S 1 rtablir l'alimentation
F12 12 - S 1 couper l'alimentation
RDI 101 - S+B+B 3 lecture de l'tat moteur et fin de course( note1)
RDL 103 - S+L 5 lecture de la course (32 bits)
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 7/12 19/07/17
Module moteur courant continu asservi
Fonction Equivalent arguments Rponse Longueur Effet
Rponse
F1 1 - S 1 RST reset controleur
F2 2 - S 1 RSTI reset anomalies
F3 3 - S 1 SIP - lancer acquisition index
F4 4 - S 1 DFH dfinir position dorigine
F5 5 - S 1 PBKR arret par dclration
F6 6 - S 1 PBLK arrt par blocage
F7 7 - S 1 PDEBR arrt en roue libre (dbrayage)
F8 8 - S 1 Dmarrer asservissement de vitesse sens 1
F9 9 - S 1 Dmarrer asservissement de vitesse sens 2
F10 10 - S 1 Couper alimentation
F11 11 - S 1 Rtablir alimentation
F12 12 - S 1 Dmarrage
WRI 30 - S 1 LPEI Fixer limite couple, lasservissement continue
si atteinte
WRI1 31 - S 1 LPES fixer limite de couple, cessation de
lasservissement si atteinte
WRL 40 L S 1 Fixer lacclration
WRL1 41 L S 1 Fixer la vitesse
WRL2 42 L S 1 Fixer lobjectif
WRL3 43 L S 1 Fixer lobjectif + lancement
SET629 140 B+W+W+W S 1 Fixer DSI, KP, KD, KI, IL + validation
+W
RDI 101 1 B+B 3 Lire entres + status controleur
RDCI 121 1 S+ W Lire vitesse
RDCI 121 2 S+W Lire intgrale
RDCL 123 1 S+L Lire position
RDCL 123 2 S+L Lire index
RDCL 123 3 S+L Lire vitesse thorique
RDCL 123 4 S+L Lire positioin thorique
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 8/12 19/07/17
Procdures indispensables
Elles sont donnes dans les fichiers procdures.TXT ces fichiers doivent tre recopis dans votre
programme.
Procdures_fonction_Xa.txt
Procdures_gosub_compose-ecrit.txt
Procdures_gosub_argument.txt
Procdures_gosub_ecrit word et ecrit_long.txt
Procdures_gosub_I2C_ecrit.txt
Procdures_fonction_lit.txt
Procdures_fonction_Xa.txt
________________
Adresse_fonction = Moteur_z
Bbyte = Pas_init_z
Dsi = 4 : Course = Bbyte : Sens = 1
Vitesse_constante Adresse_fonction , Dsi , 2000 , Course , Sens
Etat_moteur Adresse_fonction
Ou encore
Dsi = 3 : Tacc = 3 : Rampe = 200 : Course = Kword : Sens = 3
Progressif Adresse_fonction , Dsi , Tacc , Rampe , Course , Sens
Etat_moteur Adresse_fonction
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 9/12 19/07/17
Description des procdures PAP
Vitesse_constante avance vitesse constante, utilis pour les petits dplacements ou pour dcoller
le moteur dun fin de course.
Activer_fdc Pour activer les switches fin-de-course, il peut y avoir 2 fin-de-course par moteur
Lecture_position pour connatre la position du moteur (en pas) position thorique car un moteur
PAS est susceptible de perdre des pas sil est mal rgl (voir la notice EXTRALINK)
Etat_moteur permet de connatre ltat moteur, on sort de cette procdure soit sur un fin de
course soit quand le moteur a effectu le nombre de pas demand.
Debraye un moteur
Quand le moteur effectu sont trajet, il sarrte en mode embray ce moment la puissance
dissipe est maximum.
TR1
R2 R1
1
2
3
4
5
6
7
8
3
BR1 15 15
1 2 J1
CONN-SIL8
C1
4700u
+88.8
4
BRIDGE
TRAN-2P2S
Cest pourquoi nous prconisons dutiliser le module XA-298 en respectant le schma ci-dessus
Le module XA-298 peut dlivrer 4Ampres en pointe pour les 2 phases, nous vous conseillons de ne
pas dpasser 1A par phase et de calculer les rsistances en fonctions.
La puissance des rsistances doit elle aussi tre calcule en consquence. Exemple : R=15, I=1A
P=15Watts donc les rsistances seront dimmensionnes 25W et montes sur radiateurs.
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 10/12 19/07/17
Utilisation dun composant I2C
Le thermostat DS1621
laddresse de base =&B1001000 sachant que lon peut modifier les 3 bits derniers bits de poids
faibles.
Pour terminer loctet on ajoute un 0 en criture et 1 en lecture(nous utilisons un protocole
lgremment diffrent puisque nous nutilisons que les adresses comprise entre 1 et 127 voir les
explications sur ladressage des modules EXTRALINK cette diffrence na aucune incidence sur
ladressage)
Pour nous ladresse sera =&B10010000 = 144 en dcimal divis par 2 soit 72.
Const DS1621=72
Adresse_fonction = Ds1621
Commande = 172 'configuration
Extrait ..
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 11/12 19/07/17
Le module Xamega
PENSEZ A DESACTIVER LE JTAG (fusibles hauts)
LED
Jumper 1
Programming
connector
Port C
Jumper 2 reset
Jumper 3 buzzer (B.4)
_______________________________________________________________________________________________________
Module XAMEGA32 JP Duval 12/12 19/07/17