Calibration of the ProtoDUNE ADC Non-linearity
Wenqiang Gu Brookhaven National Laboratory
1
ADC Non-linearity Wenqiang Gu Brookhaven National Laboratory 1 - - PowerPoint PPT Presentation
Calibration of the ProtoDUNE ADC Non-linearity Wenqiang Gu Brookhaven National Laboratory 1 Outline ProtoDUNE TPC readout electronics ADC nonlinearity (NL) and other issues Motivation and idea of the NL calibration Validation
Wenqiang Gu Brookhaven National Laboratory
1
2
WIRE SIGNAL
3
µBooNE: 14 mv/fC + 2.0 µs
Argon Time Projection Chambers,
4
FPGA Internal Pattern Generator 2:1 MUX RST READ IDXM IDXL IDL Clock 200MHz (100MHz) RST READ IDXM IDXL IDL FE ASIC CHN0 CHN15 Input Buffer ADC15 ADC0 D0 – D11 D0 – D11 FIFO CLK1:CLK0 2 Global bits (CLK1:CLK0) 00 or 11 : Control signals from internal logic 01: ADC control signals directly from FPGA
P1 ADC ASIC
e.g. 2048 = 100,000,000,000 Most significant bits (MSB) Least significant bits (LSB)
5
FPGA Internal Pattern Generator 2:1 MUX RST READ IDXM IDXL IDL Clock 200MHz (100MHz) RST READ IDXM IDXL IDL FE ASIC CHN0 CHN15 Input Buffer ADC15 ADC0 D0 – D11 D0 – D11 FIFO CLK1:CLK0 2 Global bits (CLK1:CLK0) 00 or 11 : Control signals from internal logic 01: ADC control signals directly from FPGA
P1 ADC ASIC
signals
6
FPGA Internal Pattern Generator 2:1 MUX RST READ IDXM IDXL IDL Clock 200MHz (100MHz) RST READ IDXM IDXL IDL FE ASIC CHN0 CHN15 Input Buffer ADC15 ADC0 D0 – D11 D0 – D11 FIFO CLK1:CLK0 2 Global bits (CLK1:CLK0) 00 or 11 : Control signals from internal logic 01: ADC control signals directly from FPGA
P1 ADC ASIC
MHz clock (2 MHz digitization) or taken externally
7
FPGA Internal Pattern Generator 2:1 MUX RST READ IDXM IDXL IDL Clock 200MHz (100MHz) RST READ IDXM IDXL IDL FE ASIC CHN0 CHN15 Input Buffer ADC15 ADC0 D0 – D11 D0 – D11 FIFO CLK1:CLK0 2 Global bits (CLK1:CLK0) 00 or 11 : Control signals from internal logic 01: ADC control signals directly from FPGA
P1 ADC ASIC
waveform e.g. 101,001 ⇒ 000,000 or 111,111
them and interpolating the waveform
electronics and read/write logics
8
noise non-linearity stuck bit at 63 stuck bit at 0
waveform e.g. 101,001 ⇒ 000,000 or 111,111
them and interpolating the waveform
9
useful range
By Hucheng
10
11 WIRE SIGNAL
CALIBRATION SIGNAL (KNOWN VOLTAGE)
Also, NL is sensitive to clock settings
each ADC
four ADC curcuits
12
Preamplifier 𝜊: gain R(t): response Pulser ηδ(t) ADC fNL: non-linearity V(t) A(t)
Data/Simulation Comparison and Performance in MicroBooNE arXiv:1804.02583
Caveat: cold environment also changes the response
13
a direct measurement
14
ADCmeasure ADCtrue A MC simulatoin
A(t) t
𝜃𝐻: 64*4 A(t) t × 1/ 𝜃𝐻 with NL
and the preamp gain do NOT change the shape
differently for high ADC and low ADC
15
V(t) t
𝜃𝐻: 64*4 pulse voltage & preamp gain V(t) t × 1/ 𝜃𝐻 w/o NL
w/o NL with NL All waveforms match perfectly
16
ADCmeasure ADCtrue × 1/ 𝜃𝐻 Input NL in MC
should be a solvable problem
17
NL varies among channels
ADCmeasure
ΔV Pluse input
C (~185fF)
pin62 Chn_N
CSA SHAPER
Gain: 4.7, 7.8, 14, 25 mV/fC VDAC: 0 ~ 1.2V 63 steps
18
Amp output saturation Amp input saturation Pulse voltage Preamp output voltage 9900 points 10 MHz effective sample rate
in preamp, a 10k data set is possible
ADCmeasure / (VDAC × Gamp) ADCtrue
ADCmeasure
𝜓2(𝛽) =
𝑗
𝐵𝑗 + 𝑔 𝛽 𝐵𝑗 − 𝑆 𝛽−1 𝑢𝑙 𝐻𝑗
2
19
i-th data point NL correction function
(To be fitted out)
index of the 𝛽-th iteration 𝐻𝑗 = pulse voltage × preamp gain
(A normalization of charge input)
Time tick for 𝐵𝑗 𝑆 𝛽−1 (𝑢𝑙) =
1 𝑂 σ 𝐵𝑗+𝑔(𝛽−1)(𝐵𝑗) 𝐻𝑗
is the effective response function
(Calculated with the NL function from best fit
(𝐵𝑗, 𝐻𝑗, 𝑢𝑙)
𝑔 𝐵𝑗 = 𝑧0 + 𝑧1 − 𝑧0 1000 𝐵𝑗 − 0 , 𝐵𝑗 ∈ [0,1000) 𝑧1 + 𝑧2 − 𝑧1 1000 𝐵𝑗 − 1000 , 𝐵𝑗 ∈ [1000,2000) 𝑧2 + 𝑧3 − 𝑧2 1000 𝐵𝑗 − 2000 , 𝐵𝑗 ∈ [2000,3000) 𝑧3 + 𝑧4 − 𝑧3 1000 𝐵𝑗 − 3000 , 𝐵𝑗 ∈ [3000,4000) = 𝑐0𝑧0 + 𝑐1𝑧1 + 𝑐2𝑧2 + 𝑐3𝑧3 + 𝑐4𝑧4
= 𝑐0 = 1 −
𝐵𝑗 1000 , 𝑐1 = 𝐵𝑗 1000 , 𝐵𝑗 ∈ [0,1000)
𝑐1 = 1 − 𝐵𝑗−1000
1000 , 𝑐2 = 𝐵𝑗−1000 1000 , 𝐵𝑗 ∈ [1000,2000)
𝑐2 = 1 − 𝐵𝑗−2000
1000 , 𝑐3 = 𝐵𝑗−2000 1000 , 𝐵𝑗 ∈ [2000,3000)
𝑐3 = 1 − 𝐵𝑗−3000
1000 , 𝑐4 = 𝐵𝑗−3000 1000 , 𝐵𝑗 ∈ [3000,4000)
20
For a piecewise function, the coefficients are calculated before the minimization
1000 2000 3000 4000 y1 y2 y3 y4 y5 𝐵𝑗 𝑔(𝐵𝑗)
bothers = 0
effective response function 𝑆(𝑢𝑙) is obtained e.g., 𝑔 𝐵𝑗 = 𝑐0𝑧0 + 𝑐1𝑧1 + ⋯ + 𝑐4𝑧4 (five points) 𝜓2 = σ 𝐵𝑗 + 𝑐0𝑧0 + ⋯ + 𝑐4𝑧4 − 𝑆(𝑢𝑙)𝐻𝑗 2 =
𝐵𝑗−𝑆𝐻𝑗 … 𝐵𝑛−𝑆𝐻𝑛 − −𝑐0
𝑗
… −𝑐1
𝑗
… −𝑐2
𝑗
… −𝑐3
𝑗
… −𝑐4
𝑗
… 𝑧0 𝑧1 𝑧2 𝑧3 𝑧4 2
= 𝑁 − 𝑆 ⋅ 𝑇 2 ⇒ By minimizing 𝜓2, {𝑧0, 𝑧1, 𝑧2, 𝑧3, 𝑧4} ≡ 𝑇 = 𝑆𝑈𝑆 −1𝑆𝑈𝑁 ⇒ Iterate the minimization until 𝑔 𝐵𝑗 converges
21
response 𝑆(𝑢) tends to be stable
22
True
𝑆(𝑢)
True Initial
ADCtrue – ADCmeasure ADCmeasure
Electronics response bias ≈ 9 NL bias?
values close to the true values
23
𝜓2= 5E-5 (iter# 5)
24
Δ=3.5
Initial
𝜓2= 0.0016 (iter# 5)
25
time R(t)
Signal formation 𝐵𝑗 = 𝑆 ⋅ 𝐻𝑗 − 𝑔
𝑗 Electronics response Charge input NL effect
Signal processing 𝐻𝑗 = 𝐵𝑗 + 𝑔
𝑗 /𝑆 Signal measurement NL correction Electronics response deconvolution
Given a data set {𝐵𝑗, 𝐻𝑗}, and two “best-fits” 𝑔
𝑗
𝑆 = (𝐵𝑗 + 𝑔
𝑗)/𝐻𝑗
𝑔
𝑗 ′
𝑆′ = (𝐵𝑗 + 𝑔
𝑗 ′)/𝐻𝑗
𝑆′𝐻𝑗 − 𝑔
𝑗 ′
𝑆𝐻𝑗 − 𝑔
𝑗 ⇒
𝑩𝒋 ⇐ Similarly, for a signal 𝐵𝑗, two effective NL and response lead to same charge results For a charge 𝐻𝑗, Two “best-fit” NL and responses are equivalent for charge deconvolution!
the waveform predictions are close (<1 ADC) for
best-fit of {𝑧𝑗} = {0,0,0,0,0}
26
ADCmeasure Fitted response + fitted NL True response + true NL
NL bias in “best-fit” is not a problem!
NL correction
studied through a simplified Monte Carlo study (will improve it!)
effective ADC NL and an effective electronics response function of the preamplifier can be obtained
effective response functions
27
28
and switch to a new run
calibration, it will take about 1.5 days in switching runs
a) Reduce the number of scan by studying the precision of calibration b) Develop a new DAQ software module that allows FE changes during a run
29