Un wattmètre AC (à base de ADE7753)
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Un wattmètre AC (à base de ADE7753)



  1. #1
    carcan

    Re : [Terminé] Un Wattmètre AC (à base de ADE7753)


    ------

    Bonjour,

    je vais vous présenter un petit wattmètre secteur basé sur le circuit intégré ADE7753 de Analog Devices.
    Les messages qui vont suivre vont présenter :
    - la platine de mesure
    - la platine de gestion et d'affichage
    - le programme du microcontrôleur

    Remarque : cette réalisation s'adresse à des personnes expérimentées et nécessite un minimum d'équipement spécialisé comme :
    - matériel pour souder des cms (y compris des boîtiers SSOP)
    - matériel pour réaliser des circuits double face avec des pistes très fines (<0.4mm)
    - transformateur d'isolement
    - wattmètre de référence

    Bonne lecture pour la suite !

    -----

  2. #2
    carcan

    Re : [Terminé] Un Wattmètre AC (à base de ADE7753)

    Phase 1 : Présentation de la platine de mesure

    Elle est composée du chip ADE7753 qui est le coeur du montage, la tension (secteur) à mesurer est simplement passée dans un diviseur de tension (composé de R4, R5 et R6), ce diviseur est calculé pour mesurer une tension alternative jusqu'à +-330Vrms (le fond d'échelle du convertisseur analogique digital étant de +-0.5V). Il n'y a pas d'isolation galvanique entre l'entrée tension et la carte, le plan de masse et donc tout le circuit est donc relié à la tension à mesurer ... Je vous rappelle donc que la plus grande prudence est nécessaire lors de la mise au point du système !!!!!
    La mesure de courant est confiée à un transfo d'intensité (AC1005 disponible chez Gotronic), ce transformateur ainsi que la résistance R9 ont été déterminés pour avoir un fond d'échelle de 5Arms environ (ce choix a été fait pour pouvoir utiliser facilement de gros TI externes).
    La carte possède une sortie impulsions isolée par optocoupleur, je n'ai actuellement pas encore utilisé cette fonctionnalité.

    La carte communique avec l'extérieur via un bus SPI à 4 fils. Ce bus est isolé galvaniquement via un circuit spécialisé : le ADuM5401.
    L'avantage de ce composant est qu'il génère une alimentation isolée suffisante pour alimenter la platine.

    en pièce jointe, vous trouverez le schéma de principe, le typon au format WinTypon et des photos.

    A suive ...
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  3. #3
    carcan

    Re : [Terminé] Un Wattmètre AC (à base de ADE7753)

    Phase 2 : Présentation de la platine d'affichage

    La gestion est confiée à un PIC18F2550 qui possède suffisamment d'entrées/sorties ainsi qu'une communication USB (qui sera utile pour la calibration et si vous désirez enregistrer vos mesures). L'afficheur choisi est un classique 4 lignes 20 caractères (ici un DisplayTech 204A disponible chez RS).
    La carte possède aussi une partie alimentation qui tourne autour d'un 78M05. Pour faciliter la conception du firmware, vous pouvez ne pas utiliser cette partie et alimenter votre platine via le port USB du PC en déplaçant le jumper de sélection d'alimentation.
    Un bouton poussoir a été placé pour activer le "BootLoader".
    Un connecteur à 5 broches a été placé pour utiliser un clavier extérieur pour gérer les modes d'affichage (actuellement, je n'utilise que deux touches sur les 4 disponibles : une sert à choisir les valeurs à afficher, l'autre est un "Data Hold").


    en pièce jointe, vous trouverez le schéma de principe, le typon au format WinTypon et des photos.
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  4. #4
    carcan

    Re : [Terminé] Un Wattmètre AC (à base de ADE7753)

    Phase 3 : le Bootloader

    Le programme a été écrit avec le compilateur de CCS (PCWH version 4.132).
    Vous pouvez charger le PIC avec votre programmateur préféré avant de le souder sur la carte.
    Ensuite, pour télécharger le programme complet, il suffit d'appuyer sur le poussoir et de connecter l'USB à votre PC (la platine de mesure n'a pas besoin d'être présente). Le programme se télécharge avec l'utilitaire "SIOW.EXE" en cliquant sur "Download Software".
    Remarque : lors de la première connexion, il vous faudra installer le driver USB CDC qui se trouve dans le dossier "Drivers" du compilateur CCS

    En pièce jointe : le bootloader en fichier .hex
    Fichiers attachés Fichiers attachés

  5. A voir en vidéo sur Futura
  6. #5
    carcan

    Re : Un wattmètre AC (à base de ADE7753)

    Phase 4 : le code source en CCS

    Dans la pièces jointe, vous y trouverez les différents fichiers source ainsi que le fichier .hex
    Descriptif des fichiers :
    - "usb_bootloader.h" : fichier nécessaire pour réorganiser la mémoire en fonction de l'espace pris par le bootloader (ce fichier est normalement dans le dossier "Drivers" de CCS, mais il y a eu plusieurs versions et qui ne sont pas forcément compatibles entre elles
    - "Flex_LCD420.c" : fichier driver pour le LCD, à ne modifier que si vous changez de type d'afficheur ou modifiez le câblage entre le PIC et le LCD
    - "ADE7753.h" : driver écrit pour le chip, la description se fera ci-dessous
    - "DisplayWattAC.c" : fichier principal du projet, le description se fera ci-dessous

    Le driver ADE7753.h :
    Le chip dialogue en SPI et possède des registres de 8, 16 et 24bits. La liste de tous ces registres est disponible dans la fiche technique du composant. Les fonctions Read8, Read16, Read24, Write8,Write16 et Write24 ont donc été écrites pour se simplifier la tâche dans la suite de la programmation.
    La fonction ade_init() permet de configurer le composant avec les paramètres suivants : mode accumulation pendant un nombre de cycles défini (ici 120 demi périodes). Ce qui veut dire que le circuit va intégrer l'énergie active pendant une durée définie de 60 périodes (ce qui fait à 50Hz 1,2 seconde). Ce paramètre peut bien entendu être modifié.
    La fonction ade_setPGA(...) permet de régler les gains des 2 PGA des étages d'entrée (dans mon cas, ils sont tous les 2 restés à 1).
    La routine GetADCValue() permet de récupérer et mettre en forme les valeurs de Urms, Irms et période. Elle est à appeler aussi souvent que vous voulez rafraichir votre affichage.
    La routine GetPowerLoop() guette la fin de l'intégration et récupère si nécessaire les informations de puissance. Si aucun signal n'est présent en entrée, il n'y a donc pas de passage à 0 et donc plus jamais d'interruption de fin de cycle. Pour éviter ce problème, on scrute aussi l'interruption "Zero Cross TimeOut", qui nous permet de remettre les différentes variables de puissance à 0 en cas d'absence de passage à 0.
    Cette routine est à appeler régulièrement dans la boucle principale.

    Remarque : sur mon proto, j'ai un offset sur la mesure de I (il n'influence que pour le calcul de Irms et l'intégration de Q) ; je n'ai pas encore réussi à l'éliminer (en utilisant la compensation d'offset sur le PGA). Je réalise une correction soft avec la variable Ioff (cela corrige le défaut pour le calcul de Irms mais pas pour la puissance réactive).

    Le programme principal : .... a suivre
    Fichiers attachés Fichiers attachés

  7. #6
    invite03481543

    Re : Un wattmètre AC (à base de ADE7753)

    Bonsoir Carcan,

    tout d'abord bravo pour ton travail bien presente.

    Si tu me permet quelques remarques:

    1/ Ta carte afficheur manque de decouplage au niveau du microcontroleur et de l'afficheur, n'oublions pas qu'un afficheur contient un microcontroleur.
    2/ Il est dommage que tu n'es pas fait un autre choix dans l'attribution de tes I/O notamment pour PGC et PGD ce qui t'aurait permis de conserver l'ICSP afin de charger le bootloader meme une fois le Micro soude...
    De plus tu n'es pas a l'abri d'un gros plantage qui ecrase le bootloader, c'est rare mais ca arrive, j'en parle d'experience...

    Je regarde tes autres documents.
    @+

  8. #7
    invite03481543

    Re : Un wattmètre AC (à base de ADE7753)

    Dommage que tu n'es pas poste tes typons en pdf egalement...

  9. #8
    carcan

    Re : Un wattmètre AC (à base de ADE7753)

    Salut !

    en général, je fais le plan au propre après le typon ... les capas sont sur le print et (comme très souvent) oubliées sur le schéma de principe.
    Pour la 2e remarque .... raaaaaahhhhh je sais, car en plus j'ai planté le bootloader en mettant au point le firmware (j'ai su le recharger avec le pickit et des grip-fils sans rien dessouder, le LCD ne dérange pas la programmation) ; ça je ne l'oublierai pas pour la prochaine fois

    Merci pour ces bonnes remarques !
    Je continue demain, c'est un projet que je laisse au bureau

    A bientôt
    Laurent

  10. #9
    carcan

    Re : Un wattmètre AC (à base de ADE7753)

    Citation Envoyé par HULK28 Voir le message
    Dommage que tu n'es pas poste tes typons en pdf egalement...
    ...je peux faire, je n'y ai pas pensé ...

  11. #10
    carcan

    Re : Un wattmètre AC (à base de ADE7753)

    Voici les fichiers PDF pour le typon du module wattmètre ...
    Fichiers attachés Fichiers attachés

  12. #11
    carcan

    Re : Un wattmètre AC (à base de ADE7753)

    Et ceux de la platine affichage ...
    Fichiers attachés Fichiers attachés

  13. #12
    carcan

    Re : Un wattmètre AC (à base de ADE7753)

    Phase 5 (avec un peu de retard) :
    Le programme principal "DisplayWattAC.c"

    Le PIC 18F2550 est configuré à 48MHz avec un quartz de 20MHz (avec PLL en interne + divisions). Ce 48MHz est indispensable pour la prise en charge de l'USB.

    A la mise sous tension, on commence par initialiser ce que l'on va utiliser dans le microcontrôleur :
    - le SPI hardware : en mode 1, avec une vitesse de 750kHz (48MHz/64)
    - le Timer1 qui va servir de base de temps (l'appel de l'interruption se fait tous les 10mS)
    On charge ensuite dans des variables tous les paramètres de calibration qui sont stockés en EEPROM.
    On initialise ensuite les périphériques (USB en mode "com port virtuel", display LCD et convertisseur ADE7753).
    Maintenant, on peut démarrer la boucle principale (infinie), qui va réaliser les tâches suivantes :
    - maintenir l'USB actif et détection d'une éventuelle requête du PC. Les requêtes sont la récupération des valeurs formatées ou le lancement de la procédure de calibration (à faire via l'hyperterminal ou équivalent). Nous reviendrons à la calibration plus tard.
    - appeler la fonction GetPowerLoop (décrite dans les précédents messages), elle nous permet de récupérer les mesures de puissance
    - toutes les 600mS (grâce à un flag provenant de l'interruption du timer1) on rafraichit le display et on appelle la fonction GetADCValues, cette fonction nous permet de récupérer les mesures de tension, courant et fréquence

    L'interruption générée par le Timer1 nous permet aussi de détecter un éventuel appui sur un des deux boutons poussoirs. Leurs fonctions étant :
    - changer les infos à afficher pour le premier
    - figer l'affichage pour le second

    La procédure de calibration qui peut être appelée via le PC en envoyant le caractère 'C' nous permet de travailler en mode console avec l'hyperterminal. Il suffit donc de suivre les instructions affichées sur votre écran.
    La fonction Calibration réalise les mesures, calculs et stockage des nouveaux paramètres en EEPROM directement. Vous n'avez pas de calculs à faire, simplement relever les paramètres de vos instruments et les rentrer via le PC.
    La première chose à faire dans la calibration est l'annulation de l'offset (à faire quand aucune charge n'est connectée à l'instrument) ; les autres opérations peuvent être faites dans l'ordre que vous préférez !
    Si vous ne disposez pas d'un wattmètre de référence, vous pouvez aussi réaliser votre calibration avec un voltmètre, un ampèremètre et une charge purement résistive. Dans ce cas, vous mesurez tension et courant simultanément, vous faites le produit des 2 mesures et vous la rentrez le résultat dans "puissance apparente" et "puissance active". La calibration de la puissance réactive ne sera pas possible directement (mais vous pouvez toujours calculer la puissance réactive d'une charge avec S et P et rentrer Q ultérieurement).

    Les gains calculés et stockés en mémoire ont été adaptés pour ne pas se retrouver avec trop d'erreur car nous sommes en "float" (réel, stocké sur 4 octets), c'est pour cela que vous voyez dans les calculs des *1000, ...

    Les fonctions write_float_eeprom et read_float_eeprom sont disponibles dans la librairie "internal_eeprom.c" fournie avec le compilateur CCS.

    Voila qui termine cette présentation ...
    Pour la suite : je vais réaliser un autre module, sur lequel viendra se connecter la platine de mesures, il ne comportera pas de display, mais 2 sorties 4-20mA (ou 0-5V). Le paramétrage de ces 2 sorties (choix du signal à sortir + échelle) se feront aussi via un mode "console" sur PC. Vous aurez bien sur les schémas et le code source... Par contre, ce sera pour 2013 !!

    A bientôt
    Laurent
    Dernière modification par carcan ; 14/12/2012 à 18h30.

  14. #13
    carcan

    Re : Un wattmètre AC (à base de ADE7753)

    Hello !

    voici une version corrigée du module wattmètre

    En effet, quelques petites erreurs se sont glissées dans ce montage :
    - défaut du typon au niveau des pattes de l'optocoupleur
    - impossibilité d'utiliser d'autres composants sur le même bus SPI

    Le second défaut vient de me poser quelques soucis ... le problème provient de l'isolateur de bus (ADuM5401) qui n'a pas de sorties "3-state" ; le problème se pose uniquement sur la ligne MISO (donc de l'ADC vers le µC).
    La solution consiste à ajouter un driver de ligne "3-state" en sortie de l'isolateur, piloté par la ligne /CS.

    Je mets en pièce jointe le typon modifié.

    Si certaines personnes ont déjà réalisé des circuits et sont coincés, j'ai fait un petit module d'adaptation enfichable (n'hésitez pas à me contacter si ça vous intéresse).

    A bientôt
    Laurent
    Fichiers attachés Fichiers attachés

  15. #14
    abcbest1

    Re : Un wattmètre AC (à base de ADE7753)

    bonjour vous
    Mon projet, ainsi que adde7753, combinée AVR32, écran LCD
    mais pour l'instant, de lire le RMS incorrect
    Voici le code de toi.mong vous aider, merci beaucoup, courriel: ngominhthuong1987@gmail.com
    spi_write16(i,IRQEN,0x0010);// IRQEN
    delay_us(50);
    spi_read16(1,RSTSTATUS );
    while(!(spi_read16(1,STATUS)&0 x1010));//gia tri 0x1010 chua chac ,va co the lenh while k lam gi while();

    Vrms = spi_read24(1,VRMS);
    lcd_putnumade(0,0,Vrms);

    Irms = spi_read24(1,IRMS);
    lcd_putnumade(0,1,Irms);

    CSHD = spi_read24(1,LAENERGY);
    lcd_putnumade(0,2,CSHD);

    spi_read16(1,RSTSTATUS );


    delay_ms(1500);
    Dernière modification par abcbest1 ; 12/09/2013 à 16h47.

  16. #15
    borgfeld28537

    Re : Un wattmètre AC (à base de ADE7753)

    bonjour carcan ,
    tout abord felicitation pour le wattmetre AC à la base d'un ADE7753. Votre tutorial est tres comprehensible.
    Mais jai du mal à comprendre certains details sur le schéma module affichage du wattmetre AC.
    1-A quoi sert le block constitué du transistor 78M05, de la diode 1N4148, des trois condensateur 10uF,10uF et 100 uF et du boitier JP3?
    pourquoi ce block doit etre connecter au reste du circuit par un interrupteur ? et quand est ce qu'il doit etre connecter ?
    2-Que doit etre connecter au bornier JP4? et enfin
    3 -où est ce la charge(Appareil , ampoule ....) doit etre monter pour determiner puissance , l'intensité...

    Salutations amicales

  17. #16
    f6bes

    Re : Un wattmètre AC (à base de ADE7753)

    Bjr à toi,
    1: Ce n'est pas un "transistor"..c'est un régulateur de tension .
    Ce block sert à obtenir une tension régulée à partir du "connecteur" d'alimenattion JP3.
    JP3 désigne un connecteur (peu importe sa forme)
    Appremment le montage est alimentée par une tension Vdd en provenance de JP2 ( V+)
    Soit le montage est alimenté par Vdd , soit il l'est à partir du régulateur.
    Il faut donc un inverseur (pas...un interrupteur) pour faire ce choix.
    http://forums.futura-sciences.com/at...ttm-tre-ac.pdf
    A+
    Dernière modification par f6bes ; 09/08/2015 à 10h31.

  18. #17
    carcan

    Re : Un wattmètre AC (à base de ADE7753)

    Hello !

    f6bes a déjà répondu en grande partie, je l'en remercie
    Ce module d'affichage peut-être alimenté via l'USB (5V) ou par un bloc secteur externe, les composants que tu cites sont là pour créer un 5V régulé.
    L'inverseur permet de choisir la source d'alimentation.
    JP4 peut-être utilisé pour y connecter d'autres choses (touches pour un clavier, sondes de T°, ... le choix est vaste), ou rester inutilisées si tu n'as pas besoin d'afficher plus que ce que je n'ai présenté ici.

    Où se connecte la charge ??? benheuuuuu, sur la carte wattmètre pardi (mesure de tension sur le bornier et mesure de courant sur le TI).

    A+
    Laurent

  19. #18
    borgfeld28537

    Re : Un wattmètre AC (à base de ADE7753)

    je te remercie pour ta prompte reponse

  20. #19
    borgfeld28537

    Re : Un wattmètre AC (à base de ADE7753)

    f6bes,carcan je vous remercie pour vos promptes reponses ,
    en attendant recevoir mon PIC18F2550 et gagné en temps , je me demandais si tu as l'equivalent du schéma pour arduino ou le processeur Atmel
    merci
    Borgfeld

Discussions similaires

  1. wattmètre
    Par invite6ceb58db dans le forum Électronique
    Réponses: 0
    Dernier message: 04/07/2009, 13h57
  2. Wattmètre
    Par invite3dc63a64 dans le forum Physique
    Réponses: 6
    Dernier message: 18/03/2009, 21h04
  3. Wattmetre à base d'aop et multiplieur
    Par alexdog dans le forum Électronique
    Réponses: 15
    Dernier message: 23/02/2006, 11h58
Découvrez nos comparatifs produits sur l'informatique et les technologies.