UTILISATION DE LOGIPIC V2 LE timer 1

Documents pareils
MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

La programmation des PIC en C. Les fonctions, les interruptions.

Modules d automatismes simples

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Guide de programmation FLEXIVOZ PABX OD308

Manipulations du laboratoire

PIC EVAL Dev Board PIC18F97J60

VIII- Circuits séquentiels. Mémoires

Fiche technique CPU 314SC/DPM (314-6CG13)

COMMANDER la puissance par MODULATION COMMUNIQUER

GPA770 Microélectronique appliquée Exercices série A

1. PRESENTATION DU PROJET

Université de La Rochelle. Réseaux TD n 6

TP Modulation Démodulation BPSK

INDEX Fonctionnement Schéma de câblage... 24

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

Ecran programmable. Testez la différence grâce. à sa puissance, sa rapidité. et ses possibilités réseaux

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

SUR MODULE CAMÉRA C38A (OV7620)

Instruments de mesure

Tuto pour connecter une source RVB RGB à un moniteur Commodore / Amiga

IFT1215 Introduction aux systèmes informatiques

Conférence sur les microcontroleurs.

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Système M-Bus NIEVEAU TERRAIN NIVEAU AUTOMATION NIVEAU GESTION. Domaines d'application

REALISATION d'un. ORDONNANCEUR à ECHEANCES

LibreOffice Calc : introduction aux tableaux croisés dynamiques

Définition du compte courant

Manuel d utilisation. Thermomètre d'enregistrement de données à trois canaux Modèle SD200

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Mai n 38. Page 1 sur 5 17/05/2013. Découvrez le nouveau service d'aspone.fr :

Les opérations binaires

212 Erreur accès anti- Echo. 214 Erreur démarrage vérif DSP. 215 Erreur accès trame IC. 216 Erreur DSP carte MSG. 217 Erreur données Carte MSG

Infos. Indicateurs analogiques encastrables pour installation à courants forts. Série M W/P/ LSP BWQ BGQ TP TG WQ /0S WQ /2S FQ /2 W BI BIW DFQ

Module Relais de temporisation DC V, programmable

Centrale de surveillance ALS 04

Liste des Paramètres 2FC4...-1ST 2FC4...-1PB 2FC4...-1PN 2FC4...-1SC 2FC4...-1CB

Comptabilité - USR. Logiciel : Comptabilité USR - Version 2,16 Documentation réalisée par JJ Gorge Trésorier Tir à l'arc le 04/04/ / 15

Lecteur de carte à puce LCPM1 SOMMAIRE

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Tout savoir sur le matériel informatique

Guide de l'utilisateur

Solution parfaite pour une expérience bureautique transparente. Récapitulatif. Processeur Teradici avancé, haute performance

Connaître la durée de vie d'un SSD

DirXML License Auditing Tool version Guide de l'utilisateur

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

Guide Mémoire NETRAM

ENREGISTREUR DE TEMPERATURE

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Master d'informatique 1ère année Réseaux et protocoles. Couche physique

PIC 16F84. Philippe Hoppenot

crm+ capteurs à ultrasons Extrait de notre catalogue en ligne : Mise à jour :

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

Conception et réalisation d'une pédale MIDI

Débuter avec PsoC ou PsoC niveau 0

L'intégration et le montage d'appareillages électriques doivent être réservés à des électriciens

AMBUS IS Collecteur d impulsions M-Bus

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Notice d'utilisation Afficheur multifonctions et système d'évaluation FX 360. Mode/Enter

LYCEE TECHNIQUE PIERRE EMILE MARTIN BOURGES ETUDE D UN TRAITEMENT DE SURFACE

Aide pour configurer un ordinateur sur le Wi Fi de l'université avec Windows Vista

CLIP. (Calling Line Identification Presentation) Appareil autonome affichant le numéro appelant

LOGICIEL DC4D MONITOR

Carte ARDUINO UNO Microcontrôleur ATMega328

VLAN Trunking Protocol. F. Nolot

Importantes instructions de sécurité

Fiche Pratique. Présentation du problème. Installation du logiciel. Etape 1. MAJ le 17/10/2011

Régler les paramètres de mesure en choisissant un intervalle de mesure 10µs et 200 mesures.

Présentation Module logique Zelio Logic 0 Interface de communication

Transmissions série et parallèle

Multichronomètre SA10 Présentation générale

Conclusions du Conseil sur l'innovation dans l'intérêt des patients

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

SOMe2100 MANUEL D UTILISATION. TRANSMETTEUR GSM/GPRS - M-Bus Master D INSTALLATION. Montage sur rail DIN. Notice simplifiée du module SOMe2100

Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V

SOMMAIRE Equipement Instructions générales. 1.Vue générale. 1.1 Face avant. 1.2 Face arrière. 2 Mode D emploi Adressage DMX

Proteus Design Suite V7 Instruments virtuels

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

SCL LOGICIEL DE CONTROL

Le module Supply Chain pour un fonctionnement en réseau

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

Manuel d utilisation NETexcom

Oscilloscope actif de précision CONCEPT 4000M

PRÉCISIONS POUR DÉFINIR VOTRE PROJET COMPTE DE BANQUE

1 - Clients 2 - Devis 3 - Commandes 4 - Livraisons 5 - Factures 6 - Avoirs 7 - Modèles

Caractéristiques principales : 1. Prise en charge des réseaux GSM et PSTN 2. Quadri-bande : 850/900/1 800/1 900 MHz 3. Enregistrement vocal sur 2

Electronique Automatisme Informatique Electricité

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

MANUEL PROGRAMME DE GESTION DU CPL WI-FI

Terminer sa Comptabilité 2014 sur ALBUS (avec élégance!)

Flowcode - Mode d'emploi

Logiciel de gestion de données

Avec PICASA. Partager ses photos. Avant de commencer. Picasa sur son ordinateur. Premier démarrage

Chapitre 1 I:\ Soyez courageux!

Auto formation à Zelio logic

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

Manuel Gestion du crédit

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Transcription:

UTILISATION DE LOGIPIC V2 LE timer 1 Objectif : Il s agit de comprendre et d'utiliser le timer des microcontroleurs type 16F. Ce coach complète le coach sur les timers 1 - La cible Les programmes sont réalisés sur la platine BootRS232. Cette cible est constituée par un microcontroleur 16F876A avec un oscillateur interne à 20MHz. Pour fonctionner en mode bootstrap, le pic devra être programmé une première fois avec un bootloader (16F876A_20M.hex). Avec un quartz à 20 MHz, il faut utiliser Logipic V213, en effet, la prise en charge de l'affichage LCD avec un quartz à 20 MHz ne fonctionnera pas avec les versions antérieures à V209. SCHEMA STRUCTUREL M. Lancelot Thierry - 1 - Utilisation du timer1

2 - Le timer1 La mise en œuvre du timer1 s'effectue grâce au registre T1CON : bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Non utilisé Non utilisé T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON Après un reset le registre T1CON se positionne à 00000000 T1CKPS1 : choix du prédiviseur T1CKPS0 : T1OSCEN : permet d'activer un oscillateur interne (double quartz). 0 : normal. 1 : double quartz. T1SYNC : dépend de TMR1CS. Permet la synchronisation. 0 : synchro. 1 : pas de synchro. Si TMR1CS = 0 (horloge interne) T1SYNC est ignoré. TMR1CS : permet de choisir entre l'horloge externe ou l'horloge interne. 0 : horloge interne. 1 : horloge externe, double quartz. TMR1ON : mise en route du timer1. 0 : arrêt. 1 : marche. bit5 :T1CKPS1 Bit4 : T1CKPS0 / Prédiviseur 0 0 1 0 1 2 1 0 4 1 1 8 2 - Fonctionnement en mode timer Le timer1 fonctionne globalement comme le timer0, cependant le timer1 est capable de compter sur 16bits ce qui lui permet d'être plus souple quand au choix du temps. Pour travailler sur 16 bits, il est nécessaire d'utiliser 2 registres : TMR1L et TMRH. Attention, le contenu de TMR1L et TMRH n'est pas remis à 0 lors d'un reset. Il faudra donc toujours charger ces registres lors de l'écriture du programme. Pour choisir ce mode, nous devons configurer T1CON de la façon suivante : bit7 bit6 T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS bit0 0 0 Choix du prédiviseur 0 0 0 TMR1ON T1CON = B '00xx000x x pourra prendre la valeur 0 ou 1 M. Lancelot Thierry - 2 - Utilisation du timer1

Dans ce cas là, le timer1 se résume à : A partir du moment ou TMR1ON est à 1, l'appel de l'interruption dépend de la fréquence du Quartz, du prédiviseur et du comptage de TMR1. Exemple1 : si le quartz est de 20MHz, le prédiviseur à 1 et le TMR1 à 0, il va falloir passer 65536 fois pour provoquer une interruption, soit une fréquence de Q/4/65536 = 76,2939 Hz ou 13,1072ms Exemple2 : si le quartz est de 20MHz, le prédiviseur à 1 et le TMR1 à FFFB, il va falloir passer 5 fois pour provoquer une interruption, soit une fréquence de Q/4/5 = 1 MHz ou 1 µs Pour connaître les différentes valeurs de T1CKPS1, T1CKPS0 TMR1H et TMR1L en fonction du temps désiré, j'utilise le logiciel Pic Timer Calculator. Quartz à 20 MHz Prediviseur TMR1 en format Hexa$, décimal ou binaire% Pic timer Calculator indique ainsi qu'avec un quartz à 20 MHz, le prédiviseur positionné à /1 et TMR1 à H'0000', l'interruption est effectué tous les 13,1072ms. M. Lancelot Thierry - 3 - Utilisation du timer1

Pour réaliser un compteur capable de travailler à la seconde, il va falloir trouver une valeur entière, utilisons les possibilités du logiciel, demander 10 ms et demander Search : Le calcul indique un prédiviseur à /1 (T1CKPS1 et T1CKPS0 à 0), TMR1H à 60 et TMR1L à 176. Avec une interruption toutes les 10ms, il sera très facile d'effectuer un comptage indiquant la seconde. Il est temps de passer sur Logipic. Le programme principal permet de gérer la mise en route du timer1. Dès la mise en route du timer1 l'appel de l'interruption s'effectue toutes les 100ms, un comptage jusqu'à 10 permettra donc de faire avancer un compteur de seconde. Le sous-programme d'interruption ne prend pas en compte le dépassement au bout de 60 minute, l'intérêt étant essentiellement de comprendre la gestion du timer1. Avant de compiler le projet, n'oubliez pas de configurer correctement les options nécessaire à la cible et tout particulièrement le choix de l'oscillateur interne (HS pour un Quartz à 20 MHz). Il est nécessaire aussi de configurer l'option LCD pour être compatible avec la cible. Après compilation, le fichier peut-être transférer sur la cible avec TinyBootloader. Pour que l'ensemble fonctionne correctement, n'oubliez pas de configurer le chemin d'accès de Tinybootloader ainsi que les options de celui çi. : choisir le port Com de votre système et la vitesse de transfert (115200 pour un Quartz à 20 MHz). Attention de ne pas utiliser des temporisations lors des appels des timers, j'ai remarqué de nombreux problèmes. Les temporisations du programme provoquent des fonctionnement bizarres du timer. En effet, un appel timer tous les 10ms alors qu'il y a une tempo de 20ms n'est pas compatible. Les calculs effectués avec pic calculator doivent être vérifiés par mesure sur le pic en fonctionnement, vérifier au moins si la valeur bianire est égale à la valeur héxa ou décimale (ce coach explique tout ça). M. Lancelot Thierry - 4 - Utilisation du timer1

Positionne le timer1 avec le prédiviseur /1 timer1 arrêté 100ms.prj Ce test va permettre de positionner TMR1ON à 1 donc chaque appui sur le bouton poussoir B3 fait démarrer le timer1 Ce test va permettre de positionner TMR1ON à 0 donc chaque appui sur le bouton poussoir B2 arrête le timer1 Affichage du compteur M. Lancelot Thierry - 5 - Utilisation du timer1

Positionne TMR1H et TMR1L pour une interruption toutes les 10ms Un appel tous les 10ms, donc au bout de 100 passages, il y a une seconde de passer, le compteur seconde s'incrémente. M. Lancelot Thierry - 6 - Utilisation du timer1

Pic timer calculator est d'une aide précieuse, cependant dans certains cas, il faut vérifier les informations entre les valeurs binaires et hexa/décimale. Exemple : Concernant une recherche sur le timer 100ms :? 1011(b) 11(dec) B(hex) 11011100(b) 220(dec) DC(hex) Les bonnes valeurs sont TMRH = 11(dec) ou B(hex): je ne sais pas pourquoi il y a ce problème? 3 - Fonctionnement en mode compteur asynchrone Le signal sur la borne T1CKPI est utilisé pour incrémenter le compteur TMR1 au lieu de l'horloge interne Pour choisir ce mode, nous devons configurer T1CON de la façon suivante : bit7 bit6 T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS bit0 0 0 Choix du prédiviseur 0 1 1 TMR1ON T1CON = B '00xx011x x pourra prendre la valeur 0 ou 1 Dans ce cas là, le timer1 se résume à : M. Lancelot Thierry - 7 - Utilisation du timer1

Ce mode permet de compter les évènements qui se présentent sur la pin RC0/T1CKI, (pin11 d'un 16F876). Pour pouvoir compter les évènements sur la borne T1CKPI, il faut que cette pin soit configurée en entrée via le bit 0 du TRISC (donc ce bit doit être à 1). Le comptage s'effectue uniquement sur le front montant. Le flanc montant de T1CKI n'est pris en compte que s'il est précédé d'un flanc descendant donc si le signal est au niveau 0 à la mise en route du pic, le premier flanc montant ne sera pas comptabilisé. Dans cette configuration, la pin RC1 n'est pas utilisée. Je vous propose d'utiliser ce mode pour réaliser un programme permettant d'actionner le beeper lorsque l'on appui 5 fois sur un bouton-poussoir. En théorie un bouton-poussoir permet de créer des impulsions de comptage, malheureusement, les effets de rebond ne permettent pas un fonctionnement réel. Pour éliminer ses rebonds, j'utilise un montage simple anti-rebond avec un circuit TTL NAND 7437. De plus la platine indiquée en page 1 devra être modifiée afin de disposer de RC0 et RC1. Il seront remplacé par A0 et A1 pour l'afficheur LCD. Le schéma sera donc le suivant : Le compteur étant sur 16 bits, pour déborder à 65535, il faudra donc le positionner à 65536-5 = 65531 65531(10) = 11111111 11111011 (2) TMR1H TMR1L Soit TMRH1 = FF(hexa) TMR1L = FB(hexa) ou 251 (dec) M. Lancelot Thierry - 8 - Utilisation du timer1

Programme principal : Positionne le Timer1 en mode compteur asynchrone Prédiv /1 puis portc,0 en entrée Positionne le compteur à 65532. En effet, lors du premier passage, le premier flanc n'est pas comptabilisé... Permet de voir évoluer le compteur : affichage du TMR1H et du TMRL Positionne le compteur TMR1H et TMRL à 65531 Emission d'un Beep après 5 appuis sur le BP M. Lancelot Thierry - 9 - Utilisation du timer1

Remarquer le fonctionnement du programme : A la mise en route, le compteur est positionné à 65532, cela permet de prendre en compte la mise en route du compteur lors du premier appui ensuite il ne restera plus qu'un comptage sur 5 : cela fait donc 5 appuis...d'ailleurs l'affichage permet de visualiser ce qui se passe, le premier appui après la mise en route ne décrémente pas le compteur. Si l'on modifie la valeur du prédiviseur par exemple par /2, il faudra appuyer 10 fois pour provoquer le Beep. 4 - Fonctionnement en mode compteur synchrone Le fonctionnement est quasiment identique, cependant, la mise à 0 du bit T1SYNC force le compteur à se synchroniser sur l'horloge interne. Pour choisir ce mode, nous devons configurer T1CON de la façon suivante : bit7 bit6 T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS bit0 0 0 Choix du prédiviseur 0 0 1 TMR1ON Dans ce cas là, le timer1 se résume à : T1CON = B '00xx001x x pourra prendre la valeur 0 ou 1 La présence du synchronisateur retarde la prise en compte de l'évènement, le flanc montant sera transmis uniquement au flanc montant de l'horloge interne La synchronisation permet de compter uniquement quand le pic est en fonctionnement, c'est à dire que le pic ne doit pas être en mode «sleep». concernant le montage d'essai et vu la vitesse de comptage cela ne change pas grand chose... Ici s'arrête mes compétences et pour plus d'informations, je vous invite à lire le datasheet du pic ou l'excellent ouvrage de Bigonoff. 5 - Fonctionnement en mode double quartz Il est utile d'utiliser une base de temps différente de celle du quartz du pic. En effet, ceci permet d'utiliser une base de temps multiple de la seconde (quartz horloge à 32768Khz) tout en conservant une vitesse maximale pour le fonctionnement du pic soit 20 MHz. Dans ce mode, l'oscillateur fonctionne avec une fréquence plus faible que le quartz du pic. L'oscillateur secondaire est prévue pour fonctionner sur une Fréquence de l'ordre de 32KHz, cependant cela doit fonctionner jusqu'à 200 KHz (vérifier le datasheet pour la valeur des condensateurs entourant le quartz). M. Lancelot Thierry - 10 - Utilisation du timer1

Dans ce mode particulier, les pins RC0 et RC1 sont automatiquement configurées en entrée, inutile de configurer TRISC. Pour choisir ce mode, nous devons configurer T1CON de la façon suivante : bit7 bit6 T1CKPS1 T1CKPS0 T1OSCEN bit0 TMR1CS bit0 0 0 Choix du prédiviseur 1 T1SYNC 1 TMR1ON T1CON = B '00xx1x1x x pourra prendre la valeur 0 ou 1 M. Lancelot Thierry - 11 - Utilisation du timer1

Dans ce mode, la synchronisation permet principalement de prendre en compte ou non le mode «sleep» du pic. Dans l'exemple qui suit, je positionne T1SYNC à 1. Positionne le Timer1 en mode double quartz Prédiv /1 3double.prj TMR1H=128(d) TMR1L=0(d) donc Appel du timer1 toute les 1 seconde Incrémentation de la seconde + comptage minute M. Lancelot Thierry - 12 - Utilisation du timer1

Pour le calcul du timer n'oubliez pas de configurer correctement Pic Timer : Fréquence du quartz utilisé : 32768 Hz Décocher Fosc/4 TMRH =128(d) TMRL = 0(d) 6 - Exemple d'utilisation : un fréquencemètre Pour réaliser un fréquencemètre, il suffit de compter le nombre de fois où l'entrée RC0 passe de l'état haut à l'état bas pendant un temps donnée. Il faudra faire fonctionner le timer 1 en mode compteur synchrone ou asynchrone. Si le signal à mesurer est de 1KHz et que l'on effectue un comptage de ce signal pendant 1 seconde, le compteur indiquera 1000. Il va falloir faire attention à ne pas dépasser la capacité de comptage du compteur (65536) ni les possibilités du pic (fréquence maximum). Cela implique d'adapter la base de temps avec le comptage. Par exemple, pour une fréquence de 100KHz, il est nécessaire de compter pendant 500ms au lieu de 1 seconde. En tout état de cause, la mise au point du logiciel d'un fréquencemètre est un exercice particulièrement riche pour les amateurs de logipic. M. Lancelot Thierry - 13 - Utilisation du timer1