ZYNQ搭載 ADCボード「Cosmo-Z」>開発日記>2015年5月

2015年5月

新しいハイボルを作った

平成27年5月26日

今日、光電子増倍管用の新しいハイボル(高電圧電源)用の基板と部品が届いたので、早速作りました。 

Hv_parts

完成の写真です。約1000Vが安定して出ていて、ピンセットを近づけるとちゃんと放電します。

Hv1k

このハイボル基板は電圧モニタ用のOPアンプ(上の写真の右下の8ピンパッケージの)が乗っていて、出力電圧を1000分の1にしてモニタ出力してくれます。電圧を測ってみると、1.000Vでした。白い半固定抵抗を回すと900~1500Vくらいまで調整できます。

※電源が5Vのときは1200Vくらいまで。12Vのときには1500Vくらい出せるようだ。

 

また、OPアンプの入力をコンデンサで切って、ゲインを100倍にしてオシロで測ってみたところ、20mV以下でした。つまり、高電圧の部分のノイズが0.2mV以下ということになります。

Hvnoise

これはすごいことで、1000V出ているのに0.2mVのノイズしかないのです。出力電圧に対してノイズが500万分の1しかないのです。なんて低ノイズなのでしょう!

さっそく、光電子増倍管につなげてみました

 

まずは古いハイボルの実力を確かめる

まずは、古いハイボルをフォトマルにつないでCosmo-Zで見てみました。古いハイボルというのは下の写真のものです。aitendoのインバータに倍電圧整流回路をつないで1400Vくらいを作り出しています。

Old_hv

実は、このハイボルは15Vくらいのノイズを出しているのです。

Cosmo-Zで見た光電子増倍管からのシグナルは・・

Hv_pmt_old

  • 上の図はADCの値を計算で10倍して表示している
  • ハイボルに起因するノイズは、20mVppくらいである

ハイボルのノイズが光電子増倍管の信号に出ています。フォトマルの信号と同じくらいのノイズが出ているため、小さな信号は検出できません。

 

新しいハイボルの実力を確かめる

新しいハイボルを試してみました。

旧ハイボルと比べて電圧が低いのか、フォトマルの出力も少し小さめです。

Hv_pmt_x10

でも、ノイズが全くない。

計算のゲインは100倍にして測ったところ、ADCの量子化された1LSBがギザギザして見えてきました。通常動作時には±1LSB(約500μV)のノイズしかなく、ハイボルをつないでもノイズは出ていません。

Hv_pmt

それゆえ、フォトマルの信号が出た場合、どんな小さな信号であっても見ることができるようになりました。2mVくらいのパルスもしっかりと計測できます。

結論

新しいハイボルのノイズは0.2mV以下(測定困難)で、フォトマルの出すより小さな信号まで見られるようになりました。古いハイボルでは20~30mVくらいの信号が限度だったのですが、新しいハイボルでは2mVの信号も見えます。感度が10倍以上よくなりました。 

 

新しいハイボルの基板出図

平成27年5月20日

ハイボル(高電圧発生回路)の基板を設計をしています。

Hv1kv

私が設計したオリジナルの回路ではなく、某所に掲載されていた回路をほとんどそのまま作っています。

出力1000Vでノイズが1mVという、1ppmレベルの低ノイズらしいのですが、本当にそんな性能が出るのでしょうか。

万能基板で作ってみた感じでは、そんなに低ノイズではなかったような気がします。

 

何に使うのかというと、もちろん、光電子増倍管です。

ハイボルにノイズが乗っていると、光電子増倍管の出力に出てきてしまうので、低ノイズなハイボルが欲しいのです。ハイボルのノイズが小さければ、より微弱な光のイベントまで識別できますので。

なお、今はaitendoの冷陰極管インバータを倍電圧整流して作ったハイボルを使っていますが、このくらいのノイズが乗っています。

Hv_noise

1.0μ秒あたりに、40mVくらい大きさのイベントのパルス(黄色い線)が見えていますが、9.2μ秒のあたりにノイズが見えています。これはインバータによるノイズです。

このノイズをなくさないと、小さなイベントが見えません。

だから、低ノイズなハイボルがとても欲しいのです。

 

 

放射線パルスの計測

平成27年5月10日 

そういうわけで、

Csz_cap7_2

の回路を作ってみました。

トリガ発生回路の後にプログラマブルな遅延回路を通して、その遅延回路を通った波形を記録します。

下の図のようなパルス波形は、

Csz_cap8

FPGAの中で次のように処理して、DMA回路に送ることができました。

Csz_cap9

プリトリガ機能を作るのに、遅延回路は定石ですね。

 

パルス波形の計測モードとしては、2つのモードを作りました

  1. トリガ条件が発生した時点からNカウントを記録(固定長)
  2. トリガ条件が終了した時点からNカウント記録(可変長)

前者のモードではパルスの長さによらず波形データは固定長となります。

後者のモードでは、パルスが長いとトリガ条件がなかなか終了しないので、データは長くなります。結果的に可変長となります。

さて、これからDMA転送できるようにして、パルスデータをどんどん記録できるようにしていきます。

 

Cosmo-Zでの放射線イベント波形キャプチャ

平成27年5月10日

ZYNQ搭載ADCボード「Cosmo-Z」に、放射線イベント波形キャプチャ機能を作成しています。

光電子増倍管や半導体検出器からの信号が入ったときに、その波形だけを記録していくモードです。

先週作ったデータロガー機能により、トリガをかけることで、このような波形が取れることは既に実現できています。

Csz_cap1

これから取り組もうとしていることは、このような波形にヘッダを付けて、メモリにどんどん溜めていくことです。

ヘッダには、

  • イベント発生チャネル
  • タイムスタンプ
  • 各種フラグ(パイルアップ疑い、多チャネルで同時イベント)
  • ペデスタルレベル
  • パルス長
  • パルス高さ
  • パルス面積

といった情報を入れます。

実際に、そのようなロジックを作ってみました。そして、FPGAに回路を入れて、実際に放射線(おそらく宇宙線のミューオン)のパルスが入ったときの波形をキャプチャしてみました。

Csz_cap2


イベントが発生してトリガ(trig)がかかると、その時点でのタイムスタンプを記録し、波形をメモリに書いていきます。(mf_waddr,mf_wdata,mf_wr(0))

そして、イベントが終了すると、ヘッダ情報と、メモリに蓄えた波形データを出力します。

図にすると、このような感じです。

Csz_cap4

しかし、この回路には問題がありました。

トリガがかかっている間の波形しかキャプチャできないということです。

Csz_cap3

ディスクリを大き目にかけてしまうと、上の波形の青と赤の間の部分の波形しかキャプチャできません。これだと、データとしては少なすぎます。

sun

次は、トリガロジックの横に遅延線を作って、波形の全体をキャプチャできるような回路にしないといけないと思う次第です。

Csz_cap5

記録パルスは、生波形のトリガでアサートし、遅延波形がペデスタルレベルに戻ったときに(あるいは開始トリガから一定時間経過)でディアサートするようにします。

遅延ラインを入れることで、パルス波形の最初から最後まですべてを記録することができるようになるはずです。

Csz_cap7

 

Cosmo-ZのWebインタフェース

平成27年5月7日

Cosmo-ZのWebインタフェースの機能や使い方をWebページにまとめました。

http://www.tokudenkairo.co.jp/cosmoz/webui.html

Webからゲインやオフセットを調整できたり、波形をモニタできるようになったりしたので、便利になったと思います。

Csz061_3

Cosmo-Zのファイルビューワーを強化

平成27年5月5日

ZYNQ搭載ADCボード「Cosmo-Z」の内蔵ファイルビューワで、キャプチャした波形の情報と、波形の詳細が見られるようにしました。

まず、昨日作った「計測ファイル一覧」画面をAJAX化しました。CGIがJSON形式でデータを送ってくるようにして、ホストPCのJavaScriptでファイルの一覧表を作るようにしました。

Cszweb_6

ファイル名をクリックすると、そのファイルに記録された波形と、キャプチャしたときの情報が表示されます。

下の図は、指でアナログ回路を触ったときに見えたノイズの波形です。

Cszweb_7

そして、波形の上にある拡大、縮小や、矢印のボタンを押すと、ビューを好きな場所に移動できます。

Cszweb_8

 

ボタンを押されたことによって、波形の見たいX座標や、表示させたい幅や高さを、以下のようなリクエストにのせて発行しています。

cgi-bin/filewave.cgi?yubi.raw&width=750&height=421.875&min_x=810&max_x=937&id=_1430754205816

Cosmo-Z上のZYNQが、このリクエストにしたがってSDカード上のファイルを読みこんで、波形をPNG画像にして返してくれるというしくみです。

AJAXを使いまくりです。

 

Cosmo-Zのキャプチャ機能を強化

平成27年5月4日

Cosmo-Zをまずはデータロガーとして使えるように、キャプチャ機能や波形表示機能を作っています。

Cosmo-Zでデータをキャプチャするには、Linuxにログインして下記のようにコマンドを打てば良いようになりました。

/cosmoz.elf capture 長さ file=出力ファイル名 comment=コメントの記述

Cszweb_0

うむ。わかりにくいですね。大丈夫。そのうちWebUI化します。

キャプチャされたファイルの一覧は、Webの画面で見られるようにしました。ファイル名とは別に、コメントを付けられるようにしたので、このファイルはなんだっけ・・ということはなくなると思います。

Cszweb_1

上のファイル一覧で、ファイル名をつっつくと・・

このように、保存されたファイルの内容が画像として表示されます。

Cszweb_2

フォトマルの信号を保存したデータを見てみましょう。

Cszweb_3

このように、波形をキャプチャして、保存して、Web画面上から読み出せるようになりました。

波形のファイルは、データだけが入っているわけではなく、計測したときのトリガ条件や、ADCの設定や補正パラメータ、時刻、FPGAの温度や電圧など、様々な情報も一緒に記録するようにしています。

Cszweb_5

次は、Web上からサンプリング速度やトリガ条件を変更して、キャプチャができるようにしたいと思います。

 

Cosmo-Zの四角いケースを作った

平成27年5月1日

アクリル屋さんに発注して、Cosmo-Zの四角いケースを作ってみました。

同軸コネクタの側には32個の丸穴があらかじめ開けてあります。

Csz_case1

正面のLANコネクタの側は特に問題ない。

Csz_case4
 

両方のパネルにはめ込んで、横から見ると、こんな感じ。

Csz_case2

むむ?なんか傾いている!?どうやら設計を間違えたようです。

それにSMAコネクタ側のパネルの厚さが5mmもあって、同軸コネクタをネジ締められない。

 

でも、綺麗なのでオブジェとしてはいいかもしれません。

Csz_case3

連休が明けたら作り直しです (;´Д`)


© 2015 TokushuDenshiKairo Inc. All rights reserved