« 2015年4月 | トップページ | 2015年6月 »

2015.05.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倍以上よくなりました。

| | コメント (0)

2015.05.25

PCI Express & FPGA 光リンクボードの設計

XILINXの7シリーズFPGAが乗った、PCI Express光リンクボードを設計しています。PCI Expressロープロファイル形状で、こんな感じのボードになります。

Pciesfplemo

特徴としては、

  • SFP+の光モジュールを2機搭載
  • LEMOのコネクタを4個搭載 (汎用のトリガ入出力として)
  • PCI ExpressはGen2 ×1
  • SATA付
  • 2.54mmピッチのピンヘッダで拡張可能

FPGAをArtix-7にするか、Kintex-7にするかはまだ決めていませんが、光モジュールが10GbE対応のものを買ってしまったので、今のところ、Kintex-7の可能性のほうが濃厚です。

さて、ロープロファイルの形状に、これだけのコネクタが乗るのでしょうか?EXPARTAN-6Tにあてがって調べてみました。

まず、SFP+のモジュールとLEMOコネクタの大きさは、こんなもんです。

X7sfp_1

光ファイバモジュールは2個入りタイプのを使って、ぎりぎりなんとかなりそうですね。PCI Expressのブラケットを止めているネジを3mmではなく、2mmに変える必要はあるかもしれません。

幅のほうはなんとかなりそうです。高さはPCI Expressの高さに入るでしょうか。

SFP+の光ファイバモジュールの高さはさすがに大丈夫です。さすがPC関係でも使われる部品です。PCI Expressのスロットにささるようにという要求はあるのでしょう。

X7sfp_2

問題はLEMOコネクタのほうです。

X7sfp_3

こっちも、ぎりぎり入った!!!

ブラケットに大きな丸穴を2個開ければ・・・いやダメっぽい。

ブラケットよりは小さいけど、パソコン本体にある穴の幅よりは狭いです。パソコンの筐体をキコキコ削らなければなりませんね。

| | コメント (0)

2015.05.20

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

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

Hv1kv

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

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

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

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

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

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

Hv_noise

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

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

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

| | コメント (0)

2015.05.13

MITOUJTAGでSPI ROMのアクセス

MITOUJTAGのバウンダリスキャンを用いてSPI ROMへアクセスできるようになりました。

バウンダリスキャンというのは、JTAGを使ってFPGAの端子を(プログラムされている回路とは関係なく)パソコンから自由に操作する技術です。バウンダリスキャンを使うと、FPGAに何もプログラムされていなくても、パソコンからFPGAのI/O端子を自由に操作できるようになります。

下の図は、FPGAのI/OからSPI ROMアクセスを行っているときの波形ですが、これはFPGAの中のロジックで作り出されているのではなく、パソコンから遠隔操作されているわけです。

Mj_spi_1

このようにバウンダリスキャンを使えばSPIのROMでもセンサでも自由にアクセスできたのですが、この機能を使うにはプログラムを組んでコンパイルしなければならず、意外と面倒でした。

そこで、今回、SPIのコマンドを、ユーザが自由にプログラミングできるようにしました。コンパイルすることなく、実行することができます。

具体的には、このような簡単なコマンド列で大丈夫です

romid
romstat
REM "TEST Micron N25Q128"
REM "Read NV Configuration Register"
send 0xb5 0x00 0x00
REM "Write NV Configuration Register"
send 0x85 0x00
REM "Read Volatile Enhanced Configuration Register"
send 0x65 0x00 0x00 0x00
REM "Deep Power-down"
send 0xB9
romid
REM "Release from Deep Power-down"
send 0xab
romid

プログラムを書いてみたところです。今回はMicron社のN25Q128というSPI ROMを使用して、「NV Configuration Register」や「Volatile Enhanced Configuration Register」といったマイナーなレジスタを読んだり、ディープパワーダウンモードにしたりしています。

Mj_spi_3


実際に実行してみた結果

Mj_spi_2


でした。

DeepPowerDown等のマイナーなコマンドは、FPGAの回路でわざわざ試すのは非常に面倒ですが、上の画面のようにツールにコマンドを書けば動くというのであれば、手軽に試すことができます。

このように、JTAGをうまく使えば、ハードウェアでわざわざ作る面倒なものが、ソフトウェア感覚で手軽にできてしまいます。

SPIアクセスに対応したMITOUJTAGは、下記のパッチを適用することでご利用可能になります。先日の2.63化パッチを当てたあとで適用してください。

MITOUJTAG Pro 2.63→2.63aへの更新パッチ(差分のみ。2.63専用)

| | コメント (0)

2015.05.12

MITOUJTAG強化週間をはじめます

今週からMITOUJTAG強化週間を始めます。

まず、いままでの累積的な更新内容を集積した、2.6.3更新パッチをリリースします。

↓のURLからダウンロードできます。

https://www.tokudenkairo.co.jp/login2/download.php

Mjupdate263

ダウンロード先のURLは

です。

今回の主な更新内容は、

  • FPGA内蔵ロジアナIPコア「BLOGANA」が更新され、幅252bit、長さ8192までキャプチャ可能になった。
  • 図研CCF形式のネットリスト読み込みのバグが改善された
  • ロジアナ波形のエクスポートが可能になった

です。

今週は、いままでいろいろなお客様からご要望をいただいていた項目を改善していこうと思います。

具体的には、SPI ROMをバウンダリスキャンで読み書きできるようにしたり、DDR2、DDR3メモリの接続検査ができるようにしたり、などです。

ご期待ください。

| | コメント (0)

2015.05.10

放射線パルスの計測

そういうわけで、

Csz_cap7_2

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

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

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

Csz_cap8

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

Csz_cap9

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

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

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

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

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

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

| | コメント (0)

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

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

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

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

Csz_cap1

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

ヘッダには、

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

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

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

Csz_cap2


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

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

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

Csz_cap4

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

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

Csz_cap3

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

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

Csz_cap5

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

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

Csz_cap7

| | コメント (0)

2015.05.07

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

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

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

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

Csz061_3

| | コメント (2)

2015.05.05

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

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を使いまくりです。

| | コメント (0)

2015.05.04

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

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上からサンプリング速度やトリガ条件を変更して、キャプチャができるようにしたいと思います。

| | コメント (0)

2015.05.01

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

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

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

Csz_case1

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

Csz_case4

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

Csz_case2

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

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

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

Csz_case3

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

| | コメント (0)

« 2015年4月 | トップページ | 2015年6月 »