Formerly known as the Zmod ADC.
The Digilent Zmod Scope is an open-source hardware SYZYGY™ 1)compatible pod containing a dual-channel ADC and the associated front end. The Zmod Scope is intended to be used with any SYZYGY™ compatible carrier board having the required capabilities.
Figure 1. Zmod Scope top and bottom views.
The Zmod Scope was designed to be a piece in a modular, HW and SW open-source ecosystem. The Zmod Scope can acquire two signals, with simultaneous sampling. Combined with a SYZYGY™ carrier, other SYZYGY™ compatible pods, Zmod Scope can be used for a variety of applications: data acquisition systems, closed loop controllers, scopes, etc.
The Zmods in the family are similar, with small loading and performance differences, as explained in the current user manual. In this document, all the members of the family are generically referred as Zmod Scope and only aspects which differ between members are explicitly shown.
Table 1. Zmod Scope family features
| Features/Version | 1410-40 | 1410-105 | 1410-125 | 1210-40 | 1210-125 | 1010-40 | 1010-125 |
|---|---|---|---|---|---|---|---|
| ADC | AD9251BCPZ-40 | AD9648BCPZ-105 | AD9648BCPZ-125 | AD9231BCPZ-40 | AD9628BCPZ-125 | AD9204BCPZ-40 | AD9608BCPZ-125 |
| Input Channels | 2 | ||||||
| Input range - Low Range | ±1V | ||||||
| Input range - High Range | ±25V | ||||||
| Resolution [bits] | 14 | 14 | 14 | 12 | 12 | 10 | 10 |
| Absolute resolution - Low Range | 0.13mV | 0.13mV | 0.13mV | 0.51mV | 0.51mV | 2mV | 2mV |
| Absolute resolution - High Range | 3.2mV | 3.2mV | 3.2mV | 12.8mV | 12.8mV | 51.3mV | 51.3mV |
| Accuracy [% of Input range] | ±0.2% | ||||||
| Sample rate - max [MSPS] | 40 MSPS | 105 MSPS | 125 MSPS | 40 MSPS | 125 MSPS | 40 MSPS | 125 MSPS |
| Analog Bandwidth @ 3dB | 20 MHz | 70 MHz | 70 MHz | 20 MHz | 70 MHz | 20 MHz | 70 MHz |
| Analog Bandwidth @ 0.5dB | 8 MHz | 30 MHz | 30 MHz | 8 MHz | 30 MHz | 8 MHz | 30 MHz |
| Analog Bandwidth @ 0.1dB | 4 MHz | 20 MHz | 20 MHz | 4 MHz | 20 MHz | 4 MHz | 20 MHz |
| Input resistance [MΩ] | 1 MΩ/18 pF | ||||||
This document describes the Zmod Scope's circuits, with the intent of providing a better understanding of its electrical functions, operations, and a more detailed description of the hardware’s features and limitations. It is not intended to provide enough information to enable complete duplication of the Zmod Scope, but can help users to design custom configurations for programmable parts in the design.
Zmod Scope's block diagram is presented in Fig. 2 below. The core of the Analog Zmod Scope is a dual channel, high speed, low power ADC, as shown in Table 1. The carrier board is responsible to configure the internal registers of the ADC circuit, provide the acquisition clock and receive the data.
The Analog Input block is also called the Scope, because of similar structure and behavior to such a front end. The signals in this circuitry use a “SC” indexes to indicate they are related to the scope block. Signals and equations also use certain naming conventions. Analog voltages are prefixed with a “V” (for voltage), and suffixes and indexes are used in various ways: to specify the location in the signal path (IN, MUX, BUF, ADC, etc.); to indicate the related instrument (SC, etc.); to indicate the channel (1 or 2); and to indicate the type of signal (P, N, or diff). Referring to the block diagram in Fig. 2 below:
In the sections that follow, schematics are not shown separately for identical blocks. For example, the Scope Input Divider and Gain Selection schematic is only shown for channel 1 since the schematic for channel 2 is identical. Indexes are omitted where not relevant. As examples, in equation \ref{1} below, $V_{SCOPE-SMA}$ does not contain the channel index (because the equation applies to both channels 1 and 2).
Figure 2. Zmod Scope Block diagram.
Fig. 3 shows the scope input divider and gain selection stage.
C5 and C6 are capacitive trimmers, 3…10pF, -0/+50% tolerance. The worse case range is 4.5…10pF. All other capacitors are 1% tolerance, all the resistors are 0.1%.
The IC1 relay switches between two symmetrical R-C dividers. Each of them provide:
The maximum voltage rating for scope inputs is limited to:
$$-50V<V_{SCOPE-SMA}<50V\label{1}\tag{1}$$
The DC low gain is: $$\frac {V_{SC-LG}}{V_{SCOPE-SMA}}=\frac {R_5}{R_1+R_3+R_5}=0.04\label{2}\tag{2}$$
The High Range (at low gain): $$-25V \le V_{SCOPE-SMA} \le 25V\label{3}\tag{3}$$
The high gain is: $$\frac {V_{SC-HG}}{V_{SCOPE-SMA}} = \frac {R_4 + R_6}{R_2 + R_4 + R_6} = 0.96 \label{4}\tag{4}$$
The Low Range (at high gain): $$-1V \le V_{SCOPE-SMA} \le 1V \label{5}\tag{5}$$
The two dividers are designed to have the same equivalent impedance (both active and reactive):
$$R_{ech} = R_1 + R_3 + R_5 = R_2 + R_4 + R_6 = 1Mohm\label{6}\tag{6}$$
Experiments shown that there are significant parasitic capacities of the layout and buffer input stage: CPH (high gain divider), parallel to C6, and CPL (low gain divider), parallel to C7. The trimmers should compensate for these parasitic capacities and adjust for perfect matching:
$$C_3*R_2 = (C_{PH} + C_6)*(R_4+R_6)\label{7}\tag{7}$$ $$(C_{PH} + C_6) = \frac{C_3*R_2}{R_4+R_6} = 18pF\label{8}\tag{8}$$
$$(C_4 + C_5)*(R_1 + R_3) = (C_{PL} + C_7)*R_5\label{9}\tag{9}$$ $$(C_{PL} + C_7) = (C_4 + C_5)*\frac{(R_1 + R_3)}{R_5}\label{10}\tag{10}$$
With the chosen values, the correct adjustment results in about mid-position of trimmers C5 and C6:
$$C_5 = C_6 = 7pF\label{11}\tag{11}$$
which solves the parasitic capacities as:
$$C_{PH} = 11pF\label{12}\tag{12}$$ $$C_{PL} = 8.8pF\label{13}\tag{13}$$
The Low Gain and High Gain dividers have very close equivalent capacitance, within the tolerances and model approximations:
$$C_{HGech} = \frac{C_3*R_2}{R_2+R_4+R_6} = C_{ech} = 17.28pF\label{14}\tag{14}$$ $$C_{LGech} = \frac{(C_7+C_{PL})*R_5}{R_1+R_3+R_5} = 16.03p\label{15}\tag{15}$$
Experiments show that the equivalent capacitances are even closer than the values above, about 18pF. The computing error mainly derives from trimmer position approximation.
$$C_{ech} = 18p\label{16}\tag{16}$$
The IC2 relay shorts the C1 capacitor when DC coupling is desired. Otherwise, C1 forms a High Pass filter with the selected divider, for AC coupling, with the corner frequency:
$$f_c = \frac{1}{2*\pi*R_{ech}*(C_{ech}+C_{1})} \approx \frac{1}{2*\pi*R_{ech}*C_{1}} = 10.6Hz\label{17}\tag{17}$$
Figure 3. Input divider and gain selection.
IC1 and IC2 in Fig. 3, are HFD4/4.5L latching relays (possible replacement: IM42GR). The schematic shows the “reset” position. A relay is “set” when a positive voltage is applied at the coil terminals and it is “reset” when a negative voltage is applied (see the polarity on the schematic symbol). The relay keeps state when no current flows trough the coil (the terminals are driven at the same voltage or at least one of the terminals is “open”). The nominal coil voltage is 4.5V.
The IC16, IC17 and IC18 in Fig. 4 are A3910EEETR-T drivers for the relays. They feature:
Normally, all of them have both HIN and LIN inputs “low” or both “High” driving the “OUT” pins “High Z”. To “set” a relay, OUT2 of IC16 is set “Low” (HIN=“Low”, LIN=“High”) and the corresponding OUT pin of IC17 or IC18 is set “High” (HIN=“High”, LIN=“Low”). All other OUT pins are set “High Z”. To “reset” a relay, OUT2 of IC16 is set “High” (HIN=“High”, LIN=“Low”) and the corresponding OUT pin of IC17 or IC18 is set “Low” (HIN=“Low”, LIN=“High”). All other OUT pins are set “High Z”.
Figure 4. Relay Drivers.
IC14 and IC15 in Fig. 5 are 74LVC07ABQ open-drain gates used as level translators from VADJ = 1.8V to VCC5V0 = 5V.
The scope buffer stage provides very high impedance as load for the input divider.
The gain is: $$\frac {V_{BUFF}}{V_{SC-HLG}}=1\label{20}\tag{20}$$
The actual input and output range (for nominal usage) is:
$-1V<V_{SC-HLG}=V_{BUFF}<1V\label{21}\tag{21}$
The scope reference stage generates the 1V reference voltage for the ADC, as well as other internal reference voltages.
$$V_{REFADC}=1V\label{23}\tag{23}$$
The ADC driver is used for:
The Zmod Scope uses a dual channel, high speed, low power, 14-bit, 105MS/s ADC, as shown in Fig. 11.
Figure 11. ADC (C114 and C115 are NoLoad for Zmod Scope XXXX-105 and Scope XXXX-125, respectively 39pF for Zmod Scope XXXX-40)
The differential inputs are driven via a low-pass filter comprised of C114 together with R13, R15, R16, R17 in the buffer stage. The differential clock is AC-coupled and the line is impedance matched. The clock is internally divided by 4 to operate the ADC. The ADC generates the common mode reference voltage (VCM_SC) to be used in the buffer stage.
The digital stage of the ADC and the corresponding FPGA bank are supplied at 1.8V by the SYZYGY™ voltage Vadj.
The multiplexed mode is used, to combine the two channels on a single data bus and minimize the number of used FPGA pins. CLKOUT_SC is provided to the FPGA for synchronizing data.
The nominal differential ADC input voltage range is:
$$-1V<V_{ADC\;diff}<1V\label{33}\tag{33}$$
The total scope gains (from the SMA connectors to the ADC inputs) are:
$$Low \; gain = \frac{V_{ADC\;diff}}{V_{SCOPE-SMA}}=0.038\label{38}\tag{38}$$ $$High \; gain = \frac{V_{ADC\;diff}}{V_{SCOPE-SMA}}=0.91\label{39}\tag{39}$$
Considering the ADC input voltage range shown in \ref{33}:
$$at \; low \; gain: -26.3V<V_{SCOPE-SMA}<26.3V$$ $$at \; high \; gain: -1.1V<V_{SCOPE-SMA}<1.1V\label{40}\tag{40}$$
To cover component value tolerances and to allow software calibration, only the ranges below are specified.
$$at \; low \; gain: -25V<V_{SCOPE-SMA}<25V\label{41}\tag{41}$$ $$at \; high \; gain: -1V<V_{SCOPE-SMA}<1V\label{42}\tag{42}$$
With the 14-bit ADC, the absolute resolution of the scope is (see Table 1):
$$at \; low \; gain: \frac{52.6V}{2^{n}}\label{43}\tag{43}$$ $$at \; high \; gain: \frac{2.12V}{2^{n}}n\label{44}\tag{44}$$
For Vin voltage value at the input of the Scope channel, the Zmod Scope sends a signed n bit integer, N. This value is used to compute Vin:
$$V_{in} = \frac{N \cdot Range \cdot (1+CG)}{2^{n-1}} + CA \label{45}\tag{45}$$
were:
Fig. 12 shows a typical spectral characteristic of the scope input stage. A PXIe-5433 80 MHz Function/Arbitrary Waveform Generator was used to generate the input signal of 0.9V, for High Gain Scale, respectively 10V for the Low Gain scale. A Tektronix DPO5204B scope was used for measuring the reference signal (at the scope SMA connector) and the output signal (at the input of the ADC). A differential probe was used to read the output signal on the pads of the unloaded C115. The signal swept from 800kHz to 80MHz. The effective values of the input and output signals were recorded for each frequency. The measurements were further processed to display the input stage frequency characteristics, as shown in Fig. 10.
For Zmod Scope XXXX-100MHz and Zmod Scope XXXX-125MHz, for both scales, the 3dB bandwidth is 70MHz+. The 0.5dB bandwidth is 30MHz and the 0.1dB bandwidth is 20MHz. For Zmod Scope XXXX-40MHz, for both scales, the 3dB bandwidth is 20MHz+. The 0.5dB bandwidth is 8MHz and the 0.1dB bandwidth is 4MHz
The standard -3dB bandwidth definition is derived from filter theory. At cutout frequency, the scope attenuates the spectral components by 0.707, assuming an error of ~30%, way too high for a measuring instrument. The bandwidth with a specified flatness is useful to better define the scope spectral performances. The bandwidth @ 0.5dB, means a flatness error of a max 5.6%, while bandwidth @ 0.1dB means flatness error of a max 1.1%.
Figure 12. Scope input stage Bandwidth - Low Gain scale (up) and High Gain scale (down). 0.5dB detail (right)
The ATtinny44 MCU in Fig. 13 works as a I2C memory, storing the SYZYGY™ DNA information and the Calibration Coefficients. The J5 connector is used for programming the MCU and the SYZYGY™ DNA at manufacturing.
The DNA and the Factory Calibration Coefficients are stored in the Flash memory of the MCU, which appears to the I2C interface as “read-only”. The User Calibration Coefficients are stored in the EEPROM memory of the MCU, which is write-protected via a magic number at a magic address. The memory structure can be consulted below.
Figure 13. The MCU
Table 2. The Flash memory structure
| Address | Function | Size (Bytes) |
|---|---|---|
| 0x8000 - 0x80FF | DNA | 256 |
| 0x8100 - 0x817F | Factory Calibration | 128 |
| 0x8180 - 0x83FF | Future use | 896 |
The Zmod Scope is compliant with SYZYGY™ Specification. It contains an MCU able to calculate the Geographical Address and provide the DNA information via I2C. The DNA is stored in the MCU FLASH at the address range: 0x8000 - 0x80FF with the following structure:
Table 3. The Zmod Scope DNA structure
| Contents | Type | Size(Bytes) | Value | Address |
|---|---|---|---|---|
| DNA full data length | uint16 | 2 | 91 | 0x8000 |
| DNA header length | uint16 | 2 | 40 | 0x8002 |
| SYZYGY DNA major version | uint8 | 1 | 1 | 0x8004 |
| SYZYGY DNA minor version | uint8 | 1 | 0 | 0x8005 |
| Required SYZYGY DNA major version | uint8 | 1 | 1 | 0x8006 |
| Required SYZYGY DNA minor version | uint8 | 1 | 0 | 0x8007 |
| Maximum operating 5V load (mA) | uint16 | 2 | 400 | 0x8008 |
| Maximum operating 3.3V load (mA) | uint16 | 2 | 100 | 0x800A |
| Maximum VIO load (mA) | uint16 | 2 | 270 | 0x800C |
| Attribute flags | uint16 | 2 | 0 | 0x800E |
| Minimum operating VIO (10 mV steps) | uint16 | 2 | 180 | 0x8010 |
| Maximum operating VIO (10 mV steps) | uint16 | 2 | 180 | 0x8012 |
| Minimum operating VIO (10 mV steps) | uint16 | 2 | 170 | 0x8014 |
| Maximum operating VIO (10 mV steps) | uint16 | 2 | 190 | 0x8016 |
| Minimum operating VIO (10 mV steps) | uint16 | 2 | 0 | 0x8018 |
| Maximum operating VIO (10 mV steps) | uint16 | 2 | 0 | 0x801A |
| Minimum operating VIO (10 mV steps) | uint16 | 2 | 0 | 0x801C |
| Maximum operating VIO (10 mV steps) | uint16 | 2 | 0 | 0x801E |
| Manufacturer name length | uint8 | 1 | 12 | 0x8020 |
| Product name length | uint8 | 1 | a) | 0x8021 |
| Product model / Part number length | uint8 | 1 | a) | 0x8022 |
| Product version / revision length | uint8 | 1 | 1 | 0x8023 |
| Serial number length | uint8 | 1 | 12 | 0x8024 |
| RESERVED | uint8 | 1 | 0 | 0x8025 |
| CRC-16 (most significant byte) | uint8 | 1 | b) | 0x8026 |
| CRC-16 (least significant byte) | uint8 | 1 | c) | 0x8027 |
| END DATA HEADER | ||||
| Manufacturer name | string | 12 | Digilent Inc | 0x8028 |
| Product name | string | a) | e) | d) |
| Product model / Part number | string | a) | e) | d) |
| Product version / revision | string | 1 | f) | d) |
| Serial number | string | 12 | 210396000000 | d) |
| a) | 13 | for Zmod Scope 1410 |
|---|---|---|
| 17 | for Zmod Scope 1410-105 | |
| 17 | for Zmod Scope XXXX-125 | |
| 16 | for Zmod Scope XXXX-40 | |
| b) | CRC computed over the addresses 0x8000-0x8025: most significant byte | |
| c) | CRC computed over the addresses 0x8000-0x8025: least significant byte | |
| d) | the subsequent address (hexadecimal) | |
| e) | Zmod Scope 1410, Zmod Scope 1410-105, Zmod Scope 1410-125, Zmod Scope 1210-125, Zmod Scope 1010-125, Zmod Scope 1410-40, Zmod Scope 1210-40, Zmod Scope 1010-40 - upon case | |
| f) | A, B, C, etc - upon case | |
The analog circuitry described in previous chapters includes passive and active electronic components. The datasheet specs show parameters (resistance, capacitance, offsets, bias currents, etc.) as typical values and tolerances. The equations in previous chapters consider typical values. Component tolerances affect DC and AC performances of the Zmod Scope. To minimize these effects, the design uses:
A software calibration is performed on each device as a part of the manufacturing test. Reference signals are connected to the Scope inputs. A set of measurements is used to identify all the DC errors (Gain, Offset) of each analog stage. Correction (Calibration) parameters are computed and stored in the Calibration Memory, on the Zmod Scope device, both as Factory Calibration Data and User Calibration Data. The WaveForms software allows the user performing an in-house calibration and overwrite the User Calibration Data. Returning to Factory Calibration is always possible.
The Software reads the calibration parameters from the Zmod Scope MCU via the I2C bus and uses them to correct the acquired signals. The structure of the calibration data is shown below:
Table 4. The Calibration Data Structure
| Heading 1 | Name | Size (Bytes) | Type | Flash Address (Factory Calibration) | EEPROM Address (User Calibration) |
|---|---|---|---|---|---|
| Magic ID | 1 | uchar 0xAD | 0x8100 | 0x7000 | |
| Calibration Time | 4 | unix timestamp | 0x8104 | 0x7004 | |
| Channel 1 LG Gain | CG | 4 | float32 | 0x8108 | 0x7008 |
| Channel 1 LG Offset | CA | 4 | float32 | 0x810C | 0x700C |
| Channel 1 HG Gain | CG | 4 | float32 | 0x8110 | 0x7010 |
| Channel 1 HG Offset | CA | 4 | float32 | 0x8114 | 0x7014 |
| Channel 2 LG Gain | CG | 4 | float32 | 0x8118 | 0x7018 |
| Channel 2 LG Offset | CA | 4 | float32 | 0x811C | 0x701C |
| Channel 2 HG Gain | CG | 4 | float32 | 0x8120 | 0x7020 |
| Channel 2 HG Offset | CA | 4 | float32 | 0x8124 | 0x7024 |
| Reserved Area | 68 | - | 0x8168 | 0x7068 | |
| Log | 22 | string | 0x817E | 0x707E | |
| CRC | 1 | uchar | 0x817F | 0x707F |
Table 5. The EEPROM Memory Map
| Address | Function | Size (Bytes) |
|---|---|---|
| 0x7000 - 0x707F | User Calibration | 128 |
| 0x7080 - 0x70FF | Future Use | 128 |
At the power up the EEPROM memory is protected against write operations. To disable the write protection one has to write a magic number to a magic address over I2C. To re-enable the write protection one has to write a any other number to the magic address.
Table 6. The Write Protection Disable magic number and address
| Magic Number | Magic Address |
|---|---|
| 0xD2 | 0x6FFF |
This block includes the internal power supplies.
The Zmod Scope gets the digital rails from the carrier board, via the SYZYGY connector:
The internal analog rails sequence is:
The analog supply AVCC1V8 is built from VCC5V0 using IC21, an ADP2138 Fixed Output Voltage, 800mA, 3MHz, Step-Down DC-to-DC converter. To insure low output voltage ripple a second LC filter (FB9 in Fig. 9) is added and forced PWM mode is selected.
The analog supply AVCC3V0 is built from VCC3V3 using IC22, an ADP122 5.5 V Input, 300 mA, Low Quiescent Current, CMOS Linear Regulator, Fixed Output Voltage. To reduce noise and reduce the crosstalk between supplied circuits, the rail uses individual LC filters: FB3 in Fig. 10, FB6 (Channel 2 ADC Driver - not shown), FB7 in Fig. 7.
The analog supply AVCC4V5 is built from VCC5V0 using IC19, an ADP123 5.5 V Input, 300 mA, Low Quiescent Current, CMOS Linear Regulator, Adjustable Output Voltage. To reduce noise and reduce the crosstalk between supplied circuits, the rail uses individual LC filters: FB2 in Fig. 6, FB5 (Channel 2 ADC Buffer - not shown), FB8 in Fig. 9.
The AVCC-2V5 analog power supply is implemented with the ADP2301 Step-Down regulator in an inverting Buck-Boost configuration. See application Note AN-1083: Designing an Inverting Buck Boost Using the ADP2300 and ADP2301. To reduce noise and reduce the crosstalk between supplied circuits, the rail uses individual LC filters: FB1 in Fig. 6, FB4 (Channel 2 ADC Buffer - not shown). The ADP2301 features:
The SYZYGY™ connector in provides the interface with the carrier board. The used signals are:
Table 7. The SYZYGY™ compatibility table
| Parameter | Value |
|---|---|
| Maximum 5V supply current | 400mA |
| Maximum 3.3V supply current | 100mA |
| VIO supply voltage | 1.8V |
| Maximum VIO supply current | 270mA |
| Total number of I/O | 28 |
| Number of differential I/O pairs | 0 |
| Width | Single |
Written by Mircea Dabacan, PhD, Technical University of Cluj-Napoca Romania