Line 152... |
Line 152... |
152 |
A KiCAD design suite had been chosen for PCB layout. However, the version is, despite having integrated CERN Push \& Shove routing capability, slightly unstable as it sometimes crushes due to an exception during routing. On the basis of these stability issues, the design had to be saved quite often. On the other hand, compared to commercially available solutions, such as MentorGraphics PADS or Cadence Orcad, the Open-source KiCAD provides an acceptable option and it easily surpasses a widely used Eagle software.
|
152 |
A KiCAD design suite had been chosen for PCB layout. However, the version is, despite having integrated CERN Push \& Shove routing capability, slightly unstable as it sometimes crushes due to an exception during routing. On the basis of these stability issues, the design had to be saved quite often. On the other hand, compared to commercially available solutions, such as MentorGraphics PADS or Cadence Orcad, the Open-source KiCAD provides an acceptable option and it easily surpasses a widely used Eagle software.
|
153 |
|
153 |
|
154 |
As a part of work on the thesis, new PCB footprints for FMC, SATA a and miniSAS connectors have been designed and were committed to KiCAD github library repository. They are now publicly available on the official KiCAD repository at GitHub.
|
154 |
As a part of work on the thesis, new PCB footprints for FMC, SATA a and miniSAS connectors have been designed and were committed to KiCAD github library repository. They are now publicly available on the official KiCAD repository at GitHub.
|
155 |
|
155 |
|
156 |
|
156 |
|
157 |
ADCdual01A module has several digital data output formats. Distinction between these modes are in number of differential pairs use
|
157 |
ADCdual01A module has several digital data output formats. Difference between these modes lays in the number of differential pairs used
|
158 |
|
158 |
|
159 |
\begitems
|
159 |
\begitems
|
160 |
* 1-lane mode
|
160 |
* 1-lane mode
|
161 |
* 2-lane mode
|
161 |
* 2-lane mode
|
162 |
* 4-lane mode
|
162 |
* 4-lane mode
|
163 |
\enditems
|
163 |
\enditems
|
164 |
|
164 |
|
165 |
All of these modes are supported by module design. For discussed data acquisition system the 1-lane mode was selected. 1-lane mode allows minimal number of differential pairs between ADCdual01A and FPGA. Digital signaling scheme used in 1-lane mode is shown in image \ref[1-line-out].
|
165 |
All of the above-mentioned modes are supported by the module design. For the discussed data acquisition system, the 1-lane mode was selected. 1-lane mode allows a minimal number of differential pairs between ADCdual01A and FPGA. Digital signalling scheme used in 1-lane mode is shown in the following image \ref[1-line-out].
|
166 |
|
166 |
|
167 |
\midinsert
|
167 |
\midinsert
|
168 |
\clabel[1-line-out]{Single line ADC output signals}
|
168 |
\clabel[1-line-out]{Single line ADC output signals}
|
169 |
\picw=15cm \cinspic ./img/ADC_single_line_output.png
|
169 |
\picw=15cm \cinspic ./img/ADC_single_line_output.png
|
170 |
\caption/f Digital signaling schema for 1-line ADC digital output mode.
|
170 |
\caption/f Digital signalling schema for 1-line ADC digital output mode.
|
171 |
\endinsert
|
171 |
\endinsert
|
172 |
|
172 |
|
173 |
ADCdual01A parameters can be set either by jumper setup (referred as parallel programming in device's data sheet) or by SPI interface. SPI interface has been selected for our system, because parallel programming lacks of options (test pattern output setup for example).
|
173 |
ADCdual01A parameters can be set either by jumper setup (referred to as a parallel programming in the device's data sheet) or by SPI interface. SPI interface has been selected for our system, because of the parallel programming lack of options (test pattern output setup for example).
|
174 |
|
174 |
|
175 |
Complete schematic diagram of ADCdual01A module board is included in the appendix.
|
175 |
Complete schematic diagram of ADCdual01A module board is included in the appendix.
|
176 |
|
176 |
|
177 |
|
177 |
|
178 |
\secc ADC modules interface
|
178 |
\secc ADC modules interface
|
Line 205... |
Line 205... |
205 |
\endinsert
|
205 |
\endinsert
|
206 |
|
206 |
|
207 |
|
207 |
|
208 |
Several SATA connectors and two miniSAS connectors are populated on this board. This set of connectors allows a connection of any number of ADC modules within the range of 1 to 8. ADC data outputs should be connected to the miniSAS connectors, while other supporting signals should be routed directly to SATA connectors on adapter.
|
208 |
Several SATA connectors and two miniSAS connectors are populated on this board. This set of connectors allows a connection of any number of ADC modules within the range of 1 to 8. ADC data outputs should be connected to the miniSAS connectors, while other supporting signals should be routed directly to SATA connectors on adapter.
|
209 |
|
209 |
|
210 |
Lengths of differential pairs routed on PCB of module are not matched between pairs. Length variation of differential pairs is not critical in our design according to facts discussed in paragraph \ref[diff-signaling]. Nevertheless signals within differential pairs itself are matched for length. Internal signal traces length mating of differential pairs is mandatory in order to avoid dynamic logic hazard conditions on digital signals. Thus clocks signals are routed most precisely on all designed boards.
|
210 |
Lengths of differential pairs routed on PCB of the module are not matched between the pairs. Length variation of differential pairs is not critical in our design according to facts discussed in paragraph \ref[diff-signaling]. Nevertheless, signals within differential pairs themselves are matched for length. Internal signal tracing of the length matchting of differential pairs is mandatory in order to avoid a dynamic logic hazard conditions on digital signals. Thus clocks' signals are routed in the most precise way on all designed boards.
|
211 |
|
211 |
|
212 |
|
212 |
|
213 |
Signal configuration used in our trial design is described in the following tables.
|
213 |
Signal configuration used in our trial design is described in the following tables.
|
214 |
|
214 |
|
215 |
%% zapojeni SPI, FPGA zpatky necte konfiguraci, ale je tam na slepo nahravana.
|
215 |
%% zapojeni SPI, FPGA zpatky necte konfiguraci, ale je tam na slepo nahravana.
|
Line 230... |
Line 230... |
230 |
P3 & 2 & LA15 & ADC2 CH2 (LTC2271) \cr
|
230 |
P3 & 2 & LA15 & ADC2 CH2 (LTC2271) \cr
|
231 |
}
|
231 |
}
|
232 |
\caption/t miniSAS (FMC2DIFF01A J7) signal connections between modules.
|
232 |
\caption/t miniSAS (FMC2DIFF01A J7) signal connections between modules.
|
233 |
\endinsert
|
233 |
\endinsert
|
234 |
|
234 |
|
235 |
SPI interface is used by unusual way in this design. SPI Data outputs from ADCs are not connected anywhere and read back are not possible, thus configuration written to registers in ADC module cannot be validated. We do not observe any problem with this system, but it may be possible source of failures.
|
235 |
SPI interface is used in an unusual way in this design. SPI Data outputs from ADCs are not connected anywhere and read back is not possible, thus the configuration written to registers in ADC module cannot be validated. We have not observed any problems with this system, but it may be a possible source of failures.
|
236 |
|
236 |
|
237 |
\midinsert \clabel[SPI-system]{Grabber binary output format}
|
237 |
\midinsert \clabel[SPI-system]{Grabber binary output format}
|
238 |
\ctable {ccc}
|
238 |
\ctable {ccc}
|
239 |
{
|
239 |
{
|
240 |
SPI connection J7 & FMC signal & Connected to \cr
|
240 |
SPI connection J7 & FMC signal & Connected to \cr
|
Line 265... |
Line 265... |
265 |
|
265 |
|
266 |
|
266 |
|
267 |
|
267 |
|
268 |
\secc FPGA function
|
268 |
\secc FPGA function
|
269 |
|
269 |
|
270 |
Several tasks are performed by FPGA. Firstly FPGA prepares sampling clock for ADCdual01A modules this task is separate block in FPGA and runs asynchronously to other logic. Second block is SPI configuration module, which sends configuration words to ADC modules after opening of Xillybus interface file. Third block is main module, which resolve ADC - PC communication itself. Last block is activated after ADC configuration.
|
270 |
Several tasks in our design are performed by FPGA. Firstly, FPGA prepares a sampling clock for ADCdual01A modules this task is separate block in FPGA and runs asynchronously compared to other logical circuits. The second block is a SPI configuration module, which sends the content of configuration registers to the ADC modules after opening of Xillybus interface file. The third block represents the main module which resolves ADC - PC communication itself. The last block is activated after ADC configuration.
|
271 |
|
271 |
|
272 |
Communication over PCIe is managed by proprietary IP Core and Xillybus driver, which tranfers data from FPGA registers to host PC. Data appears in system device file "/dev/xillybus_data2_r" on host computer. Binary data which appears in this file after opening are described in table \ref[xillybus-interface].
|
272 |
Communication over PCIe is managed by proprietary IP Core and Xillybus driver, which transfers data from FPGA registers to host PC. Data appear in system device file named "/dev/xillybus_data2_r" on the host computer. Binary data which appear in this file after its opening are described in the table below \ref[xillybus-interface].
|
273 |
|
273 |
|
274 |
\midinsert \clabel[xillybus-interface]{Grabber binary output format}
|
274 |
\midinsert \clabel[xillybus-interface]{Grabber binary output format}
|
275 |
\ctable {clllllllll}{
|
275 |
\ctable {clllllllll}{
|
276 |
\hfil
|
276 |
\hfil
|
277 |
& \multispan9 \hfil 160bit packet \hfil \crl \tskip4pt
|
277 |
& \multispan9 \hfil 160bit packet \hfil \crl \tskip4pt
|
Line 285... |
Line 285... |
285 |
Detailed description of FPGA function can be found in \cite[fpga-middleware]
|
285 |
Detailed description of FPGA function can be found in \cite[fpga-middleware]
|
286 |
|
286 |
|
287 |
|
287 |
|
288 |
\secc Data reading and recording
|
288 |
\secc Data reading and recording
|
289 |
|
289 |
|
290 |
We use Gnuradio software to read the data stream from the ADC drive. Gnuradio suite consist of gnuradio-companion which is a graphical tool for creating signal-flow graphs and generating flow-graph source code. This tool was used to create a basic RAW data grabber to record and interactively view the data stream output from ADC modules.
|
290 |
In order to read the data stream from the ADC drive, we use Gnuradio software. Gnuradio suite consists of gnuradio-companion which is a graphical tool for creating signal-flow graphs and generating flow-graph source code. This tool was used to create a basic RAW data grabber to record and interactively view the data stream output from ADC modules.
|
291 |
|
291 |
|
292 |
\midinsert
|
292 |
\midinsert
|
293 |
\picw=15cm \cinspic ./img/screenshots/Grabber.grc.png
|
293 |
\picw=15cm \cinspic ./img/screenshots/Grabber.grc.png
|
294 |
\caption/f An ADC recorder flow graph created in gnuradio-companion.
|
294 |
\caption/f An ADC recorder flow graph created in gnuradio-companion.
|
295 |
\endinsert
|
295 |
\endinsert
|
Line 297... |
Line 297... |
297 |
\midinsert
|
297 |
\midinsert
|
298 |
\picw=15cm \cinspic ./img/screenshots/Grabber_running.png
|
298 |
\picw=15cm \cinspic ./img/screenshots/Grabber_running.png
|
299 |
\caption/f User interface window of a running ADC grabber.
|
299 |
\caption/f User interface window of a running ADC grabber.
|
300 |
\endinsert
|
300 |
\endinsert
|
301 |
|
301 |
|
302 |
Interactive grabber viewer user interface shows live oscilloscope-like time-value display for all data channels and live time-frequency scrolling display (a waterfall view) for displaying the frequency components of the grabbed signal.
|
302 |
The interactive grabber-viewer user interface shows live oscilloscope-like time-value display for all data channels and live time-frequency scrolling display (a waterfall view) for displaying the frequency components of the grabbed signal.
|
303 |
|
303 |
|
304 |
|
304 |
|
305 |
\sec Achieved parameters
|
305 |
\sec Achieved parameters
|
306 |
|
306 |
|
307 |
\secc ADC module parameters
|
307 |
\secc ADC module parameters
|
308 |
|
308 |
|
309 |
Two pieces of ADC modules were completed and tested. The first piece, labeled ADC1, has LTC2190
|
- |
|
310 |
ADC chip populated with LT6600-5 front-end operational amplifier. It also has a 1kOhm resistors populated on inputs which gives it an ability of an internal attenuation of input signal. The value of this attenuation $A$ is described by the following formula \ref[ADC1-gain]
|
309 |
Two prototypes of ADC modules were assembled and tested. The first prototype, labeled ADC1, has LTC2190 ADC chip populated with LT6600-5 front-end operational amplifier. It also has a 1kOhm resistors populated on inputs which give it an ability of an internal attenuation of the input signal. The value of this attenuation $A$ is described by the following formula \ref[ADC1-gain]
|
311 |
|
310 |
|
312 |
|
311 |
|
313 |
\label[ADC1-gain]
|
312 |
\label[ADC1-gain]
|
314 |
$$
|
313 |
$$
|
315 |
A = {806 \cdot R_1 \over R_1 + R_2}
|
314 |
A = {806 \cdot R_1 \over R_1 + R_2}
|
316 |
$$
|
315 |
$$
|
317 |
|
316 |
|
318 |
Where is
|
317 |
Where the letters stand for:
|
319 |
\begitems
|
318 |
\begitems
|
320 |
* $A$ - Gain of input amplifier.
|
319 |
* $A$ - Gain of an input amplifier.
|
321 |
* $R_1$ - Output impedance of signal source (usually 50 Ohm).
|
320 |
* $R_1$ - Output impedance of signal source (usually 50 Ohm).
|
322 |
* $R_2$ - Value of serial resistors at operational amplifier inputs.
|
321 |
* $R_2$ - Value of serial resistors at operational amplifier inputs.
|
323 |
\enditems
|
322 |
\enditems
|
324 |
|
323 |
|
325 |
We have $R_2 = 1000 \Omega$ and $R_1 = 50 \Omega$ which imply $A = 0.815$. That value of A is confirmed by measurement.
|
324 |
We have $R_2 = 1000 \Omega$ and $R_1 = 50 \Omega$ which imply that $A = 0.815$. That value of A is further confirmed by the measurement.
|
326 |
In our measurement setup we have H1012 Ethernet transformer connected at inputs of ADC. Transformer has 10\% tolerance in impedance and amplification. We measured ADC saturation voltage 705.7 mV (generator output) in this setup due to impedance mismatch and uncalibrated transformer gain.
|
325 |
In our measurement setup we have H1012 Ethernet transformer connected to inputs of ADC. The transformer has a 10\% tolerance in impedance and amplification. We measured ADC saturation voltage of 705.7 mV (generator output) in this setup due to impedance mismatch and uncalibrated transformer gain.
|
327 |
|
326 |
|
328 |
|
327 |
|
329 |
\midinsert
|
328 |
\midinsert
|
330 |
\clabel[ADC1-FFT]{ADC1 sine test FFT}
|
329 |
\clabel[ADC1-FFT]{ADC1 sine test FFT}
|
331 |
\picw=15cm \cinspic ./img/screenshots/ADC1_CH2_FFT.png
|
330 |
\picw=15cm \cinspic ./img/screenshots/ADC1_CH2_FFT.png
|
332 |
\caption/f Sine signal sampled by ADC1 module with LTC2190 and LT6600-5 devices.
|
331 |
\caption/f Sine signal sampled by ADC1 module with LTC2190 and LT6600-5 devices.
|
333 |
\endinsert
|
332 |
\endinsert
|
334 |
|
333 |
|
335 |
|
334 |
|
336 |
For ADC2 we must use formula with different constant \ref[ADC1-gain]. ADC2 module has LT6600-2.5 populated and gain is $A = 2.457$ with same $R_2$ resistors. We measured saturation voltage of 380 mV (generator output) at channel 1 on this ADC. It is well in parameter tolerances of used setup.
|
335 |
For ADC2 we have to use formula with a different constant \ref[ADC1-gain]. The ADC2 module has LT6600-2.5 amplifiers populated on it with gain equal to $A = 2.457$ and uses the same $R_2$ resistors. We measured saturation voltage of 380 mV (generator output) at channel 1 on this ADC. It is well in parameter tolerances of used setup.
|
337 |
|
336 |
|
338 |
\label[ADC2-gain]
|
337 |
\label[ADC2-gain]
|
339 |
$$
|
338 |
$$
|
340 |
A = {1580 \cdot R_1 \over R_1 + R_2}
|
339 |
A = {1580 \cdot R_1 \over R_1 + R_2}
|
341 |
$$
|
340 |
$$
|
342 |
|
341 |
|
343 |
Where is
|
342 |
Where the letters stand for:
|
344 |
\begitems
|
343 |
\begitems
|
345 |
* $A$ - Gain of input amplifier.
|
344 |
* $A$ - Gain of an input amplifier.
|
346 |
* $R_1$ - Output impedance of signal source (usually 50 Ohm).
|
345 |
* $R_1$ - Output impedance of signal source (usually 50 Ohm).
|
347 |
* $R_2$ - Value of serial resistors at operational amplifier inputs.
|
346 |
* $R_2$ - Value of serial resistors at operational amplifier inputs.
|
348 |
\enditems
|
347 |
\enditems
|
349 |
|
348 |
|
350 |
\midinsert
|
349 |
\midinsert
|
351 |
\clabel[ADC2-FFT]{ADC2 sine test FFT}
|
350 |
\clabel[ADC2-FFT]{ADC2 sine test FFT}
|
352 |
\picw=15cm \cinspic ./img/screenshots/ADC2_CH1_FFT.png
|
351 |
\picw=15cm \cinspic ./img/screenshots/ADC2_CH1_FFT.png
|
353 |
\caption/f Sine signal sampled by ADC2 module with LTC2271 and LT6600-2.5 devices.
|
352 |
\caption/f Sine signal sampled by ADC2 module with LTC2271 and LT6600-2.5 devices.
|
354 |
\endinsert
|
353 |
\endinsert
|
355 |
|
354 |
|
356 |
Computed FFT spectra for measured signal are shown in images \ref[ADC2-FFT] and \ref[ADC1-FFT]. Both images confirms that ADCdual01A modules have input dynamical range 80 dB at least.
|
355 |
Computed FFT spectra for measured signal are shown in the images \ref[ADC2-FFT] and \ref[ADC1-FFT]. Both images confirm that ADCdual01A modules have input dynamical range of 80 dB at least.
|
357 |
|
356 |
|
358 |
\chap Example of usage
|
357 |
\chap Example of usage
|
359 |
|
358 |
|
360 |
For additional validation of system design a receiver setup was constructed.
|
359 |
For additional validation of system characteristics a receiver setup has been constructed.
|
361 |
|
360 |
|
362 |
\sec Basic interferometric station
|
361 |
\sec Basic interferometric station
|
363 |
|
362 |
|
364 |
Interferometry station was selected as most basic setup. We connected the new data acquisition system to two SDRX01B receivers. Block schematic of used setup is shown in image \ref[block-schematic]. Two ground-plane antennas were used and mounted outside of balcony at CTU building at location 50$^\circ$ 4\' 36.102\" N, 14$^\circ$ 25\' 4.170\" E.
|
363 |
Interferometry station was chosen to serve as the most basic experimental setup. We connected the new data acquisition system to two SDRX01B receivers. Block schematics of the setup used is shown in image \ref[block-schematic]. Two ground-plane antennae were used and mounted outside the balcony at CTU building at location 50$^\circ$ 4\' 36.102\" N, 14$^\circ$ 25\' 4.170\" E.
|
365 |
Antennas were equipped by LNA01A amplifiers. Coaxial cable length are matched for 5 meters. And antennas were isolated by common mode ferrite bead mounted on cable for minimize signal coupling between antennas. Evaluation system consists SDGPSDO local oscillator subsystem used for tuning local oscillator frequency.
|
364 |
Antennae were equipped by LNA01A amplifiers. All coaxial cables have the same length of 5 meters. Antennae were isolated by common mode ferrite bead mounted on cable to minimise the signal coupling between antennas. Evaluation system consists of SDGPSDO local oscillator subsystem used to tune the local oscillator frequency.
|
366 |
|
365 |
|
367 |
\midinsert
|
366 |
\midinsert
|
368 |
\clabel[block-schematic]{Receiver block schematic}
|
367 |
\clabel[block-schematic]{Receiver block schematic}
|
369 |
\picw=10cm \cinspic ./img/Coherent_UHF_SDR_receiver.png
|
368 |
\picw=10cm \cinspic ./img/Coherent_UHF_SDR_receiver.png
|
370 |
\caption/f Complete receiver block schematic of dual antenna interferometric station.
|
369 |
\caption/f Complete receiver block schematic of dual antenna interferometric station.
|