MaPSA Probe Testing

Contact jennetd@fnalNOSPAMPLEASE.gov with questions

Hardware

Components from Fermilab:

  • MaPSA Probe Card, with SHV Cables
  • Interface Board, with 3x twisted pair and power cables
  • MaPSA Chuck, with vacuum line and teflon pins. FOR CHUCK WITH SILICON BACKING vacuum should not exceed 22 mmHg
  • FC7, attached to L21 Mezzanine and Imperial Board, with 12V power adapter, ethernet cable, and 68-Pin LVD SCSI Cable
  • MaPSAs to test

Components from testing site:

  • Semi-Automated Probe Station. Summit 12k working for Fermilab, but R61 manual probe station is not adequate
  • Testing PC, Linux (CentOS7)
  • RS-232 to USB Cable
  • Additional Ethernet Card
  • HV Power Supply capable of 1000V Bias. Keithley 2410 Source Meter works well at Fermilab
    • Communication settings: BAUD = 9600, BITS = 8, PARITY = None, TERMINATOR = CR, FLOW-CTRL = None
  • Triple Output Power Supply
  • Global Specialties 1368 Triple Programmable DC Power Supply. Requirements: -1.0V (1.0 A Limit), 4.5V (2.5A Limit), and 2.5V (1.0A Limit)
  • MicroSD card

Testing instruction slides (originally for Micross): https://indico.cern.ch/event/1093262/contributions/4597663/attachments/2338379/3987033/MaPSAInstructions.pdf

Software for MPA Version 1

Install testing code on Linux PC

The operating system used at Fermilab is CentOS7, kernel 3.10.0.1160.62.1. Instructions will need to be adjusted if you are using a different OS.

As root, do:

yum update
yum install boost-devel python-devel python3-devel
yum install epel-release
yum install root
yum install root-net-http root-net-httpsniff root-graf3d-gl root-physics root-montecarlo-eg root-graf3d-eve root-geom libusb-devel xorg-x11-xauth.x86_64
yum install git cmake gcc-c++ gcc binutils libX11-devel libXpm-devel libXft-devel libXext-devel
yum install make rpm-build git-core erlang  tkinter

Install the NI visa libraries by following these instructions. At Padua we used the rpm file ni-rhel7centos7-drivers-2022Q2.rpm

The full list of available packages is here

sudo yum install ni-rhel7centos7-drivers-2022Q2.rpm
sudo yum install ni-visa ni-visa-devel
sudo yum install ni-daqmx ni-daqmx-devel
sudo dkms autoinstall

Install wireshark and rarpd, useful for setting up the FC7

yum install wireshark wireshark-gnome
wget https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/Packages/r/rarpd-ss981107-42.el6.x86_64.rpm
yum localinstall rarpd-ss981107-42.el6.x86_64.rpm

Install pugixml:

yum install pugixml pugixml-devel pugixml-doc

Install ipbus:

yum groups mark remove uhal
sudo yum groupremove uhal
sudo curl https://ipbus.web.cern.ch/doc/user/html/_downloads/ipbus-sw.centos7.x86_64.repo -o /etc/yum.repos.d/ipbus-sw.repo
sudo yum clean all
sudo yum groupinstall uhal controlhub
If you need help, try this page.

(No longer need to be root). Install python 2.7 and related packages

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
python2.7 get-pip.py
python2.7 -m pip install --user numpy scipy matplotlib pandas seaborn
python2.7 -m pip install --user pyvisa pyvisa-py pyusb

Install Gpib

wget https://sourceforge.net/projects/linux-gpib/files/latest/download
tar -zxvf download
cd linux-gpib-4.3.4
tar -zxvf linux-gpib-user-4.3.4.tar.gz
cd linux-gpib-user-4.3.4
./configure
make
sudo make install
cd language/python/
python ./setup.py  install

Install d19c software (will be replaced for MPA 2):

cd MaPSA_Testing
git clone https://gitlab.cern.ch/cms_tk_ph2/d19c-firmware.git FC7
cd FC7/sw/fc7

Before compiling edit two makefiles. In FC7/sw/fc7/fc7/Makefile, the CPP_FLAGS should be

CPP_FLAGS = -std=c++11 -g -O0 -rdynamic -Wall -MMD -MP -fPIC ${INCLUDE_PATH}
In FC7/sw/tests/Makefile, the CPP_FLAGS should be
CPP_FLAGS = -std=c++11 -g -Wall -O0 -rdynamic -MMD -MP -fPIC ${INCLUDE_PATH} -DBIG_ENDIAN_HACK
Now compile:
source setup.sh
make

Load the firmware image to SD card

If you already have an SD card formatted with the golden image, skip to the next section.

Formatting a new SD card with firmware will require an SD card reader. Instructions for formatting the SD card with the Golden Image are available here. NB: if you are using a Mac, use

diskutil list
instead of
fdisk -l

The disk must be unmounted (not ejected!) in order to run the dd command. You can do this in the Disk Utility App.

Communicate with the FC7

Get the MAC address of your FC7 from this page. Edit /etc/ethers so that it reads

08:00:30:00:29:61 192.168.0.8 -> fc7.board.001
For example MAC address 08:00:30:00:29:61 and example FC7 IP address 192.168.0.8 (you can choose this).

Run the following command:

rarpd -a

Try to ping the FC7 by doing, for example,

ping 192.168.0.8

Troubleshoot using wireshark. Some useful hints can be found here.

Download Ph2_ACF from here. Edit settings/MaPSAstation.xml so that line 4 lists the IP address of your FC7. Note that you need to clone recursively to get the submodules!

Flash the firmware

To see the firmware that is available on your SD card, do:

cd /home/fnaltest/Ph2_ACF
source setup.sh
mkdir build; cd build; cmake ..
make -j8
fpgaconfig -c settings/MaPSAstation.xml -l

To check what firmware is available on your SD card: Install Ph2_ACF and view the firmware that is available on your SD card.

For MPA v1: use firmware image d19c_mpa_none_28042019.bin For MPA v2: use firmware image uDTC_MPA_SEU_Dev_PM.bin

If the firmware image you need is not already loaded onto your SD card, copy the relevant file from lxplus here: /afs/cern.ch/user/j/jdickins/public/firmware Load it onto the SD card by doing

fpgaconfig -c settings/MaPSAstation.xml -f $firmwarefile -i $firmwarefile
Check that it is now listed when you run
fpgaconfig -c settings/MaPSAstation.xml -l

Now load the firmware image to the FC7 by doing

fpgaconfig -c settings/MaPSAstation.xml -i $firmwarefile
While this command runs, you will see the lights change under the SCSI cable. Once the firmware is properly loaded, you will see a solid green light and blue light flashing at 1 Hz.

Run a test

Install MPA testing code:

cd MaPSA_Testing
git clone https://gitlab.cern.ch/jdickins/MPA_Test.git
cd MPA_Test
Contact jennetd@fnalNOSPAMPLEASE.gov with access problems.

Make sure the text files d19cScripts/ipaddr.dat and myScripts/ipaddr_my_mp.dat have the IP address of your FC7.

sudo ./minimalstart_mpa_27.sh

To start, run

pon()

If pon is successful (good contact, reasonable current draw), you will see something like

>>> pon()
->     Sent Hard-Reset pulse
->     P_dig: 133.749 mW [V= 0.990 V - I= 135.100 mA]
->     P_ana: 66.686 mW [V= 1.201 V - I= 55.525 mA]
->     P_pad: 16.557 mW [V= 1.189 V - I= 13.925 mA]
->     Total: 216.992 mW [I= 204.550 mA]
->     Initialised SLVS pads and sampling edges
->     Sampling phases tuned
->     Activated normal readout mode
True
True

If contact is not good between the probe needles and probe pads, you will see something like

>>> pon()
->     Sent Hard-Reset pulse
->     P_dig: 128.632 mW [V= 0.991 V - I= 129.800 mA]
->     P_ana: 66.235 mW [V= 1.201 V - I= 55.150 mA]
->     P_pad: 16.632 mW [V= 1.188 V - I= 14.000 mA]
->     Total: 211.499 mW [I= 198.950 mA]
Failed tuning line 0ng phases..
->     Initialised SLVS pads and sampling edges
->     Sampling phases tuned
->     Activated normal readout mode
False
False

Once good contact is achieved and pon() is run successfully, can test an MPA by doing

mpa_test(basepath="../Results_MPATesting/", mapsaid="HPK47_2", chipid="Chip7")
Here, the first argument is the output directory, the second argument is the MaPSA ID, and the third is the chip number.

Also do an IV scan (once per MaPSA):

IVScan(“HPK38_1")
This scans the MaPSA between 0-800V in step of 10V. The time between current measurements can be adjusted with the delay argument. By default the delay is 0.5 seconds.

When you have finished testing a whole MaPSA, you can draw summary plots by doing

python MakeModulePlots.py $mapsaname
This will read directly from the results in Results_MPATesting/$mapsaname

Analysis

Analysis code: https://github.com/jennetd/OT

Round 2 results:

Software for MPA Version 2 (under construction)

Note that the version 2 testing code uses python3, and does not depend on the d19cScripts repository.

No longer as root, install python 3.6 and related packages

curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py
python3 get-pip.py
python3 -m pip install --user numpy scipy matplotlib ipython jupyter pandas seaborn
python3 -m pip install --user pyvisa pyvisa-py pyusb

Install Gpib

wget https://sourceforge.net/projects/linux-gpib/files/latest/download
tar -zxvf download
cd linux-gpib-4.3.4
tar -zxvf linux-gpib-user-4.3.4.tar.gz
cd linux-gpib-user-4.3.4
./configure
make
sudo make install
cd language/python/
python3 ./setup.py  install

Install MPA testing code:

cd MaPSA_Testing
git clone https://gitlab.cern.ch/jdickins/MPA2_Test.git
cd MPA2_Test
checkout dev_mpa2

Make sure the text file utilities/ipaddr.dat contains the IP address of your FC7, and that your ethernet port and IP address are included in utilities/tbconfig.py.

sudo ./start_mpa.sh

To start, run

pon()

If pon is successful (good contact, reasonable current draw), you will see something like

>>> pon()
->     Sent Hard-Reset pulse
->     P_dig: 133.749 mW [V= 0.990 V - I= 135.100 mA]
->     P_ana: 66.686 mW [V= 1.201 V - I= 55.525 mA]
->     P_pad: 16.557 mW [V= 1.189 V - I= 13.925 mA]
->     Total: 216.992 mW [I= 204.550 mA]
->     Initialised SLVS pads and sampling edges
->     Sampling phases tuned
->     Activated normal readout mode
True
True

If contact is not good between the probe needles and probe pads, you will see something like

>>> pon()
->     Sent Hard-Reset pulse
->     P_dig: 128.632 mW [V= 0.991 V - I= 129.800 mA]
->     P_ana: 66.235 mW [V= 1.201 V - I= 55.150 mA]
->     P_pad: 16.632 mW [V= 1.188 V - I= 14.000 mA]
->     Total: 211.499 mW [I= 198.950 mA]
Failed tuning line 0ng phases..
->     Initialised SLVS pads and sampling edges
->     Sampling phases tuned
->     Activated normal readout mode
False
False

Once good contact is achieved and pon() is run successfully, can test an MPA by doing

mpa_test(basepath="../Results_MPATesting/", mapsaid="HPK38_1", chipid="Chip1")
Here, the first argument is the output directory, the second argument is the MaPSA ID, and the third is the chip number.

Keithley Configuration from Operation with VISA Drivers

Baud Rate: 9600
Data Bits: 8
Parity: None
Terminator: CR
Flow Control: None

JennetDickinson - 2022-05-10

JennetDickinson - 2022-02-28

JennetDickinson - 2021-11-03

Edit | Attach | Watch | Print version | History: r32 < r31 < r30 < r29 < r28 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r32 - 2022-07-19 - JennetElizabethDickinson
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

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.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback