HSIO2 Instruction




Useful links

Hardware and Software setup

  1. HSIOHardwareSetup
  2. HSIOForPixelReadout

Artix7にFirmwareを焼く

1. 新しいターミナルで:

bash> source /opt/Xilinx/Vivado/2015.4/settings64.sh

bash> vivado &

2.

vivado_start_copy.png

Open Hardware Managerを開く

3.

vivado_start_3.png

open target -> auto connect

だめだったら、open target -> ~ connectで選択

4.

vivado_start_0.png

xc7a200t_0(1)を右クリック -> Program Device... ->

Bitstream file: /home/atlasj/Dropbox/SiliconMemo/memo/HSIO2/HsioCosmic_00000003.bit

-> Program

5. caliserver&calibGuiを立ち上げ直して確認

※電源を落とすとFPGAに書き込んだものは失われてしまう. FPGA & memoryに書き込む必要有.

メモリーに書き込む

xc7a200t_0(1)を右クリック -> Add Configuration Memory Device

All,1024, bpi, x16, -> ok,ok

HsioCosmic _00000003.mcs

(eraseからのprogramming)

Tuning & Source scan

CalibGuiの立ち上げ方

Running calibserver on the RCE:

bash> ssh rce0 -l root

root> source setup.sh

root> calibserver &

On the linux host:

bash> source ~/daq/rce/scripts/setup-gen3.sh

bash> calibGui &

Tuning Manual

calibGuiが立ち上がってから...

1) コンフィグファイルについて
/home/atlasj/Dropbox/FEI4tunings/HSIO2/macro/single_tuning_orgをコピーしてきて, 入ってるモジュールの名前にする。(ex. KEK82_KEK83)
rceconf/KEK*.cfg, config/KEK*_primlist_4_local__fe0.cfgを編集。

・rceconf/KEK*.cfg(全体のconfig)
rceに繋がっているセンサーを変える。
数字の意味は, (enable, inlink, outlink, gomi, gomi)

・config/KEK*_primlist_4_local__fe0.cfg (chipのconfig file)
ModuleID, Adress, Chip_SNを変える

2) calibGuiにおいて、
・Config Root Dir ... Browse → KEK~のディレクトリにいって、"rceconf"とタイプしてOpen
・Data Dir ... Browse → "data"とタイプしてOpen
・Load ... KEK~/rceconf/KEK~.cfgを選択してOpen
Config Halfstave A タブに選択したモジュールが入っているか確認(前の設定が残ってたら一回Quitする, そしたら治る)

3) Scan Configを選択(Digital, Analog, etc.)

4) Start Run → 結果は、Plotsタブに表示される

5) Prim Listを使いたいときはLoad Primlistでファイルを選択。
(/scratch/atlasj/Dropbox/FEI4tunings/HSIO2/primlist)

Tuningの手順

1) DIGITAL_TEST, ANALOG_TESTを確認

2) THRESHOLD_SCANをとってみて、KEK*_primlist_4_local__fe*.cfgのパラメータを調節しながら合わせる。
変えるパラメータは、Vthin_AltCoarse、Vthin_AltFineの2つ。Vthin_AltCoarseはthreshldを大まかに決めるパラメータで、0-3のどれかを入力。

Vthin_AltFineはthresholdを細かく決めるパラメータで、0-255の間で入力。

3)tuning targetに合わせてprimlistを読み込む。(例:fasttune_th3000_ToT7at10ke.pk)

4)thresold scan,ToT scanなどをしてtuning結果を確かめる

Hardware connection & software setup

Config file template

Mask

1.ANALOG_TESTを実行後、noisyなピクセルを確認。

2.CalibGuiの上のにあるUpdateを押し、maskを適用する。

3.noise scanを実行。

4.scanが終わったら、mask対象がどれくらいあるか確認(maskのヒストグラムを見る)。

5.mask対象が適切なら、同様手順でmaskをかける。 (noiseが多すぎるとコアダンプすることがあるので、その場合はnoise scan selftriggerを回し、これでmaskする。)

6.noiseがほとんど見えなくなったらソーススキャン("selftrigger")をする。

Tips

  • リセット方法
    -> HSIO-IIにあるボタン(SOFT RST, COLD BOOT, DTM BOOTの三段階)
  • Threhoshold scanの範囲等を変える↓↓
    THRESHOLD_SCAN,FEI4B,THRESHOLDTARGETVALUE=3000,TOTTARGETCHARGE=21000,TOTTARGETVALUE=7,MASKSTAGEMODE=FEI4_ENA_BCAP,LOOPVARVALUES=0[0;200;101]
    (FEI4_ENA_BCAP...大きい方のcapacitorも入れる。)

Troubleshooting

基本的にlenovoでHSIO2を動かすこと前提です。。。

〇rce0にpingが通らない

 ・HSIO2に電源が入っているか

  →電源を入れて下さい

 ・電源が入っているのに通らない

  →/etc/sysconfig/network-scripts/ifcfg-eth0 をsudoで開いて"BOOTPROTO=dhcp"部分をコメントアウトし、HSIO2用の該当部分(for HSIO2や#####HSIO2#####などで分かりやすくなっているハズ)のコメントアウトを解除

   sudo service network restart を実行

   service dhcpd status でdhcpサーバーの状態を確認

    →止まっていたらsudo service dhcpd start

   /etc/hosts のrce0が正しいdtm番号の場所にいるか確認(いつも使ってるHSIO2のdtm番号は50 or 56)し、必要なら直して保存

〇rce0が見つからない

 /sbin/ifconfig -a でeth0が無いことを確認(代わりに他のeth5とかがいたりする)

 /etc/udev/rules.d/70-persistent-net.rules を開いて NAME="eth0" と書いてあるPCI deviceの行を削除し、NAME="eth5"(上で代わりにいたethの名前)と書かれている部分をeth0に書き換えてサーバー再起動

 /sbin/ifconfig -a でeth0のMACアドレス(HWaddr)を取得し、/etc/sysconfig/network-scripts/ifcfg-eth0 内のHWADDRを取得したものに書き換え

 sudo service network restart でeth0がいるのを確認

◯flexにconfigが通らない

flexはシリアルパワーリングなため遅い信号は通らない。

マンチェスターエンコーディングでCMDクロックを40MHzから80MHzに変える必要がある。

diff --git a/rce/pixelrce/server/CalibGui.cc b/rce/pixelrce/server/CalibGui.cc
index 8569959..efd1e2f 100644
--- a/rce/pixelrce/server/CalibGui.cc
+++ b/rce/pixelrce/server/CalibGui.cc
@@ -668,6 +668,7 @@ int CalibGui::startRun(){
}
for (std::map <int, unsigned int>::const_iterator it = rcemap.begin(); it = rcemap.end(); ++it){
int rce=it->first;
+ fw.setEncoding(rce,FWRegisters::MANCHESTER);
fw.setTriggermask(rce, 0);
fw.setMode(rce, FWRegisters::NORMAL);
fw.setL1Type(rce, FWRegisters::SINGLE);
diff --git a/rce/pixelrce/server/CosmicGui.cc b/rce/pixelrce/server/CosmicGui.cc
index 23ca2f9..a17de13 100644
--- a/rce/pixelrce/server/CosmicGui.cc
+++ b/rce/pixelrce/server/CosmicGui.cc
@@ -804,6 +804,7 @@ int CosmicGui::startRun(){
for (std::map <int, int>::const_iterator it = rcemap.begin(); it = rcemap.end(); ++it){
int rce=it->first;
fw.setMode(rce, FWRegisters::NORMAL);
+ fw.setEncoding(rce, FWRegisters::MANCHESTER);
//Discriminator Delays
fw.setDiscDelay(rce, 0, m_delay0->GetIntNumber());
fw.setDiscDelay(rce, 1, m_delay1->GetIntNumber()

EUTelescope Integration

-- Koji Nakamura - 2016-03-14

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf FE-I4B_V2.3.pdf r1 manage 9246.2 K 2017-09-11 - 07:22 KojiNakamura  
Unknown file formatcfg KEK101.cfg r1 manage 1.1 K 2017-10-17 - 14:32 AtlasjSilicon  
Unknown file formatcfg KEK101_RJ1_primlist_4local__fe0.cfg r1 manage 2.2 K 2017-10-17 - 14:32 AtlasjSilicon  
Microsoft Word filertf KEK122_RJ1_primlist_4local__fe0.rtf r1 manage 2.4 K 2017-10-18 - 13:02 AtlasjSilicon  
Unknown file formatcfg KEK_RJ1_primlist_4local__fe0__887.cfg r1 manage 2.3 K 2017-10-17 - 14:38 AtlasjSilicon  
PNGpng vivado_start_.png r1 manage 132.9 K 2016-03-31 - 08:14 HiromiSawai  
PNGpng vivado_start_0.png r1 manage 153.3 K 2016-03-31 - 08:58 HiromiSawai  
PNGpng vivado_start_3.png r1 manage 64.7 K 2016-03-31 - 14:16 HiromiSawai  
PNGpng vivado_start_copy.png r1 manage 132.9 K 2016-03-31 - 08:15 HiromiSawai  
Edit | Attach | Watch | Print version | History: r15 < r14 < r13 < r12 < r11 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r15 - 2018-09-29 - AtlasjSilicon
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback