Le module XA-MEGA32 Nous recommandons à l’utilisateur de commencer par lire la
Le module XA-MEGA32 Nous recommandons à l’utilisateur de commencer par lire la notice technique EXTRALINK avant d’aborder la présente et particulièrement les pages concernant la description du matériel, l’utilisation des modules et de leurs particularités. Les composants indispensables Tout ce qui suit a été écrit en langage Basic-AVR-Bascom, ce compilateur n’est pas obligatoire, on peut utiliser Le C ou l’assembleur, mais nous avons été convaincus par les performances et la qualité du compilateur. Ce qui suit ne peut être utilisé qu’avec ce compilateur. Le Compilateur Un dongle port parallèle port SPI La librairie XABASELIB.bas (programme à inclure) Les composants spécifiques Chaque module répond à des commandes pour réaliser des fonctions par exemple la commande 204 réalise la fonction LEDON, elle allume la led du module. Les commandes sont associées aux arguments (nous en avons prévu 5) Chaque commande reçoit en retour au moins un octet de status qui est fonction de la façon dont le module à réaliser la tâche. Si la commande est une interrogation, le module recevra en plus du status les octets qui composent la réponse. Dans ce cas il faudra peut-être recomposer la réponse suivant le type attendu. Dans le tableau en annexe nous indiquons pour chaque type de module: 1. la fonction indique la commande comme décrite dans le manuel Extralink d’utilisation des modules. 2. L’équivalent, c’est un octet variant 1 à 255 qui correspond à la commande envoyée. 3. Arguments : les arguments à passer aux modules (le cas échéants) 4. La réponse attendue 5. Le but de la fonction 6. L’effet sur le module Ce module est architecturé autour du microcontrôleur AVR-MEGA32. Le schéma de ce module est donné en annexe. La programmation s’effectue par la liaison SPI sur le port B via un port parallèle de PC. Un câble et le dongle de programmation est disponible chez www.mcselec.com. Le module possède un port RS232, connecté aux broches D0 et D1 Les broches D2 à D6 sont ramenées sur le connecteur 16 broches dédié à l’afficheur LCD alphanumérique. Ces broches peuvent être utilisées comme broches de contrôles pour un afficheur LCD graphique. Le port A est configurable en 8 entrées analogiques 10 bits ou en port I/O, dans ce dernier cas il peut servir pour les data d’un afficheur graphique. Enfin le port C est disponible par exemple pour un clavier. _______________________________________________________________________________________________________ Module XAMEGA32 JP Duval 1/12 19/07/17 Utilisation La programmation est sensiblement différente, si nous avons repris l’esprit, une fonction style : Status=Xa(commande, adresse, arg1, arg2, arg3, arg4, arg5) nous allons maintenant directement à l’essentiel, le contrôle d’erreur se fait simplement sur l’écriture puis sur la lecture de la réponse du bus I2C. Il n’y a ni checksum, ni caractère de début, ni caractère de fin. Nous vous conseillons de respecter le protocole Extralink en ce qui concerne l’adressage pour une meilleure compatibilité. Il n’y a pas de différence, vu du module XA-MEGA32 entre un module adressable (EXTRALINK) et un composant I2C. L’utilisation des composants I2C à adresse ajustable, doit posséder une adresse paire que l’on divise par 2 dans le programme (voir l’exemple avec le DS1621), dans ce cas, l’adresse du composant peut être supérieure à 127. Adressage des modules EXTRALINK Le programme address.bas permet de changer l’adresse des modules Attention alors de bien noter l'adresse attribuée. Protocole de communication Il faut insérer le programme : XABASELIB.bas dans l’entête du programme, et une étiquette « begin : » dans les premières lignes du programme. En cas d’utilisation de composant I2C du commerce, il faut modifier le fichier XABASELIB.bas pour le rendre compatible (ajout des commandes dans le « select case ») L’include XABASELIB.bas se charge de tout les transfert. ___________________ 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 utilisés. La mémoire d’un micro- contrôleur n’est pas extensible à l’infinie comme celle d’un PC. Ce qui suit ne doit pas être utilisé tel quel, mais modifié par l’utilisateur en fonction de ses besoins et de ces interfaces (afficheur, micro-contrôleur…) la fonction XA() Extralink utilise la fonction XA(commande, adresse, longueur, arg1,arg2,arg3,arg4,arg5) qui retourne le status d’exécution des commandes. Les modules retourne 0 si le dialogue est correct, L’utilisateur doit créer ses propres routines de traitement d’erreurs. Commande est l’ordre envoyé au module. Exemple : 204 = « ledON » allume la led de contrôle du module. Longueur est la longueur du message envoyé. Exemple : commande= 103 « lecture position d’un 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 envoyés aux modules ils sont tous facultatifs. Exemples : pour commander un moteur il faut préciser la vitesse, pour allumer une led il ni a pas besoin d’argument. _______________________________________________________________________________________________________ Module XAMEGA32 JP Duval 2/12 19/07/17 Le gosub de composition de message l’utilisateur devra modifier le « select case » pour l’adapter à son usage en fonction des modules qu’il utilise et de leurs commandes, en effet il est inutile de remplir la mémoire avec des fonctions non utilisées. Voir en Annexe pour chaque module : les commandes, longueurs… c’est Ici que sera rempli le tableau de données à transmettre au module, il sera aussi précisé la longueur du message envoyé et le cas échéant, la longueur du message à recevoir. Les sub Ecrit_long et Ecrit_word Le tableau de données qui sera envoyé au module, n’est composé que d’octets. Il faut décomposer les variables Long et Word en octet. Le gosub d’envoi sur le bus I2C Ici on gère le transfert au module. Le cas échéant , l’erreur est affichée. La fonction Lit() Ici on gère la lecture de la réponse du module. Le cas échéant , l’erreur est affichée. Une ou plusieurs commandes Extralink correspondante(s) aux modules utilisées Ces fonctions sont données en annexe. ___________________ La création d’un programme Il faut tout d’abord définir les adresses des modules Pour des raisons de compréhension nous vous suggérons d’utiliser des constantes explicites : Const Moteur_z = 20 Const Moteur_x = 40 Const Ds1621 = 72 Par exemple faire clignoter la diode d’un module moteur à l’adresse définie en tête 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 à transférer 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 rédiger plus facilement on peut utiliser les procédures propres à chaque module voir les annexes. Ces procédures 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 procédures concernant le moteur PAP sont données en annexe. Contenu des annexes 1. Tableau des commandes par type de modules 2. Procédures indispensables 3. Exemple de procédures particulières à un module. (le moteur pas à pas) 4. Exemple changement d’adresses, 5. Un composant I2C le thermostat Ds1621 . Caractéristiques communes aux modules Extralink Dimensions longueur 100mm la largeur est variable en général les modules ont une largeur de : 40mm, mais certains font 50mm ou plus (alimentation pour moteurs Pas-à-Pas) le connecteur mâle 6 points se trouve à gauche quand on regarde le module par dessus. Rst = reset Scl = bus I2C Extralink +5V =alimentation Masse = Alimentation Sda = bus I2C Extralink +12V = Tension 12 V redressée filtrée mais non régulée, suivant les alimentations, cette tension peut monter jusqu’à 17Volts à vide. Annexes Les commandes L’utilisateur comprendra que la fonction est à envoyer à l’adresse 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) x, n, m sont des variables de type Byte. aaaa, bbbb, cccc, dddd,eeee sont des variables du type spécifié ci-dessous. _______________________________________________________________________________________________________ Module XAMEGA32 JP Duval 4/12 19/07/17 Elements de la réponse : S= status du module, B=Byte, W=Word, L= Long Pour des compléments uploads/Industriel/ utilisation-xamega.pdf
Documents similaires
-
28
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 29, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.2369MB