This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
resources:eval:user-guides:adar1000-eval1z [28 Oct 2020 00:21] – Update and add more suggested sequences Weston Sapia | resources:eval:user-guides:adar1000-eval1z [28 Oct 2020 00:40] (current) – Moved page Weston Sapia | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== EVALUATING THE ADAR1000-EVAL1Z (STINGRAY) ANALOG BEAMFORMING FRONT-END ====== | + | THIS PAGE HAS MOVED... [[resources/ |
- | ====== (UNDER CONSTRUCTION) ====== | + | |
- | ====== GENERAL DESCRIPTION ====== | + | |
- | The ADAR1000-EVAL1Z evaluation board is an analog beamforming front-end designed for testing the performance of the [[adi> | + | |
- | The ADAR1000-EVAL1Z board consists of 8 RF cells. Each cell contains a core [[adi> | ||
- | |||
- | {{ : | ||
- | <WRAP centeralign> | ||
- | ---- | ||
- | ===== Main RFICs ===== | ||
- | === ADAR1000: 8 GHz to 16 GHz, 4-Channel, X Band and Ku Band Beamformer === | ||
- | * [[adi> | ||
- | * [[/ | ||
- | === ADTR1107: 6 GHz to 18 GHz, Front-End Transmit/ | ||
- | * [[adi> | ||
- | |||
- | ---- | ||
- | ====== REQUIREMENTS ====== | ||
- | ===== Documents ===== | ||
- | * [[adi> | ||
- | * [[adi> | ||
- | * Rev. A design: | ||
- | * {{ : | ||
- | * {{ : | ||
- | * {{ : | ||
- | * Rev. B design: | ||
- | * {{ : | ||
- | * {{ : | ||
- | * {{ : | ||
- | ===== Hardware ===== | ||
- | * ADAR1000-EVAL1Z Evaluation Board Kit | ||
- | * Snap-on Antenna Board (available upon request) | ||
- | * Digital controller and associated hardware (SDP or PMOD) | ||
- | * SMPM-SMA cabling to interface with the RF ports | ||
- | ===== Suggested Test Equipment ===== | ||
- | * 20GHz RF Signal Generator | ||
- | * 20GHz Spectrum Analyzer | ||
- | * 20GHz Vector Network Analyzer | ||
- | * Thermal Camera (optional) | ||
- | * Oscilloscope (optional) | ||
- | * RF Power Meter (optional) | ||
- | ===== Software/ | ||
- | === SDP Control === | ||
- | * [[http:// | ||
- | * {{ : | ||
- | * [[adi> | ||
- | |||
- | === PMOD Control === | ||
- | * Two 12-pin PMOD cables ([[https:// | ||
- | * Four 12-pin 0.100" male-male headers ([[https:// | ||
- | * Example PMOD digital controllers: | ||
- | * [[https:// | ||
- | * FPGA demonstration board | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | |||
- | ---- | ||
- | ====== BOARD DESIGN ====== | ||
- | The ADAR1000-EVAL1Z evaluation board has 8 SMPM RFIO connectors for the 8 cells on the component side of the board. There are 33 SMPM connectors on the opposite side of the board. 32 of these correspond to the 32 RF channels while the last connector goes to the RF detector and ADC combo on the bottom of the board which is intended to be used for calibration. | ||
- | |||
- | Two 6-pin Molex " | ||
- | |||
- | ===== Power Supply ===== | ||
- | The ADAR1000-EVAL1Z board must be powered from the included power supply with a voltage level of 12V. There is an on-board power management tree which generates the required voltage rails for all of the associated parts. | ||
- | |||
- | ===== RF Input and Output Signals ===== | ||
- | The ADAR1000-EVAL1Z board has 41 surface-mounted SMPM connectors which are described in Table 1. | ||
- | **//< | ||
- | |< 50% 15% 5% 30% 5% 45% >| | ||
- | ^ Connector(s) | ||
- | | J1 - J8 | | RFIOx | |ADAR1000 RFIO Connectors | ||
- | | J1_1 - J1_8, J2_1 - J2_8, J3_1 - J3_8, J4_1 - J4_8 | | ANT1_1 - ANT1_8, ANT2_1 - ANT2_8, ANT3_1 - ANT3_8, ANT4_1 - ANT4_8 | ||
- | | J9 | | N/A | |RF Detector Input Connector | ||
- | |||
- | {{ : | ||
- | **//< | ||
- | |||
- | {{ : | ||
- | **//< | ||
- | |||
- | ===== Digital Signals ===== | ||
- | The digital input signals are intended to be 3.3V logic while the [[adi> | ||
- | |||
- | ==== PMOD Pinout ==== | ||
- | {{ : | ||
- | **//< | ||
- | |||
- | ==== SPI Control ==== | ||
- | The ADAR1000-EVAL1Z has five chip-select lines available for use. Four of these lines (CSB1, CSB2, CSB3, CSB4) are intended to be used for the [[adi> | ||
- | |||
- | Each [[adi> | ||
- | |||
- | {{ : | ||
- | **//< | ||
- | |||
- | The ADAR1000-EVAL1Z alone demonstrates a small beamformer array, but multiple boards can also be stacked and combined to create larger arrays. In order to simplify the digital interface, two boards can be controlled using one digital controller if the two boards use all four of the available CSB lines without worrying about talking to the wrong IC. | ||
- | ---- | ||
- | ====== EVALUATION ====== | ||
- | ===== Hardware Setup ===== | ||
- | - Fully assemble the ADAR1000-EVAL1Z board on the stand and assure that the heatsink is firmly attached to the board. | ||
- | - Plug the included power supply into an outlet before connecting the power supply to P1 in the lower left-hand side of the board. Once finished, a red LED (D3) should be lit. | ||
- | - Connect your digital controller of choice to the appropriate connector. | ||
- | - Connect any test equipment of interest to the ADAR1000-EVAL1Z board. | ||
- | |||
- | ===== Board Power Control ===== | ||
- | The ADAR1000-EVAL1Z board' | ||
- | |||
- | Both PWR_UP_DOWN and +5V_CTRL are controlled with pulses, not logic levels, as they are inputs to flip-flops rather than enable signals directly. | ||
- | |||
- | ==== Powerup Procedure ==== | ||
- | - Apply +12V to either P1 or P2. Note the red LED (D3) on the bottom of the board. When lit, 12V is applied and the hot swap circuit is active. At this point, no RF rails are powered, but some miscellaneous rails are up: | ||
- | * +3.3V_INT (U8, [[adi> | ||
- | * +1.8V_INT (U9, [[adi> | ||
- | * -6.0V_INT (U10, [[adi> | ||
- | - Pulse the PWR_UP_DOWN signal to sequence the first RF power rails. Once the power sequencer is finished, the ADAR1000s are fully powered up and the ADTR1107s are partially powered. This is indicated with an orange LED (D6). | ||
- | * +3.3V (U11, [[adi> | ||
- | * -3.3V (U13, [[adi> | ||
- | * -5.0V (U14, [[adi> | ||
- | - Initialize the ADAR1000s to put the ADAR1000-EVAL1Z into a known safe state with the ADTR1107 PAs pinched off. See the [[# | ||
- | - Now that the ADTR1107 PAs are pinched off, +5V can safely be applied. This is accomplished by pulsing the +5V_CTRL signal. Once the +5V rail is up, a green LED (D4) is lit showing that the board is fully powered up. | ||
- | * +5.0V (U12, [[adi> | ||
- | |||
- | ==== Powerdown Procedure ==== | ||
- | - Pulse the +5V_CTRL signal to bring down the +5V power supply rail. The green LED will turn off indicating that the rail is down. | ||
- | - Pulse the PWR_UP_DOWN signal to tell the power sequencer to bring down the other RF rails in reverse order from powerup. | ||
- | |||
- | < | ||
- | |||
- | ===== Software Control ===== | ||
- | * Follow the [[# | ||
- | * At this point, the board is fully enabled, but all amplifiers are powered down. In order to pass signals, the board needs to be put into either Rx or Tx mode and the [[adi> | ||
- | |||
- | ===== RF Detector and ADC Combination ===== | ||
- | There is an on-board RF detector/ | ||
- | |||
- | The RF detector is the [[adi> | ||
- | |||
- | The [[adi> | ||
- | |||
- | ---- | ||
- | |||
- | ====== Recommended ADAR1000 Initialization Sequences ====== | ||
- | Notes: | ||
- | - The below sequences don't take into account the different hardware addresses of the various ADAR1000s. Consult the [[adi> | ||
- | - The below sequences don't account for the fact that the Stingray uses two CSB lines to address all of the ADAR1000s on the board. In order to configure all chips, the sequences must be run on each required CSB line individually. | ||
- | |||
- | ===== Initial Powerup ===== | ||
- | <code python> | ||
- | """ | ||
- | This sequence is suggested to be run after powering the +3.3V, -3.3V, and -5.0V rails on the Stingray board, | ||
- | but before powering the +5.0V rail. This will help protect the ADTR1107 PAs. It will put the chips into a | ||
- | known safe state on powerup. | ||
- | Format: (Register, Data, Description) | ||
- | """ | ||
- | INIT_SEQUENCE = [ | ||
- | # HOUSEKEEPING | ||
- | (0x000, 0x81, ' | ||
- | (0x038, 0x60, ' | ||
- | (0x02E, 0x7F, ' | ||
- | (0x02F, 0x7F, ' | ||
- | (0x034, 0x08, 'Set LNA preamplifier to nominal bias' | ||
- | (0x035, 0x55, 'Set Rx VGA and Vector Mod to nominal bias' | ||
- | (0x036, 0x2D, 'Set Tx VGA and Vector Mod to nominal bias' | ||
- | (0x037, 0x06, 'Set Tx PA preamplifier to nominal bias' | ||
- | |||
- | # PA BIAS VALUES | ||
- | (0x029, 0x68, 'Set PA1_BIAS_ON value (≈ -2.0V)' | ||
- | (0x02A, 0x68, 'Set PA2_BIAS_ON value (≈ -2.0V)' | ||
- | (0x02B, 0x68, 'Set PA3_BIAS_ON value (≈ -2.0V)' | ||
- | (0x02C, 0x68, 'Set PA4_BIAS_ON value (≈ -2.0V)' | ||
- | (0x046, 0x68, 'Set PA1_BIAS_OFF value (≈ -2.0V)' | ||
- | (0x047, 0x68, 'Set PA2_BIAS_OFF value (≈ -2.0V)' | ||
- | (0x048, 0x68, 'Set PA3_BIAS_OFF value (≈ -2.0V)' | ||
- | (0x049, 0x68, 'Set PA4_BIAS_OFF value (≈ -2.0V)' | ||
- | |||
- | # LNA BIAS VALUES | ||
- | (0x02D, 0x68, 'Set LNA_BIAS_ON value (≈ -2.0V)' | ||
- | (0x04A, 0x68, 'Set LNA_BIAS_OFF value (≈ -2.0V)' | ||
- | |||
- | # TR CONTROL STATE | ||
- | (0x031, 0x90, ' | ||
- | |||
- | # Enable PA/LNA DACs | ||
- | (0x030, 0x50, ' | ||
- | ] | ||
- | </ | ||
- | |||
- | ===== Max Gain & 0° Phase ===== | ||
- | <code python> | ||
- | """ | ||
- | Sequence to set all ADAR1000 channels to maximum gain and 0° phase. | ||
- | Format: (Register, Data, Description) | ||
- | """ | ||
- | CHANNEL_SETUP = [ | ||
- | # Rx GAIN | ||
- | (0x010, 0xFF, 'Set channel 1 Rx to maximum gain' | ||
- | (0x011, 0xFF, 'Set channel 2 Rx to maximum gain' | ||
- | (0x012, 0xFF, 'Set channel 3 Rx to maximum gain' | ||
- | (0x013, 0xFF, 'Set channel 4 Rx to maximum gain' | ||
- | | ||
- | # Rx PHASE | ||
- | (0x014, 0x3F, 'Set channel 1 Rx I Vector Modulator to 0°'), | ||
- | (0x015, 0x20, 'Set channel 1 Rx Q Vector Modulator to 0°'), | ||
- | (0x016, 0x3F, 'Set channel 2 Rx I Vector Modulator to 0°'), | ||
- | (0x017, 0x20, 'Set channel 2 Rx Q Vector Modulator to 0°'), | ||
- | (0x018, 0x3F, 'Set channel 3 Rx I Vector Modulator to 0°'), | ||
- | (0x019, 0x20, 'Set channel 3 Rx Q Vector Modulator to 0°'), | ||
- | (0x01A, 0x3F, 'Set channel 4 Rx I Vector Modulator to 0°'), | ||
- | (0x01B, 0x20, 'Set channel 4 Rx Q Vector Modulator to 0°'), | ||
- | | ||
- | # Tx GAIN | ||
- | (0x01C, 0xFF, 'Set channel 1 Tx to maximum gain' | ||
- | (0x01D, 0xFF, 'Set channel 2 Tx to maximum gain' | ||
- | (0x01E, 0xFF, 'Set channel 3 Tx to maximum gain' | ||
- | (0x01F, 0xFF, 'Set channel 4 Tx to maximum gain' | ||
- | | ||
- | # Tx PHASE | ||
- | (0x020, 0x3F, 'Set channel 1 Tx I Vector Modulator to 0°'), | ||
- | (0x021, 0x20, 'Set channel 1 Tx Q Vector Modulator to 0°'), | ||
- | (0x022, 0x3F, 'Set channel 2 Tx I Vector Modulator to 0°'), | ||
- | (0x023, 0x20, 'Set channel 2 Tx Q Vector Modulator to 0°'), | ||
- | (0x024, 0x3F, 'Set channel 3 Tx I Vector Modulator to 0°'), | ||
- | (0x025, 0x20, 'Set channel 3 Tx Q Vector Modulator to 0°'), | ||
- | (0x026, 0x3F, 'Set channel 4 Tx I Vector Modulator to 0°'), | ||
- | (0x027, 0x20, 'Set channel 4 Tx Q Vector Modulator to 0°') | ||
- | ] | ||
- | </ | ||
- | |||
- | ===== Disable ===== | ||
- | <code python> | ||
- | """ | ||
- | This sequence will disable the ADAR1000 and put the chip into a low power state. | ||
- | Format: (Register, Data, Description) | ||
- | """ | ||
- | DISABLE = [ | ||
- | (0x029, 0x68, 'Set CH1 PA_BIAS_ON to minimal power (≈ -2.0V)' | ||
- | (0x02A, 0x68, 'Set CH2 PA_BIAS_ON to minimal power (≈ -2.0V)' | ||
- | (0x02B, 0x68, 'Set CH3 PA_BIAS_ON to minimal power (≈ -2.0V)' | ||
- | (0x02C, 0x68, 'Set CH4 PA_BIAS_ON to minimal power (≈ -2.0V)' | ||
- | (0x02D, 0x68, 'Set LNA_BIAS_ON to minimal power (≈ -2.0V)' | ||
- | (0x031, 0x90, 'Put ADAR1000 into SPI-controlled TR state and disable TX_EN/RX_EN bits') | ||
- | ] | ||
- | </ | ||
- | |||
- | ===== Rx Enable ===== | ||
- | <code python> | ||
- | """ | ||
- | This sequence will configure the ADAR1000 for Rx and set the LNAs to full power. | ||
- | Be sure you know what you're doing! | ||
- | Format: (Register, Data, Description) | ||
- | """ | ||
- | RX_SETUP = [ | ||
- | (0x02D, 0x00, 'Set LNA_BIAS_ON to full power (0V)' | ||
- | (0x031, 0xB0, 'Put ADAR1000 into SPI-controlled Rx mode') | ||
- | ] | ||
- | </ | ||
- | |||
- | ===== Tx Enable (Reduced Power) ===== | ||
- | <code python> | ||
- | """ | ||
- | This sequence will configure the ADAR1000 for Tx and set the PAs to a reduced power state. | ||
- | Be sure you know what you're doing! | ||
- | Format: (Register, Data, Description) | ||
- | """ | ||
- | TX_SETUP_REDUCED_POWER = [ | ||
- | (0x029, 0x42, 'Set CH1 PA_BIAS_ON to reduced power (≈ -1.25V)' | ||
- | (0x02A, 0x42, 'Set CH2 PA_BIAS_ON to reduced power (≈ -1.25V)' | ||
- | (0x02B, 0x42, 'Set CH3 PA_BIAS_ON to reduced power (≈ -1.25V)' | ||
- | (0x02C, 0x42, 'Set CH4 PA_BIAS_ON to reduced power (≈ -1.25V)' | ||
- | (0x031, 0xD2, 'Put ADAR1000 into SPI-controlled Tx mode') | ||
- | ] | ||
- | </ | ||
- | |||
- | ===== Tx Enable ===== | ||
- | <code python> | ||
- | """ | ||
- | This sequence will configure the ADAR1000 for Tx and set the PAs to full power. | ||
- | Be sure you know what you're doing! | ||
- | Format: (Register, Data, Description) | ||
- | """ | ||
- | TX_SETUP = [ | ||
- | (0x029, 0x25, 'Set CH1 PA_BIAS_ON to full power (≈ -0.7V)' | ||
- | (0x02A, 0x25, 'Set CH2 PA_BIAS_ON to full power (≈ -0.7V)' | ||
- | (0x02B, 0x25, 'Set CH3 PA_BIAS_ON to full power (≈ -0.7V)' | ||
- | (0x02C, 0x25, 'Set CH4 PA_BIAS_ON to full power (≈ -0.7V)' | ||
- | (0x031, 0xD2, 'Put ADAR1000 into SPI-controlled Tx mode') | ||
- | ] | ||
- | </ |