Tester la détection des signaux pulsadis

Avant de se lancer dans la réalisation du circuit imprimé il souvent préférable de passer par la case « prototypage » pour s’assurer que tout fonctionne comme attendu. Voici donc le matériel nécessaire avec une indication du coût des composants tels que l’on peut les trouver sur ebay.

  1. Une plaque à essai (breadboard) 830 points type MB 102 avec un jeu de cables de connection : 3 euros
  2. Un régulateur de tension 5V pour MB102 (« MB102 breadboard power supply ») : 1 à 2 euros. Dans le montage définitif sur CI cette alimentation sera réalisée à l’aide de composants spécifiques. Le régulateur de tension de la plaque à essai sera alimenté par une alimentation continue 7 à 12 volts (chargeur de téléphone portable par exemple).
  3. Un connecteur pour recevoir le câble d’alimentation secteur (attention 220V: ne pas toucher la plaque sous tension et ne pas inverser le neutre et la phase !!!). Le neutre de l’arrivée 220V sera raccordé au neutre de la plaque.
  4. Un connecteur mâle 6 broches enfichables pour prise ICSP. Permet de raccorder votre programmeur de PIC.
  5. Un adaptateur FT232RL FTDI USB to TTL : 3,70 euros. Permet de debuger votre programme une fois téléchargé sur le microprocesseur via les ports séries de celui-ci et d’afficher les logs sur un terminal. Sous windows je recommande Realterm. Sous linux Minicom fera l’affaire. Notez que ces deux programmes ont la possiblité d’enregistrer le fichier log en précédant les enregistrement d’un « timestamp ». Pratique pour vérifier l’heure d’envoi des signaux…
  6. Un programmeur de PIC avec cable ICSP. J’utilise le PIC-KIT3 de chez Olimex (environ 30 euros) mais il existe de très nombreux montages sur le net permettant de fabriquer soi même son programmeur de PIC. Le pickit 2 de chez Microchip est également une alternative abordable.
  7. Un écran LCD 2×16 (HD44780) : environ 2 euros
  8. Résistances couche métallique 1/2W: 1x100K, 1x68K, 2×4,3K
  9. Résistance ajustable 10k (pour régler le contraste de l’écran LCD)
  10. Condensateurs non polarisés: 2x10nF dont 1 supportant 400V et cicatrisable (X2).
  11. Un processeur PIC16F690 de chez Microchip

Les composants sont installés sur la plaque à essai comme montré sur la photo. Lors de la phase de programmation du PIC l’alimentation 220V devra impérativement être débranchée. Encore une fois, en la rebranchant on fera très attention à ne pas inverser phase et neutre…

Voici des photos:

 

Structure du programme de détection

La structure du programme écrit en GCBasic est très simple. Le programme principal est la boucle infinie suivante:

returnsub = 1
do
  Select case returnsub
    case 1: Startbit
    case 2: Decode_frame
    case 3: Process_frame
  end Select
loop

La fonction  startbit est elle même une boucle infinie dont on sort lorsque le 1er signal Pulsadis à 175Hz a été détecté. Si ce signal est de qualité le code retour est mis à 2 et le retour au programme principal va lancer l’exécution de la routine decode_frame. Comme son nom le suggère celle-ci va décoder les 40 impulsions Pulsadis et les stocker dans le vecteur  »vect ». Une fois le décodage terminé le programme continue sur l’exécution de la routine process_frame qui va analyser les impulsions, vérifier leur cohérence logique et afficher le résultat sur un écran LCD 2×16 et sur un terminal série (si  »debug »=1).

Le cœur de ce programme est la fonction Detect175Hz qui, comme son nom le suggère, retourne 1 si le signal 175Hz est détecté, 0 sinon. L’algorithme utilisé est celui proposé par Matthieu Benoit mais l’échantillonnage se fait ici sur 40ms à 700Hz. Lorsque la variable  »debug » est activée on peut vérifier la qualité du signal associé aux impulsions (25= signal max correspondant à 25x40ms=1 sec à 175Hz).

Programme de détection des signaux Pulsadis en langage basic

L’objectif de ce projet est de proposer un programme de détection facilement compréhensible et accessible à ceux qui ne connaissent ni l’assembleur ni le langage C. Nous avons retenu le langage Basic non seulement pour sa grande lisibilité mais également parce qu’il existe de nombreux langages Basic qui permettent de générer le code du microprocesseur. Parmi les logiciels gratuits il en émerge deux : JAL (Just Another Language) et GCBASIC. Du côté des logiciels payants on pourra regarder du côté de MikroBasic (la version d’essai permet de générer gratuitement un code de 2K max) ou Oshon Soft (prix plus abordable).

Nous avons choisi GCBASIC car sa communauté semble plus active. Mais nous avons également testé avec succès JAL.

Les programmes sources sont disponibles sur la page de téléchargement de ce site. Les codes source sont commentés ce qui doit permettre leur compréhension par ceux qui souhaiteraient les utiliser ou s’en inspirer.

Montage

Schéma permettant de détecter un signal Pulsadis à partir d’un microprocesseur PIC 16F690 et quelques composants électronqiues de base

L’objectif recherché est de proposer :

  1. un montage simple, relativement universel en ce qu’il peut utiliser un très grand nombre de microprocesseurs (Microchip ou AVR)
  2. un code bien documenté construit à partir d’un langage de programmation de haut niveau et disponible en logiciel libre.
    Cette approche doit permettre d’adapter aisément le montage à des besoins particuliers.

Le montage s’inspire largement de celui proposé par Matthieu Benoit. On trouvera ci-dessous le circuit Proteus:

Montage Pulsadis

Le montage utilise un PIC16F690 de chez Microchip ; il a également été testé avec un PIC16F1509.

Attention : le montage est alimenté directement en 230V. On ne dira jamais assez les précautions que cela demande ! En particulier l’alimentation du Neutre et de la Phase doivent impérativement être respectée.

Objectif du projet

Projet permettant de détecter les signaux Pulsadis généré par ErDF à partir d’un microprocesseur

L’objectif de ce projet est de proposer un montage permettant de détecter les signaux Pulsadis envoyé par ERDF. Ces signaux permettent à EdF de gérer ses tarifications spécifiques comme le contrat EJP  (qui n’est plus commercialisé) ou le contrat Tempo (qui l’est encore). Ces signaux sont codés sur 40 impulsions à partir d’un signal à 175Hz qui se superpose au 50Hz secteur avec une amplitude de l’ordre de 2% du courant secteur.

Si vous disposez d’un compteur électronique, les informations peuvent être lues via le signal Teleinfo en sortie du compteur et le montage proposé ici ne présentera pas d’intérêt. Par contre, si votre compteur n’a pas une telle sortie, est éloigné ou si vous souhaitez vous affranchir de ce dernier vous pourrez trouver ce dispositif utile.

On trouvera sur le site de Matthieu Benoit une explication détaillée du fonctionnement du signal Pulsadis et son application au décodage des signaux EJP. Une variante « Tempo » est également disponible ici. On peut également trouver sur le net un montage à base de PIC16F690 avec le programme C associé mais ce dernier est d’une lecture complexe. Enfin un autre montage est proposé par Thierry Eggen à partir d’un processeur Parralax. Le code fourni pour ce dernier a inspiré le code utilisé ici.

La signification des signaux Pulsadis est donnée quant à elle à la page 125 du document de référence EdF HN 96-S-65 et disponible ici.


Warning: realpath(): open_basedir restriction in effect. File(/var/www/sda/5/c/collegebalzacnemours/tmp) is not within the allowed path(s): (/var/www/sda/0/7/pulsadis) in /var/www/sda/0/7/pulsadis/wordpress/wp-includes/functions.php on line 2102