*この記事はTAKA(JA2GRC)氏の全面的な尽力により実現できたものであり、プログラム本体、基本回路図に関して、氏に著作権があります。利用者はこの点を理解のうえ、著作者権利等遵守をお願いいたします。


*開発に関わる記事等は、氏のブログに詳細がありますので、そちらを参照下さい(巻末にリンクがあります)。


*この情報の利用により、使用者が受けた不利益や損失から、企画者・本文執筆者であるy.utsunomia、TAKA氏、サイト管理者は免責されるものとします。


*お気づきの点や不具合などは、当サイトに遠慮なくお寄せ下さい。


*本文解説は非常に詳細なものとなっており、読みづらい面もあるかもしれませんが、最初に関係のありそうな部分のみ拾い読みし、完成後に読み物として、実際に使用する際に問題が生じた場合、詳細に読破下さい。


*「放射線量計を作ろう」本文では、「なぜPICやAVRを用いないのか」という見出しまで付けているにもかかわらず、これは一体どういうことなのか・・というご指摘に対する言い訳は、別の機会にいたします。


*解説や付属する機能について簡略化したEASY版もあります。


**基板レスでの組み立て写真などはEASY版を参照下さい。

*プログラムダウンロードアドレス
http://ja2grc.dip.jp/~ja2grc/my_software/my_software.htm#TUC

○仕様・概観


機能と品名:ガイガーカウンターでの使用を考慮した、ユニバーサル・カウンター


開発者  :TAKA(JA2GRC)


企画者  :Y.Utsunomia


バージョン番号:1.62


桁数   :10進6桁


計時機能 :秒数、3桁


計時機能 :秒数、3桁


最大計数速:200000カウント/秒(200KHz)(120000000カウント/分)
*定確度計測モード時には計数上限速度が低下します。
上限速度:
10C=100Hz(6000CPM) 100C=1KHz(60KCPM)
1000C=10KHz(600KCPM) 10000C=50KHz(3MCPM)
100000C=100KHz(6MCPM) 1000000C=100KHz (60MCPM)


動作モード:通常計数(加算、減算)、定確度計数、ゲート計数


表示出力 :7セグメント液晶表示機による、簡易計時表示(秒3桁)と計数表示[加算入力カウント-減算入力カウント](6桁)


入出力  :加算入力、減算入力、リセット入力、表示ホールド入力(ゲート入力)、桁上げ出力、定確度出力(負論理、立下りエッジ、2μsec)入力コンパレータ比較電圧出力(アナログ0~5V)、加算/減算差分出力(PWM・8bit キャリア 500Hz)


計数入力 :加算入力インピーダンス:1MΩ以上(コンパレーター入力)パルス立上りで計数(正論理)減算入力;C-MOS論理レベル入力


制御入力 :(リセット、表示ホールド、ゲート)PIC内部でプルアップ
外部からの制御は、オープンコレクタによる結合を推奨
立下りエッジで読み込み
ゲート入力:論理レベル
想定ゲートタイム=0.1sec以上( Gate=10kHz(100μS)、Input=100kHzでも問題なく動作しますが、オーバーフローは表示ホールド等ありません)


差分出力 :PWM、8bit、500Hz、カウント0を中心に+127~-128に量子割付け。絶対「0」(リセット時)を持っており、カウンタが1周(あるいは逆転1周)しても、そこを0とは認識しない。内部処理32bitであるため、+2,000,000,000カウントまでは、絶対0を失いません。


付属機能 :計数モード切替、計数入力感度設定機能、計時校正入力、全電源喪失回避(推奨電源時)


○特徴:

製作容易


 基本回路部分について、徹底した省部品化により、PIC、LCDモジュール、パスコン(0.1μFセラミック)以外の部品は不要。
*入出力端子や保護回路、スイッチ類を除く。


また、PICとLCDの接続も電源を含めて7本の接続で済みます。このため基板を排除し、LCDモジュール上に主要部品を組み付けることが比較的容易に可能です。またその場合にも、ピンの並びが考慮されているため、配線をシンプルにまとめることができます。


*ただし、設定などを行うには、最低、リセットスイッチ1つが必要。また、LCDパネルすら使用しない場合は、9番ピンは内部でプルアップされているため、設定終了後には単独動作可能。


小型軽量


 製作容易にもあるように、外付け部品が無く、また基板省略できることから、液晶モジュールと同サイズ40×65×10(mm)(幅は61mm程度まで削りこめる)ため、市販の小型ケースに収まりが良い(タカチLC115など)。

省電力


 PIC、LCDは5V動作を基本としますが、アイドリング状態(計時+計数なし)でも、高速カウント時(計時+1200000CPM)でもおよそ2.6mA。推奨電源回路は、小型DC-DCコンバータHT-7750または、同等の電池による携帯電話充電器を用いているが、低消費電流であるため高い効率のまま昇圧ができる。HT-7750または同等品の利用の場合、0.7V程度から動作し、1.2V時16mA、2.4V時7mA程度。

比較的高速


 測定対象が放射線現象であるために、ポアソン過程と呼ばれる気まぐれな非周期入力となる。これは極めて低線量(低カウント時)であっても、入力パルスと次の入力パルスの間隔は、極めて隣接する可能性があることを示しており、低線量だから低速のカウンターでもよい、ということにはならない。理論的にはSBM-20の最高カウント(不感時間の逆数:1/190μsec=5263Hz :SBM-20 )以上必要であるし、さらに高速のガイガー管や、複数管の場合は、本数に比例した速度が要求される。


 本カウンターは定格で200KHz(≒×37)の計数速度を持つため、通常のガイガー管のほとんどでは、ポアソン過程によるカウント取りこぼしを考慮する必要は無いと考えられます。


 また、この計数速度は市販の小型線量計の計数速度と比較しても、一部の機種(SIM-05など・・MHzオーダー)を除き、非常に高速であると言えます。

ステータス表示


 とくに動作ステータスの表示は付いていませんが、表示左側3桁には、常時、秒計時表示があります。(ただし、ホールド有効中は秒表示もホールド)


 万一不運にして、高エネルギーのγ線のチップ命中などで動作に異常がある場合に、この部分の表示に異常が現れると考えられます。一種のウォッチドッグタイマーのような機構とも言え、単なる秒表示だけでなく動作の正常性の表示として利用できます。


 ディスプレーホールド時には、この秒計時も同時にホールド状態となります(ホールド時と起動時には、秒表示とカウント表示の間にハイフン「-」が表示されます)。


校正とキャリブレーション


 カウント入力は加算減算ともに、直接論理「1」と「0」を判定しているわけではなく、PICチップ内蔵のアナログコンパレーターで基準電圧と比較し、2値化している。このため、ノイズを含んでいる信号源の場合も、基準電圧を調整することで閾値設定し、ノイズと信号を識別可能になるよう工夫されています。


 このコンパレータ基準電圧は、加算減算ともに共用で、#13番ピンからも出力されている。このため、同じ動作条件のコンパレータを外部に設けることができるため、入力のモニターや連動動作の閾値を持った外部処理が可能。


<基準電圧の設定の方法は後述>


 本カウンターは外付け部品を削減するために、チップ内蔵クロックを採用している。しかし、このクロックの絶対精度は相当に悪く、計時部分のクロックとして問題があるほどの悪さです。しかし、安定性については、温度、電圧ともにあまり大きな変動を伴わないことから、分周比をキャリブレーションして使用する機構が付属します。


<設定の方法は後述>

単純化された機能


 計数そのものは単純加算と単純減算のみで構成されている。加算と減算の両方を同時に使用することができるため、2つのガイガーからの出力を即時集計し(差動計数)、宇宙線補正や遠隔差動計数が可能。


 すべての計数は整数処理され、一切の乗除算を排除しているため、有効桁数のシフトや計数誤差の蓄積が生じない。


 単純化された処理であるため、使用者は動作の正常性を容易に検証できます。

拡張性と汎用性


 このカウンターは私の提案を元に、TAKA氏に製作していただいたもので、ガイガーカウンター用のものであるにもかかわらず、CPMやシーベルトの直読すらできるようにはなっていません。これはガイガー管の出力が単なるパルスの頻度であり、ポアソン過程であるために、ガイガー管の感度特性を考慮すると、何をどうしようと単純にはCPMやシーベルトへ変換できないという問題があるからです(固定されたゲートタイムを持たないという意味です)。


 しかしそんな問題がありながら、高い識別性や変化検出能を得られなければならないことから、ガイガー管からの出力をできる限り、余すところなく時間断面化できるカウンターが必要なわけです。


 このカウンターは単体では単純なカウント機構しか付いていませんが、リセット入力、表示ホールド入力、ゲート入力、桁上げ(定確度出力兼用出力があるために、簡単な拡張でCPMやシーベルト直読の拡張ができるように工夫されています(この機構により、使用者や目的に応じて、より柔軟で高精度な対応が可能となります。


 一般的に直読のための機能を組み込むほどに、計数性能そのものは低下する傾向は否めません。限られた演算能力を何に割り当てるのかが、重要な選択肢となるわけです。機能を限定し、誤差要因を排除し、動作の単純化を図ることを目標に企画し、製作していただきました。


 ガイガーカウンターの性能は、実質的にガイガー管で決まり、表示できる数値はその元となるカウンターの、基本的な計数性能で決まるのです。


<拡張性については後述します>


 拡張性とともに、動作機能そのものを単純化し、計数用途一般に、ブラックボックスとして使用できる汎用性が考慮されています。PICやAVRのパワーユーザーの皆さんには、適切なモデルを目的に最適化したプログラムを組めばよい、と言う考えがあるかもしれませんが、主要な利用者はプログラマではありません。またプログラマであったとしても、現場で遭遇する様々なトラブルに対して、理路整然と対応することは困難と思います。機能モジュールが「完成した単純モデル」であるなら、問題のある場所を突き止め対応することも容易となりますし、それはプログラマでなくてもできることです。


 大それた考えではありますが、社会資産としての汎用性をも考慮し、専門知識(ハンダ付け程度は必要)がなくても、利用が可能で、電子ブロック(TM、ちょっと古い)のように拡張が可能な機能モジュールを目指しました。現在はバーゲンセールのLCDにのみ対応ですが、将来は同機能を入手容易なLCDモジュールへも移植されることと思います。

○使用部品


液晶表示パネルモジュール:OPTREX PWB 842B 7セグメント10桁


I/O   :NEC μPD7225フォーマット


入手  :現在確認できている店舗は、大阪デジットのみ


(*このモジュールが入手不能になった場合は、代替のディスプレーに合わせ、プログラム移植される予定です)


マイクロコントローラー:PIC16F1823


参考価格 :¥90~¥210-


(プログラム書き込みにはMICROCHIP製 PICkit2以降とPCが必要。書き込み方法については、諸注意とともに後述)


電源系 :HT-7750による昇圧・安定化回路小型パワーインダクタ100μH1Aショットキ・バリア・ダイオード10μF/25V、積層セラミックコンデンサ×3電池ケースなど


これらの部品を集めて回路製作することも楽しいが、コストと労力を重視するなら、低価格で販売されている、電池を用いた携帯電話充電器に同等の回路が含まれていることが多いので、これも利用できる。


その他 :プッシュスイッチ:プッシュ・オン・タイプ  ×2


白色または青色LED・・念のための保護用(省略可)


4.7KΩ/0.25W    LEDを用いない場合は、1本


330KΩ/0.25W    省略可能。


入出力端子:utsunomia規格に準拠の場合は、ステレオ・ミニジャック数量は、仕様により最大3だが、使用者の都合で決定


ガイガープローブへの接続規格(utsunomia規格):ステレオ・ミニ


tip:プローブへの給電+、非安定化1~5V


ring:プローブからのカウント、min 1V

○拡張性:各種の入出力端子を持つため、拡張性に富む。

例1)桁数の増設



 単純に桁上げ出力を、次のカウンターへ送ればよい。また、最初のカウンターが最大200KHzのプリ・スケーラになるため、次段カウンターは高速化していない歩数計で十分。高速化しないため、寿命も期待できる。


*歩数計を用いる場合、高速化は不要だが、入力側に改造が必要。



用途:超長期間の積算線量計、交通量調査、CDプレーヤのデジタル出力にコンポジットされている読み取りエラーの計数、自作ガイガーカウンター計数部の計数性能そのものの評価用、ガイガーカウンター一般の独立積算カウンター(または生データ取得)、その他


解説:PICやAVRで多機能の数値処理・計数部を製作すると、限りのある処理能力を様々な処理に割り当てることになる。このため設計にもよるが、設計値で数百カウント毎秒から数千カウント毎秒に設計することが多いが、放射線現象はポアソン過程であるため、カウンターの計数上限が、ガイガー管の上限カウント以下では、常に読み落しが出る可能性がある(SBM-20の場合で5.3KHz)。しかしこの数値もガイガーモードでの全放電最大値であり、実際に挙動を観測すると微小放電が相当の確率で発生しており、微小放電のパルス間隔はデータシート上の最小間隔である190μsecを大きく割り込んでいる。このことから考えると取りこぼしの無い計数のためには、十分に高速な計数能力を持ったカウンターとの比較検証が必要ということになる。


注意:減算計数で、000000から999999に桁下げされるときにオーバーフロー信号は出力されません。加算減算を同時に行っているときに、加算と減算の計数量が拮抗している場合、000000と999999の間を頻繁に行き来するがその場合には、999999から000000へ変わる瞬間のみで、何度でもオーバーフロー出力がでます。


 カウンターをカスケード接続し、桁数を増大しているときに、注意下さい。

例2)ゲートタイマーとの組み合わせ


 PIC-BLOCKシリーズの学習型ゲートジェネレータや、キッチンタイマーなどの時間発生回路(アナログオシレータでも可)との組み合わせで、様々な応用ができる。


ゲート時間一定の定時間計測では、水晶発振子による精度が望ましい。


この企画では、メインのカウンター(本機)にはゲート関連の計時を含みません。これはゲート計時に使用する論理や処理能力を、すべてカウント計数に割り当て、使用者から見たときの振る舞いを単純化し、より自由な利用を推進するためです。


ゲートタイマーを内蔵していないことの利点計数を一定時間ごとに区切り、そこまでの区間のカウント数を固定表示することは、1ビットのサンプルアンドホールド(標本固定化)であるが、得られる数値は単独では意味をなさない。時間・位置について相対的に情報が得られて、初めて有意なものとなる。放射線現象についても汚染状況のマッピングなどが行われるが、微視的にも複数個所での同時計測は経時計測よりもより多くの情報が得られるつまり、同時性を重視するなら、サンプリングの同時性・同期性が必要となる。当カウンターではゲートモード入力は単一の線路で遠隔入力できることから、複数のガイガー計測の同期が極めて容易に実現できる。また、必要ならGPS衛星からの時間データなどからゲートしたり、PCで制御することも簡単なIFの製作で実現可能なので、極めて拡張性が高いということができる。とくに宇宙線による天体観測などの用途では、利用価値が高いといえるだろう。



用途:周波数カウンター(別途、ゲート発生回路が必要)正確なゲートタイムの発生が必要だが、このPICのプログラムには含まない。最大計数速度は200KHzまでではあるが、実機周波数カウンターが容易に実現できる。


:CPM直読
ゲートタイムを60秒にセットすれば、CPMの直接表示が可能。


:CPM平均処理直読
ゲートタイムを600秒にセットし、表示を一桁ずらせて読むと10回の平均値(シームレス連続計測)が得られる。(*小数点位置注意)


:以下同様に任意の時間を設定することで、任意の平均値(要計算)が得られる。


:シーベルト(μSv/h)直読表示
仮に1μSv/h=150CPMのガイガー管(例えばSBM-20)があったとすると、ゲートタイム40秒で100CPM・μSv/hとなるため、ゲートタイム40秒で直読できる数を1/100する。


*例:40秒ゲートで15カウントなら0.15μSv/hのように。


同様にゲートタイム400秒で、10回平均のμSv/hが得られる。
*例:400秒ゲートで128カウントなら、0.128μSv/h。(*小数点位置注意)



このようにゲートタイムを任意に変更することで、面倒な算術計算を用いなくても、対象核種に応じた値を直接表示することができる。


 一般的にPICなどのコントローラーを用いてシーベルトなどの数値を得るには、何らかの割り算または掛け算を用いるが(またそのためのコントローラとも言えるが)、これらの演算では必ず端数処理が必要となる。そもそもの計測が1桁から2桁の整数様(整数のような、あるいは整数に見える)のデータに、さらに端数処理をすることは、根本的なアルゴリズムとして無理があると考えられる。


 1分間の計数によって得られた数値が15カウントであったとしても、現実には小数点以下はポアソン過程であるために計測できない。しかし、知ることができないだけで、確かに存在しているわけで、それを切り捨てない技術がゲートタイムの10倍延長であり定確度計測の基本思想です。このことから観測できるカウント数が小さいほど、その効力が大きいと言えます。


 ゲートタイムの任意変更による直読化の場合は、最初の整数様の数値のままの情報なので、誤差の入り込む要因を排除できる。(反面計測時間が伸び縮みする)


例えば、40秒ゲートを10倍の400秒ゲートとし、その間のカウント数を一桁ずらし読み取ることは、割り算なのではないか、という考え方もあるが、整数を整数のまま扱っているので、小数点以下は必ず一桁となり、確かに小数点以下はあるが、整数精度と同一と見なすことができる。故に、私のテキストでは「10で割る」という表現を用いず、「一桁ずらす」という表現を用いている。


 整数計測の中に掛け算や割り算を持ち込まないことにより、精度や確度を保つことができ、これが唯一の正確な方法と考える。(逆に、短時間で割り算によって算出された数値は、確度の不十分な速報値であると考えられます)


複数のガイガー管とカウンターを用意し、BG専用の計測とその結果がゲートタイムに反映するような接続を行うと、自動的にBG線量補正、宇宙線量補正ができる可能性がある。


注意>定時間計測でも、細切れのゲートタイムによるカウント数取得と、長時間ゲートタイムによる取得では、相違がある可能性がある。これはリセットに要する時間が0ではないため、シームレスに連続して計測を行っていても、リセット回数に比例し、数え落しが生じる確率は増大する。


 これに対して中途リセットの無い長時間ゲートや、定確度計測では、リセット起因の問題は発生せず、純粋にカウンターの計数能力のみに誤差を集約できるため、確度の一定化や事後の解析が容易となり、結果的に分解能や識別能を維持することが可能になります。


*本機でのゲートリセットに要する時間(取りこぼす可能性のある)は3μsecに規定されています。


計数確度:計数そのものの確実度は機能の単純化により、200KHz まで末尾1桁、±1デジット以内(=数え落とし無し・・加算計数時)で、ソフトウェアカウンターであることのデメリットは表出しない。


 周波数カウンターとして使用する場合の精度は、ゲートタイマに依存するので、この部分に必要に応じた精度のものを用意すれば、その精度が保証される。


 開発者のTAKA氏によるルビジウム標準周波数源による検証が以下にあります。


http://ja2grc.blog3.fc2.com/blog-entry-2009.html

例3)定確度計測(自動化)


 本機には定確度計測のためのモードと、設定カウント数満了時に出力を行うことができる。


 定確度計測では、計測満了がいつになるのか、概算で予測するしかない。このため、一定のカウント数で、計数や計時を停止しようとしても、見過ごしてしまうことが多いが、本機では定確度モードによる出力を持つため、設定を行っておくと、満了時にパルスを得ることができる。


 このパルスを利用して、表示をホールドしたり、音信号で利用者に知らせたり、ストップウォッチなどの計時装置を制御するなどの応用が可能です。


ただし、プログラム論理上の問題から、カウント数の少ない定確度動作では最大カウント速度が大幅に低下するという性質があるため、利用は慎重を要します。現状で高速の定確度出力を得るには、TTLやC-MOSロジックによるMHzオーダーのカウンターを併設することも選択肢の一つと言えます。


*定確度計測が真価を発揮するのは、低線量の計測においてのことなので、高頻度カウント時には適宜、定時間計測に切り替えることが現実的であるとも考えられます。

例4)定確度・カウンター満了出力の活用


 カウント満了信号とゲート入力信号のフォーマット(負論理・2μsec)は合わせてあるため、接続することもできる。


 外付け回路(FFや555などによる)が必要だが、それぞれの満了を示す表示(LEDなど)を警告として増設することが容易。

例5)周期測定・レシプロカル測定


 ユニバーサルカウンターの基本的な利用方法の一つに、周期測定やレシプロカル測定があります。例2のゲートタイマーとの組み合わせでは、計測入力に数えるべき現象を入力し、ゲート入力に一定の時間幅(例えば1秒なら周波数、60秒ならCPM)を加えて、一見前者は周波数そのものを直接表現しているように見えるが、実際には[計測入力周波数/ゲート入力周波数]の演算を行っている。つまり分母か分子のどちらかが一定の周波数を持つなら、表示される数値は常にこの式の解となる。(ただし、計数入力周波数>ゲート入力周波数)


そこで、0.13Hzのような長周期の信号を短時間に計測するには、単純にはゲート時間を100秒に取り、その間に13カウント入って来るのを待つが、気の長い話である。もしも、その0.13が安定した周期を持つのであれば、その信号間の周期を測り、逆数を取ればはるかに短時間で周波数を得ることができる。


 ユニバーサルカウンタ例では、安定した1KHz、10KHz、100KHzなどの信号を用意し、計測入力側に入れ、ゲート入力側に被測定長周期信号を入力します。つまり、ゲート入力に加えられた信号の1周期の中に10KHzの信号が何周期入るかを計数すれば、ゲート入力に加えられた信号の周波数の逆数が得られるわけです。本カウンタでは逆数化は人の手で、電卓などの利用となりますが、大した手間とは言えないでしょう。


 この周期測定は、実は定確度計測の最小単位でもあります。ポアソン過程に照らすと、誤差エラー100%ではありますが。カウント数が増えることで確度も向上していきます。


注意:ゲート入力は加算・減算入力とは異なり、C-MOS論理信号なので、0/5Vの電圧仕様を守らなければならない。もし加算減算入力と同様の閾値(感度)が必要な場合は、13番ピンからコンパレータ基準電圧が出力されているため、外部にC-MOSプロセスなどのコンパレータを用意し、この基準電圧を利用することで、加算減算入力と閾値をトラッキングさせることができます。

例5)差動計数


 この機能は拡張しなくても、もともと備わっている機能だが、加算入力と減算入力の2つの入力を備え、同時に使用することができるため、両入力の差分のみを表示することができる。


用途:ガイガー計数管は宇宙線に対して高い感度を持つため、地上や空間の放射線量を計測するために、どうしても宇宙線由来の荷電粒子を計数してしまう。その量は、汚染されていない地域でのバックグラウンドの30%にもおよび、鉛の厚板などで遮蔽を行っても、宇宙線由来の荷電粒子計数を阻止することはできない。計数率の良く揃ったガイガー管を2組用意し、片方を遮蔽体で覆い、残りを通常の測定に利用することで、前者には宇宙線由来のカウントを、後者は宇宙線+被測定物のカウントができることから、前者を減算入力に接続し、後者を加算入力に接続することで、リアルタイムに宇宙線由来分を減することができる。


 放射線測定以外では、入場者数と退出者数の差分(=滞在者の把握)、セット生産される生産物の、過不足分把握、車輪の回転などの不調和抽出など様々に応用できる。


 また、音響・映像映写、とくにフィルムなどでは音声との同期、あるいはフィルムどうしの同期などが求められる。これらの同期には、シンクロナイザーという同期のための装置があるが、差動カウント入力を用い、コンパレーターからの出力をスレーブ制御にフィードバックしているが、本カウンターも同等の機能を持つため、同様のシステムのコアを構成できる。


注意:本カウンターは単純単機能であるため、前例の入退場者数の総入場者数を同時に表示することはできない。そのような場合には、もうひとつカウンターを用意下さい。

例6)同期装置への応用


 本カウンターは加算と減算の2つの入力を持ち、同時に使用可能(立ち上がりエッジ検出)で、その差し引きの値を表示できるが、その値を外部出力することができる。出力はPWMというパルス幅変調で、表示000000のときにデューティ比50%の方形波、000127で99%に、999872で1%に変化する。単純に確認するだけならアナログあるいはデジタルの直流電圧計を接続すれば、000000のときにおよそ2.50Vとなることが確認できるだろう。カウントが1変化するたびに、約18mVずつ変化し、+127で上限に、-128で下限に達する。


 分解能は8bit相当であるが、これは「1」の変化を容易に読み取るための工夫で、正確に受け取るためには、マイクロコントローラなどで、Lowレベル期間とHighレベル期間の比率を読み取るが、アナログ的に利用することも想定しこのような出力となっています。


 専門的には、PLL(Phase locked loop)の発展版のコアデバイスとして使用できるようにデザインされています。(ただしカウントコンパレータ出力はキャリア5KHzのPWMなので、積分器(あるいはLPF)の選定は慎重に。

○PICへのプログラム書き込み


 このテキストでは書き込みにMICROCHIP社(PICの開発製造元)のPICkit2を推奨します。書き込みに関しては、当サイト以外に有力なサイトがあるので、そちらも参考下さい。


http://www.ne.jp/asahi/air/variable/picmel/integration/write/pickit2/index.html

 PICkit2は、評価基板無しの単体では比較的安価に購入可能。実際に動作させる回路基板に、6ピンのピンヘッダー端子を取り付けると、簡単な接続でPIC内のプログラムを読み書きできます。


 動作させる基板ではなく、読み書き専用の基板をつくることも良いでしょう。


 PICkit2は取り扱う店舗により相当に価格のばらつきがあるので、何店舗か調べてみると良いでしょう(2倍程度の開きがあります)。

 PICkit2は自作も可能ですが、その中核にはプログラム済みのPICが必要なため、そこへのプログラム書き込みをどうするかが大問題なので、自分で読み書きや開発を行いたい場合は、購入を強く推奨します。


 購入したら、CD-ROMが付属していますが、最新のドライバーを下記サイトでダウンロードし、PCへインストールします。しかしこのドライバーには最新のPICのデータライブラリが付属していないため、同サイトのNEW!のコーナーで最新版をダウンロードし、ドライバーがインストールされたフォルダにあるデータファイルと置き換えます。


http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805
からPICkit2最新ドライバとWhat's newにあるDevice fileをダウンロード


デバイスファイルの置き換え


 その後は書き込み対象PICとPICkit2を接続すると、そのチップの型番が画面に表示されるようになります。型番が認識できない場合は、基板の配線が不良か、ライブラリが無いかのどちらかで、いずれの場合も読み書きできません。


 書き込みは画面右下の「AUTO import」で、書き込みファイルを指定するだけでべリファイまで自動で行ってくれます。


 当面はutsunomia.com主催のワークショップをはじめ、特定用途のものに関しては、書き込みサービスまたは、書き込み済みPICの販売をします。問い合わせ下さい。

○作例と製作のヒント


 筆者は様々な理由から、高圧電源+ガイガー管(+プリアンプ)を一体化した「プローブ」と計数+電源の「コンソール」の分離型で製作することが多いです。

 組み立てについては、写真の例を参照下さい。


計数部分を独立させることの利点


 ガイガー管を含む検出部分と計数部分を分離することには、一定の利点がある。例えば、地面近くを検索する場合、中腰で作業を行うことには体力的な限界がある。棒状の器具の先端に検出部分(以下、プローブ)をセットすることで、検索作業が容易になり、作業者の疲労が軽減できる。また立ち姿勢の場合、周囲の状況 の把握も容易で、車両や通行者との接触の危険を避けることができる。


 また、手の届きにくい位置や奥まった場所にも、プローブのみを設置し、遠隔で観測することができる。(プローブに対して、電源もコンソールから供給することで、長時間の安定動作が期待できる。


 微量の放射性物質を必要な分解能で検出するには、鉛やタングステンなどの遮蔽体(水中でも一定の効果が期待できる)によって、遮蔽を行う必要があるが、プローブと集計表示部分が一体の場合、読み取りが困難となる。


 プローブとコンソールが別体の場合は、ケーブルが通る穴があれば、好きな長さに延長することができるために、遮蔽による不自由が発生しません。


 用途に応じて、プローブと集計部の自由な組み合わせが可能になる。人の手を介さず記録をとる(ログを残す)場合には、その機能のある集計部やPCを、最低限のカウントやブザーが必要なら、その機能に最小化したものを、またプローブも単独管、複数管、大型管、パンケーキ管など。決して大は小を兼ねない。


 私個人の装備品としても、この15年連続で動作しているのは、秋月キットをベースに積算カウンターをつけたプローブである。この管はBGが3CPMと大変低感度で、線源の探知にも一苦労だが、ゆえに数値が大きくなりすぎず管理が容易なのである。


 正確な線量読み取りは難しくても、線源のサーチや傾向を即座に知りたいならメーターや音出力に工夫を凝らせたものが有利だ。


 プローブと一体に、小型に製作したことがある場合、経験することが多い問題として、高圧電源、検出部分からのノイズの静電的・電磁的結合により、計数処理動作が不安定になることがあります。考えてみれば当然のことですが、高圧電源は数百Vの、計数関連はナノアンペアオーダーの情報が近接しているために、このよ うな問題が生じやすいからで、簡単な処置方法は、それらを分離し、一定の距離をとることです。近接していても影響を受けないように作るべきですが・・・。


 ノイズ耐性を確認するには、電磁調理器、電子レンジ、プラズマボールなどの近隣で動作確認するとわかりやすい。


 ちなみにPD方式の製品の中には、ガイガーカウンターと併設測定時、ガイガー管の検出時に発生するノイズで、同じようにカウントしてしまうものもあります。

*分離型、あるいは独立した汎用カウンターとして組み立てる場合のヒント


 本カウンターの入力は、非常に高いインピーダンスを持ち、被測定物に影響を与えにくい性能を持ちます(高感度)が、このことが逆に使いにくいことの原因になる可能性があります。


 入力が無接続(開放)、とくにプラスティック製のケースに収めた場合、ケースに発生する静電気によるノイズを計数することがあります。


 入力にガイガーカウンターを接続すると、信号源抵抗のために電位が安定し、ノイズの影響を受けにくくなりますが、このような問題が気になる場合は、次のような対策が有効です。


 ガイガープローブには、最低限高圧電源を内蔵し、できればガイガー管からの出力はバッファーを通して計数部に送るべきです。とくにアノードから出力を取りだしている場合、インピーダンスが非常に高く、ケーブル伝送中に容易に損失し、正確にカウントできなくなります。カソードからバッファ無しの状態で、1.5mくら いを限度としましょう。


☆金属製のケースに収める


 上記のノイズは、静電的なノイズのことが多いので、回路セット全体を金属ケースによりシールドすることで、全体の安定性を向上できます。もちろん、ケースと回路アースの接続を忘れてはいけません。


 また金属ケースに収めるのと同等の効果を得るのに、プラスティックケースの内側全体に銅の薄板を敷き詰めることも有効です。もちろん銅板は回路アースに接続。


☆入力抵抗を取りつける(分離型あるいはユニバーサルカウンタの場合)


 回路の計数入力部分(7番ピンとアース間)に10KΩ~330KΩの抵抗を取り付けることで、高すぎる入力インピーダンスを低下させることで、使いやすくなることがあります。プラスティックケースでシールド無し、主にガイガーカウンターとして使用する場合は1MΩ(カソード抵抗から出力を取り出す場合)、アノード抵抗からコンデンサを経由して入力する場合は1M~10MΩ、PCなどのオーディオデバイス出力から接続する場合は10K~100KΩ程度を目安とするとよいでしょう。

***この抵抗が無い場合、正常にカウントしていない場合があります***


☆使用しない入力端子の処理


 この問題は、減算入力についても同じですが、減算入力を使用しないときには、#1番ピンまたは#14番ピンと短絡しておくことを推奨します。


 逆に、減算入力のみ使用し、加算入力を使用しない場合も同様に、電源端子のどちらかへ接続するか、10K~100KΩの抵抗でプルダウンして下さい。


☆思い違いや、よくある間違い


 基板を作成する場合には、あまりミスは起こらないと思いますが、基板を省略した組み立ての場合、とくにPICがはじめての方では陥りやすい定型の間違いがあるようなので、寄せられたフィードバックから抜粋します。


○静電破壊


 MOSプロセスで製作されたチップでは、静電破壊に注意することが必須なのですが、現代のMOS素子は十分に内部で保護が行われているので、よほどの帯電状態で作業しなければ、問題は起きないようです。


○電源端子とパスコン


 多くのロジックICと異なり、PICでは1番が電源(Vdd)、14番がアース(Vss)です。無条件で右上が電源+と思っている場合があるので、ある程度スキルのある方ほどこの部分には注意してください。


 パスコンとは唯一必須な外付け部品で、1番端子と14番端子の間に入ります。数値は0.1μF以上の積層セラミックコンデンサで、基板省略の場合は、必ず端子に直接半田付け(できるだけ端子に近い必要がある)しましょう。1μFや10μFでもなおよいです。電解コンデンサは不可。


○液晶表示モジュール


 22μFの電解コンデンサが1つ使用されていて、その取りつけ部分に、いかにも電源端子のように見えるランド(基板のパターン)がありますが、回路としてのアース(Vss)に接続されているのは(-)の表示があるほうだけで、(+)表示がある方はRESET端子です。そう、この22μFはリセットのためのタイミングコンデンサで、電源にはいっているパスコンではありません。D1のカソード先のランドが電源+(Vdd)です。


 勘違いしないようにしましょう。とくに組み立てスキルのある方。


○過大入力


 加算入力、減算入力ともに、PIC内蔵のコンパレーターで受けていますが、過大な入力を加えると、計数しなくなる場合があります。電気的な保護回路はPICに内蔵されていますが、DP-5Vの出力はピークで80Vあり、PICのコンパレーターは破壊しないものの正常な動作はできなくなる場合があります。推奨回路例(もっとも単純な回路例には無い)に示すような、ツェナーダイオードによるリミッターと、コンパレーター基準電圧の調整を最大(次項、入力感度調整を最低・・・32段階目)にしておくことを推奨します。


 ガイガー管カソードからの直接接続の場合も、同様に過大入力となる場合があります。動作がおかしい場合は、コンパレータ感度の調整をしてみましょう。

○調整の方法とモードの切替


本カウンターはいくつかの内部設定パラメーターを設定できます。設定を行うには、最低でもリセットスイッチをつけておく必要があります。

☆入力感度調整


 入力は、PIC内蔵のアナログコンパレーターで受けられるが、コンパレーターの基準電圧をプログラムで変更することにより、入力感度を変更することができる。


 入力感度調整は、入力信号にノイズが混入している場合や、入力レベルが低い場合に、適切に設定することでノイズの影響から逃れたり、低い入力レベルでもミスカウントを減らすことができる。

☆調整モードへの入り方


 リセットボタンを押しながら電源投入すると、調整モードに入る。2秒未満の場合、入力感度調整に、2秒以上4秒未満の場合、計時誤差補正に入る。


 リセットボタンを押しながら電源を投入し、すぐにリセットボタンを戻す。


 リセットボタンから指を離すと、表示がすぐに変化し、調整モードに入ったことが確認できる。


 起動画面は161-888888 から。リセットボタンから指を離すと、007-001092のような表示
*左の161はバージョン番号


 調整は32段階あり、おおよそ27mV~4.8Vまで可変できる。


 表示画面左3桁が「段階」、右4桁が基準電圧値(理論値)で、リセットボタンを押すごとに 段階が上がり、電圧も上がる。


 右側の電圧値は計算値で、実際の基準電圧はPICの13番ピンに出力されているのでテスターなどで確認することができる。


 デフォルトは段階7で、コンパレータ電圧(感度)は1092mV(およそ1V)ですが、通常の使用(ガイガー管のカソードから直接信号を得る場合など)では変更は不要です。ただし細いケーブルで延長したりする場合には、段階2~4程度にする必要があるかもしれません。

☆調整モードからの離脱


 調整モードからは、電源を切ることで離脱できる。設定された値はPIC内部のフラッシュメモリーに書き込まれるので、次回起動時からその設定状態で起動する。


作者TAKA氏の関連ブログ
http://ja2grc.blog3.fc2.com/blog-entry-1979.html#more


☆計時校正モード


 この校正にはストップウォッチなどの計時装置が別途必要。


<重要>この校正はモードに入る前に、そのPICチップの固有値を知る必要がある。


1)リセットボタンを押さずに起動し、


2)ストップウォッチをスタンバイ。リセットボタンを押しておき、離すと同時にストップウォッチもスタート。


3)そのまま1000秒(16分40秒)待ちます。


4)カウンターの計時が999から000になる瞬間に、ストップウォッチを止めます。


5)そのときのストップウォッチの数値を読み取ります。
*仮に16分43秒だったとします。(*この数値はメモを取ることをお勧めします。


6)リセットボタンを押しながら電源投入しますが、投入後そのまま2秒以上4秒未満リセットボタンを押しっぱなしにし、その後ボタンから手を離すと、計時校正モードに入っています。

☆校正値の入力


 このモードも32段階の調整を持っています。段階は左3桁に、補正値は表示の右側に出ます。補正値の範囲は984~1016程度で、先の例では16分43秒(=+3秒)なので、補正値が1003になるまでリセットスイッチを繰り返し押します。


 入力が終わったら電源を切ります。


*この調整で、1000秒経過したときの誤差が1秒未満なので、精度は0.1%になります。


水晶発振子を用いると、部品にもよりますが100PPM程度(0,01%)が無調整で得られますが、消費電流が増大し、しかも部品点数が増えるため、このシリーズでは採用しません。また画面左の秒表示は、目視読み取りのための簡易表示と動作の正常性の確認のためのものです。


注意 PICに書き込むプログラムをバージョンアップなどで書き換えた場合、この補正値は初期化されるので、計時校正をやり直す必要があります。しかし、誤差はチップ固有の値なので、前回の校正データのメモが残っている場合、チップが同一であるなら、その値を使用することができます。

 また同一ロットの場合、誤差の表れかたはよく似た傾向があります。


作者TAKA氏の関連ブログ


http://ja2grc.blog3.fc2.com/blog-entry-1983.html#more

☆モードの切替


リセットボタンを押しながら電源投入しますが、投入後そのまま5秒以上押しっぱなしにします。
表示が000 999999 ・・・初期値 のように変わります。(すでに異なるモードにセットされている場合は、その表示になります)


左二桁がモード番号、1文字開けて、右側7桁が意味となります。


各モードと注意点の一覧


000 999999 :通常モード、および定確度1000000カウント
入力信号200kHz以下
HOLD_SWを押している間、表示をホールド。


001 888888 :ゲートモード、入力信号200kHz以下
HOLD_SWがゲート入力となるが、通常のスイッチの場合チャタリングに注意。
次のゲート信号まで表示をホールド。


002 000010 :定確度モード10カウント
入力信号100Hz以下


003 000100 :定確度モード100カウント
入力信号1000Hz以下


004 001000 :定確度モード1000カウント
入力信号10kHz以下


005 010000 :定確度モード10000カウント
入力信号50kHz以下


006 100000 :定確度モード100000カウント
入力信号100kHz以下


次のような操作メモを、本体に刻印しておくと、操作を忘れないと思います。


PSW+RESET_<2sec:SENSE SET
PSW+RESET_>3sec:TIME CAL
PSW+RESET_>5sec:MODE
000:NORMAL
001:GATE
002-:ConstantReliability

○作者TAKA氏の開発ブログ(途上)


○序章・部品選定・基本コンセプト(ここに目次があります)
http://ja2grc.blog3.fc2.com/blog-entry-1969.html


○その2・先人を参照する
http://ja2grc.blog3.fc2.com/blog-entry-1970.html


○その3・開発環境・テストプログラム
http://ja2grc.blog3.fc2.com/blog-entry-1971.html


○その4・PICの選定
http://ja2grc.blog3.fc2.com/blog-entry-1972.html


○その5・開発環境・テストプログラム
http://ja2grc.blog3.fc2.com/blog-entry-1973.html


○その6・メモリサイズ問題・カウンター動作テスト
http://ja2grc.blog3.fc2.com/blog-entry-1974.html


○その7・入力回路をコンパレーターに
http://ja2grc.blog3.fc2.com/blog-entry-1975.html


○その8・コンパレーター・ハングアップ問題
○http://ja2grc.blog3.fc2.com/blog-entry-1976.html


○その9・割り込み処理の改善・プログラムサイズ削減
http://ja2grc.blog3.fc2.com/blog-entry-1977.html


○その10・コンパレータ実装・速度改善
http://ja2grc.blog3.fc2.com/blog-entry-1978.html


○その11・入力調整機構の実装・一旦まとめ
http://ja2grc.blog3.fc2.com/blog-entry-1979.html


○その12・計時精度の検証と調整機構の実装
http://ja2grc.blog3.fc2.com/blog-entry-1983.html


○その13・特性検証
http://ja2grc.blog3.fc2.com/blog-entry-1985.html


○その14・特性検証・入力の堅牢性について
http://ja2grc.blog3.fc2.com/blog-entry-1987.html


○その15・表示ホールド機能の追加
http://ja2grc.blog3.fc2.com/blog-entry-1988.html


○その16・オーバーフロー出力の追加・・ver,1.30
http://ja2grc.blog3.fc2.com/blog-entry-1990.html


○その17・開発環境の再編
http://ja2grc.blog3.fc2.com/blog-entry-1991.html

○その18・開発環境の再編
http://ja2grc.blog3.fc2.com/blog-entry-1993.html


○その19・プログラムサイズの削減
http://ja2grc.blog3.fc2.com/blog-entry-1994.html


○その20・オーバークロック
http://ja2grc.blog3.fc2.com/blog-entry-1995.html


○その21・ゲートモード・タイミング関連
http://ja2grc.blog3.fc2.com/blog-entry-1999.html


○その22・ゲートモード・ジッターの排除
http://ja2grc.blog3.fc2.com/blog-entry-2000.html


○その23・ゲートモード・ゲート発生の実験
http://ja2grc.blog3.fc2.com/blog-entry-2002.html


○その24・仕上げ・ゼロサプレス
http://ja2grc.blog3.fc2.com/blog-entry-2004.html


○その25・低周波パルスの周期測定・小手調べ
http://ja2grc.blog3.fc2.com/blog-entry-2005.html


○その26・10Hz以下を測ってみる
http://ja2grc.blog3.fc2.com/blog-entry-2006.html


○その27・超高精度パルス発生器を作ってみる
http://ja2grc.blog3.fc2.com/blog-entry-2009.html


○その28・処理速度上限の検証
http://ja2grc.blog3.fc2.com/blog-entry-2011.html

○その29・減算カウント入力追加(CMOSレベル)
http://ja2grc.blog3.fc2.com/blog-entry-2012.html

○その30・減算カウント入力を変更(スレッショールド可変)
http://ja2grc.blog3.fc2.com/blog-entry-2013.html

○その31・仮想ゼロを基準にカウントすることに変更
http://ja2grc.blog3.fc2.com/blog-entry-2014.html

○その32・オーバーフロー処理も仮想ゼロに合わせて変動制に変更
http://ja2grc.blog3.fc2.com/blog-entry-2017.html

○その33・フェーズ出力を追加
http://ja2grc.blog3.fc2.com/blog-entry-2019.html

○その34・PIC分周器を作ってみる
http://ja2grc.blog3.fc2.com/blog-entry-2020.html



 大変丁寧に作っていただきました。それにひきかえ、私のリクエストのひどいことといったら・・・。



TAKA氏のガイガーカウンター開発関連ブログ(途上)


http://ja2grc.blog3.fc2.com/blog-entry-1802.html
(ここに目次があります)

○バージョン情報


1.30  評価用のサンプルとして、ごく少数配布
クロック8MHz、最大カウント速度:50KHz
消費電流≒1.3mA (以降のバージョンの約半分)
オーバーフロー出力:200msec
ゲートモード、定確度モード 未実装


1.45  クロック32MHzに変更。この変更に伴い消費電流≒2.6mA。
ゲートモード、定確度出力モードを実装
高速なリンクのために、オーバーフロー、定確度出力:2μsec


1.46  1.45の仕様と同じだが、表示にゼロサプレスを
行ったもの。ゼロサプレスとは表示桁以上の
不要なゼロを、表示しない機構。
例えば000311の場合、単に311を表示。
1.4系までは減算入力を持ちません。


1.50  1.45の仕様に、減算入力を組み込んだもの。


1.51  ピン配置変更。加算・減算ともにコンパレータ入力になる。


1.60  加算減算の結果のPWM出力を実装。+500000~000000~-500000を8ビットに割付。


1.61  加算減算の比較出力手直し実装。+127~000000~-127を8ビットに割付。その他バグフィックス。


1.62  LCDモジュール無し・PIC単独動作が行えるように、9番ピンをデフォルトでプルアップに変更。