prec home dir suiv

CHOUR - Compteur Geiger Muller très faible consommation PC-GM3

img

Appareil : Compteur Geiger Muller/Geiger Muller counter
Date : 2013-2015
Type : PC-GM3
Marque : Chour
Principaux constituants : Tube SBM20, processeur Texas-Instrument famille MSP430, module haute tension IMEX, RTC PCF8583 de NXP...
Principale caractéristique : consommation moyenne de l'ordre de 20µA / Average power consumption around 20µA.
Logiciel : page de téléchargement/Downloading page.

English version : img

Introduction

Hormis le Gamma-Scout, la plupart des compteurs Geiger du marché (en 2013) ont une autonomie limitée, du moins pour ceux qui utilisent un microprocesseur pour gérer le traitement des données. Les raisons sont multiples :

Le compteur à base d'Arduino que vous pouvez trouver sur ce site cumule ces différents inconvénients. En particulier, le générateur haute-tension consomme énormément ce qui fait que l'ensemble consomme environ 40mA malgré l'utilisation des modes de veille du processeur (et la suppression de toutes les LED).

Présentation du compteur basse consommation

Le montage présenté ici visait une consommation de l'ordre de 100µA en régime normal. A noter que le Gamma-Scout a probablement une consommation de l'ordre de 25µA soit quatre fois moins ce qui lui permet d'avoir une autonomie vérifiée de 10 ans avec une pile Lithium de 2400mA.h. Ceci-dit, pour 100µA, on peut viser une autonomie de 2,5 ans ce qui n'est déjà pas mal. Mesurées avec un galvanomètre, les valeurs de courant lues sont les suivantes :

Mais en pratique, ce type de mesure est trop imprécis. Sur PC-GM6, qui est un compteur plus énergivore, j'ai réalisé la mesure de la consommation moyenne avec un oscillscope numérique. Le résultat est de l'ordre de 30µA. Au galvanomètre, la valeur lue était de l'ordre de 100µA.

Je n'ai pas fait cette mesure sur PC-GM3 mais si j'applique le ratio entre mesure sur galvanomètre / mesure à l'oscilloscope, PC-GM3 doit consommer environ 20µA en moyenne.

Avec une batterie de 2400 mA.h, cette consommation permet de viser une autonomie de plus de 10 ans sans rechargement, non compris l'éventuel courant de décharge de la batterie. Pour atteindre ces performances, j'ai utilisé les éléments suivants :

Mais l'astuce consiste à utiliser un compteur spécifique pour le comptage des impulsions. Or, les circuits RTC (Real Time Clock) sont réputés pour leur très faible consommation. Le circuit PCF 8583 de NXP présente en plus l’avantage de pouvoir être utilisé en compteur d'événements avec un diviseur égal à 1. En régime normal, la consommation du circuit est de l'ordre de 3µA.

Ce compteur mémorise donc le nombre d'impulsions dans un certain intervalle de temps. Toutes les secondes, le processeur qui est normalement en veille (mode 3) se réveille, fait quelques vérifications (gestion du clavier, connexion USB...) et repasse en veille. Toutes les 10 secondes, le processeur lit le PCF8583, fait ses traitements statistiques, vérifie les conditions d'alarme et s'il n'y a pas d'alarme, repasse en veille. En cas d'alarme, la périodicité de relève du PCF8583 passe à une seconde.

Ce compteur comporte également :

img  img
FTDI232 et chargeur LIPO (cliquer pour agrandir)

Un petit point sur l'alimentation : le processeur fonctionne en 3,6V max. Plus la tension est faible, moins il consomme. Le générateur HT fonctionne de 2,5V à 5V. La batterie LIPO fournit 3,7V. En charge, la tension peut monter jusqu'à 4,2V. Pour abaisser la tension pour le processeur, j'ai d'abord utilisé 2 diodes silicium en série puis finalement, je me suis décidé pour un régulateur MCP1702 dont la consommation au repos est à peine mesurable (2µA d'après la documentation).

Pour en savoir plus sur les fonctionnalités prévues, jetez un oeil sur les spécifications fonctionnelles

Le schéma de la partie analogique

img
Schéma de la partie détection, comptage, communication et alimentation (cliquer pour agrandir)

La sortie du générateur haute tension est raccordé au plus du tube Geiger-Muller. Le moins du tube est relié à la masse via R2, R3 eet C1. Lorsque le tube détecte une particule, il se décharge dans ce réseau ce qui créé une impulsion positive sur la base du transistor Q1 (2N3904) qui devient alors passant.

Sur le collecteur de Q1, le potentiel positif via R4 tombe alors à 0V puis revient au potentiel positif lorsque l'impulsion a disparue.

L'impulsion est détectée par le monostable 555 qui la transforme en une impulsion d'une durée définie par C4-R9 (100ms). La résistance R10 permet de diminuer cette durée lorsqu'elle est connectée et donc, dans une certaines mesure, le volume du bip. Une variante serait de remplacer R9 par une résistance de 100kohms et de mettre en série un ajustable de l'ordre de 250kohms ou plus.

Le bip lui même est généré par un buzzer 1kHz (SP) alimenté en continu sous 3V.

Le 555 peut être déconnecté via un interrupteur. Cela permet à la fois d'éviter le bruit des tic et de limiter la consommation de courant.

L'impulsion est également envoyée via C2 au compteur d'événement PCF8583. Ce compteur est lu régulièrement (toutes les 10secondes en régime normal, toutes les secondes lorsqu'il y a une alarme ou lorsque le compteur est relié à une alimentation extérieure) via un bus I2C par le programme qui s'exécute sur le processeur. La ligne SDA du PCF8583 est raccordé au port P2.1 du processeur. La ligne SCL est racccordé au port P2.0.

Vext est raccordé au port P2.2 du processeur. Il permet de déterminer si une alimentation externe est connectée ou non. R5 et R6 forment un pont diviseur permettant de ramener le 5V à environ 3V. La diode Zener D1 permet de limiter la tension à 3,3V au cas où l'alimentation externe déliverait plus de 5V.
Attention : j'ai eu la mauvaise surprise de constater que les signaux RX et TX du processeur suffisaient pour alimenter le module de conversion RS232. Le résultat est que l'on trouve du 3,3V sur Vcc alors que l'USB a été retiré. Si vous utilisez un circuit comme le FT232R, il existe une pin nommée Sleep (Cbus4) qui signale la présence d'une tension sur l'USB. Utilisez plutôt cette sortie pour signaler la présence ou non d'une alimentation externe.

Tx et RX du module USB sont raccordés à UTXD0 et URXD0 (P2.5 et P2.4) du processeur et servent aux communications entre le compteur et un PC. Ne pas oublier de configurer le module USB pour que RX et TX fonctionnent en 3,3V et pas 5V. Dans ma version, le signal Sleep est connecté à l'entrée Vext.

img
Schéma de la partie détection, comptage, communication et alimentation (cliquer pour agrandir)

Je considère que le module Olimex MSP430f449STK2 a un bug de conception qui ne permet pas, en pratique, d'utiliser le bargraph. En effet, les pattes de l'afficheur qui correspondent aux segments du bargraph sont reliées entre elles ce qui fait que lorsqu'on programme l'allumage d'un segment du bargraph, on en allume obligatoirement 3. Il est possible de corriger ce bug de la façon suivante :

En faisant cela, vous supprimez l'affichage des symboles "µmHF" et des flèches qui ne sont pas vraiment utiles pour le compteur. Par contre, vous disposez d'un bargraph qui permet de visualiser le taux de comptage, à la manière d'un galvanomètre analogique.

Le programme du compteur propose donc deux versions. Une ou le bargraph est utilisé comme un simple indicateur d'alerte (PCB non modifié) et ou les flèches clignotent au rythme du réveil du processeur, l'autre ou le bargraph est utilisé comme indicateur de taux de comptage. Les flèches ne sont plus utilisées.

Les indications sur cette modifications sont présentées ci-après.

img
Schéma de la partie détection, comptage, communication et alimentation modifiée (cliquer pour agrandir)

Conseils de réalisation

img
Intérieur du compteur.

Rien de particulier à dire sur la partie analogique. Cependant, faites attention à ne pas utiliser de fils insuffisamment isolés pour raccorder la haute tension au tube. Comme les fils utilisés en électronique sont rarement isolés à 400~500V, faites en sorte qu'ils ne soient pas trop proches l'un de l'autre ni qu'ils passent trop près d'autres conducteurs.

Faites en sorte que la batterie soit déconnectable. Lors des tests, cela permet de faire fonctionner les platines numérique (processeur) et analogique (comptage) indépendamment et de limiter le risque d'une erreur de manipulation qui mettrait la batterie en danger.

Pour la platine Olimex, il faut dessouder le connecteur 9 broches pour gagner en hauteur. Il faut aussi dessouder le connecteur d'alimentation et souder un fil d'alimentation avec un connecteur volant que l'on reliera à la platine d'alimentation du compteur.

Si vous souhaitez modifier la platine Olimex pour permettre l'utilisation du bargraph, voici comment je vous suggère de procéder :

Indépendamment des connexions d'alimentation, mettez en place une masse fixe qui relie l'ensemble des éléments. Ainsi, pour les tests, vous pouvez utiliser l'alimentation du compteur pour la partie analogique et l'alimentation de la prise JTAG pour le processeur.

Le chargeur LIPO utilisé à une résistance de consigne qui fixe la charge à 1A ce qui est beaucoup trop. Mettez une résistance de l'ordre de 4,7K.

A un moment, j'ai mis une capacité de 100µF en entrée de l'alimentation de la partie analogique. Mauvaise surprise : cette capacité provenant d'un vieux stock personnel avait un courant de fuite de plus de 10µA ce qui représente 10% de la consommation visée initialement. J'ai changé cette capacité par la suite mais en pratique, elle n'est pas utile. A la rigueur, mettez une capacité de 1µF polyester, c'est bien suffisant. Ce condensateur n'est pas représenté sur le schéma.

Logiciel

La partie le plus délicate a été la gestion du bus I2C permettant de lire le PCF8583. En effet, la spécification du MSP430f449 annonce la disponibilité d'une gestion du bus I2C mais... Bref, j'ai préféré refaire cette gestion "à la main" via deux ports GPIO : un pour l'horloge (P2.0) et l'autre pour les données (P2.1). Le programme assembleur qui réalise la fonction d'initialisation et la lecture du compteur est disponible sur la page de téléchargement.

La trace ci-dessous permet d'avoir un aperçu des chronogrammes d'une communication I2C avec le PCF8583. Il s'agit de la sélection du compteur et de son initialisation.

img

Le programme est développé en utilisant IAR workbench. Il est nécessaire de disposer d'une sonde JTAG pour charger le programme dans la carte de développement Olimex. Vous pouvez télécharger le logiciel sur la page de téléchargement.

img

2013-1015

sommaire