• Aucun résultat trouvé

Gestion du CAN

N/A
N/A
Protected

Academic year: 2022

Partager "Gestion du CAN"

Copied!
4
0
0

Texte intégral

(1)

Denis Rabasté IUFM Aix Marseille

programmation des microcontrôleurs PIC 1/4

Gestion du CAN

Parmi les périphériques intégrés avec le microcontrôleur, se trouve un convertisseur analogique numérique que nous allons maintenant mettre en œuvre.

Principe de fonctionnement

Huit entrées avec échantillonneur bloqueur sont multiplexées vers le CAN 10 bits à approximations successives, comme le montre la figure suivante :

Le résultat de la conversion sera stocké dans les registres « ADRESH » et « ADRESL », respectivement pour la partie haute et basse, avec un format dépendant de la configuration ;

(2)

gestion du CAN

Denis Rabasté IUFM Aix-Marseille

programmation des microcontrôleurs PIC 2/4

Le convertisseur est configuré deux registre « ADCON0 » et « ADCON1 » :

Le registre ADCON0 permet de :

- sélectionner la fréquence d’échantillonnage (bits « ADSC1 » et « ADSC0 ») ; - de sélectionner le canal (bits « CS1 » et « CS0 ») ;

- de mettre en fonction ou non le CAN (bit « ADON ») ;

- de connaître l’état de la conversion par le bit d’état « GO/DONE ».

Le registre ADCON1 permet de :

- justifier à droite ou à gauche les 10 bits du résultat dans les 16 bits de « ADRESH » et

« ADRESL » (bits « ADFM ») ;

- - d’affecter les références de tensions VREF+ et VREF- du CAN soit à l’alimentation soit aux entrées RA3 et RA2 ;

- de configurer en analogique ou en numérique les différentes entrées concernées (bits

« PCFG3 » à « PCFG0 ») ;

Attention :

- les bits « TRIS » correspondants aux entrées analogiques souhaitées doivent être configuré à 1 (entrée) ;

- la mise en service du CAN par « ADON » et le déclenchement de la conversion par

« GO/DONE » ne doit pas se faire dans la même instruction ;

Lorsque la conversion est terminée : - le bit « GO/DONE » passe à 0 ;

- le bit drapeau « ADIF » (registre « PIR1 ») passe à 1, générant une interruption si « ADIE » (registre « PIE1 ») est à 1, ainsi que « PEIE » et « GIE ».

Pour faire une acquisition : - configurer le CAN ;

- les autorisations d’interruptions si nécessaire ;

- attendre le temps de charge du boqueur (ordre de grandeur 20 µs) ; - lancer la conversion par mise à 1 de « GO /DONE » ;

- puis scruter ce bit ou attendre une interruption (dans ce cas ne pas oublier de remettre le drapeau à 0)

Programmation

Ouvrir un nouveau projet TP4_CAN pour PIC16F877A, y inclure le fichier « Prog1.asm » du répertoire

« Ressources \ TP4_CAN », sauvegarder le fichier dans votre répertoire sous un nom différent, supprimer la version d’origine du projet.

Analyser le programme (reproduit en annexe), on notera en particulier : - l’utilisation de la directive « MACRO » ;

- la configuration du CAN.

(3)

gestion du CAN

Denis Rabasté IUFM Aix-Marseille

programmation des microcontrôleurs PIC 3/4

Compiler, simuler et programmer.

Lors de la simulation ,on peut noter qu’il faut 5 instructions entre l’ordre de conversion et le passage à 0 de « GO/DONE » ; en effet, la fréquence du CAN est fosc/2 et les instructions sont cadencées à fosc/4 ; pour un convertisseur 10 bits, cela fait donc bien les 10 coups d’horloge nécessaires.

Modifier le code source pour que la fin de conversion génère une interruption qui déclenchera l’acquisition.

Tester votre solution.

Annexe 1 : commande du CAN

;********************************************************************************:

; Ce programme fait l'acquisition de la tension du potentiomètre de la carte PICDEM2PLUS

; et affiche le poids fort sur les 4 DEL du port B * *

;********************************************************************************

LIST P=16F877A ; directive qui définit le processeur utilisé

#include <P16F877A.INC> ; fichier de définition des constantes

;******************************************************************************

; BITS DE CONFIGURATION

;******************************************************************************

__CONFIG _HS_OSC & _WDT_OFF & _CP_OFF & _CPD_OFF & _LVP_OFF

;********************************************************************************

; MACRO *

;********************************************************************************

;passage en banque 0 BANK0 macro

bcf STATUS,RP0

bcf STATUS,RP1

endm

;passage en banque 1 BANK1 macro

bsf STATUS,RP0

bcf STATUS,RP1

endm

;passage en banque 2 BANK2 macro

bcf STATUS,RP0

bsf STATUS,RP1

endm

;passage en banque 3 BANK3 macro

bsf STATUS,RP0

bsf STATUS,RP1

endm

;********************************************************************************

; DEMARRAGE SUR RESET *

;********************************************************************************

org 0x0 ; Adresse de départ après reset

goto debut

org 0x10 ; adresse de début du programme

(4)

gestion du CAN

Denis Rabasté IUFM Aix-Marseille

programmation des microcontrôleurs PIC 4/4

debut

;********************************************************************************

; PROGRAMME PRINCIPAL *

;********************************************************************************

call init

boucle

bsf ADCON0,GO ; Lancement de la conversion Attente

btfsc ADCON0,GO ; fin de conversion ? goto Attente

swapf ADRESH,w ; mise des 4 LSB dans les MSB de W movwf PORTB ; affichage en sortie

goto boucle ; rebouclage

;********************************************************************************

; SOUS PROGRAMMES *

;********************************************************************************

;********************************************************************************

; INITIALISATION *

;********************************************************************************

init

; initialisation du PORTB en sortie

BANK0 ; passage en banque 0

clrf PORTB ; RAZ des bascules D du port B clrf PORTA ; RAZ des bascules D du port A

BANK1 ; passage en banque 1

movlw b'00000000'

movwf TRISB ; PORTB en sortie movlw b'11111111'

movwf TRISA ; Mise en entrée du bit 0 de PORTA (entrée CAN)

; initialisation du CAN

BANK0 ; passage en banque 0

movlw b'00000001' ; horloge Fosc/2 (ADCSx=0), sélection de RA0 (CHSx=0) movwf ADCON0 ; alimentation du CAN (ADON=0)

BANK1 ; passage en banque 1

movlw b'00000000' ; 10 bits à gauche (ADFM=0) Fosc/2 (ADCS2=0)

movwf ADCON1 ; Entrée AN0 analogique Vref+=Vdd Vref-=Vss (PCFGx=0)

BANK0 ; retour en banque 0

return

;********************************************************************************

END

Références

Documents relatifs

MOLDOVA - Université de médecine et de pharmacie « Nicolae Testemiteanu » ROUMANIE - Université des Sciences Agricoles et Médecine Vétérinaire de Cluj-Napoca. GEORGIE

Si la zone humide artificielle peut faire l’objet d’un avis favorable de la part des acteurs locaux, du fait de ses fonctions épuratrices et donc de l’amélioration attendue

La modélisation des continuités écologiques, et l’analyse de l’état de l’art menées dans le cadre du projet, ont mis en évidence certains éléments importants à prendre

Pour illustrer l’exemple d’un programme de recherche sur les anomalies congéni- tales à partir notamment des données d’un registre (Registre de Paris), notre projet (équipe sur

affirmation du droit au recours à la publicité, l’article 65 précité du code espagnol de déontologie médicale ajoute : « Les annonces publicitaires doivent rechercher

Vous trouverez ci-dessous une liste de ratios utilisés en finance pour analyser le compte de résultats d’une société avec un exemple en fin de page.. Ne soyez pas effrayés, le

Mais toute sa vie elle aspire à un ailleurs mythique et quand, enfin, le docteur, à l’indépendance, propose de lui donner sa maison, elle refuse le cadeau malgré

La figure 1 montre que lorsque des courants (haute fréquence, de défaut 50 Hz, foudre) circulent dans des impédances communes (Z) ; les deux équipements vont être soumis à