CHOUR - Compteur Geiger Muller très faible consommation PC-GM8
Appareil : Compteur Geiger Muller/Geiger Muller counter
Date : 2017-2019
Type : PC-GM8
Marque : Chour
Principaux constituants : Tube SBM20 ou LND712, processeur Texas-Instrument famille MSP430FR4133, module haute tension IMEX, afficheur e-paper
Principale caractéristique : consommation moyenne de l'ordre de 60~80µA / Average power consumption arround 60~80µA.
Logiciel : page de téléchargement/Downloading page.
Fiche produit
PC-GM8 est un compteur Geiger-Muller proposant les fonctionnalités suivantes :
- Mesure de la radioactivité Beta, Gamma (tube SBM20) et en plus, Alpha si utilisation d'un tube LND712.
- Affichage permanent du taux de radioactivité en Comptage par Minute (CPM) sur un afficheur LCD.
- Affichage du maximum en CPM, de la moyenne sur 24h en CPM, des niveaux de batteries, du nombre de jours de fonctionnement depuis la dernière mise sous tension sur un afficheur e-paper.
- Signalisation de dépassement d'un seuil d'alerte paramétrable par LED et/ou Buzzer (les deux étant désactivables).
- Paramétrage du seuil d'alerte.
- Possibilité d'avoir un flash lumineux (par LED) ou un bip (par Buzzer) lorsqu'une particule est détectée.
- Fonctionnement sur batterie rechargeable (typ. 2400mA/h).
- Très faible consommation autorisant une autonomie de plusieurs années en fonctionnement permanent sans être rechargé (typ. 3 à 4 ans).
- Mémorisation des dernières moyennes des détections en CPM sur une heure. Typiquement, 500 heures de mesures peuvent être mémorisées.
- Possibilité de connecter le compteur en USB à un PC et d'utiliser le logiciel GeigerPC sous Windows. Le logiciel permet de paramétrer le compteur, de récupérer les données mémorisées, de récupérer le comptage par minute envoyé chaque minute par le compteur, de disposer de statistiques sur les mesures, etc. Le fait de connecter à une prise USB recharge la batterie.
La documentation technique du compteur et sa façon de le réaliser est fourni sur cette page. Le logiciel du compteur est disponible sur cette page. Le logiciel GeigerPC pour Windows est disponible sur cette page.
Cette réalisation fonctionne mais n'est pas très pratique à l'usage. Mieux vaut réaliser PC-GM9, plus simple et plus performant.
Introduction
Hormis le Gamma-Scout, la plupart des compteurs Geiger du marché (en 2013-2019), qu'ils soient vendus tout fait ou en kit, 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 générateur haute-tension est souvent mal conçu et énergivore. Pourtant, il existe des schémas sur le net proposant des générateurs annonçant des consommations de l'ordre de quelques µA. On trouve même des montages tout faits annonçant entre 0,5µA et 25µA.
- le microprocesseur n'est pas très performant du point de vue de gestion de la consommation. Mais là aussi, il existe des processeurs réputés dans ce domaine, en particulier, chez Texas Instrument.
- la façon dont est utilisé le microprocesseur n'est pas optimale. Une erreur courante semble-t-il consiste à déléguer la tâche de comptage à un logiciel qui
s'exécute sur le microprocesseur. Cela l'oblige, soit à être en fonctionnement permanent, soit à être en veille et à être réveillé à chaque fois qu'il y a une impulsion.
La solution la plus évidente pour éviter ce problème est d'utiliser un compteur du processeur (ce qui est le cas dans cette réalisation) et de relever ce compteur périodiquement (toute les secondes, toutes les 10 secondes...).
Toutes ces raisons et d'autres m'ont amené à réaliser une série de compteurs nommés PC-GM3 à PC-GM9 visant la basse consommation. Objectif atteint puisque la consommation moyenne de ces compteurs est de l'ordre de 20~30µA ce qui leur donne une autonomie appréciable avec une simple batterie LIPO (environ 10 ans pour 2400mA.h).
Présentation du compteur basse consommation PC-GM8
Comme ses prédécesseurs, PC-GM8 est un compteur Geiger-Müller utilisant un microprocesseur pour la gestion de l'affichage, des alarmes et la mémorisation des données.
Il est communicant en ce sens qu'il peut être connecté en USB à un ordinateurs sous Windows sur lesquel s'exécute le logiciel Geiger-PC téléchargeable sur ce site.
Par rapport aux versions précédentes, il présente les différences suivantes :
- Les compteurs PC-GM3 à PC-GM6 utilisaient une plate-forme de développement Olimex.Le montage présenté ici s'appuie sur une plate-forme de développement Texas-Instrument MSPEXP430FR4133. Cette plate-forme présente plusieurs caractéristiques intéressantes :
- Elle est moins coûteuse que la plate-forme Olimex.
- Elle dispose de son propre dispositif de programmation et de deboggage accessible en USB ce qui évite l'utilisation d'une sonde Jtag externe.
- Le processeur utilise une FeRAM à la place d'une flash. Cela simplifie le stockage et la mémorisation des données de comptage.
- Elle dispose d'un afficheur très basse consommation.
- Par contre, l'afficheur dispose de moins de segments que la plate-forme Olimex. Dans cette réalisation, on ne peut plus afficher simultanément le comptage instantané et le comptage moyen sur 24h00.
- La partie analogique a été repensée. Elle n'est pas forcément plus performante que les précédentes mais certaines fonctionnalités peuvent être pilotées par la carte processeur alors que sur les versions précédentes, elles n'existaient pas ou lorsque certaines existaient, elles étaient contrôlées par un interrupteur.
- Un circuit imprimé a été réalisé pour la partie analogique.
- Un afficheur de type e-paper vient compléter les informations affichées sans que cela influe trop sur la consommation. On trouve en particulier :
- Un indicateur d'alarme.
- Les comptages maximum, moyen et minimum sur 24 heures glissantes.
- Les niveaux de tensions du montage (batterie et processeur).
Le schéma de la partie analogique
Le circuit a été réalisé par pcbway sur la base des fichiers générés par Kicad.
la version 1 du circuit présentait deux défauts :
- Les PAD pour les TO92 étaient trop petits donc difficiles à souder.
- Le + du module IMEX était décallé de 5mm de trop.
Schéma de la partie détection, comptage, communication et alimentation (cliquer pour agrandir)
Dans cette version, la partie analogique du montage réalise 7 fonctions :
- L’alimentation du montage à partir d’une batterie LIPO.
- L’alimentation haute-tension du tube par le module IMEX. En 2019, c'est le module commercial de loin le plus performant que j'ai trouvé avec une consommation moyenne de l'ordre de 5~10µA. Bien sur, il y a aussi le schéma de P. Guivy tout aussi performant et sans doute plus sophistiqué il n'est pas disponible commercialement et il reste à la miniaturiser !
- La charge de la batterie lorsque le montage est connecté en USB via le chargeur LIPO.
- L'indication de connexion USB au processeur ce qui lui permet de changer de mode de fonctionnement.
- Les communications entre un ordinateur et le processeur MSP430 via le module FTDI232.
- La commande des alarmes (LED et/ou buzzer) et les tics (buzzer et/ou LED) lorsqu’une particule est détectée. L’activation de ces fonctionnalités est commandée par le processeur MSP430.
- L’envoi d’un signal au processeur MSP430 lorsqu’une particule est détectée.
- L'envoi de signaux provenant d'un contacteur rotatif avec poussoir. Le câblage de ce contacteur est facultatif.
Vous trouverez ci-dessous des photos des modules utilisés.
FTDI232 et chargeur LIPO (cliquer pour agrandir)
Module HT IMEX et sa documentation et afficheur e-paper 1,54 pouces
Alimentation basse et haute tension
Alimentation par batterie LIPO
La charge de cette batterie se fait en USB via le chargeur LIPO lorsque le module FTI232 est connecté.
L’alimentation basse tension (3V à 3.3V) est réalisée par un régulateur MCP1702 dont la consommation est très faible et la tension de seuil peu élevée. Un connecteur permet de relier cette tension à la carte processeur.
La batterie est protégée par un polyswitch.
Lorsque le montage est alimenté en USB, l’information « alimentation externe » peut être récupérée, via le signal « SLEEP » (état haut) généré par le module FTDI232. Cette information est utilisée par le processeur pour désactiver le mode « basse consommation » et permettre le dialogue avec un éventuel ordinateur connecté qui exécute le programme GeigerPC. Lorsque ces signaux sont à l’état bas, le processeur fonctionne en mode « basse consommation ».
Alimentation haute-tension
L’alimentation haute-tension est réalisée par un module IMEX dont la consommation est très faible (quelques µA). Il est directement alimenté par la batterie LIPO qui peut donc varier de 3.7V (batterie chargée) à près de 4.2V (batterie en charge).
Communications entre un ordinateur et le compteur
Le programme GeigerPC téléchargeable sur ce site permet de dialoguer avec le compteur (paramétrage, récupération du comptage…). Cette communication se fait en série sur USB via le module FTDI232.
Signal de détection d’une particule (DETECT1)
Ce signal véhicule une impulsion à l’état haut lorsqu’une particule est détectée. La durée de ce signal peut être réglée via R9/C5. En pratique, cette durée a peu d’influence sur le comptage et les valeurs par défaut du montage conviennent au moins pour les tubes SBM20 ou LND712.
On peut aussi utiliser DETECT2 (même signal mais avec une résistance en série de 15k. Non utilisé dans cette réalisation).
Le signal DETECT doit être connecté à un compteur du MSP430.
Alarmes et tics
Lorsqu’une particule est détectée, le compteur peut émettre un son et/ou allumer fugitivement une LED. L’activation de ces fonctions se fait par le processeur via les signaux EN_LED (Enable LED) et EN_BUZ (Enable buzzer). Ces fonctions sont actives lorsque les signaux sont à l’état haut.
Le processeur peut également générer une alarme via les signaux AL_LED (alarme visuelle par LED) et/ou AL_BUZ (alarme audible par buzzer).
L’activation de ces signaux est paramétrable par le programme du compteur.
Conseils de réalisation
Partie analogique
- Pour la présente réalisation, il est inutile de mettre R8 (DETECT2 non utilisé).
- Les résistances R1, R2, R6 (résistance de Pull up du contacteur rotatif) sont inutiles dans cette réalisation et n'ont pas à être câblées. On utilise à la place les résistances de Pull up du processeur.
- R3 est prévu pour les tubes LND712 qui doit être branché au pad J6. Si on utilise un SBM20, on se branche directement sur J4.
- La masse d'un LND712 peut être branchée sur J1. Pour un SBM20, on utilisera J2.
Avec la valeur de R5 (100k) et de C1 (47pF), la largeur de l'impulsion est de l'ordre de 150µS ce qui est parfait pour un tube SBM20. On notera toutefois que ce temps peut varier selon les composants utilisés (en particulier, j'ai eu des surprises selon le type de D2).
Gestion des alarmes et des "tics" de détection
Pour chaque impulsion détectée, il est possible d'allumer une LED et/ou de produire un son (buzzer). Il est également possible de créer une alarme visuelle (LED) ou sonore (buzzer) en cas de dépassement d'un certain seuil paramétrable. Les commandes AL_BUZ, AL_EN, AL_LED, EN_LED permettent de gérer ces différentes possibilités selon la table de vérité suivante :
Ai | Bi | Di | Commentaire |
A1=0 | B1=Kb | D1 = Kb | Câblé. B1 suit la valeur de Kb/G1. Sortie signal. |
A2=0=AL_BUZ | B2=0=EN_BUZ | D2 = 0 | Buzzer éteint (pas d'alarme ou d'information sonore). |
A2=1=AL_BUZ | B2=1=EN_BUZ | D2 = 1 | Buzzer sonne. Utilisé pour générer une alarme sonore. |
A2=0=AL_BUZ | B2=1=EN_BUZ | D2 = Kb/G1 | Buzzer actif. Un signal sonore est produit en cas de détection d'une particule. |
A3=0=AL_LED | B3=0=EN_LED | D3 = 0 | LED éteinte (pas d'alarme ou d'information visuelle). |
A3=1=AL_LED | B3=1=EN_LED | D3 = 1 | LED allumée. Utilisé pour générer une alarme visuelle. |
A3=0=AL_LED | B3=1=EN_LED | D3 = Kb/G1 | LED active. Une impulsion lumineuse est produite en cas de détection d'une particule. |
Avec les valeurs de R11 et C6 (10Mohms et 1nF), la durée de l'impulsion pour le buzzer est de 5mS ce qui est suffisant pour l'entendre correctement. On peut augmenter cette durée en augmentant C6.
Avec les valeurs de R13 et C7 (10Mohms et 10nF), la durée de l'impulsion pour la diode est de 50mS ce qui est suffisant pour qu'elle soit bien visible. On peut diminuer ce temps en diminuant C7.
AL_BUZ, AL_EN, AL_LED, EN_LED sont prévus pour être gérés par le processeur. Toutefois, dans ma réalisation, comme je craignais de ne pas avoir assez de GPIO, AL_BUZ et AL_LED sont commandés par des interrupteurs (voir schéma de câblage plus loin).
Sans Buzzer ni LED, la consommation moyenne du montage est de l'ordre de 10µA une fois stabilisé le générateur HT.
Intérieur du compteur, partie analogique.
Contrôle de la tension d'alimentation
J'avais oublié d'intégrer un contrôle de la tension d'alimentation sur le circuit imprimé. Du coup, j'ai réalisé ce petit montage complémentaire.
Le module chargeur (connecteur J11) est branché en "J11+ +" (positif de l'alimentation) et "J11- -" (masse de l'alimentation). La batterie elle même est connecté sur JBat.
"BatEn" est connecté au GPIO P2.6 du processeur. Lorsqu'il est actif, il permet la mesure. Lorsqu'il est inactif, le transistor est bloqué et aucun courant ne circule dans le circuit de mesure.
La sortie "BatVolt" est connectée au convertisseur analogique P1.3 du processeur.
Pour le réglage, déconnectez la batterie. Alimentez "J11+" et "J11" en 5.1V et "BatEn" en 3.3V. Ajustez le potentiomètre pour obtenir 1,45V en "BatVolt".
Mesure tension batterie
Partie processeur et afficheur
Préparation de la carte processeur
L'afficheur de la plate-forme de développement est placé au ras du circuit-imprimé. Les barrettes de connexions sont beaucoup plus hautes que cet afficheur. Résultat, si vous souhaitez mettre ce compteur dans un boitier, l'afficheur sera difficilement visible car très en retrait de la façade. Il faut donc retirer ces barrettes ce qui n'est pas une partie de plaisir ! Idem pour les poussoirs (sauf le Reset) et de manière générale, tout ce qui dépasse de l'afficheur.
Pour la liaison entre la partie processeur et la partie programmation de la carte, je n'ai laissé que SBWTDIO, SBWTCK et 3V3. Ils doivent être connectés lorsque l'on programme la carte. Et dans ce cas, l'alimentation du processeur doit être déconnectée de la carte analogique afin d'éviter un conflit dans les alimentations.
En fonctionnement normal, l'alimentation du processeur est fournie par la carte analogique (et sa batterie) et les signaux SBWTDIO, SBWTCK et 3V3 doivent être déconnectés.
Afficheur e-paper
Il fonctionne en SPI-4 (défaut).
Les alimentations sont connectées sur la carte processeur (GND et 3V3). Le signal CS (Chip Select) est relié à P5.3. MOSI est connecté à P5.2, CLK à P5.1, RST à P1.4 et Busy à P1.5 (Note : j'ai essayé de mettre CS à GND (module toujours sélectionné) mais ça ne fonctionne pas).
Câblage final
Vue des périphériques (carte analogique, FDTI232, afficheur e-paper)
Périphérique | Processeur | Périphérique | Processeur |
Rx (FTDI232) | P1.0 Tx | Tx (FTDI32) | P1.1 Rx |
Sleep (FTDI232) | P8.1 | DETECT1 | P8.2 (Timer 1) |
AL_LED | P8.0 | AL_BUZ | P1.6 |
S3 (switch momentané) | P1.7 | S1 (A du switch) | P2.7 |
S2 (B du switch) | P2.5 | BatEn | P8.3 |
BatVolt | P1.3 | MOSI (e-paper) | P5.2 |
CLK (e-paper) | P5.1 | CS (e-paper) | P5.3 |
D/C (e-paper) | P5.0 | RST (e-paper) | P1.4 |
BUSY (e-paper) | P1.5 |
Vue du processeur
Processeur | Périphérique | Processeur | Périphérique |
P1.0 Tx | Rx (FTDI232) | P1.1 Rx | Tx (FTDI32) |
P1.2 | P1.3 | BatVolt | |
P1.4 | RST (e-paper) | P1.5 | BUSY (e-paper) |
P1.6 | AL_BUZ | P1.7 | S3 (switch momentané) |
P2.5 | S2 (B du switch) | P2.6 | |
P2.7 | S1 (A du switch) | P5.0 | DC (e-paper) |
P5.1 (SCLK) | CLK (e-paper) | P5.2 | MOSI (e-paper) |
P5.3 | CS (e-paper) | P8.0 | AL_LED |
P8.1 | Sleep (FTDI232) | P8.2 | DETECT1 |
P8.3 | BatEn |
Câblage pour carte analogique vers processeur
Boîtier
Le boitier avec sa découpe pour les écrans et les interrupteurs pour les alarmes.
Boitier en cours de réalisation