Nouveau projet: Traçer la consommation d'un module IoT.

Je commence sérieusement à penser à un nouveau projet:
Traçer la consommation d'un module IoT.

Ça a l'air trivial, mais ca ne l'est pas.
Un module IoT peut rester longtemps en veille et consommer moins d'un mA. Il faut pouvoir en mesurer la consommation avec une résolution d'une dizaine de μA.
Puis le module passe en émission et bouffe environ 150mA pendant une ou deux secondes.

Celà fait une dynamique de 1 pour 1 million qui excède largement les possibilités des interfaces connues.

Je voudrais etre en mesure de faire une intégration de la consommation sur le moyen terme et aussi de tracer graphiquement la consommation lors des pointes. Faire les rapports actif/veille et leur importance relative...

J'ai deux approches:
a) faire une mesure logarithmique du courant consommé avec un ampli logarithmique du genre AD8307
b) faire une double mesure linéaire avec deux INA226, l'un pour la veille, l'autre en émission.

Qu'en pensez-vous?

Salut

Dans ma société nous effectuons des mesures de consommation avec des INA138, avec plusieurs shunts en série :
0.02 ohm
0.5 ohm
25 Ohm

Le courant peut excéder plusieurs ampères et descendre en dessous de 100µA.

Les shunts 0.5 et 25 ohms sont court-circuités par des MOSFET SUD50P04, ayant un RDSon de 0.014 ohm.

Les shunts 0.5 et 25 ohms sont court-circuités par défaut, c'est à dire que seul le 0.02 ohm est utilisé.
A chaque fois que l'on veut réaliser une mesure, celle-ci est donc faite sur le 0.02 ohm et le logiciel décide de commuter un shunt plus sensible en fonction de cette mesure. Ensuite, une fois la mesure terminée, on revient sur le shunt 0.02 ohm.

Cela tourne sur un MSP230F249, un tout petit machin tournant à 14 MHz.

Cela me paraît largement faisable avec un ARDUINO.

Un bout schéma :

@+

hbachetti:
Dans ma société nous effectuons des mesures de consommation avec des INA138, avec plusieurs shunts en série : 0.02, 0.5, 25 Ω...

C'est encourageant. Je pensais à deux shunts en série, celui d'origine de 10mΩ et un autre de 1Ω (bypassé par une paire de grosses diodes Schottky).

Le INA226 n'a pas de problème avec les entrées shunt surchargées, tant que la tension reste dans les rails.

Je voudrais faire le soft avec un ESP32+OLED de 128*64.

Diodes Schottky, non. Trop intrusif. Un bon P MOSFET de préférence.

@+

hbachetti:
Diodes Schottky, non. Trop intrusif. Un bon P MOSFET de préférence.

@+

Ouais, mais les shunts seraient en "high side" et piloter des MOSFET dans un domaine de tension hautement variable serait difficile.

Je pense pouvoir accepter 0,3V de ΔT en alimentation sur le shunt de 1Ω.

RIN67630:
Je commence sérieusement à penser à un nouveau projet:
Traçer la consommation d'un module IoT.

Ça a l'air trivial, mais ca ne l'est pas.
Un module IoT peut rester longtemps en veille et consommer moins d'un mA. Il faut pouvoir en mesurer la consommation avec une résolution d'une dizaine de μA.
Puis le module passe en émission et bouffe environ 150mA pendant une ou deux secondes.

Celà fait une dynamique de 1 pour 1 million qui excède largement les possibilités des interfaces connues.

Je voudrais etre en mesure de faire une intégration de la consommation sur le moyen terme et aussi de tracer graphiquement la consommation lors des pointes. Faire les rapports actif/veille et leur importance relative...

J'ai deux approches:
a) faire une mesure logarithmique du courant consommé avec un ampli logarithmique du genre AD8307
b) faire une double mesure linéaire avec deux INA226, l'un pour la veille, l'autre en émission.

Qu'en pensez-vous?

Bonjour
j'etais tombé sur çà , il y a qq temps : utilisation d'un HX711 en µamperemetre.
Je m'etais promis de faire un essai , mais je n'ai pas eu (encore) le temps
Peut etre une base à creuser ?

Avec une Schottky il va être difficile de descendre en dessous de 200mV de chute de tension.

@+

hbachetti:
Avec une Schottky il va être difficile de descendre en dessous de 200mV de chute de tension.

Je compte même 300mV. Ce que arrivera avec un courant > 300mA sur 1Ω.
Ca me parait acceptable. De toute facon, au delà de 50mA, je mesurerais avec l'autre shunt de 10mΩ.

Bonjour

A signaler la technique 'Energiy Trace' de T.I destinée à cette utlisation (doute sur le courant maximal gérable, trop en tout les cas pour un réveil d'ESP8266 !!)

Fonctionne en monitorant la 'densité' d'impulsions d'un régulateur 3V3 spécifique implanté sur nombre de cartes Launchpad TI (dont certaines coutant environ 10$). mesure sans shunt , par comptage 'goutte à goutte' des Coulombs envoyés !!

Le logiciel de gestion d'Energy Trace est associé à l'outil de développement CCS maintenant gratuit.
Offre des grphes de courant, d'énergie et possibilité de simuler des sources courantes telles que CR2032 est estimer la durée de fonctionnement......

IL est tout à fait possible d'utiliser cette fonctionnalité pour alimenter et surveiller une application externe et non le µC du Launchpad.

Sur cette page la présence et le niveau d'implantation de cette fonctionnalité sur divers Launchpads

pdf içi

al1fch:
Fonctionne en monitorant la ‘densité’ d’impulsions d’un régulateur 3V3 spécifique implanté sur nombre de cartes Launchpad TI (dont certaines coutant environ 10$). mesure sans shunt, par comptage ‘goutte à goutte’ des Coulombs envoyés !

Interessant à lire, mais j’ai un gros doute que cette methode permette de mesurer les écarts en cause pour un ESP32 par ex.
C’est pas avec ca q’on arrivera a une dynamique de 1 pour 10E6.

De toutes façon la valeur maximale du courant (que je vais retrouver) que peut délivrer ce régulateur spécial excède les besoins d'un ESP8266 ou ESP32 WiFi activé , voire peut être même pour un ESP32 en BT

je situe (de mémoire) la plage à 1µA - 100mA

côté veille profonde les 5µA (vérifiés de mon côté pour un WROOM32 alimenté en 3,2V par LifePO4, sans régulateur ni interface USB) pas de pb..... dans mes applications ESP l'USB est la plupart du temps amovible et réservé à la programmation....

al1fch:
je situe (de mémoire) la plage à 1µA - 100mA

Ca fait une dynamique de 1 à 10E5.

Oui, mais il faut considérer l'ensemble.
De plus, aux alentours de quelques 10μA il faut encore avoir quelques bits significatifs...
La dynamique de 1 à 10E6 n'est pas exagérée.

RIN67630:
Ouais, mais les shunts seraient en "high side" et piloter des MOSFET dans un domaine de tension hautement variable serait difficile.

J'ai réflechi. Je peux placer le shunt sensible en low side.

Il y a peut-être une incompréhension de mon schéma du post #1.
Les shunts sont placés en high-side, malgré qu'ils soient situés en bas du schéma. Avec des MOSFET canal P.

L'INA226 sachant faire les deux, rien n'empêche de placer les shunts où l'on veut, avec des canal P ou N suivant le cas.

@+

hbachetti:
Il y a peut-être une incompréhension de mon schéma du post #1.
Les shunts sont placés en high-side, malgré qu’ils soient situés en bas du schéma. Avec des MOSFET canal P.

L’INA226 sachant faire les deux, rien n’empêche de placer les shunts où l’on veut, avec des canal P ou N suivant le cas.

@+

Le shunt sensible sera placé en low side (j’ai des doutes que le courant de la porte FET ne soit pas négligeable lorsqu’on mesure des courants très faibles).
Le(s) shunts pour courants + importants seront en high-side, celà a l’avantage qu’on peut mesurer la tension aussi.

j'ai des doutes que le courant de la porte FET ne soit pas négligeable lorsqu'on mesure des courants très faibles

D'après la datasheet du SUD50P04 :
Gate-Source Leakage : +- 100nA.

@+

RIN67630, j’espère que tu es toujours à l’écoute de ce topic.

Le shunt sensible sera placé en low side (j’ai des doutes que le courant de la porte FET ne soit pas négligeable lorsqu’on mesure des courants très faibles).

J’ai aussi un projet de banc de mesure de consommation. Tous les composants sont là.
Mon but est un banc pouvant descendre à quelques µA et monter jusqu’à environ 100mA, pas plus.

Je viens de faire un essai avec deux INA226.

  • un shunt 0.1 Ω
  • un shunt 10 Ω
    Les deux shunts sont en série et en high-side.

La source d’énergie est une batterie 18650 chargée à bloc : 4.2V

Quand le courant est > 50mA je court-circuite le shunt de 10 ohms avec un P-MOSFET, un AOI403.
Ce MOSFET a un RDSon < 10 mΩ

La chute de tension est de 37 mV pour un courant de 47mA.
La chute de tension est de 68 mV pour un courant de 96mA.

J’ai essayé avec une diode 1N5819 à la place du MOSFET :
La chute de tension est de 260 mV pour un courant de 44mA.
La chute de tension est de 300 mV pour un courant de 90mA.

Un essai en courant faible donne le résultat suivant :

La charge est une résistance de 512K
Le calcul donne 8.2 µA.

Diode schottky :
Courant mesuré : 15.5 µA

MOSFET :
Courant mesuré : 15.5 µA

A vide j’obtiens 7.5µA. Il y a une fuite quelque-part, ce qui explique les 15.5µA.

Je dirais : MOSFET ou SCHOTKY en courant faible = kif kif

L’intérêt du MOSFET réside dans le fait de ne pas perdre 300mV sur la mesure des courants élevés.
Comme je fonctionne souvent en 3.3V, cela m’arrange.

Il y a un inconvénient : je suis obligé d’attendre 2ms après la commutation que le bazar se stabilise. Pas très rapide.

Si quelqu’un a une idée :slight_smile:

Le système enverra ses données au PC via la liaison USB, dans le but de faire un relevé sur une période choisie.
Il y aura aussi un petit afficheur SSD1306, pour un fonctionnement plus autonome.

@+

hbachetti:
RIN67630, j'espère que tu es toujours à l'écoute de ce topic.

Oui, passionément!
Je suis en attente de recevoir les modules INA226 et des MOS-FET que j'ai commandés.

Pour ma part il s'agira en premier lieu de faire un banc de mesure et d'acquisition de données, donc je peux provisoirement accepter de "perdre" 300mV. Mais en final je mettrai des MOS-FET.

Pour ce qui es de l'affichage local, j'ai fait un autre projet avec un ESP32+OLED 128*64, incluant un traceur de courbe: Projet traceur de courbe OLED je pense pouvoir en recycler pas mal de code.

En fait je veux pouvoir faire surtout des statistiques:

  • Courant min/max/moyen au repos,
  • Courant RMS en activité,
  • temps d'activité / inactivité,
  • mAh consommés et
  • courbes de consommation en activité seulement.

Je peux afficher tout ca sur mon OLED intégré (+2mA) et tourner sur accus.
Je veux éviter l'USB pour garder l'autonomie et l'isolation galvanique.
Plus tard j'y incluerai un serveur FTP pour telecharger les données.

P.S. avec une charge de type IoT on peut prédire la période d'activité et commuter avant.
De toute façon la mesure du courant en sleep n'a pas besoin d'être rapide.
Tu n'a pas forcément interêt à choisir un MOSFET avec un trop faible RDSon. De toute facon lorsqu'il commute, il ne fait pas partie du shunt actif.
Si tu choisis un MOSFET plus modeste, avec par ex. une résistance "on" de ~0,1Ω il n'introduira q'une chute de tension supplémentaire de 10mV pour 100mA.
Par contre, il commutera beaucoup plus vite et aura moins d'effet sur la mesure en μA.

De toute façon la mesure du courant en sleep n’a pas besoin d’être rapide.

Si : imagine un capteur sur batterie qui transmet ses informations par radio, NRF24L01 par exemple.
Il consomme 5µA en veille et au moment du transfert, 20mA.
Il faut pouvoir capter cet instant rapidement pour pouvoir faire une moyenne correcte.

PS :
Une connerie dans mon schéma.
Sous 3.7V ça marchait bien, sous 8.4V beaucoup moins bien.

Je pilotais la gate MOSFET directement par une sortie de l’ARDUINO.
Ajouté un petit 2N3904, c’est mieux.

OUPS …

@+

Un premier schéma ?

Toujours cette mesure de 7.5 µA à vide ...

Toute remarque est bienvenue.

@+