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 :
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.
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 2008REVISED 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 ..
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
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 .