top menu

波高分析

それっぽいパルスが観測されるようになったがガンマ線によるパルスが ノイズと分離できているのか、それともパルス高分布の大きい側の裾野が ノイズレベルから少しはみ出て見えている だけなのかオシロで見ているだけではよくわからない。やはりパルスの波高で ヒストグラムをとって

good!

みたいに一応分離しているのか

bad!

のように重なってしまっているのかチェックしたい。
ADCで波高を測りそれをPCに送ればよさそうだが、ADC内蔵でUSB端子が付いてる マイコンボードは・・・・いろいろあるが一番近くにあったのがARMマイコン 『「MARY」基板システム』

mary

LPC1114を使っていてUSBは仮想シリアルポート専用だがプログラミングの 手間を考えるとかえって好都合。2枚あるのも安心(?)
1号機の最終段の出力をこんな風にADCのポート0に入れる。

circuit

LPC1114のADCの入力範囲は0-3.3Vなのでそのダイナミックレンジを利用するには 検出器のゲインがもう少し高いほうがいい。そこでR1を100kΩから1MΩに変更、 帯域幅を下げないためにC1は1/10にしたいところだが10pFだと発振するので 20pFにする。

signal pulse

パルス波形。発振しかかっているがとりあえず先に進む。

noise level

ノイズレベル。

プログラムはMARYの一番簡単なサンプルプロジェクト"COLOR_LED"のmain.cだけを 書き換えて作る:main.c
(実はひな形用のプロジェクト "LPC1114"も用意されていたことに後で気がつく) ADCは連続取り込み(burstモード)で動作していて閾値以下の値になると ピークを探してその値をシリアルポートに垂れ流すというもの。ADCの変換時間は 11x11/48MHz=2.5μsでパルスの幅は100μs程度あるのでこれでも問題ないだろう。

PC側のプログラムは送られてきたデータをだらだらファイルに書いていくもので トラ技の2008年8月号「USBマイコンによるI/O制御入門」の付録78K基板との通信 サンプルプログラムを昔書き換えたものを今回さらに流用したもの。
mterm1w.c
mterm1w.exe(bcc32でコンパイル)
このプログラムはデータが送られてくる区切りによっては取りこぼしが ある(主にカウントレートが高いとき)。

迷光を避けるために箱に入れていざ測定(LEDは消灯するようにあとで 書き換えました)。

let's measure!

取り込んだデータをヒストグラムに変換するプログラム
mshow.c
mshow.exe


試料のあるなしの差は明らかだが妄想していたようには分離していない。

histgram