AD9371 9375 User Guide UG 992
AD9371 9375 User Guide UG 992
UG-992
One Technology Way • P.O. Box 9106 • Norwood, MA 02062-9106, U.S.A. • Tel: 781.329.4700 • Fax: 781.461.3113 • www.analog.com
System Development User Guide for the AD9371 and AD9375 Integrated Dual-
Channel RF Transceivers
INTRODUCTION
This user guide is the main source of information for systems are interchangeable unless otherwise stated. The sections in this
engineers and software developers using the AD9371 family of user guide are organized to simplify navigation for users to find
software defined radio transceivers. This family includes the the information pertinent to their area of interest.
AD9371 and the AD9375. For this the user guide, these devices
TABLE OF CONTENTS
Introduction ...................................................................................... 1 Reading the ARM Version ........................................................ 99
Revision History ............................................................................... 4 Performing an ARM Memory Dump ...................................... 99
User Guide Section Description ..................................................... 7 System Control.............................................................................. 102
System Overview .............................................................................. 8 Control of Signal Chains (Tx/Rx) .......................................... 102
System Architecture Description.................................................. 11 ORx Path Control ..................................................................... 104
Software Architecture ................................................................ 11 ARM GPIO Operation ............................................................ 107
Folder Structure .......................................................................... 12 Tx Power Control ......................................................................... 108
Software Integration ....................................................................... 13 Power Amplifier (PA) Protection ............................................... 109
Modifying common.c ................................................................ 13 PA Error Flag ............................................................................ 109
Developing the Application ...................................................... 14 Protection Algorithm............................................................... 109
Serial Peripheral Interface (SPI) ................................................... 17 API Commands for PA Protection ........................................ 111
SPI Configuration Using API Function .................................. 17 Reference Clock and SYSREF Connections .............................. 113
SPI Bus Signals ............................................................................ 17 Connections for External Clock (DEV_CLK_IN)............... 113
SPI Data Transfer Protocol ........................................................ 18 DEV_CLK Phase Noise Requirements.................................. 113
Timing Diagrams........................................................................ 19 SYSREF Requirements ............................................................. 114
JESD204B Interface ........................................................................ 21 Synthesizer Configuration........................................................... 116
Receivers (ADC) Datapath........................................................ 22 Connections for External LO ................................................. 117
Transmitters (DAC) Datapath .................................................. 41 Software Configuration ........................................................... 119
Link Establishment..................................................................... 55 RF PLL Frequency Change Procedure .................................. 122
Hardware Considerations for SYNC Signals .............................. 56 RF PLL Resolution Limitations .............................................. 126
Compatibility with Xilinx JESD204B FPGA IP ..................... 56 Gain Control ................................................................................. 127
Multichip Synchronization........................................................ 56 Variable Gain Elements in the Receiver Datapaths.................. 127
Multichip API Function Description....................................... 58 Gain Table Format .................................................................... 129
System Initialization ....................................................................... 59 Gain Table Programming Description .................................. 132
Modification of common.c for User Code Integration ......... 59 Rx Gain Delay ........................................................................... 132
Data Structure Member Initialization ..................................... 59 Manual Gain Control, Hybrid Mode, and Automatic Gain
Initialization Sequence............................................................... 61 Control Overview..................................................................... 134
Quadrature Error Correction, Calibration, and ARM Automatic Gain Control (AGC) ............................................. 137
Configuration .................................................................................. 83 AGC API Commands .............................................................. 143
ARM State Machine Overview ................................................. 83 Application Programming Interface (API) Programming
Loading the ARM ....................................................................... 83 Summary ................................................................................... 144
Observation Receiver Signal Path Example.......................... 169 Power Management Considerations ...........................................277
Application Programming Interface (API) Data Structures Power Supply Sequence ............................................................277
and API Commands ................................................................ 170 Power Distribution for Different Power Supply Domains ..277
Observation Receiver (ORx)....................................................... 172 ADRV9371-N/PCBZ Evaluation Board Power Supply Block
Observation System Receiver Details .................................... 173 Diagram ......................................................................................279
ORx AGC, Hybrid, and MGC ................................................ 175 RF and Clock Synthesizer Supplies.........................................280
Observation System Receiver Front-End Programming .... 176 Demonstration System Overview ...............................................281
TDD in the Mykonos Evaluation System ............................. 178 Hardware and Software Requirements ..................................281
API/DLL Commands for TDD Configuration .................... 190 Hardware Setup for External Tx LO Leakage Calibration ..285
Monitor Output ........................................................................ 202 Starting the Transceiver Evaluation Software (TES) ............287
Secondary Serial Peripheral Interface (SPI2) ....................... 216 Programming the Evaluation System .....................................301
VSWR Monitoring ................................................................... 346 Designing a System for a TDD Application.......................... 353
VSWR API ..................................................................................... 347 External Loopback Flatness Requirements ........................... 354
VSWR API Data Structures .................................................... 347 CLGC Convergence Time ....................................................... 356
DPD Tuning Procedure ........................................................... 351 Typical Test Setup And DPD Performance ............................... 357
DPD Model Save/Restore Functionality ............................... 351 TDD Setup Instructions .............................................................. 359
REVISION HISTORY
5/2017—Rev. A to Rev. B Changes to Table 155 ................................................................... 207
Added AD9375 .............................................................. Throughout Changes to MYKONOS_getGpioMonitorOut Section..................209
Updated Layout ................................................................... Universal Deleted Figure 112; Renumbered Sequentially ................................224
Changes to Title and Introduction ................................................. 1 Changes to MYKONOS_getGpio3v3PinLevel Section ........... 224
Added User Guide Section Description Section .......................... 7 Changes to Table 163 ................................................................... 226
Changes to Overview Section ......................................................... 8 Added Auxiliary DAC Control Software Control Procedure
Added Figure 2; Renumbered Sequentially ................................ 10 Section............................................................................................ 227
Changes to Table 5 .......................................................................... 22 Added Auxiliary (AUX) ADC Readback Software Control
Changes to MYKONOS_setupDeserializers(…) Section ......... 46 Procedure Section......................................................................... 230
Changes to External Tx LO Leakage Initial Calibration Section .... 90 Changes to Example 1: SEDZ to PEDZ Conversion Section ........236
Changes to System Considerations for Tracking Calibrations Changes to Example 2: PEDZ to SEDZ Conversion Section ........237
Section .............................................................................................. 91 Changes to Impedance Matching Network Section........................249
Changes to External Channel Section ......................................... 96 Changes to Figure 151 ...........................................................................252
Changes to ORx Path Control Section ...................................... 104 Changes to Table 170 to Table 172 ......................................................253
Added Power Amplifier (PA) Protection Section and Table 92; Changes to Table 173 to Table 176 ......................................................254
Renumbered Sequentially............................................................ 109 Added Mykonos Tx1 and Tx2 Port Impedance Section.......... 255
Add Figure 48 ................................................................................ 110 Changes to Figure 159 Caption .................................................. 262
Changes to MYKONOS_setupPaProtection(…) Section ....... 111 Changes to Figure 161 Caption .................................................. 263
Changes to MYKONOS_getPaProtectErrorFlagStatus(…) Changes to Line Design Examples Section ............................... 264
Section ............................................................................................ 112 Changed Transmitter Bias and Port Interface Section to
Changes to Table 95 Caption ...................................................... 117 Transmitter Bias Design Considerations Section..................... 268
Changes to RF PLL Frequency Change Procedure .................. 122 Changes to Isolation Techniques Used on the ADRV9371-N/PCBZ
Changes to RF PLL Resolution Limitations Section ................ 126 Evaluation Board Section ............................................................ 273
Changes to Gain Control Section .......................................................127 Changed AD9371 Demonstration System Overview Section to
Changed Receiver Datapath—Variable Gain Elements Section to Demonstration System Overview Section ................................ 281
Variable Gain Elements in the Receiver Datapath Section ............127 Changes to Hardware Setup Section .......................................... 281
Changes to Figure 59 and Figure 60 ........................................... 132 Changed AD9371 Transceiver Evaluation Software (TES)
Changes to PMD Measurement Duration Section and PMD Section to Transceiver Evaluation Software (TES) Section and
Measurement Configuration Section......................................... 153 AD9371 Starting the Transceiver Evaluation Software Section to
Changes to Real IF Section .......................................................... 164 Starting the Transceiver Evaluation Software Section ............. 287
Changes to Rx Signal Path Example Section, Figure 77, and Changes to Installation Section and Figure 183 Caption ........ 287
Figure 78 ........................................................................................ 165 Changes to Figure 184 ................................................................. 288
Changes to THB2 Section and THB1 Section .......................... 166 Changes to GPIO Configuration Tab Section .......................... 293
Changes to Figure 85 .................................................................... 169 Changes to Figure 207 ...........................................................................301
Changes to Figure 87 .................................................................... 170 Changes to File Dropdown Menu Section, Figure 209 Caption,
Changed Programming Filter Settings to the AD9371 via API Figure 210 Caption, ..................................................................... 302
Section to Programming Filter Settings via API Section ........ 171 Changes to Tools Dropdown Menu Section, Figure 212
Changes to Datapath Trigger Modes Section and Table 138 .. 183 Caption, Figure 213 Caption, and Table 188 ............................ 303
Changes to Table 139.................................................................... 184
Rev. B | Page 4 of 360
AD9371/AD9375 System Development User Guide UG-992
Changes to Help Dropdown Menu, Figure 214 Caption, System, Added Figure 260 .......................................................................... 260
System Status Bar Section, Figure 215 Caption, and Figure 217
Caption ...........................................................................................304 1/2017—Rev. 0 to Rev. A
Changes to Rx Signal Chain Section...........................................306 Changes to Introduction Section .................................................... 1
Added DPD, CLGC, and VSWR Measurement (AD9375 Only) Deleted /src/example Section .......................................................... 7
Section, DPD Overview Section, and Figure 229 .....................319 Changes to Figure 3 .......................................................................... 8
Added Figure 230 ..........................................................................320 Changes to Developing the Application Section ........................ 10
Added Figure 231 to Figure 233 ..................................................321 Changes to API Sequence Section ................................................ 11
Added Figure 234 and Equation 57; Renumbered Sequentially...322 Changes to Figure 4 and Figure 5 ................................................. 15
Added CLGC Overview Section, Voltage Standing Wave Ratio Change to tCO Parameter, Table 4 and Figure 6 ........................... 16
Measurement Overview Section, Equation 58, and Figure 235 ...323 Changes to Table 38 ........................................................................ 38
Added DPD GUI Section amd Figure 236.................................324 Added Hardware Considerations for Sync Signals Section ....... 53
Added Figure 237, Waveform Setup Section, and Figure 238.......325 Changes to Data Structure Member Initialization Section ....... 56
Added DPD Setup Section, Figure 239, and Figure 240 ..........327 Deleted Folder Location Section and Figure 28;
Added Figure 241 ..........................................................................328 Renumbered Sequentially .............................................................. 58
Added PA Calibration Configuration Section and Figure 242 .....329 Changes to headless.c Section ....................................................... 58
Added Error Messages and Debug Information Section and Added Reference Clock and SYSREF Connections Section,
Figure 243 .......................................................................................331 Connections for External Clock (DEV_CLK_IN) Section,
Added DPD API Section, ARM Setup Commands Section, and Figure 47, DEV_CLK Phase Noise Requirements Section,
Table 190 .........................................................................................332 Table 92, and Table 93; Renumbered Sequentially ................... 104
Added Table 191 ............................................................................333 Added SYSREF Requirements Section and Figure 48 .............. 105
Added DPD API Data Structures Section, Figure 244, and Added Minimum Delay Requirements Between SYSREF Pulses
Table 192 .........................................................................................334 Section, Timing of SYSREF Compared to DEV_CLK Section,
Added Figure 245 ..........................................................................335 Figure 50, and Figure 51 ............................................................... 106
Added Table 193 ............................................................................336 Added Connections for External LO Section, Figure 52, and
Added Figure 246 and Table 194 .................................................338 Table 94 ........................................................................................... 107
Added DPD Functionality API Functions Section ...................339 Added Performance Limitations Section and Figure 53 .......... 109
Added CLGC Tracking Calibration Section, CLGC Changes to Example 1 Section, Example 2 Section, and
Configurations Section, Figure 247, and Figure 248 ................341 Example 3 Section ......................................................................... 118
Added CLGC API Section, CLGC API Data Structures Section, Deleted DEV_CLK, SYSREF, and External LO Section,
Figure 249, and Table 195.............................................................342 Overview Section, Connections for the External Clock
Added Figure 250 and Table 196 .................................................344 (DEV_CLK_IN) Section, Figure 51, and Figure 52;................. 120
CLGC Functionality API Functions ...........................................345 Deleted DEV_CLK Phase Noise Requirements Section,
Added VSWR Tracking Calibration Section, VSWR Monitoring Figure 53, Table 94, and Table 95; Renumbered Sequentially .......121
Section, and Figure 251 ................................................................346 Deleted Figure 54 and Figure 55 ................................................. 122
Added VSWR API Section, VSWR API Data Structures Section, Deleted Multichip Synchronization (JESD204B Mode) Section
Figure 252, and Table 197.............................................................347 and Figure 56 ................................................................................. 123
Added Figure 243 and Table 198 .................................................349 Deleted Connections for External LO Section, Figure 57, and
Added VSWR Functionality API Functions Section................350 Table 96 ........................................................................................... 124
Added Systems Design Considerations Section, DPD Tuning Changes to Analog Peak Detector (APD) Basics Section........ 127
Procedure Section, and DPD Model Save/Restore Functionality Changes to Half-Band 2 (HB2) Overload Detector
Section ............................................................................................351 Basics Section ................................................................................ 129
Added Guidelines for Developing and Troubleshooting a DPD Added TDD Configuration and Setup Section, TDD in the
System Section ...............................................................................352 Mykonos Evaluation System Section, ARM Input and Output
Added Designing a System for a TDD Application Section and Signals Section, and ARM Pin Mode Configurations Section......168
Table 199 .........................................................................................353 Added Figure 88 ............................................................................ 169
Added External Loopback Flatness Requirements and Added ARM Acknowledge Signals Section, Table 133, and
Figure 254 .......................................................................................354 Figure 89 ......................................................................................... 170
Added Figure 255 ..........................................................................355 Added Table 134 and Table 135................................................... 171
Added CLGC Convergence Time Section, Figure 256, DPD Added Figure 90 and Table 136 ................................................... 172
Limitations Section, and Other Considerations Section .........356 Added FPGA Output Signals Section, Data Path Trigger
Added Typical Test Setup and DPD Performance Section and Modes Section, and Table 137 ..................................................... 173
Figure 257 .......................................................................................357 Added Table 138 ............................................................................ 174
Added Figure 258 ..........................................................................358 Added TDD Finite State Machine Class Section, Quick Help for
Added TDD Setup Instructions Section and Figure 259 .........359 Programming FPGA/Mykonos Section, and Table 139........... 175
Rev. B | Page 5 of 360
UG-992 AD9371/AD9375 System Development User Guide
Added ORX_MODE[2:0] and ORX_TRIGGER, as Seen by Added Signals with Lowest Routing Priority and Figure 160 ....... 251
the FPGA Section and Example TDD Script in IronPython Added RF and JESD204B Transmission Line Layout Section ...... 252
Section ............................................................................................ 176 Changes to Table 178 to Table 181 ............................................. 253
Added API/DLL Commands for TDD Configuration Section.... 180 Changes to Example 5 Section, Table 182, and RF Line Design
Added Secondary Serial Peripheral Interface (SPI2) Section, Summary Section ......................................................................... 254
Figure 97, and Figure 98 .............................................................. 204 Added Figure 161 and Figure 162 .............................................. 254
Added Table 160, SPI2 Register Map Section, API Description Added Transmitter Bias and Port Interface Section, Figure 163,
Section, and Table 161 ................................................................. 205 Figure 164, and Tx Balun DC Supply Options Section ........... 255
Moved Impedance Matching Network Section ........................ 237 Added Figure 165, DC Balun Section, and Chokes Section ... 256
Moved Figure 144 to Figure 146 ................................................. 238 Added Figure 166 ......................................................................... 257
Moved Figure 147 to Figure 149 ................................................. 239 Added Figure 167, Figure 168, JESD204B Trace Routing
Moved Figure 150 ......................................................................... 240 Recommendations Section, and Routing Recommendations
Moved Selected Balun and Component Values Section, and Section ............................................................................................ 258
Table 169 to Table 172 .................................................................. 241 Added Stripline vs. Microstrip Section, Isolation Techniques
Moved Table 173 to Table 176 and Mykonos Tx1 and TX2 Port Used on the ADRV9371-N/PCBZ Evaluation Card Section, and
Impedance Section ....................................................................... 242 Figure 169 ...................................................................................... 259
Moved Figure 151 and Figure 152 .............................................. 243 Added Figure 170 ......................................................................... 260
Added Board Layout Design Recommendations Section ....... 243 Added Isolation Between JESD204B Lines Section and
Added Printed Circuit Board Layout Guidelines Section and Figure 171 ...................................................................................... 261
PCB Material and Stack Up Selection Section .......................... 244 Added Unused Pins Section and Table 183 .............................. 262
Added Figure 153 and Table 177 ................................................ 245 Added Power Management Considerations Section and
Added Fanout and Trace Space Guidelines Section and Table 184 ........................................................................................ 263
Figure 154 ...................................................................................... 246 Added ADRV9371-N/PCBZ Evaluation Card Power Supply
Added Component Placement and Routing Priorities Section, Block Diagram Section and Figure 173 ..................................... 265
Signals with Highest Routing Priority Section, and Figure 155 .. 247 Added RF and Clock Synthesizer Supplies Section ................. 266
Added Figure 156 ......................................................................... 248 Changes to Figure 202 and AD9528 Description Section ...... 286
Added Signals with Second Routing Priority Section and Changes to Figure 213 ................................................................. 291
Figure 157 ...................................................................................... 249
Added Figure 158 and Figure 159 .............................................. 250 7/2016—Revision 0: Initial Version
SYSTEM OVERVIEW
Analog Devices, Inc., provides a variety of highly integrated RF All signal data transfers are accomplished using a JESD204B
agile transceivers, including the AD9371 and AD9375. This high speed serial interface with eight separate lanes. Four lanes
transceiver family provides dual-channel receivers, dual-channel are dedicated as inputs to the transmitter system and four lanes
transmitters, integrated synthesizers, digital signal processing are configurable to serve as outputs for the receiver system.
functions, and a high speed serial interface. The AD9375 provides When one or two main signal chain receivers are active and an
the added capability or integrated digital predistortion (DPD) observation/sniffer receiver is active, the main signal chain
for the transmitter channels to improve linearity and decrease receivers can be assigned one or two receiver lanes, and the
power consumption. The devices operate over the wide frequency observation/sniffer receiver can also be assigned only one or
range of 300 MHz to 6 GHz and can support a transmit synthesis two lanes. Note that only one observation receiver or sniffer
bandwidth up to 250 MHz, as well as a receiver bandwidth up receiver can be operational at any given time, but all four lanes
to 100 MHz. The information in this document applies equally can be assigned to that channel or shared between this channel
to the AD9371 and the AD9375, except for the section that and the active signal chain receivers.
describes DPD operation for the AD9375. To avoid confusion, A serial peripheral interface (SPI) transmits and receives control
the term device is used throughout the user guide to refer to information between the device and a baseband processor. All
both devices interchangeably. In sections that refer to only one software control is communicated via this interface. There is
device, the part number referenced to clearly delineate which also a control interface that utilizes GPIO lines to provide
device is being described. Note that references in the diagrams hardware control to and from the device. These pins can be
and the application programming interface (API) code examples configured to provide dedicated sets of functions for different
keep the text that appears in the code, even when it applies to application scenarios. Some GPIOs are intended for digital
both devices. control, while others are supplied by a 3.3 V analog supply for
The device provides three receiver inputs with limited bandwidth use in controlling external analog components. There are also
(20 MHz) to monitor signals on other channels of interest. These ten auxiliary digital to analog converters (DACs), known as
receivers, commonly referred to as sniffer receivers (SnRxs), can auxiliary DACs, that can be muxed with 3.3 V GPIO pins to be
be matched to different frequency range antennae to monitor a used as control voltage sources for other devices requiring variable
wider spectrum during normal operation in a more narrow band. control voltages. Included in this block is a set of three low
The independent synthesizer associated with these receivers allows speed auxiliary analog to digital converters (ADCs) that
the receivers to operate on different frequency channels during monitor external voltages of interest to system operation.
normal transmit/receive operation. Figure 1 and Figure 2 show block diagrams for the AD9371
An additional pair of receiver channels can be used as dedicated and the AD9375, respectively. Software control of each block is
observation receivers used to monitor the transmitter channels. described in the following sections of this user guide. Note that
These receivers provide the same bandwidth and gain capability all software code is taken from the API that is supplied with the
as the main signal channel receivers, but are dedicated for use as device. References to Mykonos in the API refer to the Analog
monitors for transmitter performance. These receivers provide Devices development name for the device family.
a feedback path to implement calibration and error correction
algorithms on the transmit data.
2
SERDOUT0±
RX_EXTLO+ Rx
LO
GENERATOR SYNTHESIZER
RX_EXTLO– 2
SERDOUT1±
Rx2
RX2+ 2
TIA ADC DECIMATION, FRAMER SERIALIZER SERDOUT2±
pFIR,
AGC,
DC OFFSET,
QEC,
TUNING, 2
RSSI, SERDOUT3±
TIA ADC OVERLOAD
RX2–
4 SYNCINB1±
SYNCINB0±
ORx
ORX1+
ORX1–
ORX2+ CONTROL
INTERFACE
ORX2– (GPIO)
MICRO-
CONTROLLER
SPI PORT
SnRx
SNRXA+
TIA ADC DECIMATION, CLOCK
SNRXA– pFIR, GENERATION AuxADC,
AGC,
SNRXB+ DC-OFFSET, ANALOG
SNRXB– QEC, GPIO
TUNING,
SNRXC+ RSSI,
TIA ADC OVERLOAD
SNRXC–
Tx POWER MANAGEMENT
SYNTHESIZER LO ORx
GENERATOR SYNTHESIZER
TX_EXTLO+ LO
GENERATOR
TX_EXTLO–
JESD204B
Tx1
DAC
TX1+ LPF 2
SERDIN0±
INTERPOLATE,
pFIR, QEC
TX1– 2
DAC SERDIN1±
LPF
JESD204B 2
DEFRAMER DESERIALIZER SERDIN2±
Tx2
DAC 2
TX2+ LPF
SERDIN3±
INTERPOLATE,
pFIR, QEC
TX2– 2
DAC SYNCOUTB0±
LPF
14652-001
2
SERDOUT0±
RX_EXTLO+ Rx
LO
GENERATOR SYNTHESIZER
RX_EXTLO– 2
SERDOUT1±
Rx2
RX2+ 2
TIA ADC DECIMATION, FRAMER SERIALIZER SERDOUT2±
pFIR,
DC OFFSET,
QEC,
TUNING,
RSSI, 2
OVERLOAD SERDOUT3±
TIA ADC
RX2–
4 SYNCINB1±
SYNCINB0±
ORx
ORX1+
ORX1–
ORX2+ CONTROL
INTERFACE
ORX2– (GPIO)
MICRO-
CONTROLLER
SPI PORT
SnRx
SNRXA+
TIA ADC DECIMATION, CLOCK
SNRXA– pFIR, GENERATION AuxADC,
AGC,
SNRXB+ DC OFFSET, ANALOG
SNRXB– QEC, GPIO
TUNING,
SNRXC+ RSSI,
TIA ADC OVERLOAD
SNRXC–
Tx POWER MANAGEMENT
SYNTHESIZER LO ORx
GENERATOR SYNTHESIZER
TX_EXTLO+ LO
GENERATOR
TX_EXTLO–
JESD204B
Tx1
DAC
TX1+ LPF INTERPOLATE, 2
pFIR, SERDIN0±
DPD
DC OFFSET,
QEC,
TX1– TUNING 2
DAC SERDIN1±
LPF
JESD204B 2
DEFRAMER DESERIALIZER SERDIN2±
Tx2
DAC 2
TX2+ LPF SERDIN3±
DPD
INTERPOLATE,
pFIR, QEC
TX2– 2
SYNCOUTB0±
DAC
LPF
14652-101
USER APPLICATION
DEFINED (/src/example/headless.*)
/src/api/ad9528 /src/api/mykonos
API
/src/api/common.*
USER HARDWARE
DEFINED PLATFORM DRIVERS
14652-002
SOFTWARE INTEGRATION
The current application programming interface (API) package The API is designed with the intent that developers may use any
was developed on a Xilinx® ZC706 reference platform using a driver of their choice for their platform requirements. Users are
dual-core ARM A9 processor running a Linux® variant. Users are permitted to substitute their driver code within the function
required to integrate the API with their platform specific code bodies located in common.c file in the /mykonos_api directory
base. This is readily accomplished because the API abides by for their platform requirements. However, users may not modify
ANSI C constructs while maintaining Linux system call the parameter declarations for these functions or any other code
transparency. The ANSI C standard was followed to ensure because doing so breaks the API. Analog Devices does not support
agnostic processor and operating system integration with the any user application containing unauthorized API code. The
API code. functions in the common.c file for which a developer can
substitute their own hardware specific information are
MODIFYING COMMON.C
described in Table 1.
Users develop code on their own hardware specific platforms.
Therefore, users maintain different drivers for the peripherals,
such as the SPI and GPIO, than what is included in the API.
Users can use their own drivers for these peripherals, or they
may use standard drivers if they use an operating system, such
as Linux.
MYKONOS_setSpiSettings (device->
spiSettings->autoIncAddrUp = 0);
There are two phases to a communication cycle. Phase 1 is the Multibyte Data Transfer
control cycle, which is the writing of a control word into the When enSpiStreaming = 1, a multibyte data transfer is allowed. In
device. The control word provides the serial port controller with this mode, data transfers across the bus as long as the CSB pin is
information regarding the data field transfer cycle, which is Phase 2 low. The autoIncAddrUp controls how the address changes for
of the communication cycle. The Phase 1 control field defines subsequent writes or reads. When autoIncAddrUp = 1, the address
whether the upcoming data transfer is a read or a write. It also increments from the starting address for each subsequent data
defines the register address being accessed. transfer until CSB is driven high. If the last register address is
Phase 1 Instruction Format reached, the next address accessed is 0x000. When this bit is
clear, the address decrements from the starting address for each
The 16-bit control field contains information shown in Table 3. subsequent data transfer. If this bit is clear and Address 0x000
Table 3. Phase 1 16-Bit Control Field is reached, the next address to be accessed is the last register
MSB [D14:D0] location defined in the register map. It is strongly recommended
R/W A[14:0]
that any data transfer be controlled so that Address 0x000 is
only written once at startup.
R/W For multibyte data transfers in LSB mode, the LSB of the
Bit 15 of the instruction word determines whether a read or write address is the first bit transmitted from the baseband processor,
data transfer occurs after the instruction byte write. Logic high followed by the next 14 bits in order from next LSB to MSB. The
indicates a read operation; Logic 0 indicates a write operation. next bit signifies if the operation is a read (set) or a write (clear).
If the operation is a write, the baseband processor transmits the
[D14:D0] next 8 bits LSB to MSB. After the MSB is received, the address
Bits A[14:0] specify the starting byte address for the data increments or decrements based on the autoIncAddrUp
transfer during Phase 2 of the input/output operation. parameter. The baseband processor then continues to transfer
All byte addresses, both starting and internally generated addresses, data in 8-bit words, LSB to MSB, until the operation is
are assumed to be valid. That is, if an invalid address (undefined terminated by CSB being driven high. If the operation is a read,
register) is accessed, the input/output operation continues as if the the device transmits the next 8 bits LSB to MSB. The device
address space is valid. For write operations, the written bits are then changes the address and continues to transfer data in 8-bit
discarded, and the read operations result in Logic 0s at the words, LSB to MSB, until the operation is terminated by CSB
output being driven high.
Single-Byte Data Transfer For multibyte data transfers in MSB mode, the same process is
followed, except the first bit transferred indicates if the operation is
When enSpiStreaming = 0, a single-byte data transfer is chosen.
a read (set) or a write (clear). The starting address is then trans-
In this mode, CSB goes active low, the SCLK signal activates,
mitted by the baseband processor, MSB to LSB, followed by the
and the address is transferred from the baseband processor to
data transfer, MSB to LSB. Address increment or decrement is
the device.
still controlled by the autoIncAddrUp parameter.
In LSB mode, the LSB of the address is the first bit transmitted
from the baseband processor, followed by the next 14 bits in
order from the next LSB to MSB. The next bit signifies if the
operation is a read (set) or a write (clear). If the operation is a
write, the baseband processor transmits the next 8 bits LSB to
MSB. If the operation is a read, the device transmits the next 8
bits LSB to MSB. After the final bit is transferred, the data lines
return to their idle state and the CSB line must be driven high
to end the communication session.
CSB
SCLK
SDIO
14652-004
SDO
CSB
SCLK
SDIO
SDO
14652-005
14652-006
SDIO DON’T CARE R/W A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 DON’T CARE
Figure 7. 3-Wire SPI Timing with Parameter Labels, SPI Read Operation
JESD204B INTERFACE
The device employs the JESD204B Subclass 1 standard to solution provides a device clock and a SYSREF to both the
transfer ADC and DAC samples between the device and a device and the baseband processor. The SYSREF signal ensures
baseband processor. JESD204B Subclass 1 devices use a system deterministic latency between the transceiver and the baseband
reference (SYSREF) signal to synchronize the establishment of processor. This signal is also used to provide digital synchronization
the links to provide deterministic latency through the link. For when more than one device is used; it is also required to
details on deterministic latency, refer to Section 6 of the JEDEC maintain data timing synchronization among the devices. The
Standard No. 204B. Multichip Synchronization section describes the setup required
The device supports high speed serial lane rates from to achieve the desired results.
614.4 Mbps to 6144 Mbps. An external clock distribution
AD9371
SYNCINB0±
SYNCB
CROSSBAR SYNCINB1±
FRAMER
ADC
ADC
ADC 8-BIT/ LANE
MAIN RECEIVERS CROSSBAR LANES TO 10-BIT CROSSBAR
SAMPLES DECODE
ADC
ADC
SERDOUT0±
SERDOUT1±
MUX SERIALIZERS SERDOUT2±
FRAMER SERDOUT3±
DEVICE CLOCK
CLOCK
GENERATION
AND SYSREF SYSREF
RETIMING
DEFRAMER
DAC
ADC
SERDIN0±
DAC 8-BIT/ LANE
TRANSMITTERS CROSSBAR LANES TO 10-BIT CROSSBAR SERDIN1±
SAMPLES DECODE DESERIALIZERS SERDIN2±
DAC
ADC SERDIN3±
SYNCOUTB0±
14652-007
14652-008
–500
19 440 TIME
20 480 Figure 9. Serializer Preemphasis Measured on 3 Gbps Serial Data, Serializer
21 520
Another metric for the effect of the serializer preemphasis is
22 (default) 560
how much insertion loss each preemphasis setting can overcome.
23 600
Different PCBs have different insertion loss due to factors such
24 640
as different materials, stackups, and trace geometry. However,
25 680
the insertion loss can be measured with a network analyzer or
26 720
simulated to estimate how much loss a particular PCB has. Note
The values shown in Table 7 are calculated values based on the that the preemphasis gain has some dependency on the main
design. Measured values are slightly lower than the calculated serializer amplitude setting.
values. It is always recommended to verify the eye diagram in 16
PREEMPHASIS = 0
PREEMPHASIS = 1
the system after building a PCB to verify any layout related 14 PREEMPHASIS = 2
PREEMPHASIS = 3
performance differences. PREEMPHASIS = 4
12 PREEMPHASIS = 5
PREEMPHASIS GAIN (dB)
shown in Figure 9. 18 19 20 21 22 23 24 25 26
SERIALIZER AMPLITUDE (Decimal)
Figure 10. Gain (in dB) of Each Preemphasis and Amplitude Setting
14652-600
0 0.15 0.40 0.60 0.85 1.00 synchronization during user data.
NORMALIZED BIT TIME (UI) Map ADC samples to JESD204B lanes.
Figure 11. Serializer Eye Diagram Requirements Mask Perform 8-bit/10-bit encoding.
400
The ADC sample inputs into the framer pass through a sample
300 crossbar, allowing the framer to map any ADC input to any
200
framed sample location during the framing process. For example,
this can be used to swap I and Q samples. The framer lane data
100 outputs also pass through a lane crossbar, allowing mapping any
VOLTAGE (V)
0
framer output lane (internal to the silicon) to any physical
JESD204B lane at the package pin. The framer packs the ADC
–100 samples into lane data following the JESD204B specification.
–200
–300
–400
14652-010
Figure 12. Example 6.144 Gbps Eye Diagram at the Serializer Output with
Specifications Mask Superimposed
SAMPLE FRAMER LANE
CROSSBAR CROSSBAR
Rx1 Q[15:0]
ADC0[15:0]
Rx1 I[15:0] 1 FRAME (M = 2, L = 1, F = 4) FIRST BYTE
ADC1[15:0]
Rx2 Q[15:0] ADC1 ADC1 ADC0 ADC0 TO SERIALIZER 8-BIT/ LANE 0
Rx2 I[15:0] [7:0] [15:8] [7:0] [15:8] 10-BIT LANE 1
ENCODE
14652-011
NOTES
1. HD = 1 (1 SAMPLE SPLIT ACROSS MULTIPLE LANES).
Figure 15. Framer Data Packing for M = 2, L = 4
14652-014
FIRST BYTE
TO SERIALIZER
14652-015
ADC3 ADC3 ADC2 ADC2 TO SERIALIZER 8-BIT/10-BIT
[7:0] [15:8] [7:0] [15:8] ENCODE
14652-016
ADC3 ADC3 8-BIT/10-BIT
[7:0] [15:8] ENCODE
11 11
10 10
Rx2 Q M2
ADC2 01 01
00 00
SINGLE CH
AUTO SELECT
11 11
1 10 10
M1
Rx1 I 01 01
ADC1 0
00 00
11 11
1 10 10
M0
Rx1 Q 01 01
ADC0 0
14652-017
00 00
Table 39. JESD204B Parameters Dependent on Number of Lanes and Number of DACs
Number of DACs (M) Number of Lanes (L) Number of Bytes in 1 Frame (F) (F = 2 × M/L)
2 1 4
2 2 2
2 4 1
4 1 8
4 2 4
4 4 2
14652-018
LANE 2
FIRST BYTE LANE 3
FROM DESERIALIZER
14652-019
FROM 8-BIT/10-BIT LANE 2
DESERIALIZER [15:8] [7:0]
DECODE LANE 3
14652-020
NOTES
1. HD = 1 (1 SAMPLE SPLIT ACROSS MULTIPLE LANES).
LANE 2
FIRST BYTE
FROM DESERIALIZER LANE 3
14652-023
DAC3 DAC3 8-BIT/10-BIT
[15:8] [7:0] DECODE
SINGLE CHANNEL
AUTO SELECT DAC/SAMPLE CROSSBAR LANE CROSSBAR
DEFRAMER
11 11 LANE 3
DEFRAMER OUTPUT 3[15:0] DEFRAMER INPUT 3[15:0]
0 M3 10 10 LANE 2
Tx2 I DEFRAMER OUTPUT 2[15:0] DEFRAMER INPUT 2[15:0]
DAC3 01 01 LANE 1
1 DEFRAMER OUTPUT 1[15:0] DEFRAMER INPUT 1[15:0]
00 00 LANE0
DEFRAMER OUTPUT 0[15:0] DEFRAMER INPUT 0[15:0]
11
11
10
0 M2 10
Tx2 Q 01
DAC2 01
1 00
00
11
11
10
Tx1 I M1 10
DAC1 01
01
00
00
11
11
M0 10
Tx1 Q 10
DAC0 01
01
00
14652-024
00
Other Useful Deframer IP Features 4. After some amount of time, call the API function to check
Deserializer PRBS the PRBS errors. This can be done by calling the API
function MYKONOS_readDeframerPrbsCounters(…)
The deserializer has a built in pseudorandom bit sequence
passing the actual device being evaluated, the counter
(PRBS) checker. The PRBS checker can self synchronize and
selection lane to be read and the error count are returned
check for PRBS errors on a PRBS7, PRBS15, or PRBS31 sequence.
in the third parameter passed.
Because this mode works even in the midst of potential bit errors
on each lane, the physical link can be debugged even when the To prove an error count of 0 is valid, the baseband processor
deframer is unable to work properly. This mode can be used to may have a PRBS error inject feature. Alternatively, the
check the robustness of the physical link during initial testing baseband processor amplitude and emphasis settings can be
and/or factory test. For this mode to be fully utilized, the BPP set to a setting where errors occur. To reset the error count,
must have a PRBS generator capable of creating PRBS7, call the API function that clears the counters (MYKONOS_
PRBS15, or PRBS31 data. clearDeframerPrbsCounters(…)).
A typical usage sequence is as follows: API Software Integration
1. Initialize the device as outlined in the Link Establishment the MYKONOS_initialize(…) API function handles the
section. configuration of the deserializer and Tx1/Tx2 deframer. Set any
2. Enable the PRBS generator on the baseband processor with JESD204B link options in the mykonosDevice_t data structure
the same PRBS sequence required. before calling MYKONOS_initialize(…). After initialization,
3. Call the application programming interface (API) there are some other API functions to aid in debugging and
MYKONOS_enableDeframerPrbsChecker(…) passing monitoring the status of the JESD204B link.
the actual device being evaluated, the PRBS sequence to
check and enable bit set to 1.
AD9371 AD9371
Rx/Tx Rx/Tx
DEVICE 1 DEVICE 2
DEV_CLK
SYSREF
DEV_CLK
SYSREF
DEV_CLK
SYSREF
CLOCK AND SYSREF
GENERATION BBP
AD9528
SPI
14652-025
CLK CONTOL
Figure 27. Multichip Connectivity—DEV_CLK Clock and SYSREF Signal Connections from the Clock Generation
SERDES PHY
CLOCK SYNTHESIZER PLL RX_CDR_CLK
K = 0.5, 1, 2, 4 TX_SERDES_CLK MEET SKEW BUDGET
VCO 6GHz (RESET, CLK SKEW)
DEV_CLK_IN TO 12.3GHz
PFD
/K CP LPF HS_DIVIDERS
HS_DIGCLK
PFD_FB_CLK
DIVIDER DIGITAL CLOCK
CLK_PLL_SYNC_CLK (6 TO 255) GENERATOR
TO ADCs
DIVK_RESET
SDM_RESET
ADC_CLK
HS_DIGCLK
ADC/DAC
DEVICE CLOCK
REFCLK
RETIMING DAC_CLK
TO DACs CIRCUITS
1 DIGITAL CORE
2
SYSTEM INITIALIZATION
This section provides information about the initialization DATA STRUCTURE MEMBER INITIALIZATION
process for the transceiver device using the application The application programming interface (API) functions use
programming interface (API) developed by Analog Devices. sets of data structures to convey configuration and control
The following sections describe the developer preparation data. These structures must be instantiated and their members
requirements, initialization sequence, and example code for loaded (initialized) with valid settings in the user code before
using the API software on any platform. This section does not the initialization sequence can take place. The transceiver
explain the API library functions. Detailed information regarding evaluation software (TES) can generate valid data structure
the API functions can be found in the device API doxygen member values based on user settings. The TES generates the
document, located in the /src/doc file in the software package myk_init.c and myk_init.h files for direct porting to the user
directory structure code or can be cut and pasted as required. The myk_init.* files
MODIFICATION OF COMMON.C FOR USER CODE contain the preloaded data structures and accompanying header
INTEGRATION file, respectively. The data structures that must be instantiated
The user is required to integrate their platform level drivers into and loaded are contained in Table 64.
common.c before using any application programming interface Note that hardware designs with multiple devices require each
(API) function calls. Details regarding this are contained in the device to have its own unique configuration data initialized for
Software Integration section. The API used in the initialization all data structures; headless.c illustrates the structure initialization
process does not execute properly on the user hardware sequence at the beginning of the file. Explanations for each data
platform if this step is ignored. structure are contained in the mykonos.chm document.
#ifndef MYK_INIT_H_
#define MYK_INIT_H_
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif
myk_init.c
/**
* \brief Contains init setting structure declarations for the _instance API
*
* The top level structure mykonosDevice_t mykDevice uses keyword
* extern to allow the application layer main() to have visibility
* to these settings.
*
* All data structures required for operation have been initialized with values which
reflect these settings:
*
* Device Clock:
* 122.88MHz
*
* Profiles:
* Rx 20MHz, IQrate 30.72MSPS, Dec5
* Tx 20/100MHz, IQrate 122.88MSPS, Dec5
* ORX 100MHz, IQrate 122.88MSPS, Dec5
* SRx 20MHz, IQrate 30.72MSPS, Dec5
*
*/
#include <stddef.h>
#include "t_mykonos.h"
#include "t_mykonos_gpio.h"
#include "myk_init.h "
/* the AD9371 ARM output GPIO pins -- always available, even when pin mode not
enabled*/
0, // rx1EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
0, // rx2EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
0, // tx1EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
Rev. B | Page 70 of 360
AD9371/AD9375 System Development User Guide UG-992
0, // tx2EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
0, // orx1EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
0, // orx2EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
0, // srxEnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
0 // txObsSelect; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
/* When 2Tx are used with only 1 ORx input, this GPIO tells the BBP which Tx channel is
*/
/* active for calibrations, so BBP can route correct RF Tx path into the single ORx
input*/
};
mykonosDevice_t mykDevice =
{
&mykSpiSettings, /* SPI settings data structure pointer */
&rxSettings, /* Rx settings data structure pointer */
&txSettings, /* Tx settings data structure pointer */
&obsRxSettings, /* ObsRx settings data structure pointer */
&mykonosAuxIo, /* Auxiliary IO settings data structure pointer */
&mykonosClocks, /* Holds settings for CLKPLL and reference clock */
0 /* the AD9371 initialize function uses this as an output to
remember which profile data structure pointers are valid */
};
headless.h
/**
* \file headless.h
*
* \brief Contains definitions for headless.c
*/
#ifndef HEADLESS_H_
#define HEADLESS_H_
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif /* HEADLESS_H_ */
headless.c
/**
* \file headless.c
*
* \brief Contains example code for user integration with their application
*
* All data structures required for operation have been initialized with values which
reflect
* these settings:
*
Rev. B | Page 72 of 360
AD9371/AD9375 System Development User Guide UG-992
* Device Clock:
* 122.88MHz
*
* Profiles:
* Rx 20MHz, IQrate 30.72MSPS, Dec5
* Tx 20/100MHz, IQrate 122.88MSPS, Dec5
* ORX 100MHz, IQrate 122.88MSPS, Dec5
* SRx 20MHz, IQrate 30.72MSPS, Dec5
*
* \def Action User needed action
* \def Info information section
*/
#include <stdlib.h>
#include "headless.h"
#include "mykonos.h"
#include "mykonos_gpio.h"
#include "myk_init.h"
/****< Action: Insert rest of required Includes Here >***/
int main()
{
const char* errorString;
uint8_t mcsStatus = 0;
uint8_t pllLockStatus = 0;
uint8_t binary[98304] = {0}; /*** < Action: binary should contain ARM binary file as
array > ***/
uint32_t count = sizeof(binary);
uint8_t errorFlag = 0;
uint8_t errorCode = 0;
uint32_t initCalsCompleted = 0;
uint16_t errorWord = 0;
uint16_t statusWord = 0;
uint8_t status = 0;
mykonosInitCalStatus_t initCalStatus = {0};
uint8_t deframerStatus = 0;
uint8_t obsFramerStatus = 0;
uint8_t framerStatus = 0;
uint32_t initCalMask = TX_BB_FILTER | ADC_TUNER | TIA_3DB_CORNER | DC_OFFSET |
TX_ATTENUATION_DELAY | RX_GAIN_DELAY
| FLASH_CAL | PATH_DELAY | TX_LO_LEAKAGE_INTERNAL | TX_QEC_INIT |
LOOPBACK_RX_LO_DELAY
| LOOPBACK_RX_RX_QEC_INIT | RX_LO_DELAY | RX_QEC_INIT;
/*** < Action: Insert System Clock(s) Initialization Code Here > ***/
/*** < Action: Insert BBP Initialization Code Here > ***/
/*************************************************************************/
/***** the AD9371 Initialization Sequence *****/
/*************************************************************************/
Rev. B | Page 73 of 360
UG-992 AD9371/AD9375 System Development User Guide
/*** < Action: Toggle RESET pin on the AD9371 device > ***/
if ((mykError = MYKONOS_resetDevice(&mykDevice)) != MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*************************************************************************/
/***** the AD9371 CLKPLL Status Check *****/
/*************************************************************************/
if ((mykError = MYKONOS_checkPllsLockStatus(&mykDevice, &pllLockStatus)) !=
MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*************************************************************************/
/***** the AD9371 Perform MultiChip Sync *****/
/*************************************************************************/
if ((mykError = MYKONOS_enableMultichipSync(&mykDevice, 1, &mcsStatus)) !=
MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*** < Action: minimum 3 SYSREF pulses from Clock Device has to be produced
* for MulticChip Sync > ***/
/************************************************************************/
/***** the AD9371 Verify MultiChip Sync *****/
/************************************************************************/
if ((mykError = MYKONOS_enableMultichipSync(&mykDevice, 0, &mcsStatus)) !=
MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*************************************************************************/
/***** the AD9371 Load ARM file *****/
/*************************************************************************/
if (pllLockStatus & 0x01)
{
if ((mykError = MYKONOS_initArm(&mykDevice)) != MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug
failure > ***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*** < Action: User must load ARM binary byte array into variable binary[98304]
before calling next command > ***/
if ((mykError = MYKONOS_loadArmFromBinary(&mykDevice, &binary[0], count)) !=
MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug why
* ARM did not load properly - check binary and device settings > ***/
/*** < Action: User code > ***/
errorString = getthe AD9371ErrorMessage(mykError);
}
}
else
{
/*** < Action: check settings for proper CLKPLL lock > ***/
}
/*************************************************************************/
/***** the AD9371 Set RF PLL Frequencies *****/
/*************************************************************************/
if ((mykError = MYKONOS_setRfPllFrequency(&mykDevice, RX_PLL, mykDevice.rx-
>rxPllLoFrequency_Hz)) != MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*** < Action: wait 200ms for PLLs to lock > ***/
/*************************************************************************/
/***** the AD9371 Set GPIOs *****/
/*************************************************************************/
if ((mykGpioErr = MYKONOS_setupGpio(&mykDevice)) != MYKONOS_ERR_GPIO_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getGpiothe AD9371ErrorMessage(mykGpioErr);
}
/*************************************************************************/
/***** the AD9371 Set manual gains values *****/
/*************************************************************************/
if ((mykError = MYKONOS_setRx1ManualGain(&mykDevice, 255)) != MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*************************************************************************/
/***** the AD9371 Initialize attenuations *****/
/*************************************************************************/
if ((mykError = MYKONOS_setTx1Attenuation(&mykDevice, 0)) != MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*************************************************************************/
/***** the AD9371 ARM Initialization Calibrations *****/
/*************************************************************************/
/*************************************************************************/
/***** the AD9371 ARM Initialization External LOL Calibrations with PA *****/
/*************************************************************************/
/*** < Action: Please ensure PA is enabled operational at this time > ***/
if (initCalMask & TX_LO_LEAKAGE_EXTERNAL)
{
/*** < User: make sure BBP JESD framer is actively transmitting CGS> ***/
if ((mykError = MYKONOS_enableSysrefToDeframer(&mykDevice, 1)) != MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*************************************************************************/
/***** Enable SYSREF to the AD9371 and BBP *****/
/*************************************************************************/
/*** < Action: Sends SYSREF Here > ***/
/*** < Info: the AD9371 is actively transmitting CGS from the RxFramer> ***/
/*** < Info: the AD9371 is actively transmitting CGS from the ObsRxFramer> ***/
/*** < Action: Insert User: BBP JESD Sync Verification Code Here > ***/
/*************************************************************************/
/***** Check the AD9371 Framer Status *****/
Rev. B | Page 80 of 360
AD9371/AD9375 System Development User Guide UG-992
/*************************************************************************/
if ((mykError = MYKONOS_readRxFramerStatus(&mykDevice, &framerStatus)) !=
MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
if ((mykError = MYKONOS_readOrxFramerStatus(&mykDevice, &obsFramerStatus)) !=
MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*************************************************************************/
/***** Check the AD9371 Deframer Status *****/
/*************************************************************************/
if ((mykError = MYKONOS_readDeframerStatus(&mykDevice, &deframerStatus)) !=
MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*** < Action: When links have been verified, proceed > ***/
/*************************************************************************/
/***** the AD9371 enable tracking calibrations *****/
/*************************************************************************/
if ((mykError = MYKONOS_enableTrackingCals(&mykDevice, trackingCalMask)) !=
MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug why
enableTrackingCals failed > ***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*** < Info: Allow Rx1/2 QEC tracking and Tx1/2 QEC tracking to run when in the radioOn
state
* Tx calibrations will only run if radioOn and the obsRx path is set to
OBS_INTERNAL_CALS > ***/
/*** < Info: Function to turn radio on, Enables transmitters and receivers
* that were setup during MYKONOS_initialize() > ***/
if ((mykError = MYKONOS_radioOn(&mykDevice)) != MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
/*** < Info: Allow TxQEC to run when User: is not actively using ORx receive path >
***/
if ((mykError = MYKONOS_setObsRxPathSource(&mykDevice, OBS_RXOFF)) != MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
Rev. B | Page 81 of 360
UG-992 AD9371/AD9375 System Development User Guide
if ((mykError = MYKONOS_setObsRxPathSource(&mykDevice, OBS_INTERNALCALS)) !=
MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug failure >
***/
errorString = getthe AD9371ErrorMessage(mykError);
}
return 0;
}
PERFORM INITIALIZATION where *device is the structure pointer to the data structure.
CALIBRATIONS
After this function is run, the ARM image is then loaded with
the following function:
STATE 2:
IDLE/ MYKONOS_loadArmFromBinary(mykonosDevice_t
RADIO OFF
*device, uint8_t *binary, uint32_t count)
where *binary is a pointer to the byte array containing ARM
program memory bytes, and count is the number of bytes in
RUN RADIO_OFF() RUN RADIO_ON() this byte array.
COMMAND COMMAND
The ARM image is provided though the AD9371_M3.bin file,
provided in the Resources folder of the TES install.
After the ARM image is loaded, the MYKONOS_
STATE 3: loadArmFromBinary function enables the ARM, and the ARM
RADIO ON
automatically begins its boot sequence. As part of the boot
14652-028
1
There are requirements on a system level for these initialization calibrations to perform successfully. These requirements are described in the System Considerations
for ARM Calibrations section.
14652-029
Figure 30. Calibration Tasks Run in the ARM Processor Based on the Tracking Calibration Mask Indicated by the User
CALIBRATION TASK
NO
Table 68. Possible Examples of Pending Bits for the Individual Tracking Calibrations
Pending Bits
Tx1 LOL Tx2 LOL Tx1 QEC Tx2 QEC ORx1 QEC ORx2 QEC Rx1 QEC Rx2 QEC
1 0 0 1 1 0 1 1
Rev. B | Page 86 of 360
AD9371/AD9375 System Development User Guide UG-992
To read back the pending bits, use the following application The scheduler determines which calibration task to run at any
programming interface (API) function: time based on three conditions:
MYKONOS_getPendingTrackingCals(mykonosDevice 1. Pending bits. The scheduler reads the pending bits and
_t*device, uint32_t*pendingCalMask) determines which calibrations are requesting to run.
where pendingCalMask is the returned mask that advises if a 2. Priority. Each calibration task is given its own priority
calibration is pending or has returned an error, as indicated in level. The calibration of the highest priority is given preference
Table 69. (highest priority being 1). The order of priority is shown in
Table 70.
Table 69. PendingCalMask Bits Descriptions
pendingCalMask Bit Description Table 70. Priority Levels of the Calibration Tasks
D0 Rx1 quadrature error correction (QEC) Priority Calibration Task
tracking pending bit 1 Tx local oscillator leakage (LOL)
D1 Rx1 QEC tracking error bit 2 Tx quadrature error correction (QEC)
D2 Rx2 QEC tracking pending bit 3 ORx QEC
D3 Rx2 QEC tracking error bit 4 Rx QEC
D4 ORx1 QEC tracking pending bit
D5 ORx1 QEC tracking error bit Note there is no set priority between the individual
D6 ORx2 QEC tracking pending bit channels calibrations (such as Tx1 LOL and Tx2 LOL). For
D7 ORx2 QEC tracking error bit calibration tasks of the same priority; the scheduler prioritizes
D8 Tx1 local oscillator leakage (LOL) the calibration task that completed first.
tracking pending bit 3. Availability of the required paths. The scheduler also
D9 Tx1 LOL tracking error bit determines if the calibration task can be performed.
D10 Tx2 LOL tracking pending bit For example, as illustrated in Figure 32, the Tx QEC task
D11 Tx2 LOL tracking error bit requires the Tx to be enabled and the ORx to be assigned
D12 Tx1 QEC tracking pending bit to ARM calibrations. If both conditions are not true, then
D13 Tx1 QEC tracking error bit the calibration cannot be run. The scheduler determines
D14 Tx2 QEC tracking pending bit this, and, if the calibration cannot run, continues through
D15 Tx2 QEC tracking error bit its priority list to find a calibration which is pending and
can be run (for example, Rx1 QEC may be run at this time).
The scheduler is then tasked with running each calibration See the System Considerations for the Tracking Calibrations
when its corresponding pending bit is set. At any one time, section for more details on the required paths for each
however, more than one calibration task can be pending, as tracking calibration.
indicated by a possible example shown in Table 68, and it is the
responsibility of the scheduler to determine which calibration
must be run at any time.
X SECONDS
SET SET
PENDING PENDING
BIT BIT
ARM SCHEDULER
TX_ENABLE
ORx USAGE
INTERNAL CALS MODE
14652-031
50Ω
JESD204B INTERFACE
Rx HBFs
INPUT LPF ADC AND FIR
QEC
BLOCK
LPF HBFs
ADC AND FIR
CAL
14652-032
PLL Rx LO
ORx
INPUT
FEEDBACK
PATH HBFs
LPF ADC AND FIR
ATTENUATOR
HBFs
LPF ADC AND FIR
JESD204B INTERFACE
SnRx LO
QEC
BLOCK
CAL
PLL
Tx LO
HBFs
LPF DAC
COUPLER AND FIR
PA
Tx HBFs
OUTPUT LPF DAC
PA POWERED OFF AND FIR
14652-033
SIG
GEN
Figure 34. Device Path Configuration for the Tx LOL and QEC Initial Calibrations
Internal Tx LO Leakage and Tx QEC Initial Calibrations creating a table of initial calibration values. Then, upon application
of a Tx attenuation setting, the corresponding QEC and local
The Tx internal local oscillator (LO) leakage and Tx quadrature oscillator leakage (LOL) correction values are applied to the Tx
error correction (QEC) initial calibrations use the internal channel by the ARM. The device configuration for this calibration
loopback (feedback) path and the ORx baseband path to is shown in Figure 34.
calculate initial correction factors. During these calibrations,
test signals (tones and wideband signals) are output. These The following is a system requirement:
appear at the Tx output; therefore, it is important that the Power off the power amplifier in the Tx path during these
power amplifier at the output of the device be switched off. calibrations.
Both calibrations sweep through a series of attenuation values,
ORx
INPUT
FEEDBACK
PATH HBFs
LPF ADC AND FIR
ATTENUATOR
HBFs
LPF ADC AND FIR
JESD204B INTERFACE
SnRx LO
QEC
BLOCK
CAL
PLL
Tx LO
HBFs
LPF DAC
COUPLER AND FIR
PA
Tx HBFs
OUTPUT LPF DAC AND FIR
14652-034
SIG
GEN
Figure 35. External LOL System Configuration (Greyed Out Circuitry Not Used)
The external local oscillator leakage (LOL) initialization using ORx1, and Tx2 to calibrate using ORx2 (the user does
calibration requires that the power amplifier be enabled such not need to configure this). The ARM cycles through both Tx1
that a full external loop is made between the Tx outputs and the external LOL calibration, and then Tx2 external LOL calibration,
ORx inputs. The purpose of this calibration is to obtain a so it is imperative that both feedback paths are enabled before
reasonable estimate of the external loop channel conditions the calibration is called.
(gain/phase) prior to operation. The device configuration is Alternatively, if both Tx channels are used (txChannels =
shown in Figure 35. The calibration uses a pseudorandom noise TX1_TX2); however, only the ORx1 channel is used
signal to estimate the channel conditions, which is a broadband (obsRxChannelsEnable = MYK_ORX1), then the ARM
signal with a nominal signal level of −78 dBFS out of the DAC. configures Tx1 to calibrate using ORx1, and Tx2 to also
It is important that a suitable attenuator be chosen between the calibrate using ORx1, which also applies vice versa if ORx2
power amplifier output and the ORx input. This is to prevent Tx is selected. This approach is illustrated in Figure 36.
data from saturating the ORx input. This is also be necessary In this case, the calibration must advise the user which path it
from the perspective of digital predistortion (DPD) operation. wishes to calibrate. It does this through the GPIO pin configured
The full-scale input of the ORx path is −13 dBm (with a 0 dB for the txObsSelect output. The user must configure the
attenuation setting) for a single-tone input. txObsSelect output before the external LOL initialization
The system requires that the output of the Tx channel to be calibration is called (see the ARM GPIOs section). By default,
calibrated be routed to the utilized ORx path for the calibration the txObsSelect output indicates that the Tx1 output is to be
signal to be observed. The device must be configured prior to fed back to the required ORx with a low output on this pin,
the calibration to indicate which Tx is routed back to which ORx. while a high output indicates that Tx2 is to be fed back. Again,
Note that the external Tx LOL initialization calibration makes the initialization calibration cycles through both calibrations
certain assumptions in terms of which Tx is fed back to which consecutively; therefore, it is important that both paths are active
ORx. The ARM bases this on the following parameters within and that the request to toggle the external switch is responded
the device data structure: to (the ARM expects to see the feedback path settled within
35 μs of the state change indicated by the txObsSelect output).
For Tx channels, device → tx → txChannels.
Note that this calibration does not provide good performance if
For ORx channels, device → obsRx →
an external LO is provided as the Tx LO. In such cases, LOL
obsRxChannelsEnable.
performance is reliant solely on the initialization calibration,
When both Tx channels are used (txChannels = TX1_TX2) and subsequently degrades.
and both ORx channels are used (obsRxChannelsEnable =
MYK_ORX1_ORX2), the ARM configures Tx1 to calibrate
ORx1 OR ORx2
TxObsSELECT
PA Tx2
PA Tx1
14652-035
Figure 36. The xObsSelect GPIO Used to Toggle an External Switch (Alternatively, the Output Can Be Fed Back for the BBP to Toggle the Switch)
Initial Calibrations in Two Passes System Considerations for the Tracking Calibrations
Due to system considerations, whereby the power amplifier This section describes the operation of the tracking calibrations.
must be off for all calibrations except for the external local Figure 37 through Figure 44 shows how the device is configured
oscillator leakage (LOL) initial calibration, it is necessary to for each calibration, and a brief explanation of the calibration is
run two instances of the following functions: provided. In Figure 37, Figure 39, Figure 41, and Figure 43, the
grayed out lines and blocks are not active in the calibration.
AD9371_runInitCals()
Lines showing the path of the local oscillators (LOs) are shown in
AD9371_waitInitCals()
black to distinguish them from the signal paths. As the ARM
In the first instance, all calibrations are set in the calibration performs each of the calibrations, it is tasked with configuring
mask except for the external LOL initial calibration (D9). The whether the feedback path or the ORx input is selected. No user
PA is turned off per Figure 34, and the Rx input is terminated as input is required in this regard. When utilizing external LOL
shown in Figure 33. The ARM cycles through each of the tracking, however, the ensure that the feedback path is available
calibrations in turn. Upon a successful return from the AD9371_ to use.
waitInitCals() function, the baseband processor (BBP) turns on
the power amplifiers used in the Tx paths.
In the second instance, only the external LOL initial calibration
is run (only D9 is set in the cal mask). The signal chains in the
device are then fully calibrated after successful completion of
this calibration.
50Ω
JESD204B INTERFACE
Rx HBFs
INPUT LPF ADC AND FIR
QEC
BLOCK
HBFs
LPF ADC AND FIR
CAL
PLL Rx LO
14652-036
Figure 37. Rx QEC Tracking
AIR TIME Tx Rx Tx Rx
Rx ENABLE
PERIODS WHERE
14652-037
Rx QEC Rx QEC Rx QEC
CAN RUN
Figure 38. Timing Diagram Showing When Rx QEC Can Run in TDD Mode
(In FDD Modes, Rx Enable is High at All Times; Rx Enable Refers to the Enablement of Rx1 and/or Rx2)
50Ω
JESD204B INTERFACE
ORx HBFs
INPUT LPF ADC AND FIR
QEC
BLOCK
HBFs
LPF ADC AND FIR
SnRx LO
CAL
PLL
14652-038
Tx LO
AIR TIME Tx Rx Tx Rx
HIGH = ORx ON
ORx ON/OFF
ORx USAGE
LOW = INTERNAL
CALIBRATIONS MODE
PERIODS WHERE
14652-039
ORx QEC ORx QEC
CAN RUN
Figure 40. Timing Diagram Showing When ORx QEC Can Run in TDD Mode
(ORx On/Off and ORx Usage Are Not Real Signals Used in the Control of the Device, But are Generalizations of the Control of the ORx Path)
ORx
INPUT
FEEDBACK
PATH HBFs
LPF ADC AND FIR
ATTENUATOR
HBFs
LPF ADC AND FIR
JESD204B INTERFACE
SnRx LO
QEC
BLOCK
CAL
PLL
Tx LO
HBFs
LPF DAC
COUPLER AND FIR
PA
Tx HBFs
OUTPUT LPF DAC AND FIR
14652-040
SIG
GEN
AIR TIME Tx Rx Tx Rx
Tx ENABLE
ORx USAGE
LOW = INTERNAL
CALIBRATIONS MODE
PERIODS WHERE
14652-041
TxQEC Tx QEC
CAN RUN
Figure 42. Timing Diagram Showing When Tx QEC Can Run in TDD Mode (In FDD Modes, Tx Enable is High at All Times; Tx Enable Refers to the Enable of Tx1 and/or
Tx2; ORx Usage Refers to Either ORx1 if Considering Tx1, and ORx2 is Considering Tx2, as Tx1 is Calibrated with the Internal Feedback Path of ORx1, and So On; Note
that ORx Usage is Not a Real Signal Used in the Control of the Device, But is a Generalization of How the ORx is Controlled)
ORx
INPUT
FEEDBACK
PATH HBFs
LPF ADC AND FIR
ATTENUATOR
HBFs
LPF ADC AND FIR
JESD204B INTERFACE
SnRx LO
QEC
BLOCK
CAL
PLL
Tx LO
HBFs
LPF DAC
COUPLER AND FIR
PA
Tx HBFs
OUTPUT LPF DAC AND FIR
14652-042
SIG
GEN
AIR TIME Tx Rx Tx Rx
Tx ENABLE
ORx USAGE
LOW = INTERNAL
CALIBRATIONS MODE
PERIODS WHERE
14652-043
Tx LOL Tx LOL
CAN RUN
Figure 44. Timing Diagram Showing When Tx LOL Can Run in TDD Mode
(In FDD Modes, Tx Enable is High at All Times; Tx Enable Refers to the Enable of Tx1 and/or Tx2; ORx Usage Refers to the Corresponding ORx Path of the Tx Identified
for Tx External LOL Calibration; Note that ORx Usage is Not a Real Signal Used to Control the Device But is Instead a Generalization of How the ORx is Controlled)
Table 74. errorCode Designators as Included in the errorCode Parameter Returned from waitInitCals( )
errorCode Calibration
0x00 Tx baseband filter calibration
0x01 ADC tuner calibration
0x02 Rx transimpedance amplifier (TIA) filter calibration
0x03 Rx dc offset calibration
0x04 Tx attenuation delay
0x05 Rx gain delay
0x06 ADC flash calibration
0x07 Path delay calibration
0x08 Tx local oscillator leakage (LOL) initial calibration
0x09 Tx LOL external initial calibration
0x0A Tx quadrature error correction (QEC) initial calibration
0x0B Loopback ORx LO delay
0x0C Loopback Rx QEC initial calibration
0x0D Rx LO delay
0x0E Rx QEC initial calibration
/// Reads the ARM Memory and writes the binary byte array directly to a binary file. Fi
rst 98304 bytes are program
/// memory followed by 65536 bytes of data memory.
The binaryFilename is opened before reading the ARM memory to
/// verify that the filepath is has valid write access before reading ARM memory.
A file IO exception will be
/// thrown if write access is not valid for the binaryFilename path.
/// </summary>
/// <param name="binaryFilename">File path to save the binary data. Make sure you have
write access to the location.</param>
/// <exception cref="InvalidOperationException">Thrown if TCPIP is not connected</except
ion>"
public void dumpArmMemory(string binaryFilename)
{
if (this.hw.Connected)
{
//Write in BINARY FILE format
String filename = binaryFilename;
System.IO.FileStream fileStream = new System.IO.FileStream(filename, System.IO.F
ileMode.Create, System.IO.FileAccess.Write);
if (exceptionValue == 0)
{
byte armNotBusy = 0;
this.readEventStatus(WAIT_EVENT.ARMBUSY, ref armNotBusy);
if (armNotBusy > 0)
{
//Force an exception during ARM MEM dump for more useful information
this.sendArmCommand(0x0A, new byte[] { 0x69 }, 1);
if (exceptionValue == 0)
{//if we forced an exception, clear the exception so the ARM will continue to ru
n.
this.writeArmMem(0x01017FF0, 4, new byte[] { 0, 0, 0, 0 });
this.readArmMem(0x01017FF0, 4, 1, ref exceptionArray);
}
fileStream.Write(programMem, 0, programMem.Length);
fileStream.Write(dataMem, 0, dataMem.Length);
fileStream.Close();
}
else
{
throw new InvalidOperationException("No Hardware Connection");
}
}
SYSTEM CONTROL
CONTROL OF SIGNAL CHAINS (Tx/Rx) • For Tx channels, device → tx → txChannels.
The ARM enables and disables the signal chains of the device, • For Rx channels, device → rx → rxChannels.
which can be performed either through pin control or over the Pin Control Mode
SPI interface. In frequency division duplex (FDD) mode, it is
To enable pin control mode, run the following application
possible to use the application programming interface (API) to
programming interface (API) function:
enable or disable paths; however, in TDD mode, it is recommended
to use pin control of the signal chains to adhere to the strict MYKONOS_setRadioControlPinMode(mykonosDevice
_t *device)
timing requirements of TDD operation.
This function relies on the settings stored in the mykonos-
ARM Control Mode
ArmGpioConfig_t data structure, which must be included in
If the device is not in pin control mode, it defaults to command the device structure at device → auxIO → armGpio. The specific
mode. In this mode, the ARM enables all signals paths (Tx/Rx) members of the structure used by this function are shown in
defined in the data structure provided during the initialization of Table 86.
the device upon entering the radio on (operational) state.
Likewise, the ARM powers down the signal paths upon leaving
the radio on state. The parameters in the device structure that
determine the Rx and Tx chains enabled are as follows:
Table 86. ARM GPIO Configuration Structure Member Descriptions for setRadioControlPinMode
Structure Member Valid Values Description
txRxPinMode 0, 1 0 = ARM command mode for powering up or powering down the Rx/Tx chains
1 = pin control mode for powering up or powering down the Rx/Tx chains
orxPinMode 0, 1 0 = ARM command mode for controlling the ORx receiver
1 = pin control mode for controlling the ORx receiver
useRx2EnablePins 0, 1 0 = use the RX1_ENABLE pin to power up or power down both Rx1 and Rx2
1 = use the RX1_ENABLE pin to power up or power down Rx1, and use the RX2_ENABLE pin
to power up or power down Rx2
useTx2EnablePins 0, 1 0 = use the TX1_ENABLE pin to power up or power down both Tx1 and Tx2
1 = use the TX1_ENABLE pin to power up or power down Tx1, and use the TX2_ENABLE pin
to power up or power down Tx2
AIR TIME Tx Rx Tx Rx
TX_ENABLE
tENABLE_RISE_TO_FALL tENABLE_FALL_TO_RISE
RX_ENABLE
tENABLE_FALL_TO_ACK
TX_ENABLE_ACK
tENABLE_RISE_TO_ACK
RX_ENABLE_ACK
14652-044
Figure 45. Control of Signal Chains Using RX_ENABLE and TX_ENABLE
ORX_TRIGGER
tMODE_SETUP
ORX_MODE_0
tMODE_HOLD
ORX_MODE_1
ORX_MODE_2
tMODE_ACK
ORX1_ENABLE_ACK
ORX2_ENABLE_ACK
14652-045
SRX_ENABLE_ACK
Table 90. ARM GPIO Configuration Structure Member Descriptions for setArmGpioPins( )
Structure Member Input or Output Available on GPIO Pins
orxTriggerPin Input 4 … 15
orxMode2Pin Input 0 … 15, 18
orxMode1Pin Input 0 … 15, 17
orxMode0Pin Input 0 … 15, 16
rx1EnableAck Output 0 … 15
rx2EnableAck Output 0 … 15
tx1EnableAck Output 0 … 15
tx2EnableAck Output 0 … 15
orx1EnableAck Output 0 … 15
orx2EnableAck Output 0 … 15
srxEnableAck Output 0 … 15
txObsSelect Output 0 … 15
Tx POWER CONTROL
The device features transmitter power control (TPC) to provide Table 91. mykonosTxAttenStepSize_t Enumeration Values
precise control of the transmitter output power. The attenuation and Interpretation
control allows 41.95 dB of attenuation within the transmitter
mykonosTxAttenStepSize_t Enumeration Tx Attenuation
datapath with a minimum resolution of 0.05 dB. Note that Enumeration Value Step Size (dB)
transmitter performance may degrade at attenuation settings TXATTEN_0P05_DB 0 0.05
greater than 20 dB. TXATTEN_0P1_DB 1 0.1
Two transmitter signal path components have variable attenuation TXATTEN_0P2_DB 2 0.2
settings. These include the analog RF attenuator located after TXATTEN_0P4_DB 3 0.4
the mixer, and the digital attenuator located prior to the digital
filters. Refer to Figure 47 for a simplified block diagram In SPI mode, the application programming interface (API)
depicting the variable attenuation stages. commands used to change the Tx attenuation setting are as
follows:
Two modes of interaction regarding the TPC are as follows:
MYKONOS_setTx1Attenuation(mykonosDevice_t
• SPI mode. This mode uses the SPI to send a command to *device, uint16_t tx1Attenuation_mdB)
change the Tx1 or Tx2 attenuation. The resolution of the MYKONOS_setTx2Attenuation(mykonosDevice_t
attenuation step size is a minimum of 0.05 dB. Separate *device, uint16_t tx2Attenuation_mdB)
commands exist for control of Tx1 or Tx2. These commands can be called in the radio on or radio off
• GPIO mode. This mode allows changes of the Tx1 or Tx2 states. If the tx1Attenuation_mdB or tx2Attenuation_mdB to
attenuation based on a low to high transition on selected this function is not a multiple of the Tx attenuation step size,
low voltage GPIO pins. Separate pins can be assigned for the value is rounded down to the nearest multiple of the
Tx1 increment attenuation, Tx1 decrement attenuation, txAttenStepSize value.
Tx2 increment attenuation, and Tx2 decrement attenuation. Additionally, API commands can retrieve the current Tx
The resolution of the attenuation step size can be set to attenuation value. These commands can be used in either SPI
multiples of 0.05 dB up to 1.55 dB in the GPIO mode. or GPIO mode. If the Tx datapath is powered down when these
In SPI mode, resolution of attenuation control can be selected as commands are called, the last valid Tx attenuation setting when
0.05 dB, 0.1 dB, 0.2 dB, or 0.4 dB. This control is set within the the Tx was powered up is read back. These commands are as
device data structure, in device → tx → txAttenStepSize. The follows:
control is of data type mykonosTxAttenStepSize_t, whose MYKONOS_getTx1Attenuation(mykonosDevice_t
enumerated values are described in Table 91. Note that this *device, uint16_t *tx1Attenuation_mdB)
value is programmed to device registers during the • MYKONOS_getTx2Attenuation(mykonosDevice_
MYKONOS_initialize() command. t *device, uint16_t
*tx2Attenuation_mdB)
Refer to the General-Purpose Input/Output (GPIO) Configuration
section for information regarding configuration and operation
of GPIO TPC mode.
DIGITAL FILTER
AND DIG DIGITAL
14652-046
LPF IDAC
SIGNAL ATTEN INTERFACE
RF ATTENUATOR CORRECTION
Figure 47. Variable Attenuation Elements for Transmitter Power Control (TPC)
DEVICE INTIALIZED
CONFIGURE PA PROTECTION
MYKONOS_setupPaProtection (...)
START PA PROTECTION
MYKONOS_setupPaProtection (...)
Y Y
14652-130
BY Attenstep IF PA ERROR FLAG
IS HIGH
where: Preconditions
txChannelPowerdBFS is the channel power when converted into Enable the power amplifier protection block.
units of dBFS relative to the Tx DAC full scale.
Parameters
channelPower is the value of the pointer stored by this command.
For example, if channelPower is reading 409, the channel power • *device: This is a pointer to the device data structure.
in dBFS is −10 dBFS. • *errorFlagStatus: This is a pointer that stores the error flag
Preconditions status indicating which Tx channel error flags are set.
Printed circuit board (PCB) routing is made difficult by the Table 94. DEV_CLK Phase Noise Requirements,
location of the DEV_CLK_IN± balls: they are located in the 122.88 MHz Reference
middle of the ball grid array. To avoid potential coupling of the Frequency Offset from Carrier Phase Noise Level (dBc/Hz)
reference input clock to the RF signals, it is recommended to 100 Hz −103
place the termination resistor and ac coupling capacitors on the 1000 Hz −124
opposite side of the PCB from the device, and to use vias to 10 kHz −134
route the clock signals up to the device as close to the input balls 100 kHz −136
as possible to complete the connections. More information 1 MHz −147
regarding PCB routing can be found in the Printed Circuit Board 10 MHz −157
Layout Guidelines section.
BASEBAND
PROCESSOR
OR FPGA
SPI INTERFACE
AD9371 DIGITAL
DIVIDERS
AD9528 CLOCK SYNTHESIZER PLL
AFTER CLOCK
SYNTHESIZER
REFERENCE
REF_CLK REF_CLK CLOCK
GENERATION AND CLOCK SYNTHESIZER
DIVIDER Σ-∆ MODULATOR
DISTRIBUTION /K2 = 4, 2, 1 JESD204B
(TYPICALLY DISABLED) FRAMER/
DEFRAMER
1
1 2* 3 4 2*
MULTICHIP 4
SYSREF PULSE SYSREF SYNCRONIZATION (MCS)
GENERATION AND CAPTURE
FF BLOCK 3
DISTRIBUTION
14652-149
*TYPICALLY NOT USED
DEV_CLK
SYSREF
14652-150
tH = –1.5ns t′H = –0.5ns
tS = +2.5ns CLK DELAY = 2ns t′S = +0.5ns
Figure 51. Timing Alignment of SYSFREF vs. DEV_CLK at the Device Pins
tS tS tS tS
tH tH tH tH
DEV_CLK
SYSREF
tH = –1.5ns
tS = +2.5ns
Figure 52. SYSREF Setup and Hold Timing with Examples of SYSREF Pulse
SYNTHESIZER CONFIGURATION
The device contains three radio frequency (RF) phased- JESD204B interface rates typically require that the synthesizer
locked loop (PLL) synthesizers for Tx, Rx, and ORx/sniffer operate in integer mode. Profiles that are included in the
channel tuning. Figure 53 shows these synthesizers and their transceiver evaluation software (TES) configure the clock
interconnectivity with each of the RF signal paths. Each PLL synthesizer appropriately. Reconfiguration of the clock synthesizer
synthesizer employs a fractional–N architecture with a is typically not necessary after initialization. The most direct
completely integrated voltage controlled oscillator (VCO) and approach to the configuration is to follow the recommended
loop filter. No external devices are required to cover the entire programming sequence and use the provided application
frequency range of the device. This configuration allows the use programming interface (API) functions to set the clock
of any convenient reference frequency for operation on any synthesizer to the desired mode of operation.
channel with any sample rate. The fundamental frequency of A calibration PLL (CALPLL) synthesizer is integrated into the
the PLL ranges from 6 GHz to 12 GHz. The local oscillator (LO) device to generate the signals necessary to calibrate the device.
frequency is created by dividing down the PLL VCO frequency. The reference frequency for the CALPLL is scaled from the
The reference frequency for the PLL is scaled from the reference device clock applied to the DEV_CLK_IN± pins. The CALPLL
clock applied to the DEV_CLK_IN± pins. output signal is injected into the input of the Rx signal path.
The device also provides a clock synthesizer to generate all the This calibration is executed during the initialization sequence at
clocking signals necessary to run the device. The reference startup. There must be no signal present at the Rx input during
frequency for the PLL is scaled from the reference clock applied tone calibration time. Solely the internal ARM processor
to the chip DEV_CLK_IN± pins. Although it is a fractional–N controls the CALPLL. This procedure is fully autonomous, and
architecture, note that the signal sampling relationships to the there is no user access to control the CALPLL state.
TO CLK TO CAL
Rx SIGNAL CHAIN SYNTHESIZER SYNTHESIZER
CLK CLK
CLK SCALE SCALE
RX_EXTLO+ SCALE
LO
RX_EXTLO– GENERATOR
CLK DEV_CLK_IN+
SCALE
REFERENCE
Rx DISTRIBUTION
SYNTHESIZER DEV_CLK_IN–
CLK
SCALE
Tx SIGNAL CHAIN
TX_EXTLO+
LO LO
TX_EXTLO– GENERATOR GENERATOR
14652-047
Tx ORx
SYNTHESIZER SYNTHESIZER
14652-153
the desired RF tune frequency. The signal is divided internally B7
RX_EXTLO–
by 2 to generate the required LO quadrature relationship. The
Figure 54. TX_EXTLO and RX_EXTLO Inputs
range of the external LO signal can be as low as 600 MHz and as
high as 12 GHz, covering the RF tune frequency range from Higher external LO frequencies require higher input power.
300 MHz to 6 GHz. In general, higher input power produces better phase noise
The two separate differential external LO inputs follow: performance. To optimize system design, the minimum input
power that results in phase noise meeting requirements (with
The external LO for the Rx signal chain uses the B7 some margin) must be used. If an on-board balun is used to
(RX_EXTLO−) and B8 (RX_EXTLO+) balls. connect a single-ended LO supply to the differential inputs,
The external LO for the Tx signal chain use the E11 the loss of the balun must be taken into account when
(TX_EXTLO−) and E12 (TX_EXTLO+) balls. calculating input power. Table 95 describes the specifications
Both inputs present 100 Ω differential impedance. Differential for the RX_EXT_LO and TX_EXT_LO input pins. Note that
signals applied to the external LO inputs must be ac-coupled. operation is limited to LO frequencies lower than 4000 MHz.
Place a 50 Ω termination resistor on each input line as close as Higher frequencies require use of the internal LO generators.
possible to the external LO input balls. Figure 54 provides a high
level overview of the recommended configuration.
14652-048
Figure 55. Internal and External LO Configuration in the Transceiver Evaluation Software (TES)
and
14652-049
static mykonosTxSettings_t txSettings =
uint8_t txPllUseExternalLo /*
Figure 56. LO Selection for Sniffer and ORx Path in the Transceiver Evaluation
Internal LO = 0, external LO*2 if =1 */ Software (TES)
uint64_t txPllLoFrequency_Hz /*
Tx PLL LO frequency (internal or external MYKONOS_setObsRxPathSource
LO/2) */ mykonosErr_t MYKONOS_setObsRxPathSource (
It is important to note that when an external LO is used, the mykonosDevice_t * device,
mykonosObsRxChannels_t obsRxCh )
value of the RF frequency must still be programmed for the
Tx and Rx channels (see the red box in Figure 55) and the When the ARM radio control is in ARM command mode, this
rxPllLoFrequency_Hz or rxPllLoFrequency_Hz structure function allows the user to selectively power up or power down
members. For more details regarding the initialization the desired ObsRx datapath.
procedure, refer to the System Initialization section. The value set in device → obsRx → obsRxChannel determines
Part of the initialization procedure includes setting up internal the mode of operation for the SnRx path. The user options are
clock generation. All internal clocks are generated based on the as follows:
selected profile; therefore, there is no need for reconfiguration of OBS_RXOFF: The SnRx path is disabled.
the clock synthesizer after the device finishes the initialization OBS_RX1_TXLO: The SnRx operates in observation mode
sequence. Initialization of the clock generation block (see Figure 53) on ORx1 with the Tx LO synthesizer.
is done by the API function described in the following section. OBS_RX2_TXLO: The SnRx operates in observation mode
MYKONOS_initDigitalClocks on ORx2 with the Tx local oscillator (LO) synthesizer.
mykonosErr_t MYKONOS_initDigitalClocks ( OBS_INTERNALCALS: This enables scheduled Tx
mykonosDevice_t * device ) calibrations while using SnRx path. The enableTrackingCals
This function updates the clock synthesizer and loop filter settings function must be called in the radio off state. It sets the
based on a voltage controlled oscillator (VCO) frequency calibration mask, which the scheduler uses later to schedule
lookup table (LUT). The VCO frequency break points for the the desired calibrations. This command is issued in radio off.
synthesizer LUT can be found in the vcoFreqArrayHz array. After the device moves to the radio on state, the internal
This function has no parameters, and there is no need for scheduler uses the enabled calibration mask to schedule
interaction with it from the user. This function is automatically calibrations whenever possible, based on the state of the
called inside the main initialization application programming transceiver. The Tx calibrations are not be scheduled until
interface (API) function. OBS_INTERNALCALS is selected, and the Tx calibrations
are enabled in the calibration mask.
mykonosErr_t
MYKONOS_initialize(mykonosDevice_t
*device)
/*******************************/
/**** Set RF PLL Frequencies ***/
/*******************************/
mykError = MYKONOS_setRfPllFrequency(&mykDevice, RX_PLL, mykDevice.rx->rxPllLoFrequency_Hz);
mykError = MYKONOS_setRfPllFrequency(&mykDevice, TX_PLL, mykDevice.tx->txPllLoFrequency_Hz);
mykError = MYKONOS_setRfPllFrequency(&mykDevice, SNIFFER_PLL, mykDevice.obsRx-
>snifferPllLoFrequency_Hz);
/*** < wait 200ms for PLLs to lock - user code here > ***/
GAIN CONTROL
The device main receivers (Rx1 and Rx2) and sniffer receivers into the configurable settings of the AGC engine. Following the
(SnRxA, SnRxB, and SnRxC) feature automatic and manual receiver gain control programming descriptions, the remaining
gain control modes that provide flexible gain control in a wide sections examine the gain compensation methods available in
array of applications. The observation receivers (ORx1 and the device (slicer/floating point formatter). Details of the API
ORx2) feature manual gain control (MGC) only. Automatic commands and data structures are provided throughout this
gain control (AGC) allows the receivers to autonomously adjust section.
the receiver gain depending on variations of the input signal,
VARIABLE GAIN ELEMENTS IN THE RECEIVER
such as the onset of a strong interferer overloading the receiver
DATAPATHS
datapath. All the receivers are also capable of operating in MGC
mode where changes in gain are initiated by the baseband Gain Control Block Diagram Overview
processor (BBP) over the SPI or the GPIO control mode. The The receivers have several variable gain elements within their
gain control blocks are configured by the application programming datapaths. For the Rx and ORx datapaths, the variable gain
interface (API) data structures, and several API commands exist stages include an internal RF attenuator, an (optional) external
to allow user interaction with the gain control mechanisms. RF attenuator, and a digital gain/attenuation block. The external
attenuator is an optional stage outside of the device that can be
This section begins by explaining the variable gain elements in
controlled by using the GPIO pins. An example of an external
the receiver datapaths, the structure of the gain tables, and how
attenuator is a digital step attenuator (DSA). The datapath for
to develop and program custom gain tables. This information is
the Rx channel is shown in Figure 57.
followed by a description of the AGC peak detectors, overload
detectors, and power measurement detectors to provide insight
Rx DATAPATH 3-PIN CONTROL
TO BBP
EXTERNAL INTERNAL
ATTENUATION ATTENUATION DEC5
(OPTIONAL)
INTERNAL
ATTENUATION WORD[5:0] DIGITAL GAIN/ATTENUATION SELECT[1],
DIGITAL GAIN/ATTENUATION WORD[6:0]
EXTERNAL ATTENUATIONWORD[3:0]
14652-050
Figure 57. Rx Datapath, Highlighting the Gain Control Block and the Variable Gain Elements (Not the Complete Datapath)
14652-051
LNA BYPASS ENABLE
Figure 58. SNRXA Datapath, Highlighting the Gain Control Block and the Variable Gain Elements (Not the Complete Datapath)
The following example demonstrates the calculations involved in Gain Table Index 253:
Atten(GainIndex) = AIntAtten(IntAtten[5:0]) + AextAtten(ExtAtten[3:0]) + AdigAttenGain(digAttenEn, digGainAtten[6:0])
Atten(253) = AIntAtten(IntAtten[5:0]) + AdigAttenGain(1, 3)
Atten(253) = 20log10((64 − 6)/64) + AdigAttenGain(1, 3)
Atten(253) = −0.855 + (−1) × (0.05)
Atten(253) = −0.855 – 0.15 = −1.01 dB
#include <stdint.h>
#include "t_mykonos.h"
#include "mykonos_user.h"
/**
* \brief Default Rx gain table settings
*/
uint8_t RxGainTable [61][4] =
{
/* Order: {FE table, External Ctl, Digital Gain/Atten, Enable Atten} */
{0, 0, 0, 0}, /* Gain index 255 */
{3, 0, 2, 1}, /* Gain index 254 */
{6, 0, 3, 1}, /* Gain index 253 */
{10, 0, 0, 0}, /* Gain index 252 */
{13, 0, 1, 1}, /* Gain index 251 */
{16, 0, 0, 0}, /* Gain index 250 */
…
For example, when the device sets the Rx1 gain index to gain index of 254, the values in the row corresponding to Gain Index 254 are
programmed into the device registers corresponding the four columns within that row. For the default Rx gain tables, this corresponds to
a 0.5 dB decrease in receiver gain compared to the gain condition in Gain Index 255 (maximum gain).
SnRx Gain Table There are two ways to change the default gain tables:
The format of the columns in the SnRx gain table rows are as 1. Modify the mykonos_user.c and mykonos_user.h files with
follows: valid settings and gain tables. Note that gain tables are
• Internal attenuator word programmed to device registers when the MYKONOS_
initArm(…) command is called in the initialization
• LNA bypass enable
sequence.
• Digital gain/attenuation word
2. Perform gain table programming during or after the
• Digital attenuation enable
initialization sequence provided in the headless.c file.
A different gain table column format is used in the SnRx gain After verifying the ARM is loaded properly (executing
table because the variable gain elements are different in the MYKONOS_verifyArmChecksum(…) without returning
SnRx datapath relative to the Rx/ORx datapath. The SnRx gain an error), custom gain tables can be written by using the
table includes a column representing the LNA bypass bit. LNA following application programming interface (API)
bypass is activated when these bits are equal to 1. The SnRx gain function:
table does not allow external attenuator control. When not mykonosErr_t
using the LNA at all during SnRx operation, set the LNA bypass MYKONOS_programRxGainTable(mykonosDevi
column to 1 for all rows. ce_t* device, uint8_t* gainTablePtr,
uint8_t numGainIndexesInTable,
Custom Gain Tables mykonosGainTable_t rxChannel)
The default gain tables can be found in the mykonos_user.c file.
This function takes a pointer to a 4 × N array, the value N,
The mykonos_user.c and mykonos_user.h files can be customized and the channel with the gain table to be overwritten. The
to modify, add, or delete the default gain table settings. Consult N variable specifies the number of rows of the new gain
Analog Devices applications engineering prior to changing gain table. This function can write gain tables for the Rx1, Rx2,
tables. Rx1 channels and the Rx2, ORx, and SnRx channels. Note
In the mykonos_user.c file, receiver gain tables can be modified that Rx1 and Rx2 may have separate gain tables.
for the intended application. In the default gain tables, the gain
step size between neighboring gain indices for the Rx channel
are 0.5 dB, 1 dB for the ORx channel, and 1 dB for the SnRx
channel. These tables have a gain range extending to 30 dB,
18 dB, and 52 dB, respectively. In the default gain tables, the
maximum gain condition for all the tables is the first index in
the gain table, which corresponds to Gain Index 255.
To set a target gain for the Rx datapath, the device allows the
user to configure the maximum gain index (independently for
both Rx1 and Rx2 channels) such that any gain index value can
be configured to be the maximum gain index. For example, if
the target gain for the Rx subsystem is 40 dB, but the factory
calibration returns a total gain of 42 dB, it is possible to
configure the target gain appropriately by changing the
maximum gain index from 255 to 251 (−2 dB).
10000
minimum gain index is application dependent.
For Rx1, Rx2, and ORx (A, B, C, or D), A indicates front end 0
attenuation/gain select.
–40000
14652-052
0 50 100 150 255 250 300 350
The gain table starting address changes with each receiver type.
SAMPLE NUMBER
This function accounts for this change as well as the difference
Figure 59. Double Gain Step Observed in Baseband Data Due to Insufficient
between each byte for the Rx1, Rx2, ORx, and SnRx receiver Digital Gain Delay
array values and programs the correct registers.
The Rx gain delay calibration (ARM calibration) alleviates this
Preconditions double gain step by calculating a delay value for the onset of
The MYKONOS_programRxGainTable(…) command does not digital gain/attenuation. A successful calibration makes it
need to be called by user if following headless.c instructions. appear to the baseband processor that only one gain change has
been made, as shown in Figure 60. The calibration depends on
Parameters
the datapath configuration.
*device: A pointer to the device data structure. 15000
*gainTablePtr: A pointer to a 4 × n array containing gain
table values. 10000
is not exceeded.
rxChannel: mykonosGainTable_t enumeration type to 0
select either the Rx1, Rx2, Rx1 and Rx2, ORx, or SnRx gain
table for programming. A channel check is performed to –5000
NO GAIN CHANGE
RECEIVED SIGNAL
POWER
INTERFERER
PRESENT
apdLowThresh GAIN
INCREMENT
INCREMENT GAIN BY
GAIN apdLowGainStepRecovery
14652-054
ACG GAIN UPDATE INCREMENT
TIME
Figure 61. APD Response to Interferer Onset and Removal with APD Fast Attack Disabled
apdHighThreshExceededCnt
overflow
PEAK
DETECTOR
COUNTERS
GAIN RESET ON GAIN
DECREMENT CHANGE. GAIN DECREMENT GAIN BY
GAIN UPDATE COUNTER apdHighGainStepAttack
DDECREMENTEC DOES NOT RESET
GAIN ON GAIN CHANGE.
DECREMENT
apdHighThresh
INTERFERER
REMOVED
NO GAIN CHANGE
RECEIVED SIGNAL
POWER
INTERFERER
PRESENT
apdLowThresh
GAIN
INCREMENT
INCREMENT GAIN BY
GAIN apdLowGainStepRecovery
ACG GAIN UPDATE
14652-055
INCREMENT
TIME
Figure 62. APD Response to Interferer Onset and Removal with APD Fast Attack Enabled
hb2HighThreshExceededCnt
overflow
hb2HighThreshExceededCnt
overflow
GAIN hb2HighThreshExceededCnt
DECREMENT overflow DECREMENT GAIN BY
GAIN hb2HighGainStepAttack
DECREMENT
GAIN
DECREMENT
hb2HighThresh
INTERFERER
REMOVED
NO GAIN CHANGE
RECEIVED SIGNAL
POWER
INTERFERER
PRESENT
GAIN
hb2LowThresh INC
INCREMENT GAIN BY
hb2LowGainStepRecovery
hb2VeryLowThresh GAIN
INCREMENT GAIN BY
14652-056
INCREMENT
ACG GAIN UPDATE hb2VeryLowGainStepRecovery
TIME
Figure 63. HB2 Thresholds and Gain Changes Associated with Underrange and Overrange Conditions with HB2 Fast Attack Mode Disabled
hb2HighThreshExceededCnt
overflow
NOTE: PEAK
DETECTOR
GAIN COUNTERS
DECREMENT RESET ON GAIN DECREMENT GAIN BY
CHANGE. GAIN hb2HighGainStepAttack
GAIN UPDATE COUNTER
DECREMENT DOES NOT RESET
GAIN ON GAIN CHANGE
DECREMENT
hb2HighThresh
INTERFERER
REMOVED
NO GAIN CHANGE
RECEIVED SIGNAL
POWER
INTERFERER
PRESENT
GAIN
hb2LowThresh INC
INCREMENT GAIN BY
hb2LowGainStepRecovery
hb2VeryLowThresh
GAIN
INCREMENT GAIN BY
14652-057
INCREMENT
ACG GAIN UPDATE hb2VeryLowGainStepRecovery
TIME
Figure 64. HB2 Thresholds and Gain Changes Associated with Underrange and Overrange Conditions with HB2 Fast Attack Mode Enabled
pmdUpperHighThresh GAIN
DECREMENT DECREMENT GAIN BY
pmdUpperLowGainStepAttack
14652-058
pmdLowerLowThresh GAIN
INCREMENT INCREMENT GAIN BY
pmdLowerHighGainStepRecovery
Figure 65. Power Measurement Detector (PMD) Thresholds and Gain Index Changes Associated with Underrange and Overrange Conditions
GAIN (dB)
gain step, and then the PMD upper low threshold attack
gain step.
Gain increments occur due to underrange conditions. All gain
index increments occur at the end of the AGC gain update
counter.
The APD underrange condition occurs when the
14652-601
0 2000 4000 6000 8000 10000 12000 14000
apdLowThreshExceededCnt counter does not overflow by TIME (µs)
the end of the AGC gain update counter. Figure 66. Typical Automatic Gain Control (AGC) Operation vs. Time
The HB2 underrange condition occurs when the ×10 4
2.5
hb2LowThreshExceededCnt counter does not overflow by
the end of the AGC gain update counter. 2.0
The HB2 very low underrange condition occurs when the 1.5
hb2VeryLowThreshExceededCnt counter does not
1.0
overflow by the end of the AGC gain update counter
AMPLITUDE
then the APD low recovery gain step, then the HB2 low –2.0
recovery gain step, then the PMD lower low threshold
–2.5
14652-059
recovery gain step, and then the PMD lower high threshold 0 2000 4000 6000 8000 10000 12000 14000
TIME (µs)
recovery gain step.
Figure 67. Typical Receiver Data Output Codes vs. Time with AGC Active
When configuring the AGC, it is important to ensure that the
difference between the high level thresholds and low level
thresholds, in dB, is greater than the gain decrement step size
and greater than the gain increment step size in dB. Setting the
thresholds and step sizes in this way prevents a small overload
from pushing the receiver from an overrange condition into an
underrange condition when the gain decrement occurs, which
may cause an underrange condition and a gain increment. This
situation may lead to an undesirable gain index oscillation
scenario.
MYKONOS_setupObsRxAgc(…) Run this function after device initialization in AGC mode. Set the
device → rx → rxAgcCtrl → agcEnableSyncPulseForGainCounter
mykonosErr_t
MYKONOS_setupObsRxAgc(mykonosDevice_t* parameter to 1 for this feature to work as intended; note that
device) this is not a precondition for this function to be called.
Description Parameters
This function sets up the device Rx AGC registers. • *device: This is a pointer to the device data structure.
Three data structures (of types mykonosAgcCfg_t,
mykonosPeakDetAgcCfg_t, and mykonosPowerMeasAgcCfg_t)
must be instantiated prior to calling this function. Valid ranges
for data structure members must also be provided.
DEVICE INITIALIZATION
SEQUENCE
(headless.c)
SET GAIN MODE SETUP AGC BEHAVIOR SETTINGS SETUP AGC BEHAVIOR SETTINGS
_setRxGainControl Mode(...) _setupRxAgc(...) _setupRxAgc(...)
14652-060
GAIN CONTROL
SETUP COMPLETE
mykonosPeakDetAgcCfg_t
+ apdHighThresh
+ apdLowThresh
+ hb2HighThresh
+ hb2LowThresh mykonosPowermeasAgcCfg_t
+ hb2VeryLowThresh
+ apdHighThreshExceededCnt + pmdUpperHighThresh
+ apdLowThreshExceededCnt + pmdUpperLowThresh
+ hb2HighThreshExceededCnt + pmdLowerHighThresh
+ hb2LowThreshExceededCnt + pmdLowerLowThresh
+ hb2VeryLowThreshExceededCnt + pmdUpperHighGainStepAttack
+ apdHighGainStepAttack + pmdUpperLowGainStepAttack
+ apdLowGainStepRecovery + pmdLowerHighGainStepRecovery
+ hb2HighGainStepAttack + pmdLowerLowGainStepRecovery
+ hb2LowGainStepRecovery + pmdMeasDuration
+ hb2VeryLowGainStepRecovery + pmdMeasConfig
+ apdFastAttack
+ hb2FastAttack
+ hb2OverloadDetectEnable
+ hb2OverloadDurationCnt
+ hb2OverloadThreshCnt
+peakAgc +powerAgc
mykonosAgcCfg_t
+ agcRx1MaxGainIndex
+ agcRx1MinGainIndex
+ agcRx2MaxGainIndex
+ agcRx2MinGainIndex
+ agcObsRxMaxGainIndex
+ agcObsRxMinGainIndex
+ agcObsRxSelect
+ agcPeakThresholMode
+ agcLowThsPreventGainIncrease
+ agcGainUpdateCounter
+ agcSlowLoopSettlingDelay
+ agcPeakWaitTime
+ agcResetOnRxEnable
+ agcEnableSyncPulseForGainCounter
14652-061
Figure 69. Member Listing of the mykonosAgcCfg_t, mykonosPeakDetAgcCfg_t, and mykonosPowerMeasAgcCfg_t Data Structures
The following sections outline the parameters within the three The MYKONOS_setupObsRxAgc(…) function does not
automatic gain control (AGC) configuration structures with program parameters specific to the Rx AGC. These ignored
recommended settings and minimum and maximum settings. parameters are agcRx1MaxGainIndex, agcRx1MinGainIndex,
At the end of the section is a summary of all default, minimum, agcRx2MaxGainIndex, and agcRx2MinGainIndex.
and maximum settings for the AGC data structures. AGC Peak Threshold Mode
The members of the mykonosAgcCfg_t structure referring to The member agcPeakThresholdMode of the mykonosAgcCfg_t
maximum and minimum gain indices for a given receiver channel data structure determines if the automatic gain control (AGC)
are listed in Table 100. These parameters limit the AGC to make runs in peak threshold mode. This is a 1-bit field. Setting this
gain change decisions that result in gain indices within the bit disables the power measurement detector from making gain
minimum and maximum parameter specified for a given changes. Setting this bit also enables the analog peak detector
channel. (APD)/Half-Band 2 (HB2) lower thresholds to make gain
The current application programming interface (API) increments.
implementation dictates that agcObsRxMaxGainIndex Peak threshold mode is the recommended AGC configuration
and agcObsRxMinGainIndex are used in reference to the because it allows for fast attack response (see apdFastAttack,
SnRx channels. If the user is attempting to set up the hb2FastAttack) in response to the sudden presence of a
mykonosAgcCfg_t data structure for use with an ORx blocking signal.
input, the agcObsRxSelect member must be set for SnRx usage.
Table 100. AGC Minimum and Maximum Gain Index Value Limits
Data Type Parameter Default Value Minimum Value Maximum Value
uint8_t agcRx1MaxGainIndex 255 agcRx1MinGainIndex 255
uint8_t agcRx1MinGainIndex 195 Minimum Rx1 Table Index agcRx1MaxGainIndex
uint8_t agcRx2MaxGainIndex 255 agcRx2MinGainIndex 255
uint8_t agcRx2MinGainIndex 195 Minimum Rx2 Table Index agcRx2MaxGainIndex
uint8_t agcObsRxMaxGainIndex 255 agcObsRxMinGainIndex 255
uint8_t agcObsRxMinGainIndex 203 Minimum ObsRx Table Index agcObsRxMaxGainIndex
14652-062
agcSlowLoopSettlingDelay agcSlowLoopSettlingDelay
AGC Slow Loop Settling Delay The value of the agcPeakWaitTime member of the
mykonosAgcCfg_t data structure is the number of IQ data clock
The automatic gain control (AGC) slow loop settling delay cycles that elapse after using enabling AGC and prior to peak
(denoted by member agcSlowLoopSettlingDelay) determines detector circuits entering regular operation. This time is also
the number of IQ data rate clock cycles to wait after a gain the minimum time for the AGC to wait after detecting a peak.
change before resuming operation of the analog peak detector
(APD)/Half-Band 2 (HB2) or power measurement detector AGC Reset on Rx Enable
(PMD). This is a 5-bit field. This parameter allows the AGC to The AGC reset on Rx enable (denoted by member
ignore any transients associated with a gain change for the agcResetOnRxEnable) allows for a reset of the AGC when the
number of cycles indicated by this parameter. receiver is turned on. When this bit is set, the receiver resets the
If this parameter is set to 4, for example, the APD/HB2 and AGC to its initial state when the Rx is disabled. The gain index
PMD blocks are held in reset for four IQ data rate clock cycles is reset to the maximum condition when the Rx is disabled.
before resuming normal operation. Table 105 shows the limits When this bit is set to 0, the AGC holds its current state when
of the agcSlowLoopSettlingDelay. Rx enable is taken low. When Rx enable goes high again, AGC
continues its operation.
AGC Peak Wait Time
AGC Enable Sync Pulse for Gain Counter
The AGC peak wait time (denoted by member agcPeakWaitTime)
configures the amount of time that the gain control algorithm The AGC enable sync pulse for gain counter (denoted by the
waits before enabling regular operation of the peak detectors agcEnableSyncPulseForGainCounter member) allows
after AGC is enabled or a peak is detected. This is a 5-bit field. synchronization of the AGC gain update counter to beginning
The peak detectors in the receiver datapaths include the APD of time slots as signaled on GPIO pins. It is also required to call
and HB2 overrange detector. the MYKONOS_setRxAgcEnSyncPin(…)command before
synchronization can occur.
the number of gain indices decremented when the hb2HighThresh[7 : 0] = 256 × 10 20 (9)
apdHighThreshExceededCnt counter is exceeded, which is hb 2 Low dBFS
the APD overrange condition. When a received signal exceeds hb2LowThresh[7 : 0] = 256 × 10 20 (10)
the apdHighThresh level the number of times set by the
hb 2VeryLow dBFS
apdHighThreshExceededCnt, the gain is decremented by the
hb2VeryLowThresh[7 : 0] = 256 × 10 20 (11)
number of indices specified by the apdHighGainStepAttack.
The apdFastAttack member can control the timing of the gain The hb2HighThresh sets a threshold for HB2 overrange conditions.
decrement. If the received signal exceeds the hb2HighThresh the number of
Set the value of this member as the number of gain steps to times specified by hb2HighThreshExceededCnt, the AGC makes a
decrement during APD overrange conditions. This step size gain decrement according to the hb2HighGainStepAttack member,
depends on the application and the implemented gain table. It which is similar to the behavior of the APD high threshold
is recommended to make this step size the same step size as the detection. The timing of the gain decrement is according to the
hb2GainStepAttack parameter. hb2FastAttack bit.
APD Gain Step Recovery Note that the apdHighThresh overload has a higher priority
than the hb2HighThresh overload. If the detected signal exceeds
The analog peak detector (APD) gain step recovery (denoted by both the apdHighThresh and the hb2HighThresh levels for their
apdLowGainStepRecovery) is a member that determines the respective counter values, the AGC makes a gain increment
number of gain indices incremented when the apdLowThresh- according to the higher priority detector gain step, namely,
ExceededCnt counter is not exceeded. This is the APD apdGainStepAttack.
underrange condition. When a received signal does not
The hb2LowThresh sets a threshold for HB2 underrange
exceed the apdLowThresh level the number of times set by the
conditions. If the detected signal does not exceed the
apdLowThreshExceededCnt, the gain is incremented by the
hb2LowThresh the number of times specified by
number of indices specified by the apdLowGainStepRecovery.
hb2LowThreshExceededCnt, the AGC makes a gain
The gain step always occurs at the end of expiration of the
increment according to the HB2 low recovery gain step
agcGainUpdateCounter.
member, hb2LowGainStepRecovery.
Set the value of this member as the number of gain steps to
The hb2VeryLowThresh sets a lower threshold than
increment during APD underrange conditions. This step size
hb2LowThresh to allow faster gain recovery. If the detected
depends on the application and the implemented gain table. It is
signal does not exceed the hb2VeryLowThresh the number of
recommended to make this step size the same step size as the
times specified by hb2VeryLowThreshCnt, the AGC makes a
hb2GainStepRecovery parameter.
gain increase according to the HB2 very low recovery gain step
HB2 Thresholds member hb2VeryLowGainStepRecovery.
Three members determine the high, low, and very low From Equation 9, Equation 10, and Equation 11, the thresholds
threshold levels for the Receive Half-Band 2 (HB2) overload must be input such that the magnitude of the following:
detector. They are denoted by hb2HighThresh, hb2LowThresh,
hb2HighThresh (dBFS) > hb2LowThresh (dBFS) >
and hb2VeryLowThresh (see Table 113). The HB2 overload
hb2VeryLowThresh (dBFS) (12)
detector determines if the decimated data at the output of
the receiver HB2 digital decimation filter exceeds the
hb2HighThresh, hb2LowThresh, and hb2VeryLowThresh.
Table 113. Parameter Limits and Default Values for Half-Band 2 (HB2) Thresholds
Data Type Parameter Default Value Minimum Value Maximum Value
uint8_t hb2HighThresh 0xB5 0 255
uint8_t hb2LowThresh 0x80 0 hb2HighThresh
uint8_t hb2VeryLowThresh 0x40 0 hb2LowThresh
Table 114. Parameter Limits and Default Values for HB2 Threshold Counters
Data Type Parameter Default Value Minimum Value Maximum Value
uint8_t hb2HighThreshExceededCnt 6 0 255
uint8_t hb2LowThreshExceededCnt 4 0 255
uint8_t hb2VeryLowThreshExceededCnt 4 0 255
Table 120. Parameter Limits and Default Values for PMD Thresholds
Data Type Parameter Bit Width Default Value Minimum Value Maximum Value
uint8_t pmdUpperHighThresh 4 1 0 15
uint8_t pmdUpperLowThresh 7 3 0 127
uint8_t pmdLowerHighThresh 7 12 0 127
uint8_t pmdLowerLowThresh 4 4 0 15
EXTRA BITS
ADDED TO 16-BIT
DATAPATH DATA
14652-063
Figure 71. Gain Compensation, Floating Point Formatter, and Slicer Section of the Receiver Datapath
The device contains a digital gain compensation block that, if Digital Gain Compensation
enabled, provides digital gain compensation to offset the gain The digital gain compensation block is capable of fine
reduction from the receiver. Gain compensation allows variation in adjustments in digital gain at a minimum resolution of 0.25 dB
the receiver gain to be transparent to the baseband processor over a total compensation range of 31.75 dB. Gain compensation
(BBP), which can be useful in applications where the gain index occurs only digitally. Gain compensation compensates for changes
may change quickly, leading to undesirable amplitude variations in receiver gain in MGC mode, hybrid mode, and AGC mode.
seen in the BBP that may cause problems with demodulation.
There are two gain table requirements for gain compensation to
Gain compensation is useful in an automatic gain control
work properly:
(AGC) application where the onset of an interferer can force a
sharp and potentially quick reduction in the receiver gain. Gain table steps (dB) between adjacent indices must be
Without gain compensation, the BBP must request the current uniform throughout the range of the table.
gain index to recover the input signal level from the device via The gain table step size must be one of the following
an SPI command, which can take much longer than using gain options: 0.25 dB, 0.5 dB, 1 dB, 2 dB, 3 dB, 4 dB, or 6dB.
compensation.
The digital gain compensation uses the programmable gain
Gain compensation can be used in manual gain control (MGC) table step parameter (mykonosGainComp_t → compStep) and
mode, hybrid mode, and AGC mode. The gain compensation how many gain indices from the maximum gain index the
block is capable of applying up to 31.75 dB of digital gain receiver is operating at to set the digital gain compensation level.
compensation, which is sufficient to compensate for the full Figure 72 shows this behavior.
attenuation range supported by the Rx datapath.
The gain compensation, slicer, and floating point formatter
blocks are shown in Figure 71.
Y GAIN INDICES FROM
The bit width at the output of the digital gain compensation GAIN INDEX 245 MAXIMUM GAIN
x dB CONDITION
block is several bits wider than its input. This increase in bit GAIN STEP
width allows support for up to 31.75 dB of gain compensation. GAIN INDEX 244
x dB
The JESD204B data interface supports up to 16-bit data. GAIN STEP
Depending on the amount of compensation applied, the datapath GAIN INDEX 243
may exceed the maximum or minimum value allowed by 16-bit x dB
GAIN STEP
signed integers. To accommodate the expanded bit width in the
GAIN INDEX 242
Rx datapath under gain compensation, two methods are available
to send data to a BBP. These two methods are the slicer and the
14652-064
floating point formatter. The slicer requires three GPIO pins per
receiver. The floating point formatter does not require GPIO pins.
Figure 72. Gain Compensation Parameters for Setting the Digital Gain
Compensation Level
B18 B17 B16 B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 GAIN COMPENSATED
DATA
Figure 73. Mapping of Data from Digital Gain Compensation to JESD204B Interface with Slicer Position = 1
14652-066
w t
internal gain control block. When gain compensation is enabled,
the user must call the MYKONOS_setSlicerCtrl(…) command Figure 74. Floating Point Number Representation
to use this functionality and assign the GPIO pins for this The total precision for the significand is p = t + 1. If t = 10, that
purpose. The user is able to set a slicer gain step for each LSB means 10 bits of the significand are stored explicitly and 1 bit is
over the three slicer input pins of 1 dB, 2 dB, 3 dB, and 4 dB. a sign bit, leading to 11 bits of significand precision.
The valid GPIO pins for the slicer input mode are configurable For example, if the exponent is set as e, the stored exponent is
and include the pin groupings as follows (groupings are listed E = e + bias. The significand precision is p and the significand
from MSB to LSB): itself varies between 1.0 and 1 + 2(1 − p) × t. The value of the
For Rx1, use the GPIO2, GPIO1, GPIO0 group, the GPIO7, floating point number (Value) is represented by the following
GPIO6, GPIO5 group, and the GPIO10, GPIO9, GPIO8 equation. This formula is important to decode information on
group. the BBP side of the JESD204B link.
For Rx2, use the GPIO7, GPIO6, GPIO5 group and the Value = (−1)S × 2E − bias × (1 + 21 – p × t) (14)
GPIO13, GPIO12, GPIO11 group. where S is the sign bit (1 or 0).
For ORx, use the GPIO18, GPIO17, GPIO16 group and the
GPIO16, GPIO15, GPIO14 group. The numbers have an implicit leading significand of 1 unless E = 0
and t = 0. In this case, the number is a signed 0.
Programming information is included in the API Support for Gain
If E = 0 and t ≠ 0, the number is referred to as a subnormal
Compensation, Slicer, and Floating Point Formatter section.
number, and the value is instead found by the following equation:
Floating Point Formatter
Value = (−1)S × 2e min × (0 + 21 – p × t) (15)
The floating point formatter offers an alternative method to
The device allows support for several different formats that
reduce the digital gain compensation output into 16-bit data
conform to the IEEE 754 standard and other formats that do
that can be sent over the JESD204B link. The floating point
not adhere to the IEEE 754 standard, called Analog Devices
formatter is located prior to the JESD204B interface on the
modes. These modes are described in Table 128.
receivers to minimize floating point arithmetic in the receiver
digital datapath. Representing the gain compensation output in Note that the first column in Table 128 includes the value of the
a 16-bit floating point results in a slight loss of resolution. To parameter leading the floating point formatter data structure,
minimize the loss of resolution, multiple modes are included in mykonosFloatPntFrmt_t. This data structure type is described
the device that are modifications to the IEEE 754 half precision in the Floating Point Formatter section. Table 128 shows that
binary floating point format (binary16). the Analog Devices modes of operation allow an increased
maximum value of the exponent.
Figure 74 shows the representation for the binary16 floating
point number. In Figure 74, w is the bit width of the exponent, The user has direct control over the first column (leading) and
and t is the bit width of the significand. The exponent is stored the second column (bit width of exponents). Selecting a desired
w value sets the bias for the exponent.
GAIN CONTROL
SETUP COMPLETE
NO
NO NO
USE FLOATING POINT USE EXTERNAL SLICER MODE
14652-067
GAIN COMPENSATION
SETUP COMPLETE
The application programming interface (API) uses the SLICER API COMMANDS AND GPIO INFORMATION
MYKONOS_setRxGainCompensation(…) command to The slicer can be configured in two different ways. The first
configure internal device registers for a desired gain method allows the slicer to determine its own position based on
compensation configuration. This command does not the receiver gain index and output the slicer position value over
determine whether the slicer or the floating point formatter GPIO pins. The second method allows the baseband processor
is used. The command configures the gain compensation (BBP) to control the slicer position over the GPIO pins. Both
block for user values determined by the data structure methods require the gain compensation block to be enabled for
type mykonosGainComp_t. A description of the proper slicer functionality. There is no API data structure
mykonosGainComp_t data type is provided in Table 129. specific to the slicer setup.
MYKONOS_setRxGainCompensation(…) • If the user desires the BBP to read the slicer position over
mykonosErr_t the GPIO pin, and to use that position information to
MYKONOS_setRxGainCompensation(mykonosDevi appropriately shift the data, specific GPIO pins must be
ce_t *device, mykonosGainComp_t set as outputs in the proper mode. The Rx1 channel uses
*gainComp, uint8_t enable)
GPIO_10 to GPIO_8 to output the slicer position. The Rx2
Description channel uses GPIO_14 to GPIO_12 to output the slicer
MYKONOS_setRxGainCompensation(…) is the gain position. No other GPIO pins can be used to indicate the
compensation enable and setup function. slicer position. To configure the device to output the slicer
position over the GPIO signals, ensure that the GPIO pins
The gain compensation block is a function that compensates for
are set as outputs and that the mykonosGpioMode_t for
the attenuation in the internal attenuator for the Rx channels.
GPIO_11 to GPIO_8 and GPIO_15 to GPIO_12 are set to
Preconditions GPIO_SLICER_OUT_MODE.
The gain control setup must be complete. • If the user desires the BBP to control the slicer position, the
desired GPIO pins must be set for input control and the
Parameters
command listed in the following section must be run. This
• *device: This is a pointer to the device data structure. command configures specific sets of GPIO pins as inputs
• gainComp: This is a data structure containing the gain to the slicer (rx1Pins, rx2Pins), sets the step size of the
compensation settings. slicer when external pin control mode is enabled (slicerStep),
• enable: this parameter enables or disables the gain and enables or disables the external pin control feature
compensation block (enable = 1 and disable = 0). (enable). Refer to the following section for the valid pin
configurations. Set the mykonosGpioMode_t for
MYKONOS_getRxGainCompensation(…)
GPIO_BITBANG_MODE.
mykonosErr_t
MYKONOS_getRxGainCompensation(mykonosDevi MYKONOS_setRxSlicerCtrl(…)
ce_t *device, mykonosGainComp_t mykonosErr_t
*gainComp, uint8_t enable)
MYKONOS_setRxSlicerCtrl(mykonosDevice_t
Description *device, uint8_t slicerStep,
mykonosRxSlicer_t rx1Pins,
This function obtains the gain compensation setup and enabled
mykonosRxSlicer_t rx2Pins, uint8_t
function. enable);
The gain compensation block is a function that compensates for Description
the attenuation in the internal attenuator for the Rx channels.
This function is the slicer control over the GPIO inputs.
This function obtains the current setup and the enable state of
the block. The user can control the slicer position via three GPIO inputs
per channel. There are various configurations for the GPIO pins,
Preconditions
and these configurations are enumerated in the
The gain control setup must be complete. mykonosRxSlicer_t.
Rev. B | Page 159 of 360
UG-992 AD9371/AD9375 System Development User Guide
Preconditions A get version of this command is described in the following
Configure the gain control. section.
MYKONOS_getRxSlicerCtrl (…)
Parameters
mykonosErr_t
• *device: This is a pointer to the device data structure. MYKONOS_getRxSlicerCtrl(mykonosDevice_t
• slicerStep: The slicer configuration command also allows *device, uint8_t *slicerStep,
the user to set the slicer step size (slicerStep). The slicer mykonosRxSlicer_t *rx1Pins,
gain is equal to the 3-bit word expressed on the GPIO mykonosRxSlicer_t *rx2Pins, uint8_t
inputs multiplied by the step size. Table 130 shows the *enable);
relationship between the slicer step size and slicerStep Description
parameter value.
This function obtains the programmed slicer control for the
Table 130. slicerStep Parameter Related to dB Steps in the Slicer Rx1 and Rx2 channels.
slicerStep dB Step (dB) The user can control the slicer position via three GPIO inputs
0 1 per channel. There are various configurations for the GPIO
1 2 pins, and these configurations are enumerated in the
2 3 mykonosRxSlicer_t.
3 4 Preconditions
• Rx1Pins: The value of the mykonosRxSlicer_t enumeration Configure the gain control.
determines which grouping of three GPIO pins are used as Parameters
inputs to the device to set the 3-bit slicer position. The valid
• *device: This is a pointer to the device data structure.
pin groupings are listed as follows for the Rx1 channel,
from MSB to LSB, with the mykonosRxSlicer_t • slicerStep: This contains the configured step size.
enumeration value listed in parentheses: • rx1Pins: This contains the configured GPIO combination
• GPIO_2, GPIO_1, and GPIO_0 (GPIO_0_1_2). for Rx1.
• rx2Pins: This contains the configured GPIO combination
• GPIO_7, GPIO_6, and GPIO_5 (GPIO_5_6_7).
for Rx2.
• GPIO_10, GPIO_9, and GPIO_8 (GPIO_8_9_10).
• *enable: This contains the programmed enable setting.
• Rx2Pins: The value of the mykonosRxSlicer_t enumeration
determines which grouping of three GPIO pins are used as The slicer defaults to the first mode (internal mode) of
inputs to the device to set the 3-bit slicer position. The operation when gain compensation is enabled. The slicer is
valid pin groupings are listed as follows for the Rx2 channel, disabled if gain compensation is disabled. Note that enabling
from MSB to LSB, with the mykonosRxSlicer_t gain compensation does not configure the GPIO pins.
enumeration value listed in parentheses:
Floating Point Data Structure
• GPIO_7, GPIO_6, and GPIO_5 (GPIO_5_6_7).
• GPIO_10, GPIO_9, and GPIO_8 (GPIO_8_9_10). The configuration parameters for the floating point formatter
are set up in a data structure of type mykonosFloatPntFrmt_t.
• enable: set enable = 1 to enable the external pin control
The members of the data structure are described in Table 131.
for slicer. Set enable = 0 to disable external pin control for the
slicer.
MYKONOS_getRxEnFloatPointFrmt(…) Parameters
mykonosGpioErr_t • *device: This is a pointer to the device data structure.
MYKONOS_getRxEnFloatPointFrmt(mykonosDe • orxAtt: this parameter sets the integer data attenuation for
vice_t *device, uint8_t *rx1Att, the Rx1 channel in 6 dB steps to enable the entire data
uint8_t *rx2Att, uint8_t *enable) range to be represented in the selected floating point format.
Description • enable: This parameter enables or disables the gain
MYKONOS_getRxEnFloatPointFrmt(…) is the floating point compensation block (enable = 1 and disable = 0).
formatter readback function for Rx1 and Rx2. A get version of this command is noted in the following section.
The floating point formatter block is a function that works in MYKONOS_getOrxFloatPointFrmt(…)
conjunction with the gain compensating block, as the gain
mykonosGpioErr_t
compensation requires increased dynamic range, which MYKONOS_setFloatPointFrmt(mykonosDevice
increases the bit width in the digital datapath. _t *device, uint8_t rx1Att, uint8_t
Preconditions rx2Att, uint8_t enable)
FILTER CONFIGURATION
This section describes the digital filters within the integrated the Create Config.c file for the Tx, Rx, ORx, and SnRx profile
transceiver. Descriptions of the main receivers, transmitters and data structures. Custom profiles can be generated using other
the observation/sniffer receiver system filters are provided. Also Analog Devices software tools that are not described in this
described in this section is an overview of the application section.
programming interface (API) data structures and commands
RECEIVER SIGNAL PATH
necessary to configure the digital filters for proper operation.
The main receivers have independent signal paths for the Rx1
Analog Devices uses profiles to designate different device and Rx2 ports. Each receiver signal path consists of an
configuration settings for the Tx, Rx, ORx, and SnRx channels. adjustable analog transimpedance low-pass filter, a Σ-Δ ADC,
When selecting a profile, note that Rx1 and Rx2 use the same and digital decimation filters. The fixed coefficient decimation
profile; Tx1 and Tx2 use the same profile; ORx1 and ORx2 use filters (RHB1, RHB2, RHB3, DEC5, and DEC5HR) are designed to
the same profile; and SnRxA, SnRxB, and SnRxC use the same eliminate overranging. The programmable receiver FIR filter
profile. The profile dictates how the digital filters, analog filters, (RFIR) in the Rx digital baseband path can overrange, depending
clock rates, and clock dividers are configured in the device. on coefficients. However, the RFIR output code is limited to a
Some specific parameters set by the profiles include the IQ data maximum code value when overrange conditions occur.
rate, ADC clock rate, analog filter corners, FIR filter coefficients,
and interpolation/decimation factors in the half-band filters. A block diagram of the Rx1 and Rx2 datapath is shown in
Figure 76. Quadrature error correction (QEC), dc offset
Several profiles can be examined in the transceiver evaluation correction, and digital gain are not described in this section.
software (TES) for given device clock frequencies. If the desired The following sections describe the functionality of the digital
profile exists in the software, it is recommended to set up the and analog filters and their configurations.
desired profile in and use the data structure values generated by
DEC5HR
Rx1 SIGNAL PATH, I AND Q CHANNEL
DEC5
JESD204B INTERFACE
DEC5HR
90°
DEC5
Rx LOGEN DEC5HR
SYNTHESIZER
DEC5
DEC5HR
90°
14652-068
Rx2 SIGNAL PATH, I AND Q CHANNEL DEC5
MAGNITUDE (dB)
The transceiver evaluation software (TES) provides examples –100
depicting how the baseband filtering stages are used for particular
profiles. In this example, the Rx = 100 MHz, the IQ rate = –160
122.88 MHz, and the DEC5 profile is selected for the Rx
channels. This profile is compatible with the other examples
–220 ADC
provided in this user guide. DIGITAL
Rx TIA
Descriptions of the profile name conventions are as follows: COMPOSITE
–280
14652-070
0 245.76 491.52 737.28 983.04 1228.8
Rx 100 MHz, which implies a RF (complex) receiver
BASEBAND FREQUENCY (MHz)
bandwidth of 100 MHz. In Figure 77 and Figure 78, note
Figure 77. Main Receiver Filter Responses
that the profile pass band is set to 50 MHz because the real
IF mode is disabled and the received data is centered around An examination of the profile pass-band frequency shows that
dc. The filter responses are also symmetrical around dc. the Rx TIA 3 dB setting slightly attenuates information within
Only the positive half of the spectrum is shown. The pass the pass band. This analog attenuation is compensated by the
band extends from −50 MHz to +50 MHz in the figure, digital filter response to obtain a maximally flat pass band for
which corresponds to RF frequencies of ±50 MHz from the this profile. A zoom in view of the pass band is shown in Figure 78.
Rx LO frequency. 2
only be used if all profiles (Rx, Tx, SnRx, ORx) have the same 0
14652-071
0 11.61 23.22 34.83 46.44 58.05
Summary tab is the frequency response of the analog BASEBAND FREQUENCY (MHz)
transimpedance amplifier (TIA) low-pass filter (LPF), digital Figure 78. Pass-Band Frequency Response of the Rx = 100 MHz, 122.88 MHz,
filters, the ADC transfer function, and the composite response DEC5 Profile (Pass Band Zoom In View)
from dc to the sampling rate of the ADC (see Figure 77).
14652-069
Figure 79. Filter Configuration for the Rx = 100 MHz, 122.88 MHz, DEC5 Profile
JESD204B INTERFACE
THB2 THB1 TFIR QUAD DIG THBO
LPF Q DAC (1,2) (1,2) (1,2,4) CORR GAIN (1,2,4)
Tx LOGEN 90°
SYNTH
90°
14652-072
MAGNITUDE (dB)
Figure 83 shows the filter configuration for this profile. Note 2.4
that the clocking frequencies are in blue. The signal rate after
the TFIR block is equal to the IQ data rate of the profile. 0.6
14652-075
20 0 23.238 46.476 69.714 92.952 116.19
BASEBAND FREQUENCY (MHz)
–52
–88
–124
COMPOSITE
DIGITAL
ANALOG + DAC SYNC
–160
14652-074
14652-073
Figure 83. Filter Configuration for the Tx 75 MHz/200 MHz, 245.76 MHz, DEC5 Profile
JESD204B INTERFACE
FRONT END I/Q MUX
DEC5
Figure 84. ORx Signal Path After the I/Q Mux Stage
Real IF
–124
The real IF block contains an interpolating filter and mixer used
to convert complex signals centered around dc into real valued
signals centered around some IF frequency. The real IF conversion –172
ADC
block is typically bypassed, but it does provide the capability to DIGITAL
Rx TIA
operate at an IF frequency near baseband for systems that prefer –220
COMPOSITE
14652-078
to perform complex demodulation in their digital baseband. 0 245.76 491.52 737.28 983.04 1228.8
BASEBAND FREQUENCY (MHz)
The full-scale value for the real IF interpolating filter is 16384
(214). The coefficients for the real IF filter are [−3, 0, +8, 0, −19, Figure 85. ORx Filter Responses
0, +40, 0, −75, 0, +130, 0, −214, 0, +336, 0, −514, 0, +773, 0,
−1169, 0, +1845, 0, −3327, 0, +10380, +16384, +10380, −3327,
14652-077
Figure 86. Filter Configuration for the ORx 200 MHz, IQRate 245.76 MHz, Dec5 Profile
(3x) SNIFFER Rx FE
SNRX I
LNA
SNRX Q
TIA ADC
SNIFFER A DIGITAL
DECIMATION,
SNIFFER B AGC,
I/Q MUX DC OFFSET,
SNIFFER C SWITCH RSSI,
JESD204B
ORx I
ORx Q
ORx 1
ORx 2
SNIFFER PLL
LO MUX
LOGEN
14652-080
Tx PLL
LOGEN
tORX_TRIGGER_RISE_TO_RISE
tORX_TRIGGER_HOLD
ORX_TRIGGER
ARM INPUT SIGNALS
tMODE_SETUP tMODE_HOLD
ORX_MODE0
ORX_MODE1
ORX_MODE2
ARM OUTPUT SIGNALS
ORX1_ENABLE_ACK
ORX2_ENABLE_ACK
14652-081
SRX_ENABLE_ACK
ORx AGC, HYBRID, AND MGC To change the gain of the active channel, use the MYKONOS_
The device supports manual gain control (MGC) for all channels in setObsRxManualGain(…) API command. The ORx must be in
the ORx path. The SnRx has the added capability of supporting MGC mode to use this function. This API command returns an
hybrid gain control mode and automatic gain control (AGC) exception if the argument passed is out of range for the gain
mode as well. In MGC, the baseband processor (BBP) can index of the active channel. For example, if the SnRx gain table
control the gain index of the channel via the application is defined for Gain Index 255 to Gain Index 203, values outside
programming interface (API) commands to set the gain. The of that range cause an error.
gain control block adjusts the gain of the ORx or SnRx receiver Readback of the current gain index for the active channel is
based on settings provided in the corresponding gain table. Gain available using MYKONOS_getObsRxGain(…). This function
settings and gain control only affect the active input of the ORx is valid in the MGC, hybrid, and AGC modes of operation.
because only one input can be active at any given time. Custom gain tables can be created in the mykonos_user.c and
To change the gain mode of the ORx channel, use the the mykonos_user.h files. The gain tables provide a means to
MYKONOS_setObsRxGainControlMode(…) API command, vary the internal radio frequency (RF) attenuation, the external
using the proper enumerated value for the gain control mode. RF attenuation, the digital attenuation, and the digital gain. The
The enumerated data type is mykonosGainMode_t. data structure that sets up the AGC operation parameters is of
the mykonosAgcCfg_t. type.
Additional details regarding the implementation of gain control
schemes are provided in the Gain Control section.
Rev. B | Page 175 of 360
UG-992 AD9371/AD9375 System Development User Guide
OBSERVATION SYSTEM RECEIVER FRONT-END • mykonosJesd204bFramerConfig_t (device → obsRx →
PROGRAMMING framer). This data structure type contains configuration
Programming Prior to Device Initialization settings for the JESD204B digital interface. Information
regarding the data structure members and how to set up
This section provides a brief explanation of the data structures
the interface are provided in the JESD204B Interface section.
and application programming interface (API) commands used
• mykonosFir_t (device → obsRx → orxProfile → rxFir and
to configure the ORx channel.
device → obsRx → snifferProfile → rxFir). This data
Several data structures must be initialized and configured prior to structure type contains members required to program the
initializing the device. Some of these data structures are members programmable finite impulse response (PFIR) digital filter
of other data structures, such as the mykonosObsRxSettings_t in the ORx channel.
data structure, which is one of several members of the
mykonosDevice_t data structure. Programming After Initialization
Assuming all the device data structures are valid, when the After initialization, some settings can be altered using other API
MYKONOS_initialize(…) API command is executed, the commands. A list of the API commands relevant to the ORx are
settings contained within the members of the device data listed in this section. Refer to the section of the device API.chm
structures are programmed to device registers. file under Files/File List/mykonos.c for more information
about the parameters to pass into these functions.
Refer to the device API.chm file for clarification on data
structure definitions and their member data types. This file is • MYKONOS_enableObsRxFramerPrbs(…). This function
located under Files/File List/t_mykonos.h. selects the pseudorandom bit sequence (PRBS) type and
enables or disables ORx framer PRBS20 generation.
Important data structures for the ORx are listed as follows, with
• MYKONOS_enableSysrefToObsRxFramer(…). This
hierarchy details and short descriptions:
function enables or disables the SYSREF signal to the ORx
• mykonosDevice_t (device). This data structure type contains framer of the transceiver.
all device settings. The members of the structure relevant • MYKONOS_getObsRxGain(…). This function obtains the
to the ORx setup include the mykonosObsRxSettings_t gain index of the currently enabled ORx channel. The ORx
and mykonosTxSettings_t data structures. This data datapath can have multiple RF sources. This function reads
structure type also includes the mykonosDigClocks_t and back the gain index of the currently enabled RF source. If
profilesValid members. the ORx datapath is disabled, an error is returned. If the
• mykonosObsRxSettings_t (device → obsRx). This data uint8_t *gainIndex parameter is a valid pointer, the gain
structure type contains all ORx profile settings, JESD204B index is returned at the pointers address. Or, if the uint8_t
interface settings, and all other parameters specific to the *gainIndex pointer is null, the gainIndex readback is stored
operation of the available receivers of the ORx. This data in the device data structure.
structure sets up the SnRx LO frequency. • MYKONOS_obsRxInjectPrbsError(…). This function
• mykonosOrxGainControl_t (device → obsRx → orxGainCtrl). initiates a PRBS error injection into the ORx datapath.
This data structure type contains general gain control • MYKONOS_radioOff(…). This function instructs the
settings related to the gain mode of the ORx1 and ORx2 ARM processor to move the radio state to the off state.
channels, the gain setting of the ORx1 and ORx2 channels When the ARM moves from the radio on state to the radio
when active, and their minimum and maximum gain indices. off (idle) state, the ARM tracking calibrations are stopped,
• mykonosAgcCfg_t (device → obsRx → orxAgcCtrl). This and the Tx enable, Rx enable, and GPIO control pins
data structure type contains gain control settings specific to (among others) are ignored. This stoppage also keeps the
the AGC for a specific ObsRx channel. receive and transmit chains powered down until the
• mykonosSnifferGainControl (device → obsRx → MYKONOS_radioOn() function is called again.
snifferGainCtrl). This data structure type contains general • MYKONOS_radioOn(…). This function instructs the
gain control settings related to the gain mode of the sniffer ARM processor to move the radio state to the radio on
channels, the gain setting of the sniffer channel when active, state. When the ARM moves to the radio on state, the
and the minimum and maximum gain indices of the sniffer enabled Rx and Tx signal chains power up, and the ARM
channel. The SnRxA, SnRxB, and SnRxC inputs use the tracking calibrations begin. To exit this state back to a low
same gain index. power, offline state (MYKONOS_radioOff(…) function).
• mykonosRxProfile_t (device → obsRx → orxProfile and • MYKONOS_readOrxFramerStatus(…). This function
device → obsRx → snifferProfile). This data structure type reads the status of the transceiver ORx framer.
contains profile settings used to configure the main receivers • MYKONOS_setObsRxGaincontrolMode(…). This
or observation receivers. This data structure type is used to function configures the ORx gain control mode.
define the profile for the SnRx and ORx channels.
14652-189
AIR TIME Tx Rx Tx Rx
TX_ENABLE
RX_ENABLE
tENABLE_FALL_TO_ACK
TX_ENABLE_ACK
tENABLE_RISE_ TO_ACK
RX_ENABLE_ACK
14652-190
Figure 91. Tx and Rx Enable and Enable Acknowledge Signal Timing Diagram
Regarding calibrations, the internal tracking calibrations in the control the active channel of the ORx when in ORx pin control
device are scheduled by the ARM microprocessor. The calibrations mode.
perform data captures in batches, with each batch guaranteed to The ORX_MODE[2:0] is a 3-bit value (set by three GPIO pins:
have a duration greater than the value listed in the Minimum orxMode2Pin, orxMode1Pin, and orxMode0Pin) that sets the
Time for Tracking Calibrations column of Table 135. Each active channel of the ORx. At most, one of the ORx channels is
calibration needs to capture a certain number of batches of data connected to the shared baseband datapath at any given time.
per second to keep up with device parameter (temperature, The ORX_MODEs available are detailed in Table 136. The
voltage supply variation) drift. If the transceiver state switches ORX_MODE[2:0] pins are sampled after the rising edge of the
before a batch of data can be collected, the corresponding data ORX_TRIGGER signal.
is unusable by the calibration and thrown out.
Assuming that all tracking calibrations are active, Rx tracking Table 136. ORX_MODE[2:0] Word Definitions
calibrations update when the Rx is enabled. Tx tracking ORX_MODE[2:0] ORx Front End
calibrations only update when the Tx channel is enabled and 000 ORx off
the ObsRx path source is set to INTERNAL_CALS mode. 001 ORx1 with Tx local oscillator (LO)
When in INTERNAL_CALS mode, the ARM has access to the 010 ORx2 with Tx LO
ObsRx, temporarily preventing the baseband processor (BBP) 011 Internal calibrations (OBS_INTERNALCALS)
access to the ORx datapath. 100 Sniffer channel
101 ORx1 with sniffer LO
ORX_MODE and ORX_TRIGGER
110 ORx2 with sniffer LO
When the ARM is set in pin control mode for the ORx, the 111 Reserved
members orxTriggerPin, orxMode2Pin, orxMode1Pin, and
Figure 92 shows these relationships between the ORX_TRIGGER,
orxMode0Pin of the mykonosArmGpioConfig_t data structure
ORX_MODE[2:0], and the ObsRx ARM ACK signals.
assign GPIO pins for the ORX_MODE[2:0] 3-bit word and the
ORX_TRIGGER. These four signals are ARM inputs and
ORX_TRIGGER
tMODE_SETUP tMODE_HOLD
ORX_MODE_0
ARM INPUT SIGNALS
ORX_MODE_1
ORX_MODE_2
ORX1_ENABLE_ACK
ARM OUTPUT SIGNALS
ORX2_ENABLE_ACK
14652-191
SRX_ENABLE_ACK
Figure 92 illustrates that the ORX_MODE[2:0] is setup before To change the ORX_MODE[2:0] and ORX_TRIGGER GPIO
the rising edge of the ORX_TRIGGER. This setup time is given pin assignments, set the members orxTriggerPin, orxMode2Pin,
by tMODE_SETUP. The ORX_MODE[2:0] is not sampled until the orxMode1Pin, and orxMode0Pin to the desired GPI O pins.
ORX_TRIGGER has been high for tORX_TRIGER_HOLD. The Valid pin assignments for these signals range from GPIO Pin 0
ORX_MODE[2:0] must have a hold time relative to ORX_ to GPIO Pin 18. Be sure that orxPinMode is set to 1 to set the
TRIGGER going high of tMODE_HOLD. The ORX_MODE[2:0] can device into orxPinMode; otherwise, the pin assignments for
be changed at a minimum period of tORX_TRIGGER_RISE_TO_RISE. This ORX_MODE[2:0] and ORX_TRIGGER are ignored. Write the
time is dependent on whether tracking calibrations are mykonosArmGpioConfig_t data structure values to the device
operational for the Tx, because the Tx tracking calibrations use by calling the MYKONOS_setArmGpioPins(…) API command,
the ObsRx in OBS_INTERNALCALS mode. This timing is through the .dll command in the Mykonos.setArmGpioPins(…)
summarized in Table 137. class. This procedure is a similar procedure to the one outlined
Timing constraints for the ORX_MODE[2:0] and ORX_TRIGGER in the ARM Acknowledge Signals section.
signals are summarized in Table 138. Additionally, it is
recommended that the ORX_TRIGGER signal stay low for at
least 10 μs prior to the ORX_TRIGGER signal going high (high
to low to high transition) to properly detect the rising edge.
The ORx can also run in ARM command mode if desired. This
Datapath Trigger Modes
mode does not allow as precise timing control over the state of The FPGA used with the evaluation system provides several trigger
the ORx mode; however, it can free up GPIO pins. See the sources that initiate either data captures in the case of the receivers
Observation Receiver (ORx) section for more details. or data transmission in case of the transmitters.
The trigger sources for data captures include an IMMEDIATE
capture mode, a TDD_SM_PULSE mode, an EXT_SMA mode,
and an ARM_ACK mode. These modes and some associated
details are listed in Table 138.
DISABLE = 0
ENABLE = 1
OUTPUT = 0
INPUT = 1
################################
### ENABLE TDD ###
################################
MYK.radioOff()
Link.hw.ReceiveTimeout = 0
##############
# FPGA SETUP #
##############
FPGA.disableTdd() #Disable TDD FSM in FPGA
FPGA.gateDataTdd(ENABLE) #Enable data gating for Tx
#Set Tx Timings
tddFsm.TddTx1OnPtr_us = 9950
tddFsm.TddTx1OffPtr_us = 1800
tddFsm.Tdd2ndTx1OnPtr_us = 4950
tddFsm.Tdd2ndTx1OffPtr_us = 6800
tddFsm.TddTx2OnPtr_us = 9950
tddFsm.TddTx2OffPtr_us = 1800
tddFsm.Tdd2ndTx2OnPtr_us = 4950
tddFsm.Tdd2ndTx2OffPtr_us = 6800
tddFsm.TddIntCalsOnPtr_us = 50
tddFsm.TddIntCalsOffPtr_us = 1700
tddFsm.Tdd2ndIntCalsOnPtr_us = 5050
tddFsm.Tdd2ndIntCalsOffPtr_us = 6700
#tddFsm.TddTx1DataPathDel_us = 40
#tddFsm.TddTx2DataPathDel_us = 40
#tddFsm.Tdd2ndTx1DataPathDel_us = 40
#tddFsm.Tdd2ndTx2DataPathDel_us = 40
#Set Rx Timings
tddFsm.TddRx1OnPtr_us = 1800
tddFsm.TddRx1OffPtr_us = 4950
tddFsm.Tdd2ndRx1OnPtr_us = 6800
tddFsm.Tdd2ndRx1OffPtr_us = 9950
tddFsm.TddRx2OnPtr_us = 1800
tddFsm.TddRx2OffPtr_us = 4950
tddFsm.Tdd2ndRx2OnPtr_us = 6800
tddFsm.Tdd2ndRx2OffPtr_us = 9950
#tddFsm.TddRx1DataPathDel_us = 40
#tddFsm.TddRx2DataPathDel_us = 40
#tddFsm.Tdd2ndRx1DataPathDel_us = 40
#tddFsm.Tdd2ndRx2DataPathDel_us = 40
#############
# ARM SETUP #
Rev. B | Page 188 of 360
AD9371/AD9375 System Development User Guide UG-992
#############
useRx2EnablePin = ENABLE
useTx2EnablePin = ENABLE
txRxPinMode = ENABLE
orxPinMode = ENABLE
orxTriggerPin = 15
orxMode2Pin = 18
orxMode1Pin = 17
orxMode0Pin = 16
rx1EnableAck = (9 | 0x10) #OR the pin assignment with 0x10 to make the pin an output pin.
rx2EnableAck = (10 | 0x10)
tx1EnableAck = (7 | 0x10)
tx2EnableAck = (8 | 0x10)
orx1EnableAck = (11 | 0x10)
orx2EnableAck = (11 | 0x10)
srxEnableAck = (11 | 0x10)
txObsSelect = 0
MYK.init_armGpioStructure(useRx2EnablePin, useTx2EnablePin,
txRxPinMode, orxPinMode, orxTriggerPin, orxMode2Pin, orxMode1Pin,
orxMode0Pin, rx1EnableAck, rx2EnableAck, tx1EnableAck, tx2EnableAck,
orx1EnableAck, orx2EnableAck, srxEnableAck, txObsSelect)
FPGA.enableArmAckOutputs(ENABLE)
MYK.setArmGpioPins()
MYK.setRadioControlPinMode()
##########################################
## Write Tx Data To RAM ##
##########################################
FPGA.stopTxData()
FPGA.setTxTransmitMode(1) #Set Tx into continuous data transmit mode in data path
FPGA.enableTxDataPaths(FPGA.TX_DATAPATH.TX1_TX2)
FPGA.startTxData()
MYK.radioOn()
FPGA.enableTdd()
14652-082
START
setGpioDrv()
setGpioSlewRate()
YES
YES
SET GPIO FOR
ARM?
setupGpio()
NO IS GPIO STRUCTURE
CONFIGURED FOR MANUAL YES
getGpioPinLevel()
MODE USING setupGpio()? AND/OR
setGpioPinLevel()
NO
YES
ENABLE MONITOR
OUTPUTS?
NO IS GPIO STRUCTURE
CONFIGURED FOR MONITOR YES
getGpioMonitorOut()
OUT USING setupGpio()?
NO
14652-083
STOP
typedef struct
{
uint32_t gpioOe; /*!< Output Enable per low voltage GPIO pin
(1=output, 0=input) */
mykonosGpioMode_t gpioSrcCtrl3_0; /*!< Mode for low voltage GPIO[3:0] pins */
mykonosGpioMode_t gpioSrcCtrl7_4; /*!< Mode for low voltage GPIO[7:4] pins */
mykonosGpioMode_t gpioSrcCtrl11_8; /*!< Mode for low voltage GPIO[11:8] pins */
mykonosGpioMode_t gpioSrcCtrl15_12; /*!< Mode for low voltage GPIO[15:12] pins */
mykonosGpioMode_t gpioSrcCtrl18_16; /*!< Mode for low voltage GPIO[18:16] pins */
} mykonosGpioLowVoltage_t;
MYKONOS_getGpioDrv Parameters
mykonosGpioErr_t
MYKONOS_getGpioDrv(mykonosDevice_t • *gpioDrv: This parameter is a pointer to the data to be
*device, mykonosGpioSelect_t *gpioDrv) returned with the current GPIOs drive strength setting.
Refer to the MYKONOS_setGpioDrv() function
This function reads back the current status of the GPIO drive
description for bit field interpretation.
strength setting, set by the MYKONOS_setGpioDrv() function.
Parameters This function reads back the current status of the GPIO slew
rate setting set by the MYKONOS_setGpioSlewRate() function.
• gpioSelect: This parameter indicates which GPIO is to be
Parameters
selected to set its slew rate. If the bit in gpioSelect that
corresponds to a particular GPIO is set to 0, its slew rate • gpioSelect: This parameter indicates which GPIO is
does not change. If the bit in gpioSelect that corresponds to selected to read back its programmed slew rate settings
a particular GPIO is set to 1, its slew rate changes to the Each bit in gpioSelect corresponds to a particular GPIO.
value selected by the slewRate parameter. The valid range GPIO_0 is selected by Bit 0, GPIO_1 is selected by Bit 1,
for this parameter is from 0x00000 to 0x7FFFF. There are and so on. Setting a bit to 1 selects the corresponding
limitations in the way that GPIO can be selected for its GPIO. Only a single GPIO can be selected at one time. The
slew rate settings. Table 142 outlines these limitations in valid range on this parameter is from 0x00000 to 0x7FFFF.
the configuration flexibility. • *slewRate: This parameter is a pointer to the data to be
• slewRate: This parameter contains information of slew rate returned with the current slew rate programmed for the
that to be applied to the GPIO selected using the gpioSelect GPIO selected by the gpioSelect parameter. Refer to the
parameter.The valid slew rate settings are given by the MYKONOS_setGpioSlewRate() function for a description
enumeration type mykonosGpioSlewRate_t. of the mykonosGpioSlewRate_t enumeration type.
• MYK_SLEWRATE_NONE—lower slew rate for the
selected GPIO.
• MYK_SLEWRATE_LOW—low slew rate for the
selected GPIO.
• MYK_SLEWRATE_MEDIUM—medium slew rate for
the selected GPIO.
• MYK_SLEWRATE_HIGH—high slew rate for the
selected GPIO
BIT 18 GPIO_18
BIT 17 GPIO_17
BIT 16 GPIO_16
SETUP
1 = HIGH
BIT N
0 = LOW BIT 15 GPIO_15
BIT 14 GPIO_14
x x x x x BIT 18 BIT 17 BIT 16
setGpioPinLevel BIT 13 GPIO_13
(gpioPinLevel) BIT 15 BIT 14 BIT 13 BIT 12 BIT 11 BIT 10 BIT 9 BIT 8 BIT 12 GPIO_12
BIT 11 GPIO_11
BIT 10 GPIO_10
BIT 9 GPIO_9
BIT 8 GPIO_8
READBACK
1 = HIGH
BIT N
BIT 7 GPIO_7
0 = LOW
BIT 6 GPIO_6
x x x x x BIT 18 BIT 17 BIT 16 BIT 5 GPIO_5
getGpioPinLevel BIT 4 GPIO_4
(gpioPinLevel) BIT 15 BIT 14 BIT 13 BIT 12 BIT 11 BIT 10 BIT 9 BIT 8
D7 GPIO_15
D6 GPIO_14
D5 GPIO_13
D7 TO D4 D4 GPIO_12
D3 GPIO_11
D2 GPIO_10
D1 GPIO_9
D0 D3 TO D0 D0 GPIO_8
0b xxxx xxxN
D1
0b xxxx xxNx D7 GPIO_7
D2 D6 GPIO_6
0b xxxx xNxx
D5 GPIO_5
D3
0b xxxx Nxxx D7 TO D4 D4 GPIO_4
D4
0b xxxN xxxx
D5 D3 GPIO_3
0b xxNx xxxx
D2 GPIO_2
D6 D1 GPIO_1
0b xNxx xxxx
D3 TO D0 D0 GPIO_0
D7
0b Nxxx xxxx
14652-085
Figure 96. Monitor Output Signal Routing
Table 144 through Table 159 provide the detailed descriptions of the signals available for each monitor index address listed in Table 143.
Table 156. Monitor Index: 0x23 (Name: RF DC Offset Correction Tracking Signals, Channel 1)
Bits Description Reset
D7 Reserved. 0x0
D6 Rx1: Signal of interest (SOI) present. The SOI is calculated in the decimated power block. 0x0
D5 Rx1: correction word above threshold. The calculated radio frequency (RF) DC offset word is above the threshold. 0x0
D4 Rx1: update counter expired. The RF DC update counter is expired. 0x0
D3 Rx1: gain change. The gain index (in automatic gain control (AGC) and manual gain control (MGC) is used to select an entry 0x0
in the gain table. This signal is active (the output level toggles between high and low) only if there is a difference in entries
in the gain table when the AGC or MGC index changes. If the entries of the two indices are identical, the Rx gain change signal is
not generated (toggled).
D2 Rx1: update dc offset in the RF section. Updates the RF dc offset word. 0x0
D1 Rx1: measure dc offset in the RF section. Calibration and tracking is in measurement mode. 0x0
D0 Rx1: RF dc count reached. Calibration and tracking measurement counter expired. 0x0
Table 157. Monitor Index: 0x24 (Name: RF DC Offset Correction Tracking Signals, Channel 2)
Bits Description Reset
D7 Reserved. 0x0
D6 Rx2: SOI present. The SOI is calculated in the decimated power block. 0x0
D5 Rx2: correction word above threshold. The calculated RF dc offset word is above threshold. 0x0
D4 Rx2: update counter expired. The RF dc update counter is expired. 0x0
D3 Rx2: gain change. The gain index (in AGC and MGC mode) is used to select an entry in the gain table. This signal is active (the 0x0
output level toggles between high and low) only if there is a difference in entries in the gain table when the AGC or MGC
index changes. If the entries of the two indices are identical, the Rx gain change signal is not generated (toggled).
D2 Rx2: update dc offset in the RF section. Updates the RF dc offset word. 0x0
D1 Rx2: measure dc offset in the RF section. Calibration and tracking is in measurement mode. 0x0
D0 Rx2: RFDC count reached. Calibration/tracking measurement counter expired. 0x0
GPIO_11
ARM GPIO_10
RX1_ENABLE_ACK
PROCESSOR GPIO_9
GPIO INTERFACE RX2_ENABLE_ACK
GPIO_8
TX1_ENABLE_ACK
TX2_ENABLE_ACK
ORX1_ENABLE_ACK GPIO_7
GPIO_6
ORX2_ENABLE_ACK
GPIO_5
SNRX1_ENABLE_ACK
GPIO_4
TX_OBS_SELECT
GPIO_3
GPIO_2
GPIO_1
ARM_ERROR ARM_WATCHDOG GPIO_0
INTERRUPT CONTROLLER
14652-086
(gpioSelect, slewRate)
typedef struct
{
uint8_t useRx2EnablePin; /*!< 0= RX1_ENABLE controls RX1 and RX2, 1 = separate
RX1_ENABLE/RX2_ENABLE pins */
uint8_t useTx2EnablePin; /*!< 0= TX1_ENABLE controls TX1 and TX2, 1 = separate
TX1_ENABLE/TX2_ENABLE pins */
uint8_t txRxPinMode; /*!< 0= ARM command mode, 1 = Pin mode to power up Tx/Rx
chains */
uint8_t orxPinMode; /*!< 0= ARM command mode, 1 = Pin mode to power up ObsRx
receiver*/
/* the AD9371 ARM output GPIO pins -- always available, even when pin mode not enabled*/
uint8_t rx1EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
uint8_t rx2EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
uint8_t tx1EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
uint8_t tx2EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
uint8_t orx1EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
uint8_t orx2EnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
uint8_t srxEnableAck; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
uint8_t txObsSelect; /*!< Select desired GPIO pin (0-15), [4] = Output Enable */
/* When 2Tx are used with only 1 ORx input, this GPIO tells the
BBP which Tx channel is active for calibrations, so BBP can
route correct RF Tx path into the single ORx input */
} mykonosArmGpioConfig_t;
I/O BUFFER
GPIO_18
ATTEN. Tx1 DATAPATH
GPIO_17
I/O CROSSPOINT 2 GPIO_16
DAC THB2/ TFIR DIGITAL
THB1 ATTEN.
GPIO_11
ANALOG DIGITAL
ATTENUATION ATTENUATION GPIO_10
ATTENUATION
CONTROL GPIO_9
GPIO_8
CHANNEL SELECTION
AND
ATTENUATION Tx2 ATTEN DEC GPIO_7
STEP SIZE Tx2 ATTEN INC GPIO_6
Tx1 ATTEN DEC GPIO_5
ANALOG ATTENUATION DIGITAL Tx1 ATTEN INC GPIO_4
ATTENUATION CONTROL ATTENUATION
GPIO_3
GPIO_2
GPIO_1
THB2/ TFIR DIGITAL GPIO_0
DAC
THB1 ATTEN.
ATTEN.
Tx2 DATAPATH
setGpioOe
setTx1AttenCtrlPin (stepSize, tx1AttenIncPin, tx1AttenDecPin, ENABLE, useTx1ForTx2 setGpioDrv(gpioDrv) (gpioOutEn)
setTx2AttenCtrlPin (stepSize, tx2AttenIncPin, tx2AttenDecPin, ENABLE) setGpioSlewRate
(gpioSelect, slewRate)
setupGpio
(auxlo->gpio
14652-087
STRUCTURE)
Tx1 S1 ATTENUATION
TX1 S1[D9:D8] = SPI2 REG 0x318[D1:D0]
0
TX1 S1[D7:D0] = SPI2 REG 0x319[D7:D0]
Tx ATTEN TO Tx1 ATTEN
Tx1 S2 ATTENUATION LUT HARDWARE
TX1 S2[D9:D8] = SPI2 REG 0x31A[D1:D0] 1
TX1 S2[D7:D0] = SPI2 REG 0x31B[D7:D0]
Tx2 S1 ATTENUATION
TX2 S1[D9:D8] = SPI2 REG 0x31C[D1:D0]
TX2 S1[D7:D0] = SPI2 REG 0x31D[D7:D0] 0
14652-098
S1/S2 SELECT
[GPIO_4, GPIO_8, OR GPIO_14]
Tx
SPECIAL Tx
Tx SLOT SLOT 1 Tx SLOT
SPECIAL
ANT 1 DwPTS SLOT 2
– FOR TD-S
AIR INTERFACE
Tx
SPECIAL Tx
Tx SLOT SLOT 1 Tx SLOT
SPECIAL
ANT 2 DwPTS SLOT 2
– FOR TD-S
AIR INTERFACE
TOGGLE PIN
Figure 101 shows a block diagram of the receiver paths together In MGC mode, the baseband processor (BBP) controls the gain
with the gain control blocks and the GPIO interface connection. index pointer(s), which is the pointer used to select the required
There are two variable gain elements in the receive path: the row of the gain table. In MGC mode, the gain index pointer can
internal RF attenuator and the digital gain/attenuator block. be controlled either by using the SPI interface or by using the
The MGC blocks control the gains of both these components GPIO interface. The GPIO interface method is implemented by
simultaneously; the Gain Control block outputs in Figure 101 toggling the GPIO pins to initiate gain changes according to the
indicate this control. following process. The gain control GPIO pins are driven high.
A transition from a logic low to a logic high, held high for at
Note that this device has two receiver chains. Each receiver has least 2 clock RF cycles, initiates a gain change in the device
its own gain table that simultaneously controls each of the (clock RF is the clock at the input to the Rx finite impulse
variable gain blocks in Figure 101. Each row of this table has a response (FIR), refer to transceiver evaluation software (TES) for
unique combination of gain settings. A pointer to the table more information). Similarly, a logic low must be maintained
determines which settings from this table are used. The internal for at least 2 clock RF cycles. The number of gain indices that an
radio frequency (RF) attenuator has 64 different attenuation increase or decrease corresponds to is user programmable.
settings, or indices (0 to 63), which range from 0 dB to 36.12 dB
I/O BUFFER
EXTERNAL
ATTEN. INTERNAL GPIO_18
ATTEN. Rx1 DATAPATH
(OPTIONAL) GPIO_17
I/O CROSSPOINT 2 GPIO_16
ADC RHB3/ RHB1/ DIGITAL
RHB2 RFIR GAIN
GPIO_15
Rx2 GAIN DEC GPIO_14
Rx2 GAIN INC GPIO_13
INTERNAL ATTEN DIGITAL GAIN/ATTEN
WORD [5.0] WORD [6.0] GPIO_12
GAIN
CONTROL
EXTERNAL ATTEN Rx1 GAIN DEC GPIO_11
WORD [3.0]
Rx1 GAIN INCREMENT Rx1 GAIN INC GPIO_10
GPIO_9
Rx1 GAIN DECREMENT
GPIO_8
Rx2 GAIN INCREMENT GAIN STEP SIZE
Rx2 GAIN DECREMENT
EXTERNAL ATTEN GPIO_7
WORD [3.0] GPIO_6
GAIN GPIO_5
CONTROL
Rx2 GAIN DEC GPIO_4
INTERNAL ATTEN DIGITAL GAIN/ATTEN
WORD [5.0] WORD [6.0]
setGpioOe
setRx1GainCtrlPin (incStep, decStep, rx1GainIncPin, rx1GainDecPin, ENABLE) setGpioDrv (gpioDrv) (gpioOutEn)
setRx2GainCtrlPin (incStep, decStep, rx2GainIncPin, rx2GainDecPin, ENABLE) setGpioSlewRate
(gpioSelect, slewRate)
setupGpio
(auxlo->gpio
14652-088
STRUCTURE)
I/O BUFFER
I/O CROSSPOINT
GPIO_3P3_11 F14
GPIO_3P3_10 D14
GPIO_3P3_9 C13
GPIO_3P3_8 D13
GPIO_3P3_7 D12
3.3V GPIO MODES OF OPERATION 1
GPIO_3P3_6 E14
3.3V GENERAL-PURPOSE INPUT/OUTPUT GPIO_3P3_5 D5
GPIO_3P3_4 E1
GPIO_3P3_3 D1
GPIO_3P3_2 F1
GPIO_3P3_1 C2
GPIO_3P3_0 C1
10 × AUXILIARY DAC
14652-089
I/O BUFFER
SETUP
I/O CROSSPOINT
1 = HIGH BIT 11 GPIO_3P3_11
BIT N
BIT 10 GPIO_3P3_10
0 = LOW
BIT 9 GPIO_3P3_9
x x x x BIT 11 BIT 10 BIT 9 BIT 8 BIT 8 GPIO_3P3_8
setGpio3vPinLevel
(gpio3vPinLevel)
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
BIT 7 GPIO_3P3_7
BIT 6 GPIO_3P3_6
BIT 5 GPIO_3P3_5
BIT 4 GPIO_3P3_4
READBACK
BIT 3 GPIO_3P3_3
1 = HIGH
BIT N BIT 2 GPIO_3P3_2
0 = LOW BIT 1 GPIO_3P3_1
x x x x BIT 11 BIT 10 BIT 9 BIT 8 BIT 0 GPIO_3P3_0
getGpio3vPinLevel
(gpio3vPinLevel) BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
getGpio3v3SourceCtrl getGpio3v3Oe
(gpio3v3SrcCtrl) (gpio3v3OutEn)
14652-090
Figure 103. GPIO_3P3_x in Manual Mode of Operation
Tx PLL LOCK
Rx PLL LOCK
Tx1 PA PROTECTION
Tx2 PA PROTECTION
ARM WATCHDOG
ARM ERROR
BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
readGpinterruptStatus
(status)
14652-091
configGpinterrupt
(gpMask)
MYKONOS_readGpInterruptStatus Parameters
mykonosGpioErr_t • status: This parameter returns the IRQ source(s) that
MYKONOS_readGpInterruptStatus(mykonosDevi caused the GP_INTERRUPT pin to assert.
ce_t *device, uint16_t *status)
This function reads the GP interrupt status to determine what Table 164. GP_INTERRUPT Status
caused the GP_INTERRUPT pin to assert. When the baseband Status Bit(s) Description
processor (BBP) detects a rising edge on the GP_INTERRUPT 0 1 = Tx PLL unlock
pin, this function allows the BBP to determine the source of the 1 1 = Rx PLL unlock
interrupt. The value returned in the status parameter shows one 2 1 = sniffer PLL unlock
or more sources for the interrupt, as shown in Table 164. 3 1 = calibration PLL unlock
Note that the phase-locked loop (PLL) unlock bits are not sticky. 4 1 = clock PLL unlock
These bits follow the current status of the PLLs. If the PLL relocks, 5 1 = JESD204 deframer interrupt occurred
the status bit clears as well. The GP_INTERRUPT pin is the 6 1 = Tx1 PA protection event
logical OR of all the sources. When all the status bits are low, the 7 1 = Tx2 PA protection event
GP_INTERRUPT pin is low. The status word readback shows the 8 1 = ARM watchdog timeout
current value for all interrupt sources, even if they are disabled 9 1 = ARM interrupt occurred
by the mask using the MYKONOS_configGpInterrupt() [15:10] Reserved for future use
function. However, the GP_INTERRUPT pin only asserts for
the enabled sources.
AUX DAC 0 Table 165. Example Auxiliary DAC Rise and Fall Times
VREF
Voltage Change (V) Bit Change Rise Time (μs) Fall Time (μs)
10 GPIO_3P3_9
SLOPE 100nF
1.325 768 2.86 11.86
14652-092
ENABLE
DEVICE IS INITIALIZED BY
MYKONOS_initialize() function
YES
CHANGE AuxDAC OUTPUT CODE?
NO
NO CHANGE AUX DAC SLOPE
OR VREF SETTINGS?
STOP
14652-093
YES
14652-094
0 200 400 600 800 1000 1200
and so on).
AUXILIARY DAC CODE
When set to 1, this structure member enables the Figure 107. Auxiliary DAC Output Voltage (VOUT) vs. Auxiliary DAC Code for
corresponding auxiliary DAC (Bit 0 corresponds to the Different auxDacVref Values (auxDacSlope = 0)
Auxiliary DAC 0, Bit 1 corresponds to Auxiliary DAC 1, AUXILIARY DAC STEP FACTOR = 1
and so on). 3500
14652-095
0 200 400 600 800 1000 1200
When set to 0, this structure member sets the corresponding AUXILIARY DAC CODE
auxiliary DAC output midpoint to 1 V (see Figure 107 and Figure 108. Auxiliary DAC Output Voltage (VOUT) vs. Auxiliary DAC Codes for
Figure 108). Different auxDacVref Values (auxDacSlope = 1)
When set to 1, this structure member sets the corresponding MYKONOS_setupAuxDacs
auxiliary DAC output midpoint to 1.5 V (see Figure 107
After correctly configuring all structure members mentioned in
and Figure 108).
the Auxiliary DACs Software Configuration section, execute the
When set to 2, this structure member sets the corresponding
following application programming interface (API) function:
auxiliary DAC output midpoint to 2 V (see Figure 107 and
Figure 108). mykonosErr_t
MYKONOS_setupAuxDacs(mykonosDevice_t
When set to 3, this structure member sets the corresponding *device)
auxiliary DAC output midpoint to 2.5 V (see Figure 107 and
This function reads data from the device auxiliary input/output
Figure 108).
substructure and then loads this data into the device. This
The device → auxIo → auxDacValue[i] structure member function programs all configuration parameters for 10 auxiliary
settings follow: DACs at the same time, including the enable/disable, slope, VREF
The value programmed to this structure member is loaded (midpoint), and the initial auxiliary DAC code.
to the corresponding auxiliary DAC and is output as the This function can be called any time after MYKONOS_initialize()
corresponding analog voltage. The value programmed to to reconfigure, enable, or disable the different auxiliary DAC
this member must be in range between 0 and 1023 (10-bit outputs. The auxiliary DACs are used in manual control mode.
DAC code).
14652-096
mykonosErr_t
ENABLE
MYKONOS_writeAuxDac(mykonosDevice_t SELECT
*device, uint8_t auxDacIndex, uint16_t Figure 109. Auxiliary ADC Input Block Diagram
auxDacCode)
Table 167 outlines the hardware connections on the device for
This function updates the 10-bit code that controls the auxiliary
the auxiliary ADC inputs. A small value capacitor (680 pF) can
DAC output voltage. The auxiliary DAC code is updated for the
be placed on the auxiliary ADC input pins to improve noise
specified auxiliary DAC and is written to the device data structure
performance.
for future reference.
Auxiliary (AUX) ADC Readback Software Control
Parameters
Procedure
*device: This is a pointer to the device settings structure. The flowchart shown in Figure 111 illustrates the process
auxDacIndex: an index that selects which auxiliary DAC to required to properly control the auxiliary ADCs when using
set the new DAC code. The allowable values are from 0 to 9. them to read voltage levels. A typical plot of output code vs.
auxDacCode: the DAC code to update the auxiliary DAC; input voltage is shown in Figure 110.
sets the output voltage of selected DAC. The programmed 4500
value must be in range between 0 and 1023 (10-bit DAC
4000 Y = 1290x – 45
code).
AUXILIARY ADC CODE (Decimal) 3500
This function can be called any time after MYKONOS_
3000
initialize() and MYKONOS_setupAuxDacs().
2500
AUXILIARY ADC
2000
The auxiliary analog-to-digital converter (ADC) is a single 12-bit
auxiliary converter with four multiplexed inputs that cover an 1500
input level range from 0.05 V to 3.25 V. The auxiliary ADC 1000
allows monitoring of the desired voltages, such as a power
500
amplifier (PA) power detector or an external temperature
sensor. Figure 109 shows the general auxiliary ADC input 0
14652-097
0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2
connection scheme. INPUT VOLTAGE (V)
DEVICE IS INITIALIZED BY
MYKONOS_initialize() FUNCTION
CALL MYKONOS_setupAuxAdc ()
FUNCTION TO SETUP AuxADC
WAIT AT LEAST
6 × AUX ADC CONVERSION TIME
YES
PERFORM ANOTHER AUX ADC
MEASUREMENT?
NO
NO
CHANGE AUX ADC INPUT MUX
SETTINGS?
YES
14652-198
STOP
270
This function can be called any time after MYKONOS_
250
initialize() and MYKONOS_setupAuxAdcs().
230
MYKONOS_readAuxAdc
–39.286
–35.159
–30.022
–24.623
–20.314
–15.426
–10.354
–5.425
0.312
5.181
9.916
14.537
20.169
24.860
30.422
35.066
39.791
45.210
49.663
54.714
59.601
64.54
69.806
75.083
79.645
85.297
89.951
95.457
100.533
105.419
110.114
14652-199
To read the auxiliary ADC data for the selected auxiliary ADC
CASE TEMPERATURE (°C)
input, use the following application programming interface Figure 112. Internal Temperature Sensor Code vs. Case Temperature
(API) function:
Software Configuration
mykonosErr_t MYKONOS_readAuxAdc
(mykonosDevice_t *device, uint16_t The API provides functions to read back the internal die
*adcCode ) temperature sensor output. Figure 113 outlines the procedure
Before using this function to read back the output value of the that must be followed to read back the internal temperature
selected auxiliary ADC, ensure that at least one ADC conversion sensor. A list of API commands with instructions detailing how
time passes after setting the auxiliary ADC channel. to use them is outlined in the following section.
DEVICE IS INITIALIZED BY
MYKONOS_initialize() FUNCTION
POPULATE TempSensorConfig_t
STRUCTURE MEMBERS WITH CORRECT VALUES
CALL MYKONOS_setupTempSensor ()
FUNCTION TO SETUP TEMPERATURE SENSOR
WAIT AT LEAST
6 × AuxADC CONVERSION TIME
IS tempValid OF
mykonosTempSensorConfig_t NO
STRUCTURE SET?
YES
YES
PERFORM ANOTHER TEMPERATURE
MEASUREMENT?
NO
14652-200
STOP
This function can be called any time after MYKONOS_ • Set up the temperature sensor using the MYKONOS_
initialize(). setupTempSensor() function.
• Set up the auxiliary ADC input mux to the internal
MYKONOS_getTempSensorConfig
temperature sensor (Channel 16 = 0x10 ) using the
The next API function reads data from the temperature sensor MYKONOS_setAuxAdcChannel() function.
registers and populates the *tempSensor data structure. After • Initiate temperature sensor measurements using the
this function is executed, the *tempSensor parameter holds MYKONOS_startTempMeasurement() function. The user
updated values from the device registers. This parameter is used must call this function every time temperature readings
as follows: must be performed.
RF PORT INTERFACE
This section provides the recommended RF transmitter and Mathematically, the PEDZ model is represented as
receiver interfaces to obtain optimal device performance. This PEDZ = RP||jXP (24)
section includes data regarding the expected RF port impedance
values, potential impedance matching network techniques, and The notation, a || b is short for a in parallel with b. The term,
examples of impedance matching networks. Some reference jXP, can be positive (inductive) or negative (capacitive).
material is also provided regarding board layout techniques and Conversions Between SEDZ and PEDZ
balun selection guidelines. From a network theory perspective, the SEDZ model and the
The device is a highly integrated transceiver with two PEDZ model are equivalent. The following equations provide a
transmitters, two main receivers, and an observation channel means to calculate a PEDZ model from a SEDZ model. Note
with two observation receiver inputs and three sniffer receiver that SEDY is the series equivalent differential admittance, which
inputs. All input and output ports are differential; therefore, is the reciprocal of SEDZ. Similarly, PEDY is the parallel equivalent
external impedance matching networks are required on differential admittance, which is the reciprocal of PEDZ.
transmitter and receiver ports to convert them from single- 1 1
1
RP = Re
ended to differential as well as to achieve performance levels 1
Re (25)
indicated on the data sheet. SEDZ RS jXS
SERIES AND PARALLEL IMPEDANCE MODELS 1 1
1
jXP = − Im
1
In describing differential impedances, two equivalent models Im (26)
are commonly used: series equivalent differential impedance SEDZ RS jX S
(SEDZ) and parallel equivalent differential impedance (PEDZ). Conversion from and to the SEDZ model from the PEDZ
Both formats are used throughout this user guide, and descriptions model is accomplished using the following equations:
of the models and the conversion between the two formats are
provided in the following sections.
1
Series Equivalent Differential Impedance (SEDZ) Models RS = Re 1 j (27)
The SEDZ model is depicted in Figure 114. Note that series RP XP
refers to the fact that the resistance is in series with the reactance
formed by the parallel combination of the capacitor and
inductor (see Figure 114). 1
jXS = Im 1 j (28)
L
L1 RP XP
R L = LS
R1
+
TERM R = RS C
Example 1 and Example 2 that follow illustrate the simplicity of
TERM 1 C1 the conversion process.
NUM = 1 C = CS
– Z = 50Ω
Example 1: SEDZ to PEDZ Conversion
14652-202
1.0
IMPEDANCE = 37.272 – j12.862
2.0
0.5
m4
m2
FREQUENCY = 2.000GHz m5
S (1,1) = 0.391 / 175.770
IMPEDANCE = 21.928 + j1.492 m3
0.2 5.0
m3 m8
FREQUENCY = 3.000GHz 10
S (1,1) = 0.548 / 128.665
IMPEDANCE = 17.610 + j21.560 20
m2
0.5
1.0
2.0
5.0
10
20
m4 m1 -20
FREQUENCY = 4.000GHz
S (1,1) = 0.657 / 88.433
-10
IMPEDANCE = 20.335 + j47.066
-0.2 -5.0
S(1,1)
m5
FREQUENCY = 5.000GHz
S (1,1) = 0.719 / 52.629
IMPEDANCE = 37.502 + j88.705
5
0
-0.
-2.
m8
-1.0
FREQUENCY = 6.000GHz
14652-604
Figure 116. Tx1 and Tx2 Series Equivalent Differential Port Impedance
Tx1/Tx2 PORT PEDZ
350 30
300 R PEDZ
L OR C PE 25
X STATUS m7
FREQUENCY = 5.000GHz
250 L OR C PE = 3.328
20
L OR C PE
X STATUS
200
R PEDZ
15
150
10
100
m7 5
50
0 0
0 1 2 3 4 5 6
FREQUENCY (GHz)
14652-204
NOTES
1. X STATUS: 0 = CAPACITANCE IN pF, 1 = INDUCTANCE IN nH.
Figure 117. Tx1 and Tx2 Parallel Equivalent Differential Port Impedance
1.0
S (1,1) = 0.582 / –16.983
IMPEDANCE = 146.615 – j75.359
2.0
0.5
m2
FREQUENCY = 2.000GHz
S (1,1) = 0.552 / –35.028
IMPEDANCE = 86.763 – j79.119 S(1,1)
0.2 5.0
m3
FREQUENCY = 3.000GHz 10
S (1,1) = 0.502 / –55.661
20
IMPEDANCE = 54.570 – j60.402
0.5
1.0
2.0
5.0
10
20
m8
m1
m4 -20
FREQUENCY = 4.000GHz
m2
-10
S (1,1) = 0.431 / –81.317 m5
IMPEDANCE = 38.567 – j40.360
-0.2 m4 m3 -5.0
m5
FREQUENCY = 5.000GHz
S (1,1) = 0.353 / –116.392
IMPEDANCE = 30.422 – j21.987
0
-0.
-2.
m8
-1.0
FREQUENCY = 6.000GHz
14652-605
S (1,1) = 0.313 / –165.302
IMPEDANCE = 26.493 – j4.660 FREQ (0.0000Hz TO 6.000GHz)
180 0.50
0.45
160
0.40
m7
140 R PEDZ
L OR C PE 0.35
L OR C PE
X STATUS
X STATUS
R PEDZ
120 0.30
100 0.25
0.20
80
m7 0.15
FREQUENCY = 5.625GHz
60 L OR C PE = 0.355
0.10
m6
40 FREQUENCY = 5.625GHz m6
0.05
R PEDZ = 32.066
20 0
0 1 2 3 4 5 6
FREQUENCY (GHz)
14652-205
NOTES
1. X STATUS: 0 = CAPACITANCE IN pF, 1 = INDUCTANCE IN nH.
1.0
IMPEDANCE = 146.631 – j75.499
2.0
0.5
m2
FREQUENCY = 2.000GHz
S (1,1) = 0.553 / –35.022
IMPEDANCE = 86.750 – j79.424 S(1,1)
0.2 5.0
m3
FREQUENCY = 3.000GHz 10
S (1,1) = 0.505 / –55.681
IMPEDANCE = 54.349 – j60.798 20
0.5
1.0
2.0
5.0
10
20
m8
m1
m4 -20
FREQUENCY = 4.000GHz
S (1,1) = 0.437 / –80.857 m5 m2 -10
IMPEDANCE = 38.478 – j40.975
-0.2 m4 m3
-5.0
m5
FREQUENCY = 5.000GHz
S (1,1) = 0.361 / –114.970
IMPEDANCE = 30.298 – j20.805
0
-0.
-2.
m8
-1.0
FREQUENCY = 6.000GHz
14652-606
S (1,1) = 0.318 / –162.027
IMPEDANCE = 26.322 – j5.755 FREQ (0.0000Hz TO 6.000GHz)
L OR C PE
X STATUS
120
R PEDZ
0.30
100 0.25
0.20
80
m7 0.15
60 FREQUENCY = 2.625GHz
L OR C PE = 0.472 0.10
40 m6
FREQUENCY = 2.625GHz 0.05
R PEDZ = 137.170
20 0
0 1 2 3 4 5 6
FREQUENCY (GHz)
14652-206
NOTES
1. X STATUS: 0 = CAPACITANCE IN pF, 1 = INDUCTANCE IN nH.
1.0
IMPEDANCE = 118.509 – j76.915
2.0
0.5
m2
FREQUENCY = 2.000GHz
S (1,1) = 0.438 / –52.367
IMPEDANCE = 61.507 – j52.799 S(1,1) m5
m8
0.2 5.0
m3
FREQUENCY = 3.000GHz
S (1,1) = 0.225 / –100.662 m4 10
IMPEDANCE = 41.843 – j19.531 20
0.5
1.0
2.0
5.0
10
20
m4 m3
m1
-20
FREQUENCY = 4.000GHz
S (1,1) = 0.206 / 126.049 -10
IMPEDANCE = 37.267 + j12.959 m2
-0.2 -5.0
m5
FREQUENCY = 5.000GHz
S (1,1) = 0.478 / 69.267
IMPEDANCE = 43.349 + j50.217
0
-0.
-2.
m8
-1.0
FREQUENCY = 6.000GHz
14652-607
S (1,1) = 0.665 / 38.240
IMPEDANCE = 70.147 + j103.512 FREQ (0.0000Hz TO 6.000GHz)
180 80
160 70
L OR C PE
X STATUS
R PEDZ
140 60
120 50
100 40
80 m7 m6 30
FREQUENCY = 2.625GHz
L OR C PE = 0.603
60 20
m6
40 FREQUENCY = 2.625GHz 10
R PEDZ = 68.401 m7
20 0
0 1 2 3 4 5 6
FREQUENCY (GHz)
14652-207
NOTES
1. X STATUS: 0 = CAPACITANCE IN pF, 1 = INDUCTANCE IN nH.
1.0
IMPEDANCE = 124.163 – j78.512
2.0
0.5
m2
FREQUENCY = 2.000GHz
S (1,1) = 0.481 / –48.396 m8
IMPEDANCE = 64.849 – j60.703 S(1,1)
5.0
0.2 m5
m3
FREQUENCY = 3.000GHz 10
S (1,1) = 0.332 / –86.090
IMPEDANCE = 41.771 – j31.109 20
0.5
1.0
2.0
5.0
10
20
m4
m4 m1 -20
FREQUENCY = 4.000GHz
S (1,1) = 0.203 / 165.980
-10
IMPEDANCE = 33.399 – j3.428 m3 m2
-0.2 -5.0
m5
FREQUENCY = 5.000GHz
S (1,1) = 0.351 / 108.738
IMPEDANCE = 32.514 + j24.639
0
-0.
-2.
m8
-1.0
FREQUENCY = 6.000GHz
14652-608
S (1,1) = 0.557 / 67.867
IMPEDANCE = 38.743 + j57.921 FREQ (0.0000Hz TO 6.000GHz)
L OR C PE
X STATUS
120
R PEDZ
12
100 10
m7 m6
FREQUENCY = 2.625GHz 8
80 L OR C PE = 0.627
m6 6
60 FREQUENCY = 2.625GHz
R PEDZ = 84.789 4
40 m7 2
20 0
0 1 2 3 4 5 6
FREQUENCY (GHz)
14652-208
NOTES
1. X STATUS: 0 = CAPACITANCE IN pF, 1 = INDUCTANCE IN nH.
1.0
IMPEDANCE = 88.599 – j161.308
m8
2.0
0.5
m2
FREQUENCY = 2.000GHz
S (1,1) = 0.759 / –61.540
IMPEDANCE = 24.861 – j78.254 S(1,1)
0.2
m5 5.0
m3
FREQUENCY = 3.000GHz 10
S (1,1) = 0.725 / –105.613
IMPEDANCE = 12.388 – j36.444 20
0.5
1.0
2.0
5.0
10
20
m4 -20
FREQUENCY = 4.000GHz
S (1,1) = 0.708 / –156.710 m4 -10
IMPEDANCE = 8.885 – j9.992 m1
-0.2 -5.0
m5
FREQUENCY = 5.000GHz m2
S (1,1) = 0.738 / 153.199 m3
IMPEDANCE = 7.963 + j11.626
0
-0.
-2.
m8
-1.0
FREQUENCY = 6.000GHz
14652-609
S (1,1) = 0.810 / 108.858
IMPEDANCE = 7.884 + j35.167 FREQ (0.0000Hz TO 6.000GHz)
250 m7 1.4
FREQUENCY = 2.625GHz
L OR C PE = 1.120 m7
200 1.2
1.0
150
m6 0.8
100 m6 0.6
FREQUENCY = 2.625GHz
R PEDZ = 175.185 0.4
50
0.2
0 0
0 1 2 3 4 5 6
FREQUENCY (GHz)
14652-209
NOTES
1. X STATUS: 0 = CAPACITANCE IN pF, 1 = INDUCTANCE IN nH.
1.0
IMPEDANCE = 68.973 – j138.312
m5
2.0
0.5
m2 m4
FREQUENCY = 2.000GHz m8
S (1,1) = 0.694 / –80.448
IMPEDANCE = 20.740 – j54.681
0.2 5.0
m3
FREQUENCY = 3.000GHz S(1,1) 10
S (1,1) = 0.618 / –156.731
IMPEDANCE = 12.285 – j9.697 20
0.5
1.0
2.0
5.0
10
20
m4 -20
FREQUENCY = 4.000GHz m3
S (1,1) = 0.699 / –123.575
-10
IMPEDANCE = 11.300 – j25.750 m1
-0.2 -5.0
m5
FREQUENCY = 5.000GHz
S (1,1) = 0.812 / 73.164 m2
IMPEDANCE = 14.365 + j65.355
0
-0.
-2.
m8
-1.0
FREQUENCY = 6.000GHz
14652-610
S (1,1) = 0.883 / 40.428
IMPEDANCE = 25.369 + j131.501 FREQ (0.0000Hz TO 6.000GHz)
500 3.5
L OR C PE
X STATUS
m7
R PEDZ
3.0
400
2.5
300 2.0
1.5
200
1.0
100 m6
0.5
0 0
0 1 2 3 4 5 6
FREQUENCY (GHz)
14652-210
NOTES
1. X STATUS: 0 = CAPACITANCE IN pF, 1 = INDUCTANCE IN nH.
1.0
IMPEDANCE = 66.154 – j134.156
m5
m4
2.0
0.5
m2
FREQUENCY = 2.000GHz
S (1,1) = 0.676 / –85.119 m8
IMPEDANCE = 20.217 – j50.199
0.2 5.0
m3
FREQUENCY = 3.000GHz S(1,1) 10
S (1,1) = 0.605 / –170.565
IMPEDANCE = 12.384 – j3.875 20
0.5
1.0
2.0
5.0
m3
10
20
m4 -20
FREQUENCY = 4.000GHz
S (1,1) = 0.725 / –108.201 -10
IMPEDANCE = 11.988 + j34.810
-0.2 m1 -5.0
m5
FREQUENCY = 5.000GHz
S (1,1) = 0.838 / 61.263 m2
IMPEDANCE = 16.650 + j81.954
0
-0.
-2.
m8
-1.0
FREQUENCY = 6.000GHz
14652-611
S (1,1) = 0.899 / 30.972
IMPEDANCE = 35.803 + j173.625 FREQ (0.0000Hz TO 6.000GHz)
Figure 130. SnRxC Series Equivalent Differential Port Impedance (X STATUS Transitions from 0 to 1 at 3.1 GHz)
600 80
L OR C PE
X STATUS
500
R PEDZ
60
400
300 40
m7
200
20
100 m6
0 0
0 1 2 3 4 5 6
FREQUENCY (GHz)
14652-211
NOTES
1. X STATUS: 0 = CAPACITANCE IN pF, 1 = INDUCTANCE IN nH.
Figure 131. SnRxC Parallel Equivalent Differential Port Impedance (X STATUS Transitions from 0 to 1 at 3.1 GHz)
14652-214
network, select components with low dc resistance (RDCR) to
minimize the voltage drop across the series parasitic resistance
Figure 134. Recommended RF Transmitter Interface (Center Tapped Balun)
element with either of the suggested dc bias schemes shown in
1.8V
Figure 132 and Figure 133. The RDCR resistors indicate the parasitic
elements. As the impedance of the parasitics increase, the voltage CB
LC LC
drop (ΔV) across the parasitic element increases, causing the
transmitter RF performance (that is, PO, 1dB, PO, MAX, and so forth)
Tx1/Tx2 CC
to degrade. Select a high enough choke inductance (LC) relative
1.8V
to the load impedance to avoid degrading the output power (see Tx1 OR Tx2
OUTPUT STAGE
Figure 132).
1.8V
The recommended dc bias network is shown in Figure 133. This Tx1/Tx2 CC
14652-215
network has fewer parasitics and fewer total components.
VDC = 1.8V
Figure 135. RF Transmitter Interface (RF Chokes Bias Differential Tx Output Lines
CB with Additional Coupling Capacitors Creating a Transmission Line Balun)
LC LC
1.8V
+ +
RDCR ∆V ∆V RDCR
Tx1/Tx2 – – CB
LC LC
I BIAS =
Tx1 OR Tx2 VBIAS = 1.8 – ∆V ~100mA
OUTPUT STAGE
VBIAS = 1.8 – ∆V
Tx1/Tx2
Tx1/Tx2 IBIAS = 1.8V
͠ 100mA Tx1 OR Tx2
14652-212
OUTPUT STAGE
1.8V
Tx1/Tx2
Figure 132. RF DC Bias Configuration: Parasitic Losses Due to Wire Wound Chokes
14652-216
IBIAS = Figure 136. RF Transmitter Interface (RF Chokes Bias Differential Tx Output
Tx1/Tx2 ~100mA – ∆V + Lines and Connect to Transformer, No Additional Capacitors)
VDC = 1.8V RDCR 1.8V
Tx1 OR Tx2 V BIAS = 1.8 – ∆V
OUTPUT STAGE
V BIAS = 1.8 – ∆V CB CB
RDCR
LC LC
Tx1/Tx2 IBIAS = – ∆V +
~100mA
14652-213
Tx1/Tx2 CC
1.8V
Figure 133. RF DC Bias Configuration: Parasitic Losses Due to Center Tapped Tx1 OR Tx2 DRIVER
OUTPUT STAGE AMPLIFIER
Transformers
1.8V
Figure 134 through Figure 137 identify four basic differential Tx1/Tx2 CC
14652-217
Load-pull style matching is straightforward. Determine the For the SnRx channel, the input pins interface directly to an
frequency of interest and provide the load impedance that integrated low noise amplifier (LNA). The LNA input pins have
represents the desired compromise between the output power a dc bias of ~0.6 V. These inputs may need to be ac-coupled,
and linearity. The focus is on developing the preferred load depending on the common-mode voltage of the external circuit.
impedance at the Tx output ball pads. A quick contrast between To achieve best noise figure and even-order distortion (IP2)
load-pull and small signal matching is instructive and follows: performance, use the SnRx ports in differential mode.
14652-220
this consideration include, but are not limited to, filters,
baluns transmit/receive switches, external LNAs, and
Figure 140. Differential Receiver Interface Using a Transformer, All Receiver Inputs
external power amplifiers (PAs). It is important to
determine if the interfaced device presents a short to Rx1_INN
ground at dc. RECEIVER
Rx and ORx maximum input power is 23 dBm (peak). The INPUT
STAGE
Rx1_INP (MIXER OR LNA)
SnRx maximum safe input power is 2 dBm (peak).
14652-221
Rx and ORx optimum dc bias voltage is 0.7 VBIAS to ground.
The SnRx optimum dc bias voltage is 0.6 VBIAS to ground. Figure 141. Differential Receiver Interface Using a Transmission Line Balun,
All Receiver Inputs
Board design: reference planes, transmission lines,
impedance matching, including careful attention to low Given wide RF bandwidth applications, surface-mount device
noise layout techniques, placement of transmission lines, (SMD) balun devices function well. Decent loss and differential
and accurate impedance matching are essential for optimal balance are available in relatively small (0603, 0805) packages.
performance. For receiver applications, the transmission line balun referenced
Single-Ended and Differential Receiver Input Interface in Figure 141 may be configured in multiple ways. Most
Circuits configurations are based on a Marchand planer design
Figure 138 through Figure 141 show possible single-ended and derivative like the one shown in Figure 142.
differential receiver port interface circuits. The options presented in 6
Figure 138 and Figure 139 are valid only for the SnRx channels in
1
single-ended mode. The options in Figure 140 and Figure 141
are valid for all receiver inputs operating in differential mode,
though only the Rx1 signal names are indicated. Differential 2
inputs with impedance matching may be necessary to obtain
data sheet performance levels.
Cc
SnRx1_INN
3 4 5
LNA 1: SINGLE-ENDED PORT
SnRx1_INP
2: GROUND OR BIAS
OPEN, SHORT, 3: BALANCED PORT 1
14652-218
14652-222
OTHER BAND/PATH 4: BALANCED PORT 2
5: PACKAGE GROUND
6: NO CONNECT
Figure 138. Single-Ended Input Interface Circuit, SnRx Only, Negative Side of
Differential Input Figure 142. Marchand Planer Balun Schematic
DIFFERENTIAL MATCH
SINGLE-ENDED MATCH
S1P_EQN S1P_EQN
d S1P2
S1P_EQN S1P_EQN S1P5
BALUN S1P1 S1P4
S1P_EQN c
S1P8
S1P_EQN S1P_EQN BALUN 3PORT
CMP1
S1P9 S1P7
S1P_EQN S1P_EQN
S1P3 S1P6
14652-223
R205 RX1+
C205
L201 T200
J200 3
R202 BAL_OUT1
R201 1
UNBAL_IN L204 C204 L207 C207
6 4
C201 C245 BAL_OUT2
5 2 L206
R206
L200 C200 L202 C202 C203 R203 RX1–
C206
14652-225
Figure 145. Rx1 Generic Matching Network Topology from the ADRV9371-N/PCBZ Evaluation Board
L214
R214 RX2+
C214
L209 T201
J201 3
BAL_OUT1
R209 R204
1
UNBAL_IN L213 L216 C216
6 C213
C241 4
C209 BAL_OUT2
5 2 L215
R215
L208 C208 L211 C211 C212 R212
RX2–
C215
14652-226
Figure 146. Rx2 Generic Matching Network Topology from the ADRV9371-N/PCBZ Evaluation Board
L222
R222 SNRXA+
C222
L218 T202
J202 3
BAL_OUT1
R218 R207
1
UNBAL_IN L221 L224 C224
6 C221
C242 4
C218 BAL_OUT2
5 2 L223
R223
L217 C217 L219 C219 C220 R220
SNRXA-
C223
14652-227
Figure 147. SnRxA Generic Matching Network Topology from ADRV9371-N/PCBZ Evaluation Board
R231 ORX1+
C231
L226 T203
J203 3
BAL_OUT1
R226 R208
1
UNBAL_IN L229 C229 L232 C232
6 4
C226 C243 BAL_OUT2
5 2 L230
R230
L225 C225 L227 C227 C228 R228
ORX1–
C230
14652-228
Figure 148. ORx1 Generic Matching Network Topology from the ADRV9371-N/PCBZ Evaluation Board
L239
R239 ORX2+
C239
L234 T204
J204 3
BAL_OUT1
R234 R210
1
UNBAL_IN L237 L240 C240
6 C237
C244 4
C234 BAL_OUT2
5 2 L238
R238
L233 C233 L235 C235 C236 R236
ORX2–
C238
14652-229
Figure 149. ORx2 Generic Matching Network Topology from the ADRV9371-N/PCBZ Evaluation Board
C307
VOUT4_1V8
L307
C309
TX1+ R309
L301
T305
3 J305
BAL_1 R303 R301
1
L311 L303 C303 UNBAL
C311
6 C305 C301
BAL_2
4
2 5
L305
TX1– R310
L323 C323 L324 C324
C310
L340
VOUT4_1V8
L308
Figure 150. Tx1 Generic Matching Network Topology from ADRV9371-N/PCBZ Evaluation Board
L315
C317
TX2+ R317
L302
T306
3 J306
BAL_1 R304 R302
1
L319 L304 C304 UNBAL
C319
6 C306 C302
BAL_2
4
2 5
R318 L305
TX2–
L328 C328 L329 C329
C318
L341
VOUT4_1V8
L316
14652-231
Figure 151. Tx2 Generic Matching Network Topology from ADRV9371-N/PCBZ Evaluation Board
L OR C PE
X STATUS
200
R PEDZ
Tx1/Tx2 PORT IMPEDANCE: SEDZ
15
1.0
150
10
2.0
0.5
m4 100
m5
m7 5
m3 50
0.2 5.0
m8 0 0
10
0 1 2 3 4 5 6
20 FREQUENCY (GHz)
14652-233
m2
0.5
1.0
2.0
5.0
NOTES
10
20
-2.
14652-232
14652-154
Figure 154. ADRV9371-N/PCBZ Evaluation Board Stackup
Impedance Tolerance (Ω) Reference Line Width (mil) Spacing (mil) Finished Finished Impedance
Require- Pos Neg Line Spacing Simulation
Layer ment (Ω) (+) (−) Type Upper Lower Designed Plotted Designed Coplaner Width (mil) (mil) (Ω)
I1comp 50 5.0 5.0 Surface I2pp 15.50 15.00 20.00 14.50 50.2
single-ended
coplaner
I1comp 100 10.0 10.0 Surface I2pp 8.00 9.00 6.00 8.50 5.50 100.1
microstrip
differential
I1comp 50 5.0 5.0 Coated I2pp 15.50 13.75 20.00 13.25 49.7
single-ended
coplaner
I1comp 100 10.0 10.0 Coated I2pp 8.00 7.50 6.00 7.00 7.00 100.6
microstrip
differential
I5mix 50 5.0 5.0 Single-ended I6pp I4pp 4.50 4.50 4.00 50.9
I5mix 100 10.0 10.0 Differential I6pp I4pp 3.60 4.25 6.40 3.75 6.25 98.9
I7mix 50 5.0 5.0 Single-ended I8pp I6pp 4.50 4.75 4.25 48.2
I7mix 100 10.0 10.0 Differential I8pp I6pp 3.60 4.00 6.40 3.50 6.50 100.6
I8mix 50 5.0 5.0 Single-ended I7pp I9pp 4.50 4.75 4.25 48.2
I8mix 100 10.0 10.0 Differential I7pp I9pp 3.60 4.00 6.40 3.50 6.50 100.6
I10mix 50 5.0 5.0 Single-ended I11pp I9pp 4.50 5.00 4.50 49.8
I10mix 100 10.0 10.0 Differential I11pp I9pp 3.60 4.50 6.40 4.00 6.00 100.8
I14sold 50 5.0 5.0 Surface I13pp 15.50 15.00 20.00 14.50 50.2
single-ended
coplaner
I14sold 100 10.0 10.0 Surface I13pp 8.00 9.00 6.00 8.50 5.50 100.1
microstrip
differential
I14sold 50 5.0 5.0 Coated I13pp 15.50 13.75 20.00 13.25 49.7
single-ended
coplaner
I14sold 100 10.0 10.0 Coated I13pp 8.00 7.50 6.00 7.00 7.00 100.6
microstrip
differential
10 mil PIN
ESCAPE TRACE 4.5 mil TRACE
22 mil
LAND TO Ø 6 mil PAD/
VIA SPACING 12 mil KEEP OUT
Ø 14 mil BGA
LAND SIZE
14652-155
1 2 3 4 5 6 7 8 9 10 11 12 13 14
VSSA ORX2+ ORX2– VSSA RX2+ RX2– VSSA VSSA RX1+ RX1– VSSA ORX1+ ORX1– VSSA
A
VDDA_RXRF VSSA VSSA VSSA VSSA VSSA RX_EXTLO– RX_EXTLO+ VSSA VSSA VSSA VSSA VSSA VDDA_3P3
B
GPIO_3P3_3 SNRXC– SNRXB– SNRXA– GPIO_3P3_5 VSSA VSSA VSSA VSSA VDDA_1P8 AUXADC_3 GPIO_3P3_7 GPIO_3P3_8 GPIO_3P3_10
D
DEV_ DEV_
GPIO_3P3_4 SNRXC+ SNRXB+ SNRXA+ VDDA_BB VSSA VSSA VSSA TX_EXTLO– TX_EXTLO+ AUXADC_0 GPIO_3P3_6
E CLK_IN+ CLK_IN–
VDDA_ VTX_
GPIO_3P3_2 VDDA_RXTX VSSA VSSA VSSA VSSA VSSA VSSA VSSA VSSA VDDA_TXLO GPIO_3P3_11
F TXVCO VCO_LDO
TX2– VSSA VSSA VSSA VSSA VSSA VSSA VSSA VSSA VSSA GPIO_12 GPIO_11 VSSA TX1+
H
GP_
TX2+ VSSA GPIO_18 RESET TEST GPIO_2 GPIO_1 SDIO SDO GPIO_13 GPIO_10 VSSA TX1–
J INTERRUPT
VSSA VSSA SYSREF_IN+ SYSREF_IN– GPIO_5 GPIO_4 GPIO_3 GPIO_0 SCLK CSB GPIO_14 GPIO_9 VSSA VSSA
K
L VSSA VSSA SYNCINB1– SYNCINB1+ GPIO_6 GPIO_7 VSSD VDIG VDIG VSSD GPIO_15 GPIO_8 VSSA VSSA
VDDA_CLK VSSA SERDOUT3– SERDOUT3+ SERDOUT2– SERDOUT2+ VSSA VDDA_SER VDDA_DES SERDIN2– SERDIN2+ SERDIN3– SERDIN3+ VSSA
N
JESD_VTT_
VSSA VSSA VSSA SERDOUT1– SERDOUT1+ SERDOUT0– SERDOUT0+ VDDA_SER VSSA SERDIN0– SERDIN0+ SERDIN1– SERDIN1+
P DES
14652-156
TERMINATION
RESISTOR
AC COUPLING
CAPACITORS
BGA BALLS
14652-157
14652-158
Figure 158. Layout Example of Power Supply Connections Routed with Ground Shielding (Layer 12)
VSSA ORX2+ ORX2– VSSA RX2+ RX2– VSSA VSSA RX1+ RX1– VSSA ORX1+ ORX1– VSSA
A
VDDA_RXRF VSSA VSSA VSSA VSSA VSSA RX_EXTLO– RX_EXTLO+ VSSA VSSA VSSA VSSA VSSA VDDA_3P3
B
GPIO_3P3_3 SNRXC– SNRXB– SNRXA– GPIO_3P3_5 VSSA VSSA VSSA VSSA VDDA_1P8 AUXADC_3 GPIO_3P3_7 GPIO_3P3_8 GPIO_3P3_10
D
DEV_ DEV_
GPIO_3P3_4 SNRXC+ SNRXB+ SNRXA+ VDDA_BB VSSA VSSA VSSA TX_EXTLO– TX_EXTLO+ AUXADC_0 GPIO_3P3_6
E CLK_IN+ CLK_IN–
VDDA_ VTX_
GPIO_3P3_2 VDDA_RXTX VSSA VSSA VSSA VSSA VSSA VSSA VSSA VSSA VDDA_TXLO GPIO_3P3_11
F TXVCO VCO_LDO
TX2– VSSA VSSA VSSA VSSA VSSA VSSA VSSA VSSA VSSA GPIO_12 GPIO_11 VSSA TX1+
H
GP_
TX2+ VSSA GPIO_18 RESET TEST GPIO_2 GPIO_1 SDIO SDO GPIO_13 GPIO_10 VSSA TX1–
J INTERRUPT
VSSA VSSA SYSREF_IN+ SYSREF_IN– GPIO_5 GPIO_4 GPIO_3 GPIO_0 SCLK CSB GPIO_14 GPIO_9 VSSA VSSA
K
VSSA VSSA SYNCINB1– SYNCINB1+ GPIO_6 GPIO_7 VSSD VDIG VDIG VSSD GPIO_15 GPIO_8 VSSA VSSA
L
VDDA_CLK VSSA SERDOUT3– SERDOUT3+ SERDOUT2– SERDOUT2+ VSSA VDDA_SER VDDA_DES SERDIN2– SERDIN2+ SERDIN3– SERDIN3+ VSSA
N
JESD_VTT_
VSSA VSSA VSSA SERDOUT1– SERDOUT1+ SERDOUT0– SERDOUT0+ VDDA_SER VSSA SERDIN0– SERDIN0+ SERDIN1– SERDIN1+
P DES
TRACE
WIDE TRACE HIGH CURRENT
TRACE WITH FERRITE BEAD TO ANALOG PLANE
14652-159
TRACE TO ANALOG PLANE
RESERVOIR
CAPACITOR FERRITE BEAD
SHIELDING
FROM OTHER
14652-160
SUPPLIES
Figure 160. Placement Example for Ferrite Bead, Reservoir Capacitor, and Decoupling Capacitor on the ADRV9371-N/PCBZ Evaluation Card
VSSA ORX2+ ORX2– VSSA RX2+ RX2– VSSA VSSA RX1+ RX1– VSSA ORX1+ ORX1– VSSA
A
VDDA_RXRF VSSA VSSA VSSA VSSA VSSA RX_EXTLO– RX_EXTLO+ VSSA VSSA VSSA VSSA VSSA VDDA_3P3
B
GPIO_3P3_3 SNRXC– SNRXB– SNRXA– GPIO_3P3_5 VSSA VSSA VSSA VSSA VDDA_1P8 AUXADC_3 GPIO_3P3_7 GPIO_3P3_8 GPIO_3P3_10
D
DEV_ DEV_
GPIO_3P3_4 SNRXC+ SNRXB+ SNRXA+ VDDA_BB VSSA VSSA VSSA TX_EXTLO– TX_EXTLO+ AUXADC_0 GPIO_3P3_6
E CLK_IN+ CLK_IN–
VDDA_ VTX_
GPIO_3P3_2 VDDA_RXTX VSSA VSSA VSSA VSSA VSSA VSSA VSSA VSSA VDDA_TXLO GPIO_3P3_11
F TXVCO VCO_LDO
H TX2– VSSA VSSA VSSA VSSA VSSA VSSA VSSA VSSA VSSA GPIO_12 GPIO_11 VSSA TX1+
GP_
TX2+ VSSA GPIO_18 RESET TEST GPIO_2 GPIO_1 SDIO SDO GPIO_13 GPIO_10 VSSA TX1–
J INTERRUPT
VSSA VSSA SYSREF_IN+ SYSREF_IN– GPIO_5 GPIO_4 GPIO_3 GPIO_0 SCLK CSB GPIO_14 GPIO_9 VSSA VSSA
K
VSSA VSSA SYNCINB1– SYNCINB1+ GPIO_6 GPIO_7 VSSD VDIG VDIG VSSD GPIO_15 GPIO_8 VSSA VSSA
L
VDDA_CLK VSSA SERDOUT3– SERDOUT3+ SERDOUT2– SERDOUT2+ VSSA VDDA_SER VDDA_DES SERDIN2– SERDIN2+ SERDIN3– SERDIN3+ VSSA
N
JESD_VTT_
VSSA VSSA VSSA SERDOUT1– SERDOUT1+ SERDOUT0– SERDOUT0+ VDDA_SER VSSA SERDIN0– SERDIN0+ SERDIN1– SERDIN1+
P DES
14651-161
1µF CAPACITOR
ALL DIGITAL GPIO SIGNALS ROUTED BELOW THE DASHED LINE
Figure 161. Auxiliary ADC, SPI, Analog GPIO/Auxiliary DAC, and Digital GPIO Signal Routing Guidelines
Table 179. Example 1 Microstrip Parametric Calculated Results Table 181. Example 3 Microstrip Parametric Calculated Results
Parameter Value Parameter Value
εr (Rogers 4003C) 3.55 εr (Rogers 4003C) 3.55
Dissipation Loss Tangent (TanD) 0.0021 Dissipation Loss Tangent (TanD) 0.0021
Height 8.0 mil Height 8.0 mil
Width 8.5 mil Width 34.0 mil
Spacing 5.0 mil Spacing 4.0 mil
ZEVEN 85.1 Ω ZEVEN 35.2 Ω
ZODD 50.2 Ω ZODD 25.2 Ω
Z0 65.4 Ω Z0 29.8 Ω
Coupling −11.8 dB Coupling −15.6 dB
Inductance per Unit Length (L/UL) 10.44 pH/mil Inductance per Unit Length (L/UL) 4.76 pH/mil
Capacitance per Unit Length (C/UL) 2.44 fF/mil Capacitance per Unit Length (C/UL) 5.36 fF/mil
ZDIFF = 2 × ZODD 100.4 Ω ZDIFF = 2 × ZODD 50.4 Ω
ZCM = ZEVEN ÷ 2 42.6 Ω ZCM = ZEVEN ÷ 2 17.6 Ω
Example 2: Microstrip Line System, Receiver and Example 4: Microstrip Line System, Receiver and
JESD204B Traces, ZDIFF = 100 Ω JESD204B Traces, Typical Production PCB, ZDIFF = 100 Ω
From a line impedance perspective, this is a good system for This line design represents a typical production circuit board
both the receiver system and JESD204B system (see Table 180). scenario (see Table 182). The low stackup height represents a
However, the lines are weakly coupled. Exercise care during the challenge to generating a ZDIFF of 100 Ω. Generally, this is an
board layout phase to reduce EMI risk. adequate line for the receiver and JESD204B systems; however,
exercise care during board layout to minimize the line to ball
Another advantage of Example 2 over Example 1 is that the line pad discontinuities and potential EMI risk.
width is closer to the board ball diameter of 17.7 mil thereby
reducing discontinuities between the line and pad structures. Table 182. Example 4 Microstrip Parametric Calculated Results
Parameter Value
Table 180. Example 2 Microstrip Parametric Calculated Results
εr (Rogers 4003C) 3.55
Parameter Value
Dissipation Loss Tangent (TanD) 0.0021
εr (Rogers 4003C) 3.55 Height 8.0 mil
Dissipation Loss Tangent (TanD) 0.0021 Width 34.0 mil
Height 8.0 mil Spacing 4.0 mil
Width 15.0 mil ZEVEN 35.2 Ω
Spacing 30.0 mil ZODD 25.2 Ω
ZEVEN 54.3 Ω Z0 29.8 Ω
ZODD 50.2 Ω Coupling −15.6 dB
Z0 52.2 Ω Inductance per Unit Length (L/UL) 4.76 pH/mil
Coupling −27.9 dB Capacitance per Unit Length (C/UL) 5.36 fF/mil
Inductance per Unit Length (L/UL) 8.33 pH/mil ZDIFF = 2 × ZODD 50.4 Ω
Capacitance per Unit Length (C/UL) 3.06 fF/mil ZCM = ZEVEN ÷ 2 17.6 Ω
ZDIFF = 2 × ZODD 100.4 Ω
ZCM = ZEVEN ÷ 2 27.2 Ω
OPTIONAL AC DIFFERENTIAL
COUPLING PI NETWORK
CAPACITOR
BALUN
SINGLE-ENDED
PI NETWORK
14652-162
SINGLE-ENDED
PI NETWORK
OPTIONAL
AC COUPLING
CAPACITOR
BALUN
DIFFERENTIAL
PI NETWORK
DC POWER
DISTRIBUTION
14652-163
14652-165
optimal RF performance levels. When designing the dc bias
network, select components with low dc resistance (RDCR) to
Figure 165. ADRV9371-N/PCBZ DC Bias Configuration for the Transmitter
minimize the voltage drop across the series parasitic resistance Output Using a Center Tapped Transformer
element with either of the dc bias schemes suggested in
Figure 164 and Figure 165. The resistors (RDCR) indicate the The recommended dc bias network is the one using the center
parasitic elements. As the impedance of the parasitics increase, tap balun shown in Figure 165. This network has fewer
the voltage drop (ΔV) across the parasitic element increases parasitics and fewer total components.
which causes the transmitter RF performance to degrade. The The ADRV9371-N/PCBZ evaluation board provides flexibility
choke inductance (LC) must be selected high enough relative to to configure each Tx output to either work with a center tapped
the load impedance such that it does not degrade the output transformer (balun) or a set of two closely matched wire wounded
power. If chokes are used, they must be very well matched chokes. The center tapped transformer passes the bias voltage
(including PCB traces). Uneven matching of chokes design can directly to the transmitter outputs through each differential
cause unwanted emission of spikes at the Tx output. This input. This configuration offers the lowest component count.
emission can affect components connected to the Tx output.
In some cases, the desired balun does not provide a dc
VDC = 1.8V connection to the transmitter output lines. To support this
situation, the ADRV9371-N/PCBZ evaluation board provides
the placeholders for RF chokes tied to the VDDA_1P8 (1.8 V)
CB LC LC supply. It also provides the placeholders for ac coupling capacitors
to prevent creating a dc short through the balun to ground.
RDCR + + RDCR
Impedance matching networks on the balun single-ended port
∆V ∆V are usually required to achieve optimum performance. In
Tx1_OUTP/Tx2_OUTP – –
addition, ac coupling is often required on the single-ended side
IBIAS = ~100mA if the balun contains a dc path from one of the differential
VBIAS = 1.8 – ∆V
Tx1 OR Tx2 outputs transmitter to the single-ended port.
OUTPUT STAGE
VBIAS = 1.8 – ∆V Careful planning is required for the Tx balun selection. If a Tx
Tx1_OUTN/Tx2_OUTN IBIAS = ~100mA
balun is selected that requires a set of external dc bias chokes, it
is necessary to find the optimum compromise between the
choke physical size, choke dc resistance (RDCR), and the balun
14652-164
1.8V SUPPLY
14652-166
Figure 166. 1.8 V Tx Power Supply Routing on the ADRV9371-N/PCBZ Evaluation Board
1.8V
RESERVOIR
CAPACITORS
14652-167
BALUN OPTIONAL RF CHOKE DECOUPLING CAPACITOR
(NEEDED FOR BALUNS (ORIENTATION IS IMPORTANT)
WITH ONLY ONE DC FEED)
Figure 167. Transmitter Power Supply for a Balun with a Center Tap
DECOUPLING
CAPACITORS
1.8V TRACE
CONNECTION FROM
THE PLANE
SERIES MATCHING
COMPONENTS
BALUN
SINGLE-ENDED
SERIES BLOCKING
ELEMENT
14652-168
Figure 168. Transmitter Power Supply Using RF Chokes
DC Balun Chokes
When a Tx balun that is able to conduct dc is used, use the The ADRV9371-N/PCBZ evaluation board provides flexibility
system shown in Figure 167. Place the decoupling capacitor to use a Tx balun that is not capable of conducting dc current.
near the Tx balun as close as possible to the dc feed pin of the In such a scenario, the user must install dc chokes as well as
balun. Its orientation must be perpendicular to the device so their decoupling capacitors as highlighted in Figure 168. Care
that the return current avoids a ground loop with the ground must be taken to match both chokes to avoid potential current
pins surrounding the Tx input. The evaluation board provides spikes. Differences in parameters between both chokes can
an option to install an RF isolation inductor, which can provide cause unwanted emission at Tx outputs. Note that, if the
extra isolation between the Tx1 and Tx2 balun supply feeds. A differential input to the balun can form a dc short to ground
10 μF capacitor and a 0.1 μF capacitor are helpful on the dc feed through the balun, the series matching components must be
pin to eliminate Tx spectrum spurs and dampen the transients. capacitors. If a short can form on the single-ended side, the
Note that when this supply approach is used, the series matching single-end series blocking element must be a capacitor.
components must be dc shorts. It is recommended to use 0 Ω if an
inductor is not needed to match the balun impedance to the Tx
output impedance.
Tx Tx
DIFF A DIFF B Tx DIFF A Tx DIFF B
14652-169
SLOTS
TX1 RF PATH
RX2 RF PATH
TX2 RF PATH
14652-170
Figure 170. Isolation Structures on the ADRV9371-N/PCBZ Evaluation Board
14652-171
Figure 171. Current Steering Vias Placed Near Isolation Slots and Apertures
2.16mm
2.16mm
14652-172
Figure 172. Via Fencing Shield Around JESD204B Lines (Layer 10 of the ADRV9371-N/PCBZ Shown)
Table 185. Power Supply Layout Recommendations (N/A Means Not Applicable)
Maximum
Voltage Current
Pin Name Pin No. Type (V) (mA)1 Recommended Routing/Notes Description
Tx Balun or RF N/A Analog 1.8 240 1.8 V plane, separate trace to common 1.8 V supply for Tx1
Choke DC Feed supply point.
Tx Balun or RF N/A Analog 1.8 240 1.8 V plane, separate trace to common 1.8 V supply for Tx2
Choke DC Feed supply point.
VDDA_3P3 B14 Analog 3.3 200 To 3.3 V supply (routing typically not critical). GPIO 3.3 V, auxiliary
DAC, auxiliary ADC, RF
bias, supply voltage
VDD_IF M12 Analog 1.8 to 2.5 60 CMOS/LVDS interface supply (routing Interface pull-up
typically not critical). voltage (1.8 V to 2.5 V)
VDDA_1P8 D10 Analog 1.8 20 1.8 V plane, separate trace to common 1.8 V supply for Tx
supply point.
Rev. B | Page 277 of 360
UG-992 AD9371/AD9375 System Development User Guide
Maximum
Voltage Current
Pin Name Pin No. Type (V) (mA)1 Recommended Routing/Notes Description
VDIG L8, L9 Digital 1.3 1700 1.3 V separate supply domain. Use thick 1.3 V digital core high
trace to separate power domain. Use current
reservoir capacitors close to the chip.
VDDA_RXRF B1 Analog 1.3 20 Separate trace (using 0 Ω resistor) to 1.3 V Sniffer front end only
analog power plane. Use reservoir
capacitors close to the chip.
VDDA_RXTX F2 Analog 1.3 560 Separate trace (using 0 Ω resistor) to1.3 V 1.3 V supply for Tx/ORx
analog power plane. Use reservoir baseband circuits, TIA/
capacitors close to the chip. Tx GM/baseband filters
VDDA_BB E5 Analog 1.3 670 Separate trace (using 0 Ω resistor) to1.3.V Rx ADC, ORx ADC, Tx
analog power plane. Use reservoir DAC, auxiliary ADC,
capacitors close to the chip. REF_CLK
VDDA_RXLO C6 Analog 1.3 270 1.3 V separate trace (using FB) to common 1.3 V LO generator for Rx
supply point. Very sensitive to aggressors. synthesizer, external LO
VDDA_TXLO F12 Analog 1.3 400 1.3 V separate trace (using FB) to common 1.3 V LO generator for
supply point. Very sensitive to aggressors. Tx synthesizer, buffers,
external LO
VDDA_CALLPLL G4 Analog 1.3 230 1.3 V separate trace (using FB) to common 1.3 V LO generator for
supply point. Very sensitive to aggressors. calibration PLL
synthesizer
VDDA_RXSYNTH G9 Analog 1.3 12 1.3 V separate trace (using FB) to common Rx synthesizer supply
supply point. Very sensitive to aggressors.
VDDA_TXSYNTH G8 Analog 1.3 12 1.3 V separate trace (using FB) to common Tx synthesizer supply
supply point. Very sensitive to aggressors.
VDDA_SNRXSYNTH G7 Analog 1.3 12 1.3 V separate trace (using FB) to common ORx synthesizer supply
supply point. Very sensitive to aggressors.
VDDA_CLKSYNTH G6 Analog 1.3 12 1.3 V separate trace (using FB) to common Clock synthesizer
supply point. Very sensitive to aggressors. supply
VDDA_SNRXVCO C4 Analog 1.3 340 1.3 V separate trace (using FB) to common SnRx PLL LDO, LO,
supply point. Very sensitive to aggressors. buffers
VDDA_CLK N1 Analog 1.3 270 1.3 V separate trace (using FB) to common Clock LDO
supply point. Very sensitive to aggressors.
VRX_VCO_LDO C8 Analog 1.1 N/A 1 µF bypass close to chip. 1.1 V VCO supply,
decouple with 1 µF
VTX_VCO_LDO F13 Analog 1.1 N/A 1 µF bypass close to chip. 1.1 V VCO supply,
decouple with 1 µF
VSNRX_VCO_LDO C3 Analog 1.1 N/A 1 µF bypass close to chip. 1.1 V VCO supply,
decouple with 1 µF
VCLK_VCO_LDO M1 Analog 1.1 N/A 1 µF bypass close to chip. 1.1 V VCO supply,
decouple with 1 µF
VDDA_RXVCO C7 Analog 1.3 85 1.3 V separate trace (using FB) to common Rx PLL LDO
supply point. Very sensitive to aggressors.
VDDA_TXVCO F11 Analog 1.3 85 1.3 V separate trace (using FB) to common Tx PLL LDO
supply point. Very sensitive to aggressors.
VDDA_SER N8 Analog 1.2 to 1.3 120 Connect to P8, P9 and to 1.3 V. Use separate JESD204B VTT signal
trace (using FB) to common supply point. for serializer
Use reservoir capacitors close to the chip.
VDDA_SER P8 Analog 1.2 to 1.3 120 Connect to N8, P9 and to 1.3 V. Use separate JESD204B VTT signal
trace (using FB) to common supply point. for serializer
Use reservoir capacitors close to the chip.
JESD_VTT_DES P9 Analog 1.2 to 1.3 60 Connect to N8, P8 and to 1.3 V. Use separate JESD204B VTT signal
trace (using FB) to common supply point. for deserializer
Use reservoir capacitors close to the chip.
VDDA_DES N9 Analog 1.3 240 1.3 V separate trace (using FB) to common 1.3 V supply for
supply point. Use reservoir capacitors close JESD204B deserializer
to the chip.
1
Maximum current is used for sizing voltage regulators not for calculating power consumption, which is heavily dependent on operating conditions.
Rev. B | Page 278 of 360
AD9371/AD9375 System Development User Guide UG-992
ADRV9371-N/PCBZ EVALUATION BOARD POWER The power trace connections to the device shown in Figure 173
SUPPLY BLOCK DIAGRAM are made using four different devices:
The diagram in Figure 173 outlines the power supply High current ferrite beads (FB1)
configuration used on the ADRV9371-N/PCBZ evaluation Medium current ferrite beads with better RF rejection (FB2)
board. This configuration follows recommendations outlined in Low current ferrite beads with high dc resistance, best RF
Table 185. The ADRV9371-N/PCBZ evaluation board supports rejection (FB3)
the recommended power-up sequence. The open drain 0 Ω resistors
input/output (I/O)[1], open drain I/O[2], and open drain
I/O[3] signals allow the user to implement external control over The use of each 0 Ω resistor accomplishes two goals:
power-up and power-down sequencing as described in the It serves as a placeholder for a ferrite bead in cases where
Power Supply Sequence section. the user encounters noise problems and more isolation is
The ADP5054 contains four switch mode, step down regulators. required. For more details regarding ferrite bead selection,
Each of those regulators produces a different power domain refer to the RF and Clock Synthesizer Supplies section.
that supplies power to the device. Power signals to the device It ensures that the layout engineer follows the power
are further isolates using high current ferrite beads. The device routing advice outlined in the Signals with Second Routing
uses sense line to monitor the voltage output after the ferrite Priority section. Resistor placeholders in series force the
bead. This approach ensures that the voltage drop resulting use of separate traces to deliver different power domains to
from the FB resistance is taken into account, and that the the device.
voltage level delivered is in line with expected accuracy. For more details on exact power supply implementation, refer
to the schematic of the ADRV9371-N/PCBZ evaluation board.
6.0V ~ 15V
VREG CONNECT
55kΩ ADP5054 HF BYPASS TO AD9371
OPEN-DRAIN I/O[2] ALL INPUT PINS
PWRGD 1.3V FB1
14kΩ VDDA_BB
CH1 150µF 47µF 2 × 100µF
6A BUCK VDDA_RXRF
EN SENSE VDDA_RXTX
2mm × 2mm
DUAL-FETs VDDA_DES/JESD_VTT_DES
VREG
CH2 FB1 VDDA_SER
ADP5054_EN/ 1.3V 100µF 47µF
100kΩ 6A BUCK VDDA_CALPLL
OPEN-DRAIN I/O[1]
EN SENSE
VDDA_CLK
VDDA_RXLO
3.3V
FB1 VDDA_RXVCO
CH3
2.5A BUCK 100µF 47µF VDDA_SNRXVCO
EN SENSE VDDA_TXVCO
VDDA_TXLO
1.8V
CH4 FB1 VDDA_CLKSYNTH
43.5kΩ 2.5A BUCK 47µF
OPEN-DRAIN I/O[3] VDDA_RXSYNTH
EN SENSE
VDDA_SNRXSYNTH
100kΩ
VDDA_TXSYNTH
2×
VDIG
VDDA_1P8
FMC CONNECTOR
0Ω VDD_IF
VDDA_3P3
INTERFACE VOLTAGE 2.5V
FMCA VADJ
47µF AD9528/VCXO
FB2 3P3V_CLK
WIDE TRACE/SHAPE FB2 3P3V_VCO
14652-173
TRACE
NARROW TRACE (SENSE LINES)
Figure 173. Power Supply Connection Block Diagram of ADRV9371-N/PCBZ Evaluation Card
SW9: SHUTDOWN
14652-301
Figure 174. Xilinx EK-Z7-ZC706 ZYNQ Motherboard with Jumper Settings and Switch Position Configured to Work with the Device Evaluation Board
ORx2
Rx2
Rx1
PC RUNNING
EVALUATION SOFTWARE
ORx1 SIGNAL ANALYZER
Tx1
14652-302
SWITCHING 12V DC
POWER SUPPLY
Figure 175. Evaluation Board and Xilinx EK-Z7-ZC706 ZYNQ Motherboard with Connections Required for Channel 1 Transmit and Receive Testing
Do the following to set up the evaluation board for testing: 5. Connect a 12 V, 5 A power supply to the ZYNQ evaluation
1. Connect the evaluation board and the ZYNQ evaluation platform at the J22 header.
platform together, as shown in Figure 175. Use the HPC 6. Connect the ZYNQ evaluation platform to the PC with an
FMC connector (J37). Ensure proper alignment of the Ethernet cable (connect to P3). No driver installation is
connectors. required. Note the following:
2. Ensure that all jumpers on the ZYNQ motherboard, as well a. In cases where the Ethernet port is already occupied
as the SW11 position, match the settings shown in Figure 174 by another connection, use a USB to Ethernet adapter.
(1, 2, 5 = Position A). b. With an Ethernet connection dedicated to the ZYNQ
3. Insert the for use with the Windows-based transceiver platform, manually set the IPv4 address to 192.168.1.2
evaluation software (TES) SD card that came with the and set the IPv4 subnet mask to 255.255.255. See the
device evaluation kit into the ZYNQ SD card slot (J30). Instructions to Set the IPv4 Addresses section and
4. Provide a 30.72 MHz clock source (or frequency that Figure 176 to Figure 178 for instructions on setting
matches the setting selected on the AD9528 configuration the IPv4 addresses.
(Config) tab, see Figure 202), at a 5 dBm power level to the 7. Ensure that the following ports on the PC are not blocked
J401 connector on the daughter card. This signal drives the by firewall software:
reference clock into the AD9528 clock generation chip on 22: SSH protocol
the daughter card. Note that the REFA/REFA pins of 55555: access to the evaluation software on the ZYNQ
AD9528 generate the DEV_CLK signal for the device and platform
the REF_CLK signal for the field programmable gate array
(FPGA) on the ZYNQ platform. Note that the ZYNQ IP address is set by default to: 192.168.1.10.
14652-304
Figure 177. Select Internet Protocol Version 4 (TCP/IPv4)
14652-305
14652-307
shown in Figure 184).
Figure 180. Demonstration Operation of External Tx LOL Calibration on the
Device Evaluation System
(PA), either split or couple the signal after the PA and then
connect it to the corresponding ORx channel through an
Figure 179. Tx LOL Calibration Options appropriate attenuator. Do not exceed –16 dBm maximum
When user selects Internal Tx LOL, external hardware is not signal level at the ORx input. Calculate the amount of attenuation
necessary. Note that, in this case, there is no Tx LOL tracking required based on the power level after the PA and RF coupler
calibration available. (see Figure 181).
POWER AMPLIFIER COUPLER
When the user selects External Tx LOL in the Initial Calibration
list and External Tx LOL in the Tracking Calibration list as
Tx2
shown in Figure 179, external components must be connected
ATTENUATOR
to the evaluation platform for proper operation. Figure 180 ORx2
shows the proper configuration to demonstrate performance of
the Tx LOL calibration algorithm. ATTENUATOR
ORx1
Tx1
14652-308
Figure 181. End User Application of External Tx LOL Calibration Using the
Device Evaluation System
14652-310
Figure 182 shows the recommended configuration for
installation.
Figure 183. TES Interface
14652-311
Figure 184. Transceiver Evaluation Software (TES) Project Setup Page
14652-702
14652-313
14652-314
14652-315
14652-318
behavior of the GPIO interface (powered from the
VDD_INTERFACE power domain). Figure 189. Rx MCG Pin control Box (Circle Highlight for Emphasis Only)
Use the GPIO Config tab, to do the following: The user can select increment or decrement gain steps as
Monitor the status of the GPIO pins using the GPIO well as assign particular GPIO pins to perform selected
ACTIVE controls. When modifying GPIO settings, click actions. Figure 190 shows a GPIO receive configuration
the Check GPIO button to check the new settings, and example.
click the Program GPIO to program these settings to the
transceiver (see Figure 190 and Figure 191).
14652-316
Figure 190. GPIO Tab Setup: Rx MGC, Tx TPC, and ARM GPIO Settings
14652-317
Figure 191. GPIO Tab Setup, Input/Output Manual Control and Monitor Output Mode
Check the Tx TPC Pin control box (see Figure 190 and The user can select attenuation step size as well as assign
Figure 192) to select the GPIO pins used by Tx transmit particular GPIO pins to perform selected actions. Figure 190
power control mode. shows a GPIO transmit configuration example.
Check the ARM GPIO settings box (see Figure 190 and
Figure 193) to selecting the GPIO pins assigned to interface
14652-319
14652-320
Set output Pin Level when Output Enable are set as
outputs (High or Low) section (see Figure 191). Click
Figure 193. ARM GPIO Checkbox (Circle Highlight for Emphasis Only)
either once (for high) or twice (for low) on its respective
The user can select GPIO pin or SPI interface mode to numbered icon to set the desired logic level of each GPIO
control the on-board ARM mode operation. Figure 190 pin. To apply the logic selections, click Write Outputs (see
shows a GPIO ARM configuration example. Figure 197).
Check the GPIO Monitor selection box (see Figure 191)
to select the GPIO pins used by the internal monitoring
block. Press the Ctrl key while clicking in the cells within
14652-324
the shown table to select the various options for selecting
the desired signals (see Figure 194). Note that only cells
from a single row can be selected at one time. The user can Figure 197. Setting Logic Level of GPIO Pins
select from a single row the entire set of monitoring output
Read the logic level for the GPIO input only pins in the Pin
signals or a subset of them. Figure 191 shows a GPIO
Level when Output Enable are set as inputs section. Click
monitor configuration example where all signals from the
Read Inputs to populate the logic levels for the inputs,
Index 1 row are selected. The Search function helps the
high (Hi), low (Lo), or off (OFF) (see Figure 198).
user navigate in the control output signals table.
14652-325
14652-321
Figure 194. Index 1, GPIO Monitor Selection Table Figure 191 shows a configuration example with GPIO Pin 8
to GPIO Pin 11 set to operate as outputs and GPIO Pin 12 to
Selecting the GPIO pins used by the GPIO operating in
GPIO Pin 15 set to operate as inputs. GPIO Pin 8 and GPIO
manual input/output mode are enabled by Check the
Pin 10 are set to logic high. GPIO Pin 9 and GPIO Pin 11 are set
GPIO input/Output Pin Level box (see Figure 191 and
to logic low. GPIO Pin 12, GPIO Pin 13, and GPIO Pin 15 read
Figure 195).
back logic low, and GPIO Pin 14 reads back logic high.
14652-322
Figure 195. GPIO input/Output Pin Level Box Location (Yellow Circle for
Emphasis)
14652-327
Within the 3v3 GPIO tab, users can perform the following:
Figure 199. Setting Logic Levels for the 3.3 V GPIO Pins
Click the GPIO numbered boxes in the Output Enables
(Outputs or Inputs) section (see Figure 200) to select which Read the logic level for the 3.3 V GPIO input only pins in
3.3 V GPIO pin is used in manual mode. Click once on a the Pin Level when Output Enable are set as inputs
numbered box to set the 3.3 V GPIO pin to operate as an section. Click Read Inputs to populate the logic levels for
output, click twice to set it to operate as an input, and click the inputs, high (Hi), low (Lo), or off (OFF).
it a third time to disable manual mode for that 3.3 V GPIO
Figure 200 shows a configuration example with 3.3 V GPIO
pin. For example, in Figure 200, click once in the 0 box to set
Pin 0 to Pin 3, Pin 8, and Pin 9 set to operate as outputs, and
the 3.3 V GPIO 0 pin as an output.
3.3 V GPIO Pin 4 to Pin 7 set to operate as inputs. The 3.3 V
GPIO Pin 0, Pin 1, and Pin 8 are set to logic high, and the 3.3 V
GPIO Pin 2, Pin 3, and Pin 9 are set to logic low. The 3.3 V GPIO
Pin 4 to Pin 7 read back logic high.
14652-326
14652-328
Figure 201. Rx Summary Tab
14652-329
5-BIT DIVIDER
N2 = 1, 2, 3, .., 256
14652-330
Figure 203. AD9528 PLL2 Block Diagram
Note that the VCO can operate with a frequency range from (122.88 MHz × 3 × 31)/3 = 3809.28 MHz (49)
3450 MHz to 4025 MHz. 3809.28 MHz/(3 × 10) = 126.976 MHz ≠ 125 MHz (50)
DEVCLK Frequency = VCXO Frequency/(M × Example 4: This example uses a VCXO of 125 MHz rather than
Channel Division) (42) the 128.88 MHz used in the previous equations to achieve a
DEV_CLK of 125 MHz. By modifying the hardware to use a
AD9528 Operation Examples
VCXO of 125 MHz, a 125 MHz DEV_CLK can now be selected.
The AD9528 can only generate different DEV_CLK frequencies
(125 MHz × 3 × 30)/3 = 3750 MHz (51)
from the VCXO frequency when the ratio of the two frequencies is
a rational fraction. If the result of the DEV_CLK division and 3750 MHz/(3 × 8) = 125 MHz (52)
VCXO frequency does not create a rational fraction, the Example 5: This example returns to using a VCXO of 122.88
AD9528 cannot precisely generate the desired DEV_CLK. MHz and targets a DEV_CLK of 266.66 MHz.
The following are some examples of how DEV_CLK is calculated (122.88 MHz × 3 × 32)/3 = 3932.16 MHz (53)
based on an on-board VCXO with a frequency of 122.88 MHz.
3932.16 MHz/(3 × 5) = 262.144 MHz ≠ 266 MHz (54)
Example 1: This example targets a DEV_CLK of 245.76 MHz.
Equation 53 and Equation 54 demonstrate that a DEV_CLK of
Plugging in values to Equation 41 produces Equation 43 and,
266.66 MHz cannot be generated using the on-board VCXO.
likewise, using Equation 42 generates the results shown in
Equation 44.
(122.88 MHz × 3 × 30)/3 = 3686.4 MHz (43)
3686.4 MHz/(3 × 5) = 245.76 MHz (44)
Therefore, Equation 43 and Equation 44 demonstrate that a
DEV_CLK = 245.76 MHz can generate using the on-board VCXO.
6 Y402
4 Y403
POS_VS
VCON 1 4 OUT VDD
VCNTRL OUTPUT VCON 1 3 OUT
TRI_STATE 2 CONTROL OUT
ENABLE_DISABLE
GND
GND NC
2
3 5 122.88MHz
122.88MHz
AGND
COMP_OUT
14652-331
AGND
14652-332
14652-702
14652-335
Window.
Figure 208. TES Device Dropdown Menu
14652-337
the Software Update section for more details.
Reboot Zynq Platform is for when a soft restart of the Figure 210. TES Log Window
evaluation system is needed.
Shutdown Zynq Platform is for powering down the Exit opens the Shutdown window (see Figure 211) where
evaluation system. The user must use this option or power the following options are available:
down the system by closing the TES application and by Switch Zynq Off powers down the entire system and
selecting Switch Zynq Off to correctly execute the power- closes TES.
down sequence. If this process is not followed, the file Close GUI Only closes only the TES software, and the
system on the SD card can be corrupted, and the evaluation ZYNQ system remains active
system may stop operating. Cancel closes the Shutdown window.
14652-339
user_name.c Contains all initialization values
for the structures members
Figure 212. Transceiver Evaluation Software (TES) Tools Dropdown Menu
used by APIs.
This menu allows selection of the following options: user_name.h Header file for user_name.c.
Options allows the user to configure a path to the user_name_ad9528init.c Contains all initialization values
for the structures used by the
Iron Python library folder (see Figure 213). This setting
AD9528 (clock IC) APIs
is automatically populated with the path set during the
Memory Dump Provides users with the ability
installation process. to store register values from
the internal ARM processor, the
register map, and the ZYNQ
field programmable gate array
(FPGA) register map. When the
user clicks Memory Dump, the
user must enter a file name for
the file and select a location
where those files are to be
stored. The TES then reads
internal register values and
stores them in three separate
files: user_name.bin,
14652-340
user_name_MykonosReg.txt,
and user_name_FpgaReg.txt
Figure 213. TES Options Window user_name_bin For internal ARM processor
dump.
Create Script allows the storing of the initialization script.
user_name_ For register dump.
The TES allows the creation of a script in the following MykonosReg.txt
forms: user_name_FpgaReg.txt For ZYNQ FPGA register dump.
Python. When this function executes, the user is
asked for the script file name and place where it can be
stored. TES generates the new_name.py file with all
API initialization calls in the form of IronPython
functions. This file can then execute using the Iron
Python Script tab shown in Figure 226.
C Script. This action opens the Save as window,
requires the user to name the file and specify its
location for storage. Based on configuration settings
outlined in the Configuring the AD9371 section, the
TES sets up structure members values that are then
used by application programming interface (API)
commands. The TES allows the user to create a *.c file
that contains all initial values. This file can be imported
into the system of the user that utilizes APIs. The TES
generates five separate files the include headless.c,
headless.h, user_name.c, user_name.h, and
user_name_ad9528init.c (see Table 188).
14652-343
API Help File opens the Mykonos Device API file in
Windows help format (*.chm). Refer to the software detail
Figure 215. TES Status Bar
maual that comes with the software when looking for
detailed information about the API commands. The status bar information can be interpreted as follows:
DLL Help File opens ADI ZC706 TCPIP Client DLL file Zynq Platform: connected or disconnected.
in Windows help format (*.chm). Refer to this document Connected. PC established connection with the
when looking for detailed information about functions to ZYNQ evaluation system,
control the device that use the Xilinx ZC706 FPGA Disconnected. No connection between PC and the
platform. ZYNQ evaluation system.
About opens an information window about the transceiver Radio: on or off.
evaluation software (TES) and delay-locked loop (DLL)
On. The device is enabled and ready to transmit/receive.
versions installed on the PC as well as for the software and
Off. The device must be initialized and moved into
firmware versions installed on the ZYNQ SD card. It also
the radio on state before data can be transmitted or
displays information about the internal ARM firmware
received.
version of the device (see Figure 214).
Tracking: TxQEC, TxLOL, or RxQEC.
TxQEC, TxLOL, RxQEC. Those controls display the status
of the tracking calibrations used by the device.
Green control indicates calibration is enabled and
active.
Red control indicates calibration is enabled but not
active.
Grey control indicates calibration is disabled (using
the calibration tab described in the Calibration Tab
section of this user guide).
Programmed Successfully indicates the progress when
programming the evaluation system (see Figure 216).
14652-703
14652-345
Additional settings in the Receive Data tab include the following: When clicking the play symbol in the ObsRx Sniffer Data tab,
the device moves to the receive state and graphs the output data.
• # Samples: the number of points saved to the file is
An example of a captured waveform is shown in Figure 219.
determined by the number of samples selected in this box
(see Figure 218).
• Rx Init Cals: click Rx Init Cals to rerun initial Rx calibrations.
When calibrations execute, the button changes its appearance
to running. Do not apply an input signal to the Rx input
when performing an initialization calibration.
14652-346
Figure 219. Observation Rx Receive Tab
The upper plot displays the fast Fourier transform (FFT) result When a file type chosen, the following happens within the file
and the lower plot shows the time domain waveform. The user chosen:
can select if only I or only Q data is displayed. The time domain
Agilent Data. The TES adds a header to the saved file that
waveform display supports a zoom function by selecting the
Agilent VSA software can read and use to demodulate the
region of the time plot to zoom in to. Right-click the Time
data. The header is followed by data stored in I <TAB> Q
Domain window and selectUndo All Zoom/Pan to return the
[new_line] format.
time domain plot to its original scale.
No Header (Tab delimited). Saves data as a text file where
If the FFT analysis is selected (multicolored pie chart symbol), I data is separated by <TAB> from Q data. Each data
basic analysis information from the FFT displays on the left side record is finished with [new_line] character. There is no
of the screen. header information in stored this file format.
Click the floppy disk icon to save the data received by the No Header (Comma delimited). Saves data as a text file
observation receive (ObsRx) channel. By selecting this window, where I data is separated by comma [,] from Q data. Each
users can select the format for the exported data. data line is finished with [new_line] character. There is no
header information stored in this file format.
# Samples. The number of points saved to the file is
determined by the number of samples selected in the
# Samples box.
14652-347
14652-348
oscillator leakage (LOL) tracking calibration. Calibration
Figure 221. Tx ToneParameters Setup Menu
improves the LOL performance on the Tx1 channel. Check
the Tx2 LOL Tracking box to perform the same operation
Within Tone Parameters, the user can select the number on the Tx2 channel. To perform Tx LOL tracking calibrations,
of tones (1 or 2) for transmission on the selected Tx output. external circuitry is required to route the Tx signals back
The user has control over the tone frequency offset with through an ORx receiver input. For more details, see the
respect to the local oscillator (LO) frequency as well as Hardware Setup for External Tx LO Leakage Calibration
tone amplitude in dBFS. Select Save Tx Raw Data into a section. Note that for external Tx LOL tracking calibration,
File to store those signals in the form of text files. Before both transmitters must loop back to both observation
data can populate into those files, Play must be clicked. receivers through splitters and attenuators.
To select user generated data files, use the Load Tx1 and Check the Tx1 QEC Tracking box to enable a Tx quadrature
Load Tx2 buttons as follows: error correction (QEC) tracking calibration on the Tx1
Format these files as: I sample <tab> Q sample channel. Calibration improves the QEC performance.
<new_line> per line. Each I or Q sample must be in a Check the Tx2 QEC Tracking box to perform the same
range between +32768 and −32767. operation on the Tx2 channel.
If values of I and Q samples are smaller, check the Note that Tx1/Tx2 LOL and QEC tracking calibrations
Scaling Required box in the Load file menu to scale can only operate when the observational receive path is
the values up to numbers in the correct range. configured for use by internal calibrations. When the user
File size is limited to 4 megasamples for each channel enables Tx outputs, the TES automatically reconfigures the
(I data = 4 megasamples maximum, and Q data = observational receive path to the internal calibration mode.
4 megasamples maximum). The ZYNQ platform, The user can change the observational receive path at any
allocates 134,217,728 MB for each buffer. Rx1, Rx2, time using the ObsRx Sniffer Data tab.
ORx, Tx1, and Tx2 have separate buffers. Each datapath Click Tx Init Cals to run Tx initialization QEC and LO
uses four bytes (16-bit for I sample and 16-bit for Q leakage calibrations. Run these calculations first before
sample); each datapath has 33,554,432, 16-bit I/Q pairs transmitting real data. Terminate both Tx paths into
dedicated for sample collection. At a 122.88 MSPS I/Q spectrum analyzers unless only one Tx is monitored; in
data rate, this translates to 273 ms of capture time for that case, terminate the unused Tx into a 50 Ω termination
each channel. to avoid extended initial calibration times. Longer initial
calibration times occur when they are running on both
channels, and when a Tx channel is improperly terminated.
Table 189. Uplink and Downlink Configurations (Source: Table 4.2-2; 3GPP TS 36.211, Version 10.0.0, Release 10)
Subframe Number
Uplink and Downlink Configuration Downlink to Uplink Switchpoint Timing (ms) 0 1 2 3 4 5 6 7 8 9
0 5 D S U U U D S U U U
1 5 D S U U D D S U U D
2 5 D S U D D D S U D D
3 10 D S U U U D D D D D
4 10 D S U U D D D D D D
5 10 D S U D D D D D D D
6 5 D S U U U D S U U D
DL = DOWNLINK SUBFRAME
UL = UPLINK SUBFRAME
1 FRAME = 10ms SS = SPECIAL SWITCHING SUBFRAME
1 SUBFRAME = 1ms
0 DL SS UL UL UL DL SS UL UL UL
1 DL SS UL UL DL DL SS UL UL DL
2 DL SS UL DL DL DL SS UL DL DL
3 DL SS UL UL UL DL DL DL DL DL
4 DL SS UL UL DL DL DL DL DL DL
5 DL SS UL DL DL DL DL DL DL DL
14652-349
6 DL SS UL UL UL DL SS UL UL DL
Figure 222. Graphical Representation of Uplink and Downlink Configurations in the TDD Frame
OVERLAP
14652-350
RX_ENABLE
14652-351
STOP TIME
SECOND FIRST
Use the minimum duration of 800 μs for the internal calibration
START TIME START TIME
window.
Figure 225. Naming Convention Used for TDD Start/Stop Description in the TES
The Second Internal Calibration Timing[μs] field determines
The First Tx2 Time[μs] field determines the beginning and the beginning and end of the second internal calibration
end of the first Tx2 subframes (or group of subframes). window. Use the minimum duration of 800 μs for the
If more than one Tx1 subframe (or group of subframes) is internal calibration window.
used, the Second Tx1 Time[μs] field determines the
The Misc section of the TDD parameters allows control of the
beginning and end of the second Tx1 subframes (or group of
following fields (see Figure 224):
subframes).
If more than one Tx2 subframe (or group of subframes) is The Tx path delay (+/-μs) field allows the user to delay data
used, the Second Tx2 Time[μs] field determines the beginning sent to the Tx path over the JESD204B interface in reference
and end of the second Tx2 subframes (or group of subframes). to the TX_ENABLE signal.
The Rx path delay (+/-μs) field allows the user to delay data
The Receive Path section of the TDD parameters allows control received from the Rx path over the JESD204B interface in
of the following fields: reference to the RX_ENABLE signal.
The First Rx1 Time[μs] field determines the beginning and The Obs Rx Path Delay (+/-μs) field allows delaying of data
end of the first Rx1 subframes (or group of subframes). It received from the ORx path over the JESD204B interface in
follows the same convention as described in Figure 225. reference to the ORx_ENABLE signal.
The First Rx2 Time[μs] field determines the beginning and In TDD mode, the device evaluation hardware generates a
end of the first Rx2 subframes (or group of subframes). pulse on SMA Connector J67, located on the ZYNQ platform.
If more than one Rx1 subframe (or group of subframes) is The External Trigger J67(μs) parameter controls the
used, the Second Rx1 Time[μs] field determines the beginning position and the width of that pulse in reference to the start
and end of the second Rx1 subframes (or group of subframes). of the TDD frame.
If more than one Rx2 subframe (or group of subframes) is The Loop N Times option allows control of the number of
used, the Second Rx2 Time[μs] field determines the beginning loop repetitions. The allowable range is from 1 to 15, or the
and end of the second Rx2 subframes (or group of subframes). repetitions loop until stopped by the user.
The bottom part of the TDD/FDD Switching tab in the TES
provides a diagram of the timing parameters entered in the table
shown in Figure 224. This feature allows the user to visually check
activities on the Rx, Tx, and ORx datapaths.
The Iron Python Script tab allows the user to use IronPython to
write a unique sequence of events and then execute them using
the device evaluation system.
14652-353
14652-354
Figure 227. File Menu in the Iron Python Script Window
14652-355
Figure 228. Build Menu in the Iron Python Script Window
#Create an Instance of the Class LED Active, TES Reports That Hardware Not Connected
Link = AdiCommandServerClient.Instance At startup, if the LEDs are active but the TES reports that
The new class instance for device evaluation hardware is hardware is not connected, perform the following actions:
Link. 1. Check if the Ethernet cable is properly connected between
the PC used to run the TES and the ZYNQ platform. The
An example of an API function called using Iron Python is as
LEDs on the ZYNQ platform next to the Ethernet socket
follows. If checking the gain index for Rx1 signal chain use the
flash when the connection is active.
following API function:
2. If the cable is properly connected, check if Windows is able
MYKONOS_getRx1Gain() to communicate over the Ethernet port with the ZYNQ
The user calls the following Iron Python function (assuming that platform. Check if the IP number and open ports for the
the platform was initialized using example code described Ethernet connection used to communicate with the ZYNQ
previously): platform follow what is described in the Hardware Setup
print Link.Mykonos.getRx1Gain() section.
3. Run cmd.exe on the Window operating system and then
Troubleshooting
type ping 192.168.1.10. The user then sees a reply from the
This section provides a quick help guide if the system is not ZYNQ platform. If no reply is received, connection with the
operational. This guide assumes that the user followed all ZYNQ platform must be reexamined.
instructions and that the hardware configuration matches that 4. If connection with the ZYNQ platform is established but the
described in this user guide. TES still reports that hardware is not available, ensure that
Startup Port 22 (SSH) and Port 55555 (evaluation software) are not
No LED Activity blocked by firewall software on the Ethernet connection used
to communicate with the ZYNQ platform. Both ports must
If there is no LED activity at startup, perform the following actions: be open for normal operation. Refer to the Hardware Setup
1. Check if the board is powered properly (12 V must be section for more details.
present at the J22 input). After powering on the ZYNQ
Error Handling
platform (SW1 is turned on), the following is true:
a. The fan on the ZYNQ platform is activated. The TES provides the user with a number of error messages in
b. A number of green LEDs on the ZYNQ platform near case there are problems with hardware or software configuration.
SW1 are on with no red LEDs active on the ZYNQ The error messages the TES displays provide a description of the
platform. problem encountered by the software. If an error description
c. The ZYNQ GPIO LEDs follow the sequence described refers to the delayed-locked loop (DLL) command, refer to the
in the Hardware Operation section. API and DLL help files supplied with the TES.
DPD FEEDBACK
COUPLER
1, 2, 4 PA–1 Tx1 PA1 FILTER/DUPLEXER
MODEL
JESD204B
DPD FEEDBACK
COUPLER
1, 2, 4 PA–1 Tx2 PA2 FILTER/DUPLEXER
MODEL
ORx1
14652-704
Xt X Z–1
LUT 1
I2 + Q2
+
LUT 2
Z–1
COMPAND Yt
LUT + SATURATE
0
+
LUT 3
14652-705
JESDD Tx
Xt X Z–1
LUT 1
I2 + Q2
LUT 2 +
Z–1
COMPAND Yt
LUT + SATURATE
LUT 4
Z–1
+
LUT 3
14652-706
Yt = f1(|Xt|) Xt + f2(|Xt – 1|) Xt + f3(|Xt|) Xt – 1 + f4(|Xt – 1|) (Xt + Xt – 1)
{X = 1, 2, 4}
JESDD Tx
Xt X Z–1
LUT 1
I2 + Q2
LUT 2 +
Z–1
COMPAND Yt
LUT + SATURATE
LUT 4
Z–2
+
LUT 3
14652-707
Yt = f1(|Xt|) Xt + f2 (|Xt – 1|) Xt + f3(|Xt|) Xt – 1 + f4(|Xt – 2|) Xt
{X = 1, 2, 4}
JESDD Tx
Xt X Z–1
LUT 1
I2 + Q2
LUT 2 +
Z–1
COMPAND Yt
LUT + SATURATE
LUT 4
Z–2
+
LUT 3
14652-708
INPUT influence than the current data when determining the final
Figure 234. Model Accuracy Deviation with High Amplitude Swings coefficients used for the lookup tables (LUTs).
Typically, the challenging situations are low to high power Optionally, the prior model coefficients can update automatically
transitions, where the model is first fit to small signal during high power data (by default, within 1 dB of the highest
measurements, then the PA operates on high power data. At Tx rms power observed by the DPD) by setting this option in
high amplitudes, the model is an extrapolation of polynomial the API or GUI default: enabled. When automatically updated,
fits at lower amplitudes. P is the diagonal portion of the correlation matrix [CYY = FHF]
If operating at low power for a long duration, leaky correlation and α 0 is the solution vector from the previous iteration of
averaging eventually diminishes high amplitude PA model DPD that included high power rms data.
information. One mitigating approach is to keep some high
power measurement data in the correlation matrix at all times,
even if the data is outdated. Stored high amplitude samples can be
stratified across fixed amplitude bins. In every model regression,
these samples can be included so that the polynomials fit these
high power sample points as well. This technique is adequate to
keep performance stable before a full update with fresh high
amplitude training samples. However, this technique generally
requires a large number of samples to work well, and it is hard
to store enough samples.
Instead, the AD9375 DPD incorporates a probabilistic prior
model on values (DPD actuator terms) when solving for
new model coefficients, which provides information about what
the higher order coefficients should be if they are not well
defined based on the current low amplitude data.
ISOLATOR
DIRECTIONAL
AD9375 IN COUPLER OUT F
SPLITTER
Tx PATH
DPD PA SIMULATE ANTENNA
Tx CPL IN CPL OUT MISMATCH
R
TERMINATOR OPEN
TERMINATOR REFLECTION
ADJUSTABLE
VSWR MONITOR GPIO Af ATTENUATOR ATTENUATOR
ON ARM 0/1 AT 3.3V
TTL Ar ATTENUATOR
RF1
SWITCH f
ORx ORX
RF_COM r
ORx PATH RF2
14652-710
DPD GUI
The digital predistortion (DPD) graphical user interface (GUI) These features are described in subsequent sections of this user
is the primary evaluation tool for the DPD, closed-loop gain guide. In addition, the DPD, application programming interface
control (CLGC), and voltage standing wave ratio (VSWR) (API), and delay-locked loop (DLL) may be used to interact and
features. Figure 236 shows the initial DPD GUI, and Figure 237 control the DPD via Python or C#. The transceiver evaluation
shows the GUI when it is connected to the command server. All software (TES) GUI supports an IronPython tab that may be
DPD functionality can be controlled from this DPD GUI. It also used for scripting purposes.
incorporates waveform generation, CLGC, and VSWR control.
14652-711
Figure 236. Initial DPD GUI Interface—Not Connected to Command Server
14652-712
Figure 237. Initial DPD GUI Interface—After Connecting to Command Server
WAVEFORM SETUP
The baseband waveform characteristics can be manipulated using the Tx Baseband Waveform section of the GUI (see Figure 238).
CARRIER SETUP
14652-716
Figure 241. Tx/ORx Control Section
14652-717
14652-718
Figure 243. DPD Status Window and Status Codes
DPD API
This section describes all the application programming It is important to note the following:
interface (API) data structures and functions that are associated
• Running the external initialization calibrations (external
with the digital predistortion (DPD) feature.
LO leakage (LOL), DPD, CLGC, and VSWR initialization
ARM SETUP COMMANDS calibrations) in a single execution of the MYKONOS_
A few ARM setup commands are introduced in the following runInitCals(…) results in running the initialization
subsection that are ancillary to DPD, closed-loop gain control calibrations in the following order: VSWR, LOL, DPD, and
(CLGC), and voltage standing wave ratio (VSWR) operation. CLGC.
• It is recommended that the user always perform DPD,
The following API functions enable the use of the DPD, CLGC,
CLGC, and VSWR initialization calibrations at the Tx
and VSWR calibrations. These functions must be called in
attenuation value that corresponds to the final rated power
order to successfully execute these calibrations.
amplifier (PA) operating power conditions. Following this
MYKONOS_runInitCals (…) recommendation improves the path delay estimation of the
mykonosErr_t calibrations in general and reduces variability from run to
MYKONOS_runInitCals(mykonosDevice_t run because the signal noise ratio (SNR) at ORx is better
*device, uint32_t calMask) when there is more of the pseudonoise (PN) sequence to
Description correlate with. A small deviation in the estimated path delay
can cause a DPD performance degradation of up to 3 dB.
This function performs the ARM initialization calibrations (init
• When using an older ARM version or when running
cals) that are prerequisites for the calibrations present in the
initialization calibrations differently than is suggested in
enableMask enabled by MYKONOS_enableTrackingCals(…).
the first bullet, it is important to remember that VSWR
This command must be called when the device is in the
initialization calibration sets up the path observed by the
radioOff state.
ORx switch (forward or reflected), and therefore, must be
Parameter executed before the other external initialization
• *device: This is a structure pointer for the device data calibrations, such as the LOL, DPD, and CLGC
structure. calibrations, which are calibrations that require knowledge
• calMask: Initialization calibration mask for initializing the of the external loopback path delay. For example, if each of
different calibrations. the external initialization calibrations are run separately,
the following sequence is recommended: VSWR, LOL,
Table 190. Initial Calibrations Bit Mask DPD, and CLGC initialization calibrations. It is important
calMask Bit description to not override the VSWR switch control by writing to the
0 Tx baseband filter GPIO pin that is used by the VSWR calibration.
1 ADC runner
2 transimpedance amplifier (TIA) 3 dB corner
3 DC offset
4 Tx attenuation delay
5 Rx gain delay
6 Flash calibration
7 Path delay
8 Tx local oscillator (LO) leakage internal
9 Tx LO leakage external
10 Tx quadrature error correction (QEC) initialization
11 Loopback Rx LO delay
12 Loopback Rx QEC initialization
13 Rx LO delay
14 Rx QEC initialization
15 DPD initialization
16 CLGC initialization
17 VSWR initialization
14652-719
responsibility of the host to control the state of the calibrations.
Parameters Figure 244. int8_cpx Structure
*device: This is a structure pointer for the device data typedef struct
structure whose calibrations are to suspended or resumed. {
*trackCals: The value returned in this pointer shows int8_t real;
currently enabled tracking calibration mask bits that int8_t imag;
represent which calibrations have been suspended (bit
} int8_cpx;
value of 0) or active/resumed (bit value of 1). The active
tracking calibration bit mask defined by enableMask in
Table 192. int8_cpx Structure Member Description
MYKONOS_enableTrackingCals(…) can be used to
Structure
determine which bit mask values shown in Table 191 are Member Valid Values Description
available.
real −128…+127 The real part of the
complex number used in
the weights member of the
mykonosDpdConfig_t
structure.
imag −128…+127 The imaginary part of the
complex number used in
the weights member of the
mykonosDpdConfig_t
structure.
14652-721
The Track check box allows the CLGC to control the loop gain The Control Ratio field controls the rate at which the CLGC
by changing the Tx attenuation. When first enabling the CLGC tracks the gain changes. Refer to the tx1ControlRatio and
using the DPD GUI (and not via the application programming tx2ControlRatio parameters in Table 195 for a detailed
interface (API)-/delay locked loop (DLL)-based scripts), the description.
current gain is set as the desired gain (that is, the previously The Tx Rel Threshold feature lets the CLGC flag rapid changes
configured desired gain value is overwritten). Refer to the from the target desired gain. Check the box next to this feature
allowTx1AttenUpdates and allowTx2AttenUpdates parameters to enable the relative threshold. Refer to the tx1RelThreshold
in Table 195 for a detailed description. and tx2RelThreshold parameters in Table 195 for a detailed
description.
14652-722
CLGC API
This section describes all of the application programming typedef struct
interface (API) data structures and functions that are associated {
with the closed-loop gain control (CLGC) feature.
int16_t tx1DesiredGain;
CLGC API DATA STRUCTURES int16_t tx2DesiredGain;
The data structures associated with the CLGC functionality are uint16_t tx1AttenLimit;
listed in the following subsections. uint16_t tx2AttenLimit;
mykonosClgcConfig_t uint16_t tx1ControlRatio;
The mykonosClgcConfig_t structure is the main data structure uint16_t tx2ControlRatio;
that stores all parameters for the CLGC configuration. The uint8_t allowTx1AttenUpdates;
information in this structure is loaded into the ARM using the
uint8_t allowTx2AttenUpdates;
MYKONOS_configClgc() function. The unified modeling
language (UML) representation of the structure is shown in int16_t additionalDelayOffset;
Figure 249. uint16_t pathDelayPnSeqLevel;
uint16_t tx1RelThreshold;
uint16_t tx2RelThreshold;
uint8_t tx1RelThresholdEn;
uint8_t tx2RelThresholdEn;
} mykonosClgcConfig_t;
14652-724
RMS: reflected rms gain measured from antenna to ORx. Channel: The Tx channel for which the VSWR status is
REAL: real part of the reflected path complex gain. being displayed.
IMAGINARY: imaginary part of the reflected path Enabled: displays whether the VSWR calibration is
complex gain. currently enabled or disabled.
Status: displays the VSWR error code.
ORx Switch GPIO Setting VSWR Counter: displays the number of times the VSWR
The ORx Switch GPIO Setting section controls the switch that has been successfully scheduled since VSWR initialization
selects between the forward path and the reflected path. These calibration.
two paths (forward and reflected) are time multiplexed into the
ORx and controlled by the VSWR calibration via a designated
GPIO_3.3 V pin.
14652-726
VSWR API
This section describes all of the application programming typedef struct
interface (API) data structures and functions that are associated {
with the voltage standing wave ratio (VSWR) feature.
int16_t additionalDelayOffset;
VSWR API DATA STRUCTURES uint16_t pathDelayPnSeqLevel;
The data structures associated with the VSWR functionality are
listed in the following subsections. uint8_t tx1VswrSwitchGpio3p3Pin;
mykonosVswrConfig_t uint8_t tx2VswrSwitchGpio3p3Pin;
The mykonosVswrConfig_t structure is the main data structure uint8_t tx1VswrSwitchPolarity;
that stores all parameters for the VSWR measurement uint8_t tx2VswrSwitchPolarity;
configuration. The information in this structure is loaded into
uint8_t tx1VswrSwitchDelay_us;
the ARM using the MYKONOS_configVswr() function. The
UML representation of the structure is shown in Figure 252. uint8_t tx2VswrSwitchDelay_us;
} mykonosVswrConfig_t;
14652-727
GAIN (dB)
20log10 1 10 20 0 ALLOWED LOOPBACK
–0.2 GAIN VARIATION
–0.4
–0.6
where: –0.8
ACLR is the ideal ACLR improvement at the frequency of interest. –1.0
–1.2
GAIN is an allowed gain at that frequency. Note that GAIN is given
–1.4
in dB relative to the loopback gain at the LTE carrier frequency. –1.6
–1.8
For example, in Figure 255, a single 20 MHz LTE carrier is
14652-729
–30 –28 –26 –24 –22 –20 –18 –16 –14 –12 –10 –8 –6
transmitted and centered on the local oscillator (LO) through a ACLR IMPROVEMENT WITH DPD (dBc)
gallium nitride (GaN) power amplifier (PA) and with a near Figure 254. Range Over Which Loopback Gain Can Vary Without Affecting
ideal loopback channel. The ACLR improvement with DPD is DPD ACLR Improvement by More Than 1 dBc of Degradation
observed as 28 dBc at ±10 MHz. Therefore, the DPD loopback flatness requirements are a
Looking at Figure 254, gain flatness at ±10 MHz must be <0.1 dB function of the desired ACLR improvement. To not degrade
to not degrade digital predistortion (DPD) performance (at optimal predistortion results by more than 1 dB, obey the
±10 MHz) by more than 1 dBc from the ideal loopback case. flatness requirements shown in Figure 254.
14652-730
Figure 255. Power Spectral Density of PA Output Showing Before (Magenta) and After DPD (Yellow)
20
The maximum occupied linearizable signal bandwidth for most
PAs is 40 MHz with this DPD. Some PAs may be linearizable at
15
wider RF bandwidths (contiguous or noncontiguous carrier
aggregation); however, typical levels of ACLR correction with
10 DPD cannot be guaranteed nor justified in these cases. For PA
recommendations that suit specific applications, consult with an
5
Analog Devices representative at www.analog.com/en/landing-
14652-731
Figure 256. Power vs. Time Showing CLGC Tracking a 20 dB Change in the
Using DPD with GaN PAs
Desired Gain Parameter Even though the AD9375 DPD models the RF behavior at
DPD LIMITATIONS baseband of a given PA and doesn’t really care about the PA
process type nor design architecture, certain types of PAs such
The following subsections outline AD9375 digital predistortion
as gallium nitride (GaN) PAs can pose significant linearization
(DPD) limitations and guidelines to observe during system challenges. Note that some GaN PAs may be linearizable after
design that allow workarounds of these limitations.
following the standard tuning procedure; however, there exists a
Need for Crest Factor Reduction very clear motivation to look at specific system level tests to qualify
The AD9375 DPD seeks to predistort the true radio frequency a PA with DPD. For example, even though the ACLR performance
(RF) behavior of a power amplifier (PA) using a simple behavioral may be within the system design specifications, it is important
model with a limited number of polynomial terms. Therefore, to also measure error vector magnitude (EVM) for standard
with the reduced complexity of the DPD solution, it is difficult signals such as E-TM3.1 and E-TM2. For PA recommendations
to model large behavioral variations in the PA at widely varying that suit user specific applications, consult with an Analog
power levels. One of the easiest ways to improve the reliability Devices representative at www.analog.com/en/landing-
and stability of DPD is to employ a crest factor reduction (CFR) pages/001/sdr-radioverse-pavilion/support.html.
algorithm in the baseband processor (BBP) to reduce the peak OTHER CONSIDERATIONS
to average ratio (PAR) of the baseband signal seen by the DPD
The following are other considerations to keep in mind:
block. The CFR algorithm helps to prevent cases where the
DPD observes a sparse sample set of the nonlinear behavior of It is recommended to keep Tx to ORx isolation greater
the PA (as is the case with high PAR signals) and makes poor than −55 dBc to avoid any negative effects on DPD
guesses or extrapolations of the unobserved behavior. These performance, which is a useful consideration to keep in
erroneous estimates can often manifest as spurious signals mind during printed circuit board (PCB) layout.
adjacent to the desired signal on a spectrum analyzer. For The minimum ORx rms power threshold required by the
example, if a user starts DPD tracking with an E-TM2 signal CLGC is set to −39 dBFS by default; however, this number
(PAR = ~12 dB) and no prior information, the DPD sees a very can be modified, if required, at the expense of accepting
poor excitation of the nonlinear PA behavior and makes poor some degradation in tracking tolerance at ORx power
assumptions. The situation is made even worse when the prior levels below −39 dBFS. To inquire about setup instructions,
model of the DPD is corrupted with this poor data set. The go to www.analog.com/en/landing-pages/001/sdr-
solution is to train the DPD on a fully occupied E-TM3.1-like radioverse-pavilion/support.html.
signal with an 8 dB PAR or lower to update the prior model
14652-732
Figure 257. Typical Test Setup
14652-733
Figure 258. DPD Performance with CLGC Enabled
14652-734
Figure 259. TES TDD Configuration 1 Waveform Switching Configuration with Tx Tracking Calibrations
14652-735
Figure 260. TDD Configuration 1 Waveform with Digital Predistortion (DPD), Gated PXA Measurement
ESD Caution
ESD (electrostatic discharge) sensitive device. Charged devices and circuit boards can discharge without detection. Although this product features patented or proprietary protection
circuitry, damage may occur on devices subjected to high energy ESD. Therefore, proper ESD precautions should be taken to avoid performance degradation or loss of functionality.