• version 0.0 ...08/04/2019
    rev 25/08/2019.


    PIC 18F46K22 , Mesure de Courant DC
    Module INA219 sur coté "High Side"


    usage d'un PIC18F46K22 40 pins et du Pickit3 Microchip pour charger l'executable
    *un PIC12F1840 DIP 8 serait suffisant ...
    Environnemen t: Mikro C V 7.30

    Testé avec oscillateur interne Fosc=32Mhz

    datasheet IN219

    @device=0x40 (7 bits) ou 0x80 avec bit R/W module en kit : 2.38€



    Schema de test :

    images/t_INA219_schema_Test.gif

    Pour ce test, j'utilise le pickit3 pour alimenter le PIC18F et le module INA219 via le VDD du PIC
    'solution de facilité!) car la consommation reste faible, d'autant que j'alimente en 3,6V au lieu de 5V.
    *Attention: ne pas mettre de gros condo (100µF) entre VCC et GND => perturbe ou risque de cramer le pickit3.
    je montre un mauvais exemple, il vaut mieux alimenter le montage via une tension externe au pcikit3

    L'INA219 fonctionne de 3,3V à 5V
    Liaison I2C PIC Hardware I2C1 bus ( RC3=SCL RC4=SDA) <-----> pins correspondantes INA219
    Des pull up (2,7K) doivent exister sur ce bus I2C ( pour moi elles sont déja installées sur le LCD2119).
    LCD 2119 2 x 16 cars sur bus I2C1
    3,6V est le minima de tension pour ce LCD2119 I2C, en dessous il ne fonctionne plus !

    L'UART1 Hardware est aussi utilisé pour tracer/enregistrer les resultats de mesures
    Un cordon Prolific TTL/USB relie le PIC à un terminal PC (Teraterm.exe)

    J'utilise une alimentation 230V / 12V DC 1,5A pour faire les tests , avec une Resistance RTest connue pour
    debiter un courant ,qui passe donc dans le shunt 0,1ohm du INA219,
    coté "High Side" : donc coté point chaud (+12V) et non coté massse GND
    Ce module assume AUSSi la mesure de Tension ( vu que le shunt est connect é au +Alim (12)
    et l'ampli interne de l' INA219 a son autre entrée commutable au 0V GND.

    images/t_INA219_principe_de_mesure.gif

    je me suis inspiré d'un programme mis sur MikroC
    mais ne fonctionnant pas, trop d'erreur de programmation ..je l'ai donc repris en main
    Datasheet en main : Docu TI : SBOS448G –AUGUST 2008–REVISED DECEMBER 2015

    Calibration 16V 400mA

    je me suis servi d'excel pour reclaculer cette calibration , en suivant la datasheet page 12
    et parrallelement du logiciel T.I. INA219EW.exe , bien que n'ayant pas le module idoine qui va avec ..

    images/t_INA_excel_EW_calibration.gif
    je trouve un coefficient proche de celui calculé par le logiciel INA219EW 4179 pour 4266
    mais dans les faits, je suis obligé de mettre un coeff de calibration 10 fois plus petit ??
    Dans la datasheet on peut lire :
    Shunt voltage is calculated by multiplying the Shunt Voltage Register contents
    with the Shunt Voltage LSB of 10 µV.

    serait-ce là l'explication ?


    Analyse TRAME
    J'ai aussi utilisé mon ANALYSER LOGIQUE IKALOGIC SQ50
    pour analyser la trame d'initialisation du module INA219
    I2C1_Hardw_18F46K22_INA_Sensor_190404.scana
    un double trigger est utilisé pour capturer EXACTEMENT la sequence d'init , via RA3 et RA4 sortie s PIC
    quand RA3 =1 puis au front montant RA4



    images/t_SQA_Analyse_I2C_init_INA219_18F46K22_190405.gif



    Les TESTS REELS :

    Mon multimetre FI 515X monté en ampèremetre, en serie donc avec une Resistance pour assumer
    une valeur connue , et le terminal qui donne les valeurs à chaque seconde...
    Alim externe 12V pour alimente rla boucle de mesure.


    Nota:
    en mettant le gain à 2 ..la gamme passe à 800mA .. sans retoucher à la calibration
    avec ma batterie 12V 7AH ; avec un courant maxi de 7AH/10 => 0,7A .. cette gamme de mesure sera suffisante

    Calibr. : 800mA et VBUS 16V

    ; Raw Curr= 0 soit 0.000 Amps mVshunt= 1 µV mVBus 3001 VBus= 12.00 V Temp=18.93 °C
    ; Raw Curr= 0 soit 0.000 Amps mVshunt= 0 µV mVBus 3000 VBus= 12.00 V Temp=18.93 °C
    R=100 ohms
    ; Raw Curr= 117 soit 0.117 Amps mVshunt= 1168 µV mVBus 2913 VBus= 11.65 V Temp=18.93 °C
    ; Raw Curr= 117 soit 0.117 Amps mVshunt= 1168 µV mVBus 2912 VBus= 11.65 V Temp=18.93 °C

    R=15 ohms
    ; Raw Curr= 656 soit 0.656 Amps mVshunt= 6557 µV mVBus 2668 VBus= 10.67 V Temp=18.93 °C
    ; Raw Curr= 656 soit 0.656 Amps mVshunt= 6552 µV mVBus 2665 VBus= 10.66 V Temp=18.93 °C



    SOFTWARE :

    projet mikroC : _INA219_test_190406.zip
    exec :
    18F46K22_Uart1_LCD_I2C_INA219_Tests.hex
    main source :
    _18F46K22_Test_UART1_LCD2119_INA219_DS18B20_190406.c

    1ere conclusion:
    Tres grande resolution et bonne repetabilité de mesure
    Remplacera avantageusement le AC712 que j'avais prevu pour mon arrosage autonome SOLAIRE .










    paulfjujo@free.fr


    Retour à l'index general