You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/source/afe.rst
+10-8Lines changed: 10 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -161,13 +161,15 @@ Both voltages **VTHR** and **VINJ** are generated by a 12-bit digital to analog
161
161
Exercises
162
162
=========
163
163
164
-
The exercises are grouped into three parts. In the first part the basic functionality of the analog front-end is tested. This is accomplished by implementing a script to enable the charge injection and to observe waveforms of the charge sensitive amplifier, shaper, and comparator with an external oscilloscope and/or the fast ADC on the Raspberry Pi base board. In the second part methods to extract analog performance parameters from the digital hit information will be developed. Finally, the full analog signal processing chain will be characterized as a function of shaping time and detector capacitance.
165
164
166
-
The exercise 0 contains preparatory questions that should be answered before coming to the lab.
165
+
166
+
The pre-lab exercises (Exercise 0) are questions which must be answered before coming to the lab, with the method of your choosing, although Latex may be preferable to avoid duplicating effort with the report.
167
+
168
+
The in-lab exercises (Exercise 1-3) are grouped into three section. In the first part the basic functionality of the analog front-end is tested. This is accomplished by implementing a script to enable the charge injection and to observe waveforms of the charge sensitive amplifier, shaper, and comparator with an external oscilloscope and/or the fast ADC on the Raspberry Pi base board. In the second part methods to extract analog performance parameters from the digital hit information will be developed. Finally, the full analog signal processing chain will be characterized as a function of shaping time and detector capacitance.
167
169
168
170
.. admonition:: Exercise 0: Pre-lab questions
169
171
170
-
Please answer the following questions before lab:
172
+
Please answer the following questions before lab:
171
173
172
174
#. The injection circuit generates a charge signal of the size :math:`C_{inj} \cdot V_{inj}`. What is the charge in femto-Coulombs generated by a voltage step of 100 mV with :math:`C_{inj} = 0.1 pF`? What is the charge step size for :math:`V_{inj} = 0.05 mV`? (This voltage step corresponds to the effective LSB size of the injection voltage DAC.) What is the expression to convert these charge values in Coulombs to units of the elementary charge (electrons)?
173
175
#. An ideal charge sensitive amplifier generates a step-like voltage output waveform in response to an instantaneous charge signal at the input. What is the **CSA** output step amplitude for an input charge of 1 fC, assuming the feedback capacitance is :math:`C_{f}=1 pF` ? If charge sensitivity is defined as the output amplitude per input charge, what is its unit?
@@ -183,11 +185,11 @@ Please answer the following questions before lab:
183
185
184
186
.. admonition:: Exercise 1. Characterizing an analog front-end
185
187
186
-
The first set of exercises is intended to familiarize you with the analog front-end hardware and the control software. The goal is to observe the different signals of the analog front-end chain (CSA, SHA, COMP) and to understand the effect of the different circuit parameters on the signal shape. To monitor the signal waveform, connect an oscilloscope to the LEMO socket **OUTPUT**. Use the jumper bank in front of the LEMO socket to select the signal to be monitored manually (**CSA, HPF, SHA, COMP**) or use the setting **MUX** to select the signal to be monitored via your program code with the **SPI** interface. Note: As mentioned in the circuit description above, the shaper circuit adds a total gain of 1000 to the CSA output signal. This gain is split in three gain stages with G=10 that are distributed along the signal chain in front of the **CSA**, the **HPF**, and the **SHA** output, respectively. The **CSA** output is amplified by 10, the **HPF** accumulated amplification is 100 and the shaper output **SHA** finally accumulates the total gain of 1000.
188
+
The first set of exercises is intended to familiarize you with the analog front-end hardware and the control software. The goal is to observe the different signals of the analog front-end chain (CSA, SHA, COMP) and to understand the effect of the different circuit parameters on the signal shape. To monitor the signal waveform, connect an oscilloscope to the LEMO socket **OUTPUT**. Use the jumper bank in front of the LEMO socket to select the signal to be monitored manually (**CSA, HPF, SHA, COMP**) or use the setting **MUX** to select the signal to be monitored via your program code with the **SPI** interface. Note: As mentioned in the circuit description above, the shaper circuit adds a total gain of 1000 to the CSA output signal. This gain is split in three gain stages with G=10 that are distributed along the signal chain in front of the **CSA**, the **HPF**, and the **SHA** output, respectively. The **CSA** output is amplified by 10, the **HPF** accumulated amplification is 100 and the shaper output **SHA** finally accumulates the total gain of 1000.
187
189
188
-
Once you are familiar with the signal generation and monitoring, switch from the external oscilloscope to the fast ADC on the Raspberry Pi base board to record and save the waveform data for further analysis. Connect the monitor signal to the **ADC** input on the base board and set the gain jumper to **1**. The trigger for the waveform acquisition should be derived from the charge injection signal. To select this trigger source set the **TRG** jumper to **GPIO4**. The fast ADC is controlled by a Python script ``osc.py`` which can be found in the folder ``FAST_ADC``. The script needs root privileges to access the interface to the fast ADC and thus has to be started by calling ``sudo -E python osc.py``. A simple command line interface of the ``osc.py`` tool will allow you to set the horizontal resolution and the saving of acquired waveform data to file (csv) or to save a waveform image (png).
190
+
Once you are familiar with the signal generation and monitoring, switch from the external oscilloscope to the fast ADC on the Raspberry Pi base board to record and save the waveform data for further analysis. Connect the monitor signal to the **ADC** input on the base board and set the gain jumper to **1**. The trigger for the waveform acquisition should be derived from the charge injection signal. To select this trigger source set the **TRG** jumper to **GPIO4**. The fast ADC is controlled by a Python script ``osc.py`` which can be found in the folder ``FAST_ADC``. The script needs root privileges to access the interface to the fast ADC and thus has to be started by calling ``sudo -E python osc.py``. A simple command line interface of the ``osc.py`` tool will allow you to set the horizontal resolution and the saving of acquired waveform data to file (csv) or to save a waveform image (png).
189
191
190
-
After reading the above, answer the following questions in your lab report:
192
+
After reading the above, answer the following questions in your lab report:
191
193
192
194
#. A negative charge is injected with the rising edge of the **INJ** signal, which will generate a positive amplitude at the **CSA**, **HPF**, and **SHA** outputs. What happens at the falling edge of the **INJ** signal? What happens if the time delay between the rising and the falling injection signal is too short? What circuit parameters do you have to take into account to estimate the maximum injection frequency?
193
195
#. Implement a routine to continuously inject charge pulses into the CSA and observe the different signals (**CSA**, high-pass filter **HPF**, shaper **SHA**, and comparator **COMP**) while varying the injected charge amplitude, shaper time constants, and comparator threshold. To get a reasonable comparator response, the threshold needs to be set in a range between the baseline of the signal and the pulse peak amplitude (remember the LSB step size of the threshold DAC is 0.5 mV). Advanced: You could use threading to change configuration parameters to avoid needing to stop, modify and restart your injecting loop script (see ``threads.py`` as an example for using threads in Python).
@@ -198,7 +200,7 @@ After reading the above, answer the following questions in your lab report:
198
200
199
201
.. admonition:: Exercise 2. Characterizating a digital read-out
200
202
201
-
In this section, we will understand the behavior of the logic which quantizers and records the hit information in a digital manner. Please answer the following questions in your report:
203
+
In this section, we will understand the behavior of the logic which quantizers and records the hit information in a digital manner. Please answer the following questions in your report:
202
204
203
205
#. First, select the comparator output with the monitor multiplexer. Set a threshold at half of the shaper peak amplitude (the **Vthr** DAC gain is 0.5 mV/DAC step). Observe the pulse width of the comparator output (time-over-threshold, TOT) for different injection amplitudes with an oscilloscope or the ``osc.py`` application. What relation between TOT and injected charge would you expect? Measure (by hand) the average TOT value for 5-10 different input charge values. An automated TOT measurement using the hit signal to start and stop a digital timer will be implemented later with the FPGA lab module.
204
206
#. Implement a scan routine to measure the s-curve of the system. The s-curve is obtained by measuring the hit probability as a function of the injected charge. The charge is varied by changing the injection voltage. The hit probability is calculated by counting the number of hits (using the comparator output pulse) for a given charge step in relation to the total number of injections. Be sure to convert the x-axis of the s-curve from DAC units to charge units (in electrons) **Note:** The effective value of the feedback capacitance is :math:`C_{f}^{eff} = 1.39 pF` due to the parasitic capacitance of the PCB traces and the feedback resistor which add to the nominal value :math:`C_{f} = 1.0 pF`
@@ -207,7 +209,7 @@ In this section, we will understand the behavior of the logic which quantizers a
207
209
208
210
.. admonition:: Exercise 3. Noise performance of complete
209
211
210
-
Finally, we will understand the performance of the system in aggregate. Noise plays a critical role, as you have read in the pre-lab questions:
212
+
Finally, we will understand the performance of the system in aggregate. Noise plays a critical role, as you have read in the pre-lab questions:
211
213
212
214
#. Acquire s-curves for different shaping time constants. What is the effect of the shaping time on the noise? (Do not connect a sensor diode to the CSA during this step, as we just want characterize the AFE circuit in isolation.)
213
215
#. Now connect a sensor diode to the CSA and apply 20 V bias voltage. Repeat the s-curves measurements. What happens if you lower the bias voltage? What is the effect of the detector capacitance on the noise performance?
0 commit comments