Académique Documents
Professionnel Documents
Culture Documents
Charge
INA219
USB
1. Câblage
La ligne SDA doit être connectée sur la pin A4 de la carte Arduino, la ligne SCL sur la
pin A5. Les masses doivent être reliées et Vcc connecté à 5V (carte Arduino), comme
indiqué sur le schéma ci-dessus.
Le courant mesuré rentre par la pin Vin+ du INA219 et le circuit de charge, une
résistance dans notre cas, est connecté entre la pin Vin- et la masse.
2. Configuration logicielle
1. Mesure du courant
2. Mesure de la puissance
1. Faire un nouveau vi qui donnera la valeur de la tension V bus (registre 2). Voir
détails sur le registre 2 page 7.
Attention : les 3 bits de poids faible ne font pas parti du résultat de la conversion
analogique numérique. Il faudra en tenir compte pour retrouver la valeur décimale
de la tension Vbus.
Dans la configuration par défaut, la tension pleine échelle de Vshunt est de ±320 mV,
ce qui n’est pas forcément adapté aux valeurs mesurées dans cette application. De
plus, les valeurs obtenues sont relativement bruitées : un moyennage permettra
d’obtenir des valeurs plus stables.
Bonus :
4. On pourrait aussi concevoir un vi qui permette de modifier les valeurs des bits
PG1 et PG0 du registre de configuration.
5. Faire un programme qui règle automatiquement le gain PGA en fonction de la
valeur du courant.
A0 A1 Adresse
0 0 64
0 1 65
1 0 68
1 1 69
Mesures effectuées :
Les registres :
Exemple :
De même la valeur de la tension de Vbus est stockée dans le registre 2, bus voltage
register. Quels que soient les paramètres utilisés dans le registre de configuration, le
LSB vaut 4mV.
Exemple :
Remarque importante : ici les 3 bits de poids faible ne font pas parti du résultat de la
conversion analogique numérique. Il faudra en tenir compte pour retrouver la valeur
décimale de la tension Vbus.
Programmation
Pour accéder à un registre particulier de l'INA219, il faut dans un premier temps écrire
l’adresse du registre visé. Ensuite le master peut lire ou écrire sur ce registre.
Exemple : Pour lire le registre 1 (Vshunt), le master doit d’abord écrire la valeur ‘1’ à
l’adresse du composant (64 par défaut) et ensuite lire 2 octets.
I2C vient de l’anglais Inter-Integrated Circuit. Ce protocole a été développé par Philips
pour les applications domotiques, à partir de 1982. Il est généralement utilisé pour
relier sur un même réseau de communication un microprocesseur et des composants
annexes.
Mise en œuvre
Le bus I2C est un bus série (1 seul fil de données), synchrone (l’horloge est transmise),
bidirectionnel et half-duplex (principe des talkies walkies), permettant de relier un
maitre (le microprocesseur en général) et un ou des esclaves. Seul le maitre peut initier
la communication, mais un composant peut devenir maitre et un maitre esclave. La
communication entre deux composants esclaves n’est pas possible.
Les deux lignes SDA et SCL sont tirées au potentiel V DD par des résistances de pull-
up Rp. Au repos, les lignes SDA et SCL sont donc au niveau haut.
(https://fr.wikipedia.org/wiki/I2C)
Le nombre maximal d’équipement connectés sur un même bus I2C n’est en théorie
limité que par le nombre d’adresse disponible : 128, les adresses des esclaves étant
codées sur 7 bits. Dans la pratique, un certain nombre d’adresses sont réservées ou
déjà attribuées par les fabricants. Aussi, un nombre important de composants
connectés sur le bus peut générer des problèmes de couplage capacitif et donc limiter
le débit du bus.
Niveaux électriques :
Il existe 5 vitesses de transmission. En mode standard (le plus lent) le débit est
inférieur à 100kbits/s, tandis que dans la version la plus rapide le débit peut atteindre
5 Mbits/s.
- Bit de Start : les lignes étant au repos, le composant qui veut transmettre des
données met la ligne SDA à 0 et commence à émettre le signal d’horloge.
- Les 8 bits de l’octet à transmettre sont émis sur la ligne SDA en modifiant la
valeur uniquement lorsque le signal SCL est à 0. Le bit de poids fort est placé
en premier. La valeur de chaque bit est lue par le récepteur lorsque l’horloge
est à 1.
- AKN : le 9ème bit sur la ligne SDA est un bit d’acquittement émis par le récepteur
si l’octet a bien été reçu.
- Bit de Stop : lorsque l’horloge est à 1, SDA passe de 0 à 1.
Protocole