Carte Foxacogite 2 carte à microcontrôleur 552 I²C Ce document présente les principales caractéristiques de la carte, les configurations et quelques applications possibles. L'alimentation La régulation de l'alimentation des circuits est intégrée à la carte. Elle est suffisante pour sa consommation propre (environ 90mA en temps normal) mais pas beaucoup plus. L'alimentation générale de la carte se fait par le connecteur J1 de type prise d'alimentation Japon. La tension recommandée est de 9 volts, elle doit être comprise entre 7 V et 15 V. Lorsque la carte est alimentée, la LED (D3) est allumée. Il est possible de surveiller la tension d'alimentation grâce à l'entrée analogique numéro 0. 1000 REM ALIMENTATI GENERALE DE LA CARTE 1010 ADC 0:POP ALIM 1020 VBAT=(ALIM*20)/1000 1030 IF (VBAT<7.0) THEN PRINT "Alimentation faible" 1040 PRINT VBAT,"V." 1050 RETURN Il est préférable d'utiliser la source 5 volts régulée de la ligne I²C qu'avec prudence. Dans le cas conseillé où une alimentation séparée fournie la ligne I²C, le JUMPER3 assure la séparation d'avec le reste de la carte Foxacogite 2. 3 2 1 3 2 1 L'alimentation de la carte Foxacogite 2 sert aussi à alimenter les esclaves de la ligne I²C. A n'utiliser qu'en phase de développement pour des circuits ne consommant que très peut. L'alimentation de la carte Foxacogite 2 est déconnectée de celle de la ligne I²C. Une alimentation de la ligne I²C est indispensable pour les esclaves. Page 1 sur 6
La liaison RS-232 La liaison RS 232, très utile pour la programmation et l'interprétation en BASIC, est intégrée à la carte. Les niveaux de tension sont ajustés par un composant sur la carte elle-même. On peut donc connecter un ordinateur hôte par la liaison sérielle RS-232, en utilisant n'importe quel terminal. Le logiciel «TermFox» fourni sous Windows permet une connexion adaptée aux différentes utilisation (basic, mini-vlisp, moniteur). J1 J2 J3 Le câble reliant l'ordinateur hôte et le Foxacogite 2 est un simple cordon prolongateur droit fil à fil, donc une prise Canon 9 broches, mâle d'un côté et une prise Canon 9 broches femelles de l'autre côté. Switch U15 1 Configuration OFF Connexion du RXD, la liaison RS-232 fonctionne avec par la prise Canon, la liaison série est opérationnelle. RXD est déconnecté pour une utilisation experte. Le protocole de communication sérielle est le V24 à 19200 bauds, 8 bits de données, 1 bit de stop et pas de parité. Les mémoires Les composants sur la carte offrent une taille mémoire de programme de 2 fois 32Ko et une mémoire RAM externe de 2 fois 16Ko. Voici les différentes configurations des mémoires présentes sur la carte. Switch U15 3 4 Configuration BASIC Interpréteur BASIC en EPROM de 0h à 7FFFh Mémoire de données en RAM externe de 0h à 3FFFh Mémoire sauvegardée en RAM externe de 8000h à BFFFh, disponible pour la sauvegarde des programmes Basic et des routines en assembleur. OFF Réservé. LISP OFF Interpréteur MINI-VLISP en Eprom de 0h à 7FFFh. Mémoire de données en RAM externe de 0h à 7FFFh. Moniteur (M552) de chargement et de débogage OFF OFF Moniteur en EPROM de 0h à 7FFFh Mémoire sauvegardée en RAM externe de 8000h à FFFFh, disponible pour les programmes chargés en hexadécimal (assembleur, C ), et les données. Page 2 sur 6
Switch U15 2 Configuration OFF la RAM est sauvegardée (indispensable pour sauvegarder des listings BASIC) la RAM n'est plus sauvegardée. Pour effacer la RAM, il suffit de, hors tension d alimentation, commuter le switch 2 sur OFF un instant et le remettre sur ensuite. Les outils logiciels Les outils logiciels sont intégrés dans l EPROM. Le BASIC Intel MCS remanié Paris 8 - Anstj : Basic 552 Il permet entre autre la programmation et l'interprétation de programmes écrits en BASIC (voir documentation de «TermFox») dont la communication I²C, le pilotage de moteurs, la mesure de tensions analogiques Une documentation technique du langage BASIC 552 spécifique au Foxacogite 2 est également disponible sur ce support. L utilisation de l interpréteur Basic fait l objet d un autre document. Le moniteur Mon552 Il permet le chargement et l exécution de code machine généré à partir d un assembleur ou compilateur pour processeur de la famille 8051. Il permet aussi de faire quelques débogages (affichage et modification de la mémoire RAM interne et externe). Il s utilise avec aussi avec«termfox». Le mini-vlisp 552 C est un interpréteur de programmes écrits langage en LISP, adapté à la carte Foxacogite 2 L'I²C Le 80C552 de Philips comporte un pilote de ligne I²C. Les langages disposent d'instructions pour utiliser la ligne I²C en mode maître-esclave. Plusieurs ouvrages et documentations constructeurs existent sur ce composant. Le connecteur I²C (J3) est du type modular jack ou RJ11 ou encore 6P4C. Les signaux sont ceux classiquement utilisés sur les produits de l'anstj, donc compatible avec les SuperMEC. Ci contre, vu côté connexions extérieures. Voici quelques exemples de programmes en BASIC. 1. Commande d'un SuperMEC comportant un 8574. Mise en marche du moteur dans le sens rouge jusqu'à ce que l'une des fins rouge ou verte soit active. 10 REM EXEMPLE 1 : SuperMEC 15 ADI2C=64 : REM Adresse du SuperMEC 20 WI2C ADI2C,254! 30 POP ERREUR:IF (ERREUR>0) THEN 1000 Page 3 sur 6
40 DO 50 RI2C ADI2C,1 60 POP ERREUR, OCTET::IF (ERREUR>0) THEN 1000 70 UNTIL (OCTET.AND. (16+32))<(16+32) 80 PRINT "OBSTACLE" 90 END 1000 REM ERREUR I2C 1010 PRINT "ERREUR I2C",ERREUR 1020 END 2. Lecture des quatre entrées analogiques d'un PCF8591 puis Ecriture de la sortie analogique avec la moyenne des quatre entrées. 10 REM EXEMPLE 2 : 8591 20 ADI2C=090H : REM Adresse du PCF8591 30 WI2C ADI2C,254,04H! : REM Octet contrôle = lecture port 0 avec auto increment 40 POP ERREUR:IF (ERREUR>0) THEN 1000 50 RI2C ADI2C,4 : REM lecture des quatre entrees analogiques 60 POP ERREUR,A,B,C,D 70 IF (ERREUR>0) THEN 1000 80 MOYEN=INT((A+B+C+D)/4) : REM calcul de la moyenne 90 PRINT MOYEN, 100 WI2C ADI2C,040H,MOYEN! : REM Octet de controle = conversion 110 POP ERREUR:IF (ERREUR>0) THEN 1000 120 END 1000 REM ERREUR I2C 1010 PRINT "ERREUR I2C",ERREUR 1020 END Les entrées analogiques Le 80C552 de Philips comporte un convertisseur analogique numérique sur 10 bits. Huit lignes sont disponibles sur le 80552. Une ligne (ADC0) est réservée à la mesure de la tension d alimentation extérieure. Le connecteur J5 met à disposition 6 lignes (ADC1 à 6). Le connecteur J4 les reproduit toutes. Les langages disposent d'instructions pour utiliser le convertisseur. Les tensions d'entrées doivent être comprises entre 0 et 4,096 V. La tension de référence de 4.096 V est ajustée au montage par le potentiomètre U11. Il est recommandé de conserver le réglage d'origine. Le pas de conversion est donc de 4 mv. Voici un exemple d'utilisation du convertisseur analogique->numérique (CAN) en BASIC : 10 REM EXEMPLE CAN 20 DO 30 ADC 1 : REM lancement de la conversion de l'entree numéro 1 40 POP VALEUR : REM recupération de la valeur retournee 50 T=(VALEUR*0.004) : REM Calcul de la tension 60 PRINT T, : REM : affichage de la tension vers le terminal 70 UNTIL (0=1) : REM Boucle infinie car condition fausse. Stopper avec Ctrl+C 80 END 1000 REM ERREUR I2C 1010 PRINT "ERREUR I2C",ERREUR 1020 END Les deux sorties PWM Deux sorties PWM sont disponibles. Elles produisent des créneaux carrés (0-5V) dont la fréquence va de 85 à 21684 Hz. Le rapport entre état haut et état bas est réglable à souhait. Page 4 sur 6
Attention! La fréquence est commune aux deux sorties. Les lignes PWM sont complémentées, au repos, la sortie fournit un niveau haut TTL continu. Les langages disposent d'instructions pour utiliser ces sorties PWM. Important : pour une bonne protection des sorties PWM, il est vivement recommandé d'y adjoindre des optocoupleurs. Nota : notre expérience sur divers moteurs à courant continu nous a permis de voir que SPWM 128 donne de bons résultats. Voici un exemple d'utilisation des sorties PWM : 10 REM EXEMPLE SORTIES PWM 20 SPWM 128 : REM réglage du prediviseur. 30 HAUT=1 : REM variable de duree de l'etat bas 40 DO 50 PWM0,HAUT : REM Duree etat bas de la premiere sortie PWM 60 PWM1,(255-HAUT) : REM Duree etat bas de la seconde sortie PWM 70 HAUT=HAUT+1 : REM increment de la variable HAUT 80 UNTIL (HAUT=255) : REM Sortie de la boucle lorsque Haut=256 90 END Les sorties PWM sont toujours actives, même après la fin de l'exécution du programme. En principe à la fin du programme, la sortie PWM0 devrait être très longtemps à l'état haut. Le contraire pour la sortie PWM1. (A vérifier sur un oscilloscope.) Brochage du port J5 2 14 1 13 J5 - vu côté connecteur 1 1. AGND - masse analogique 2. ADC1 - entrée analogique numéro 1 3. ADC2 4. ADC3 5. ADC4 6. ADC5 7. ADC6 8. P4.7 sens rotation moteur 1 J5 J4 9. VREF tension de référence analogique 4,096V 10. P4.6 sens rotation moteur 0 11. GND (masse numérique) 12. VCC (+5V numérique) 13. PWM1 (signal inverse) 14. PWM0 (signal inverse) Page 5 sur 6
Implantation des composants et des connecteurs J1 = prise d'alimentation (type Japon) J2 = connecteur RS 232 (type DB9) J3 = prise I²C (type RJ11 ou 6P4C) J4 = connecteur réservé pour les utilisateurs avertis (HE10-40 mâle) J5 = connecteur pour usages courants (HE10-14 mâle) U9 = jumper coupe circuit d'alimentation ligne I²C U15 = micro-switchs configuration mémoire et réception RS-232 S2 = bouton RESET (type poussoir coudé) D3 = signal d'alimentation (LED rouge) Bon loisir microcontrôlé... Loïc Dayot & Roger Tanguy Université Paris 8 - Anstj mai 2001, rev : janvier 2003 Page 6 sur 6