CHOUR - Compteur Geiger Muller faible consommation PC-GM9
Appareil : Compteur Geiger Muller/Geiger Muller counter
Date : 2019
Type : PC-GM9
Marque : Chour
Principaux constituants : Tube SBM20, J305 ou LND712, processeur Texas-Instrument famille MSP430FR6989, module haute tension IMEX, afficheur e-paper
Principale caractéristique : consommation moyenne de l'ordre de 150µA / Average power consumption arround 150µA.
Logiciel : page de téléchargement/Downloading page.
Fiche produit
PC-GM9 est un compteur Geiger-Muller qui est une variante de PC-GM8. Il propose les fonctionnalités suivantes :
- Mesure de la radioactivité Beta, Gamma (tube SBM20 ou J305) 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.
- Signalisation de dépasement 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 (dans mon cas, 2400mA/h).
- Faible consommation autorisant une autonomie de plusieurs mois en fonctionnement permanent sans être rechargé avec une batterie de 2400mA. La version présentée ici consomme environ 150µA à radioactivité ambiante, toutes fonctionnalités de signalisation (LED et BUZZER) désactivées. A noter une certaine déception, peut-être due à une mauvaise configuration du microcontrôleur : les versions précédentes du compteur à partir de PC-GM3 consomment entre 25 et 35µA soit environ 9 ans d'autonomie avec une batterie de 2400mA. Là, on est au alentour de 1,5 ans d'autonomie. A la date de publication, je n'ai pas trouvé pourquoi une telle différence.
- Mémorisation des dernières moyennes des détections en CPM.
- 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.
Par rapport à PC-GM8, les principales différences sont les suivantes :
- Utilisation d'un clavier au lieu d'un interrupteur rotatif pour accéder aux commandes (plus pratique à l'usage).
- Capacité de mémorisation supérieure.
- Pas d'écran e-paper.
Plutôt que de réaliser PC-GM8, je conseille de réaliser cette version qui est plus légère du point de vue logiciel, plus simple à utiliser et plus performante pour la mémorisation des données
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.
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).
Le compteur PC-GM9 présenté sur cette page est une variante plus simple et plus performante de PC-GM8.
Présentation du compteur basse consommation PC-GM9
Comme ses prédécesseurs, PC-GM9 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 MSPEXP430FR6989. 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 est identique à celle de PC-GM8 à la différence près que le contacteur rotatif n'a pas à être câblé.
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 MSP430FR6989 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 (non utilisé dans PC-GM9.
Vous trouverez ci-dessous des photos des modules utilisés.
FTDI232 et chargeur LIPO (cliquer pour agrandir)
Module HT IMEX avec sa documentation et clavier membrane
Assignation des touches du clavier
Le clavier utilisé est donc un module standard pré-imprimé qui coûte environ 1à 2€. Les images ci-après donnent une idée de ce que pourrait être un clavier imprimé spécifiquement pour cette application et donne l'affectation des touches du clavier :
Signification des touches et correspondance avec un clavier numérique :
- colonne 1 :
- Alarme LED (1) : active ou désactive le signal d'alarme par LED si dépassement d'un seuil de comptage de particules
- Alarme Buzzer (4) : active ou désactive le signal d'alarme par buzzer si dépassement d'un seuil de comptage de particules
- Signal LED (7) : active ou désactive le signal par LED de la détection d'une particule
- Signal Buzzer (*) : active ou désactive le signal par buzzer de la détection d'une particule
- colonne 2 :
- Tension batterie (2) : affiche la tension courante de la batterie
- Maximum (5) : affiche la valeur maximum enregistrée et permet de réinitialiser cette valeur
- Moyenne (8) : affiche la valeur moyenne des mesures sur 24 heures
- Validation (0) : valide la saisie des données lorsque c'est nécessaire. Un appui sur cette touche hors contexte est sans effet
- colonne 3 :
- Haut (3) : permet d'augmenter une valeur ou de changer un paramètre
- Seuil (6) : permet de régler le seuil de détection d'une alarme (de 0 à 9999CPM).
- Bas (9) : permet de diminuer une valeur ou de changer un paramètre
- CPM/µSv (#) : permet de basculer l'affichage de CPM à µSv/h (non disponible dans cette version)
A noter que l'appui successif sur "CPM/µSv (#)" et "Validation" (0) en moins de 3 secondes permet de verrouiller (LOCK) ou déverrouiller (UNLOCK) le clavier.
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, J305 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) ainsi que le contacteur rotatif sont inutiles dans cette réalisation et n'ont pas à être câblés. On utilise à la place un clavier membrane.
- R3 est prévu pour les tubes LND712 qui doit être branché au pad J6. Si on utilise un SBM20 ou J305, on se branche directement sur J4.
- La masse d'un LND712 peut être branchée sur J1. Pour un SBM20 ou J305, 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 ou J305. 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.
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é à un GPIO 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 à un convertisseur analogique 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.
Câblage final
Vue des périphériques (carte analogique, FDTI232, clavier)
Périphérique | Processeur | Périphérique | Processeur |
DETECT1 | P3.7 (TB0) | DETECT1 | P3.3 (PBCLK) |
Clavier 1 | P2.1 | Clavier 2 | P2.2 |
Clavier 3 | P2.3 | Clavier 4 | P2.4 |
Clavier 5 | P2.5 | Clavier 6 | P2.6 |
Clavier 7 | P2.7 | ||
Sleep (FTDI232) | P3.2 | Rx (FTDI232) | P4.2 (Tx) |
Tx (FTDI32) | P4.3 (Rx) | ||
AL_LED | P8.4 | AL_BUZ | P8.5 |
EN_LED | P8.6 | EN_BUZ | P8.7 |
BatEn | P9.1 | BatVolt | P9.0 |
Vue du processeur
Processeur | Périphérique | Processeur | Périphérique |
P2.1 | Clavier 1 | P2.2 | Clavier 2 |
P2.3 | Clavier 3 | P2.4 | Clavier 4 |
P2.5 | Clavier 5 | P2.6 | Clavier 6 |
P2.7 | Clavier 7 | P3.2 | Sleep (FTDI232) |
P3.3 | DETECT1 | P3.7 | DETECT1 |
P4.2 Tx | Rx (FTDI232) | P4.3 Rx | Tx (FTDI32) |
P9.1 | BatEn | P9.0 | BatVolt |
P8.4 | AL_LED | P8.5 | AL_BUZ |
P8.6 | EN_LED | P8.7 | EN_BUZ |