In den Folgejahren von Tschernobyl wurden jede Menge Geigerzähler über Ebay angeboten. Bei einem auf diesem Weg billig erworbenen Exemplar stellte sich heraus, dass die Elektronik geschrottet war, das Teil gab keinen Muks mehr von sich. Wie sich jetzt herausstellen sollte, waren aber die beiden Zählrohre noch gut und so wurde eines davon in einer neuen Schaltungsumgebung recycled. Durch die Bauform bedingt, kann das Gerät Beta- und Gammastrahlung detektieren. Die Schaltung arbeitet ebenso gut aber auch mit dem inzwischen ausverkauften Zählrohr von Pollin (SI39G), welches ebenfalls keine Alpha-Strahlung erfassen kann.
Hier kann man das Gerät in Aktion sehen und hören.
Ersatzweise kann man aber einen externen Halbleitersensor, etwa eine aufgesägte BPW21R oder einen aufgesägten BD130, an den Sensoreingang anschließen. Dann benötigt man nicht einmal mehr die Hochspannung von ca. 350 - 400V für das Zählrohr. Dafür muss man in Kauf nehmen, dass Sensor und Messobjekt im Dunkeln plaziert werden müssen.
Als klassischer Geiger-Müller-Zähler verfügt das Gerät über folgende Baugruppen:
Zusätzlich sind diverse Einstellungen über drei Tasten und ein Menü möglich, das auf einem 2x16 Zeichen LCD dargestellt wird, welches auch die Messergebnisse zeigt. Die Spannungsversorgung erfolgt über einen 9V-Block oder wahlweise eine Rohrbuchse zum Anschluss eines externen 12V-Netzteils. Eine Klinkenbuchse erlauben den Anschluss externer Halbleitersensoren, eine weitere stellt den zum Rechteck geformten Zählimpuls zur Verfügung und eine dritte Stereoklinkenbuchse dient als RS232-Schnittstelle, welche Daten an einen PC übertragen kann.
Das Ganze ist in einem KS-Gehäuse von 160x70x35mm (b x t x h) untergebracht, das speziell für die Baugruppen hergestellt wurde.
Abb. 1: Bedienvorderteil und Buchsenanschlüsse (von links: externer
Sensor, Signalausgang, RS232 und 12V-Eingang, davor die 6 Pins des SPI)
Ein Zählrohr für Beta- und Gammastrahlung besteht aus einem dünnwandigen Metallrohr mit einem isoliert herausgeführhten dünnen zentralen Draht oder einem Glasrohr in welches zwei Elektroden eingeschmolzen sind. Eine davon ist als netzförmiges Röhrchen ausgebildet in der die andere Elektrode aus dünnem Draht steckt. Gasfüllungen sorgen zum einen zum Verkürzen der Impulse (Edelgase) und zum anderen dienen sie als "Löschgas" (Ethanol oder Kohlenstoffdioxid). Die hier verwendeten Zählrohre arbeiten im Plateaubereich als Auslöse- oder Geiger-Müller-Zählrohre und sind daher rein als Indikator von ionisierender Strahlung gedacht. Die vorgestellte Schaltung erlaubt es also nicht, die Energiedosis von Strahlung zu ermitteln.
Abb. 2: Verschiedene Zählrohre
In Abb. 2 sind von oben nach unten dargestellt:
Der grundsätzliche Aufbau eines Strahlendetektors ist sehr eiinfach. An den Pluspol einer Hochspannungsquelle von 350V bis 450V ist über einen sehr hohen Widerstand R1 (2 mal 10MOhm) die Anode des Zählrohrs angeschlossen (beim SBM20 der dünne Stift rechts). Die Kathode, also der Rohrmantel, liegt direkt oder über einen wesentlich kleineren Widerstand R2 (1,5k und 560k) an Masse. Im Ruhezustand wirkt das Gas im Rohr isolierend, es kann kein Strom fließen. An R2 fällt keine Spannung ab. Dringt ein Betateilchen (Elektron) oder Gammaquant (elektromagnetische Strahlung) in das Rohr ein, können enthaltene Gasteilchen ionisiert werden. Das bedeutet, dass sie ein oder mehrere Eletronen aus ihrer Atomschale durch die Energie der eingedrungenen Strahlung verlieren. Um den dünnen Draht im Zählrohr liegt durch die Hochspannung ein starkes elektrisches Feld wodurch die frei beweglichen Elektronen zum Draht hin beschleunigt werden und weitere Stöße verursachen können. So entsteht in sehr kurzer Zeit eine sogenannte Ionenlawine, die sich als Stromimpuls im Kreis äußert. Durch den Strom fällt am Widerstand R2 ein Spannungsimpuls ab, der durch die nachfolgende Signalaufbereitungsstufe verstärkt und geformt wird.
Damit die Ionenlawine wieder zum Erliegen kommt und somit nicht fortlaufend Strom fließt, baut man in den Kreis den hohen Widerstand R1 ein. Durch die, während des Stromimpulses an ihm abfallende, hohe Spannung sinkt die Spannung an der Anode des Zählrohrs. Die Elektronen werden nicht mehr beschleunigt, der Stromimpuls wird abgebaut und es schließt sich eine Phase der Rekombination von ionisierten Gasteilchen mit Elektronen an. Während dieser Totzeit kann das Zählrohr keine weitere Strahlung detektieren.
Die Hochspannung wird aus der 9V-Batterie durch einen Stepup-Konverter mit Spannungskonstanter erzeugt. Der verwendete Schaltregler MC34063 steuert den HV-MOSFET, der eine Spannung bis zu 600V und Ströme bis 3,5A verkraften kann. Die Spannung wird durch ein veränderliches Impuls-Pausenverhältnis so lange angeglichen, bis sich am Feedbackeingang Pin5 eine Spannung von 1,25V ergibt. Die genaue Ausgangsspannung kann mit dem Trimmpoti von 2,5k justiert werden. Diese Baugruppe befindet sich auf einer eigenen Platine und wird direkt von der Batterie oder dem externen Netzteil versorgt. Der Spannungsteiler für den Feedbackkomparator dient übrigens gleichzeitig als Entladewiderstand der Hochspannung nach dem Ausschalten. In den Ladekondensatoren am Ausgang sitzt genug Energie für einen satten Stromschlag bei versehentlicher Berührung. Also Vorsicht!
Abb. 3: Erzeugung der Hochspannung mit einem Stepup-Konverter
Zählrohr und Impulsaufbereitung sind auf einer weiteren Platine untergebracht, an deren Oberseite das Zählrohr selbst und die beiden hochohmigen Widerstände von 10MOhm liegen. der Rest der Schaltung wurde auf der Unterseite in SMD-Technik aufgebaut. Auf die Ausführung der LED-Anzeige wurde letztlich verzichtet, da der ATMega8 dieses erledigt. Diese Platine wird über einen eigenen Spannungsregler versorgt.
Abb. 4: Impulsformereinheit
Abb. 5: SMD-Spannungsversorgung für Impulsformer und AVR-Controller
Abb. 6: Prozessorplatinemit RS232-Interface, LED, Buzzer und Mini-LCD
Die meisten Teile der Prozessorplatine sind SMD-Teile, auch der Prozessor selbst.
Die Layouts wurde von Hand geroutet und liegen als ganzer Satz in Form einer PDF-Datei im Downloadbereich vor. Die hier dargestellten Layouts und Bestückungspläne sind nicht maßstabtsgetreu!
Ich beginn wieder mit der HV-Spannungseinheit.
Abb. 7: Das Layout für die HV-Versorgung gespiegelt für Direktkopie
Abb. 8: Bestückungsseite der HV-Einheit
Abb. 9: HV-Einheit realisiert
Abb. 10: Die Impulsformereinheit hat ein doppelseitiges Layout, weil sie
gleichzeitig das Zählrohr trägt.
Das kleine Platinchen rechts wird auf die Abschirmfläche auf der Oberseite senkrecht aufgelötet und dient zusammen mit der Klemme zu Halterung des Zählrohrs.
Abb. 11: Die Bestückung der SMD-Teile erfolgt von der Unterseite her
deren Layout daher nicht gespiegelt dargestellt ist.
Bei der Auswahl der Elkos muss auf deren Bauhöhe geachtet werden. Besondere Vorsicht sollte man auch bei der Platzierung des CD40106 walten lassen.
Abb. 12: Hier sieht man, dass die kleine Platine links auf die große
glötet ist und dort das Zählrohr hält.
Die Kathode des Zählrohrs rechts wird durch eine Sicherungsklemme gehalten
(amerikanisches Format) Die Anode wird durch das Loch in der Platine gesteckt,
der Anschluss erfolgt über einen 1,3mm-Postenstecker. Die Kupferabschirmung
ist mit dem Masseanschluss der Impulsformerschaltung auf der Unterseite durchkontaktiert.
Abb. 13: Durch den Einbau von drei Drahtbrücken konnte die Controllerplatine
einseitig gehalten werden.
Abb. 14: Die Bestückung erfolgt von der Lötseite her.
Abb. 15: Prozessorplatine Oberseite
Abb. 16: Prozessorplatine Lötseite
Abb. 17: Gehäuse - Bedienseite
Der Flash-Speicher des ATMega8 ist durch die Ausbaustufe der aktuellen Firmware zu ca. 77% ausgelastet. Das ermöglicht problemlos eine Erweiterung auf eine RS232-Steuerung des Geräts von einem externen Rechner aus. Das RS232-Modul ist sowieso bereits eingebunden, sodass nur noch eine Jobschleife ähnlich der Menüschleife implementiert werden muss. Und selbst die ist von der Struktur her bereits angelegt und muss nur noch mit Anwendungsaufrufen gespickt werden.
Die Menüsteuerung ist der Kern des Geräts. Sie wird als einziger Aufruf in der Endlosschleife des Hauptprogramms fortlaufend wiederholt. Eine Timerinterrupt-Routine (TOC2_isr) erfüllt zwei aufgaben. Generell wird hier die Systemzeit gemacht. Das passiert nachdem in bis zu 10 Zeitscheiben zu je maximal 10240 Takten quasi simultan (multitasking) Dinge wie die Tastenabfrage erledigt wurden. Diese ISR stellt also die Tasteninformationen zur Verfügung, die in der Menüsteuerung abgefragt werden.
In Abb. 17 ist die obere linke Taste die Taste2, darunter liegt Taste3, rechts daneben Taste1. Taste2 und Taste3 blättern abwärts und aufwärts durch die Menüpunkte und erlauben innerhalb ausgewählter Menüpunkte das Einstellen von Parametern. Taste1 aktiviert Menüpunkte, startet also die jeweilige Anwendung oder übernimmt innerhalb einer Anwendung (=Unterprogramm) die eingestellten Parameterwerte. Die folgende Abb. 18 gibt einen Eindruck vom Zusammenwirken der Menütasten.
Abb: 18: So arbeitet die Menüsteuerung
Im vorliegenden Fall werden die einzelnen Zeitscheiben alle 10ms aufgerufen. Von den 10 Zeitscheiben werden allerdings nur 2 benutzt. In der Zeitscheibe 1 werden die Tastenabgefragt und in Scheibe 2 werden die Tastaturflags im Register t_flags gesetzt. Die Bits dieses Registers werden schließlich in der Menüprozedur abgefragt. Innerhalb der mit Taste1 ausgewählten Aktonen können weitere Tastenabfragen stattfinden. Sie erlauben Einstellungen von Parametern, Ausgabe von Hinweisen im LCD, Start vor Vorgängen etc.
Die Taste3 hat beim Start des Geräts noch eine Sonderfunktion. Ist die Taste nicht gedrückt, startet das Gerät mit Defaultwerten jedes Mal in gleicher Umgebung. Während des Programmlaufs kann man aber die Evironmentwerte über das Menü verändern und im EEPROM ablegen. Wird nun beim Start die Taste3 gedrückt, dann erfolgt die Initialisierung mit den Werten aus dem EEPROM.
Nach der üblichen Initialisierung von RS232, LCD und Ports wird der Zähl-IQR eingerichtet (rcall int0_off), die beiden Timer und anschließend in Abhängigkeit vom Status der Taste 3 die Messumgebung gesetzt - Defaultwerte , wenn Taste3 nicht gedrückt, EEPROM-Werte, andernfalls. Interrups werden zugelassen und dann sind wir auch bereits in der Hauptschleife, deren einzige Aufgabe darin besteht, immer wieder die Menüabfrage zu starten. Wurde ein Punkt ausgewählt (Taste1 = OK,Übernehmen,Ausführen), wird er in der Menüprocedur erkannt und ausgeführt. Das Flag mns entscheidet darüber ob Menüpunkte im LCD angezeigt werden (mns = 1) oder die Optionen zu einem ausgewählten Item (mns = 0). Folgende Menüpunkte stehen zur Auswahl. Welcher Menüpunkt aktuell zur Auswahl steht sagt der Wert in der Variablen wahl. Zum Programmstart wird dieser Wert mit 6 = messen vorbelegt, damit das Gerät sofort einsatzbereit ist. Wer mag, kann ja einen neuen Menüpunkt einführen, wo der Startwert gesetzt und im EEPROM abgelegt wird. Das EEPROM muss dann natürlich in der Initialisierungsphase dahin gehend auch abgefragt werden.
Die Menüroutine findet man im Modul lcd.asm, weil es nur funktioniert, wenn ein Display vorhanden ist. Hier der Start der Routine:
Falls die Tastaturabfrage in der Timer2-IRQ-Serviceroutine das bit t_flags.key1 gesetzt hat heißt das, dass eine Aktion auszuführen ist. Welche Aktion das ist wird ab der Marke auswahl_00 decodiert. Wurde Taste2 (links oben im Tastenfeld) gedrückt wird dr Menüzeiger um 1 erhöht oder bei Überschreiten des Maximalwerts auf 0 gesetzt. Taste3 führt zur Verringerung des Inhalts von wahl oder zum Setzen des Werts mlast-1, dem obersten möglichen Menüwert. Die Marke menu_done ist in jedem Fall der Ausgang aus der Menüroutine.
Zum Decodieren wird nun stufenweise der Inhalt von wahl mit Konstantenwerten verglichen, die der jeweiligen Aktion entsprechen. Bei Übereinstimmung wird die Aktion ausgeführt, andernfalls zum nächsten Vergleich verzweigt. Nachdem Ausführen einer Aktion muss das Menüflag wieder gesetzt werden, damit die Menüauswahl wieder ermöglicht wird. Schließlich münden alle Aktionen im Label menu_done, wo alle Tastenflags rückgesetzt werden. Eine kurze Pause von 0,15 sekunden bremst die Menüschleife herunter, damit der Menüpunkt ohne Flackern dargestellt werden kann. Die am Eingang gesicherten Register (oben nicht dargestellt) werden restauriert, das war's.
Die meisten der Menü-Aktionen erklären sich durch den Namen der Prozedur und die Kommentare problemlos von selbst und wurden teils in anderen Kapiteln des Tutorials bereits abgehandelt. Einer besonderen Ewähnung bedarf evtl. der Menüpunkt 6 - Messen. Es gibt drei Modi, in denen Zerfallsprozesse erfasst werden können. Die Erfassung einzelner Zerfallsakte geschieht über die INT0-ISR und den Eingang INT0 des ATMEGA8, welcher darauf getrimmt ist, ansteigende Impulse zu erkennen.
Der letzte Punkt mit der Option 2 im Modus-Menü unterscheidet sich grundlegend von den anderen beiden. Freilauf heißt, dass Zerfallsakte fortlaufend erfasst werden ohne zeitliches oder eventgrupiertes Limit. Im Freilaufmodus werden stets während der Zeitdauer, die in MESSZEITAUSWAHL festgelegt wurde, die Impulse gezählt und aufkumuliert angezeigt. Ferner wird für jeden Messzeitraum der CPM-Wert berechnet und angezeigt. Dieser Wert ist dynamisch in der Zeit, weil stets nur das letzte Messintervall ausgewertet wird. Für Langzeitmessungen kann der durchschnittliche Mittelwert aus der Anzahl der Gesamtimpulse durch die Anzahl von Minuten Messzeit berechnet werden.
Der Wert 1 für Limit bedeutet, dass die angegebene Anzahl von Mess- und Pausezyklen durchgeführt und dann die Messung beendet wird. Die Anzahl von Messungen wird im Menüpunkt ANZAHL_DURCHG festgelegt.
Im Dauerlaufmodus erfolgt die Erfasssung ohne Limit für die Durchgänge im eingestellten Rhytmus von Mess- und Pausendauer.
Die Messwerte können im EEPROM bis zu einer Maximalanzahl von 250 zu je 2 Byte abgelegt werden. Die Strukturen der SDRAM- und EEPROM Variablen sind im Hauptprogramm geigerzaehler.asm definiert. Bei neueren Implementierungen (ab 12.11.2016) wird die Erkennung des vorhandenen EEPROM-Bereichs durch einen eigenen Header automatisch erledigt werden. Im vorliegenden Projekt sind der EEPROM-Bereich und das damit verbundene Modul noch manuell festgelegt.
Zur Berücksichtigung des sogenannten Nulleffekts, der auf der stets vorhandenen Strahlung aus der Umgebung (= Untergrund, Mauerwerk, Höhenstrahlung, Radongehalt der Luft ...) beruht, kann eine Untergrundmessung durchgeführt werden, bevor aktuelle Messwerte ermittelt werden. dieser Messwert wird dann, abhängig vom Messmodus, von allen aktuellen Messwerten subtrahiert bevor sie angezeit werden. Dieses Vorgehen ist vor allem bei der Erfassung von Zerfallsakten im niederwertigen Bereich sinnvoll. Das ist der Fall, wenn die zu erfassenden Zerfallsakte eine Rate vom ein bis ca. 20-fachen Untergrund liefern. Zum Vergleich gebe ich hier für den Bereich südliche Oberpfalz (Oberpfälzer Jura) einen Untergrundwert von 25 CPM für das Gerät an. Dieser Wert wurde in einer Langzeitmessung über 5,5 Stunden ermittelt und variiert aber auf 1 Minute bezogen von 7 CPM bis 45 CPM.
Erfasste aktuelle Messwerte können vom SDRAM ins EEPROM übertragen werde und zurück. Beide Speicherbereiche können außerdem über die RS232-Schnittstelle an ein externes Gerät übermittelt werden. Zu Testzwecken kann das SDRAM mit Defaultwerten beschrieben werden, um den Transfer an externe Geräte zu testen. Die grundsätzliche Überprüfung der RS232-Schnittstelle (19200 Baud, no parity, 1 stopbit) ist über den Menüpunkt RS232_Test möglich. Im Terminalfenster müssen dann fortlaufend "U" eintreffen und bei der Darstellung des TX-Signals vom Gerät auf einem Oszillokop muss sich ein symmetrisches Rechtecksignal mit einer Frequenz von 9,6 kHz ergeben.
Für die Erklärung aller weiteren Programmpunkte verweise ich auf die ausführlichen Kommentare zu den jeweiligen Programmteilen.
Weitere Informationen zum radioaktiven Zerfall findest du auf den strahlend schönen Seiten des Verfassers.
Layout als PDF, HEX-Datei, Programmpaket nebst Bibs, Bauplan Gehäuse