F8EOZ » microcontrôleur http://www.f8eoz.com Informatique - Electronique - Ham radio Thu, 11 May 2017 15:37:43 +0000 fr-FR hourly 1 http://wordpress.org/?v=3.5 Fréquencemètre à microcontrôleur PIC – Structure du programme http://www.f8eoz.com/?p=702 http://www.f8eoz.com/?p=702#comments Sat, 17 Dec 2011 08:38:07 +0000 admin http://www.f8eoz.com/?p=702 Voilà, notre micro contrôleur est placé dans le circuit (au moins sur le papier!). Nous savons ce qu’il doit faire: compter des impulsions et transmettre le résultat du comptage à l’afficheur. Il est temps maintenant de passer à la programmation du micro contrôleur. Avant de commencer à programmer j’ai « démonté » plusieurs programmes écrits en langage assembleur, traitant notamment, de la commande d’un afficheur, du comptage des impulsions. J’ai aussi consulté les documentations suivantes:
- Note Microchip AN592,
- Note Microchip AN526 PIC16C5x/PIC16Cxx Utility Math Routines,
- How to control a HD44780-based Character-LCD de Peter Ouwehand,
- 50 MHz-Frequenzzähler mit 16F84 und LCD-Display de Sprut,
- The Weeder Frequency Counter PIC 16F84 port by Peter Cousens,
- Fréquencemètre à microcontrôleur de Loïc Lefebvre.

Ces notions étant acquises, j’ai construit ensuite entièrement ma propre version en langage assembleur que je vais maintenant expliquer.

Structure du programme
Le programme est divisé en 4 modules indépendants:
- le fréquencemètre,
- le setup,
- la gestion des options stockées en EEPROM,
- la gestion de l’afficheur LCD.

Le setup et la gestion des options sont optionnels. Si vous supprimez ces modules, le programme fonctionnera simplement avec les valeurs par défaut.

Le module fréquencemètre comprend:
- l’acquisition et le comptage des impulsions, auto calibration (autorange) et mesure,
- la conversion binaire décimal en tenant compte de l’option IF.

Toutes les opérations d’affichage et de gestion de l’afficheur LCD sont effectuées en passant par les routines et macros du module de gestion de l’afficheur. Ce module peut donc être entièrement réutilisé pour un autre programme.

Affichage numérique
L’affichage numérique est réalisé au moyen d’une seule routine utilisant un format d’affichage qu’il est possible simplement d’adapter à ses besoins. Plusieurs formats peuvent être définis dans une table des formats. Ce format permet la suppression des zéros non significatifs, l’insertion d’un point ou d’une virgule décimale, l’insertion d’espaces pour séparer les milliers.

Affichage des textes
L’affichage des textes est réalisé au moyen d’une seule routine et d’une table des textes.

Calculs et conversions
Ils sont réalisés  avec les routines de Brian Beard, elles mêmes réalisées d’apès la note AN526 de Microchip.

Le module de gestion des options comprend,
- le chargement en mémoire des options: MODE de fonctionnement et IF,
- la sauvegarde des options dans l’EEPROM en cas de modification par le setup.

Le module de setup est déclenché au premier appui de la touche setup. Il est chargé de la gestion des options MODE et IF.

Racine  du programme

;================================================================================
;                                    PROGRAM ROOT
;================================================================================
start

    call    PICinit
    call    LCDinit         ; Initialize LCDisplay
    call    LoadOptions     ; Load options from EEPROM
ProgramLoop
    call    CountFrequency
    call    BinToDec        ; binary to decimal conversion
    call    DisplayCounter
    call    isSetup
    goto    ProgramLoop
;================================================================================
;                                PROGRAM ROOT END
;================================================================================

Télécharger le fichier Kicad du schèma .
Télécharger les fichiers source et hexa du fréquencemètre .

Liens

Fréquencemètre à microcontrôleur PIC
Fréquencemètre à microcontrôleur PIC – Description
Fréquencemètre à microcontrôleur PIC – Structure du programme
Fréquencemètre à microcontrôleur PIC – Mesure
Fréquencemètre à microcontrôleur PIC – Commande de l’afficheur LCD
Fréquencemètre à microcontrôleur PIC – Réalisation

]]>
http://www.f8eoz.com/?feed=rss2&p=702 2
Fréquencemètre à microcontrôleur PIC – Description http://www.f8eoz.com/?p=684 http://www.f8eoz.com/?p=684#comments Fri, 16 Dec 2011 14:21:53 +0000 admin http://www.f8eoz.com/?p=684 Mon circuit n’est qu’une variante des nombreux schémas publiés sur Internet, comme celui-ci présenté sur Ham Radio India de VU2FD. Je l’ai simplement adapté aux composants dont je disposais et aux ports que je souhaitais utiliser. La figure 1 montre le schéma du circuit qui a été réalisé avec kicad. Il comprend 3 parties:

  • le préamplificateur,
  • le micro contrôleur,
  • l’afficheur.
Figure 1: Amplificateur audio

Figure 1: Schéma du circuit

Pré amplificateur: un seul étage avec un transistor 2N2222.

Micro contrôleurs:
- ports RB4, RB5, RB6, RB7 données à afficher,
- ports RB1, RB2, RB3 signaux de commande de l’afficheur,
- ports RA3, RA4/T0CKI entrée
- ports RA0, RA1 signaux de commande du setup.

Le programme affectera un nom symbolique à chaque ligne de commande et de données. Il sera possible ainsi aux utilisateurs potentiels, d’adapter le programme à son circuit par un simple changement d’assignation et un réassemblage du programme source.

Afficheur LCD: JHD162A 2×16 caractères, commandé par le contrôleur  SPLC780D équivalent au HD44780. Il est utilisé en mode 4 bits. Le programme envoie donc 2 fois 4 bits pour écrire un caractère. Je n’ai pas utilisé les bornes 15 et 16 du rétro éclairage. Il est toujours possible de le faire en insérant une résistance dont la valeur est à déterminer en fonction de l’afficheur utilisé. L’intensité lumineuse de l’afficheur est réglée au moyen du potentiomètre ajustable P1. L’afficheur a été acheté su Ebay à faible prix.

Setup
Paramètres
- Paramètre MODE : valeur = NO-IF (défaut), LO+IF, LO–IF, IF–LO (LO = oscillateur local).
- ParamètreIF : valeur = 00000 (défaut) à 99999 Khz.

Installation
A la première mise sous tension, les paramètres sont mémorisés avec leur valeur par défaut. La fréquence lue est la valeur directe. L’installation est terminée si on souhaite simplement l’utiliser en lecture directe (sans calcul de FI). Si on souhaite l’utiliser connecté au transceiver, il suffit de passer en mode Setup , de choisir le mode et la valeur de IF  qui correspond au transceiver.
Un appui long (>1s) sur le bouton Set fait passer au Setup et affiche la valeur mémorisée du paramètre IF.
Le 1er digit du paramètre IF clignote
Un appui sur le bouton Next fait avancer de 1 la valeur suivante du 1er digit du paramètre IF et ainsi de suite…
Quand on arrive à 9 un appui sur Next fait revenir le digit à 0 et ainsi de suite…
Un appui sur le bouton Set, enregistre la valeur affichée du 1er digit du paramètre IF et passe au 2ème digit suivant du paramètre IF et ainsi de suite…
Au dernier digit, un appui sur le bouton Set enregistre ce digit et fait passer au paramètre MODE.
Un appui sur le bouton Next fait avancer au MODE suivant et ainsi de suite…
Au dernier digit, un appui sur le bouton Set enregistre ce digit et termine le Setup.
Noter que si on souhaite l’utiliser ensuite en lecture directe, par le Setup on sélectionne simplement MODE=NO-FI. La valeur IF reste mémorisée en EEPROM.

Télécharger le fichier Kicad du schèma .
Télécharger les fichiers source et hexa du fréquencemètre .

Liens

Fréquencemètre à microcontrôleur PIC
Fréquencemètre à microcontrôleur PIC – Description
Fréquencemètre à microcontrôleur PIC – Structure du programme
Fréquencemètre à microcontrôleur PIC – Mesure
Fréquencemètre à microcontrôleur PIC – Commande de l’afficheur LCD
Fréquencemètre à microcontrôleur PIC – Réalisation

]]>
http://www.f8eoz.com/?feed=rss2&p=684 3
Fréquencemètre à microcontrôleur PIC http://www.f8eoz.com/?p=663 http://www.f8eoz.com/?p=663#comments Thu, 15 Dec 2011 10:30:43 +0000 admin http://www.f8eoz.com/?p=663 Je poursuis mon initiation au microcontrôleur avec cette série d’articles consacrée à la réalisation d’un fréquencemètre, de sa conception, en passant par la programmation du firmware embarqué, la réalisation du circuit électronique, jusqu’à la fabrication mécanique de son boitier.

De nombreux exemples existent sur Internet mais pour bien comprendre ce que j’utilise, rien ne vaut l’expérimentation!

L’utilisation d’un microcontrôleur permet d’obtenir un appareil à faible prix. Le circuit électronique d’un tel appareil est assez simple: un microcontrôleur PIC, un afficheur LCD, quelques composants périphériques. La partie la plus complexe réside dans la programmation de son firmware.

Comme je dispose d’un PIC 16F84A, je l’utiliserai dans cette réalisation. La mesure avec le pré diviseur interne peut monter théoriquement jusqu’à 50 MHz. Ce qui correspond à mon domaine d’ utilisation. Par souci d’économie, cet appareil pourra être utilisé en laboratoire ou connecté à un transceiver. Dans ce but, je prévois dans le firmware, un setup qui servira à paramétrer son mode de fonctionnement, soit en mesure directe de la fréquence, soit en tenant compte d’une FI.

Cahier des charges
- plage de mesure jusqu’à 30 MHz,
- gamme de mesure auto calibrable (autorange),
- affichage LCD 2 lignes de 16 caractères,
- setup mesure directe ou avec FI.

Télécharger le fichier Kicad du schèma .
Télécharger les fichiers source et hexa du fréquencemètre .

Liens
Fréquencemètre à microcontrôleur PIC
Fréquencemètre à microcontrôleur PIC – Description
Fréquencemètre à microcontrôleur PIC – Structure du programme
Fréquencemètre à microcontrôleur PIC – Mesure
Fréquencemètre à microcontrôleur PIC – Commande de l’afficheur LCD
Fréquencemètre à microcontrôleur PIC – Réalisation

]]>
http://www.f8eoz.com/?feed=rss2&p=663 6