adar1000
- class adi.adar1000.adar1000(uri='', context=None, chip_id='csb1_chip1', device_number=1, array_element_map=None, channel_element_map=None)
Bases:
adi.attribute.attribute
,adi.context_manager.context_manager
ADAR1000 Beamformer
- parameters:
- uri: type=string
Optional parameter for the URI of IIO context with ADAR1000(s). If not given,
- context: type=iio.Context
Optional parameter for IIO Context handle for the device. Don’t use if instantiating the adar1000 class directly. The adar1000_array class will handle this if creating an array instance.
- chip_id: type=string
Required string identifying the desired chip select and hardware ID for the ADAR1000. If creating a single adar1000 instance, you can typically leave the default value of “csb1_chip1” as long as the device tree label matches. If creating an adar1000_array instance, the array class will handle the instantiation of individual adar1000 handles.
- device_number: type=int
Required integer indicating the device number in the array. If creating a single adar1000 instance, this value should be 1. If creating an adar1000_array instance, the array class will handle the instantiation of individual adar1000 handles.
- array_element_map: type=list[list[int]]
Required list of lists with the map of where the array elements are located in the physical array. Each entry in the map represents a row of elements referenced by element number. For example, a map:
[[1, 5, 9, 13],[2, 6, 10, 14],[3, 7, 11, 15],[4, 8, 12, 16]]represents an array of 16 elements (4 ADAR1000s) in a 4x4 array. If creating a single adar1000 instance, the elements should be 1-4 in whatever configuration the physical array is (1x4, 2x2, 4x1, etc.). If creating an adar1000_array instance, the array class will handle the instantiation of individual adar1000 handles.
- channel_element_map: type=list[int]
Required list of integers relating the array element numbers to the channels of the ADAR1000 instance. Each number in the list is the element number in the larger array, in order of the ADAR1000’s channels. For example, a list [10, 14, 13, 9] indicates that the ADAR1000’s channels are the following elements in the full array:
Channel 1: Element # 10Channel 2: Element # 14Channel 3: Element # 13Channel 4: Element # 9If creating a single adar1000 instance, the elements should be 1-4 in order of the ADAR1000’s channels related to the array elements. If creating an adar1000_array instance, the array class will handle the instantiation of individual adar1000 handles.
- class adar1000_channel(adar_parent, adar_channel, array_element, row, column)
Bases:
object
Class for each channel of the ADAR1000. This class is not meant to be instantiated directly. adar1000 objects will create their own handles of this class, one for each channel
- parameters:
- adar1000_parent: type=adar1000
Parent ADAR1000 instance
- adar_channel: type=int
Channel number of the parent corresponding to this channel
- array_element: type=int
Element number of the array corresponding to this channel
- row: int
Row number in the array
- column: int
Column number in the array
- property adar1000_channel
- property adar1000_parent
- property array_element_number
Element number in the array
- property column
Element column number in the array
- property detector_power
Get the detector power reading for the associated channel
- property pa_bias_off
Get/Set PA_BIAS_OFF in voltage for the associated channel
- property pa_bias_on
Get/Set PA_BIAS_ON in voltage for the associated channel
- property row
Element row number in the array
- property rx_attenuator
Get/Set Rx Attenuator state for the associated channel
- property rx_beam_state
Get/Set the Channel Rx beam position used by RAM when all channels point to individual states. Valid states are 0-120.
- property rx_enable
Get/Set the Rx enable state for the associated channel
- property rx_gain
Get/Set the Rx Gain for the associated channel
- property rx_phase
Get/Set the Rx Phase for the associated channel
- save_rx_beam(state, attenuator, gain, phase)
Save a beam to an Rx memory position
- parameters:
- state: int
State number to save. Valid options are 0 to 120
- attenuator: bool
Attenuator state for the beam position. True means the attenuator is in place.
- gain: int
Gain value for the beam position. Valid settings are 0 to 127.
- phase: float
Phase value for the beam position.
- save_tx_beam(state, attenuator, gain, phase)
Save a beam to a Tx memory position
- parameters:
- state: int
State number to save. Valid options are 0 to 120
- attenuator: bool
Attenuator state for the beam position. True means the attenuator is in place.
- gain: int
Gain value for the beam position. Valid settings are 0 to 127.
- phase: float
Phase value for the beam position.
- property tx_attenuator
Get/Set the Tx Attenuator state for the associated channel
- property tx_beam_state
Get/Set the Channel Tx beam position used by RAM when all channels point to individual states. Valid states are 0-120.
- property tx_enable
Get/Set the Tx enable state for the associated channel
- property tx_gain
Get/Set the Tx Gain for the associated channel
- property tx_phase
Get/Set the Tx Phase for the associated channel
- property array_device_number
Device number in the array
- property beam_mem_enable
Get/Set enable bit for RAM control vs. SPI control of the beam state
- property bias_dac_enable
Get/Set enable for bias DACs
- property bias_dac_mode
Get/Set BIAS_CTRL bit (Register 0x30[6]) which controls whether the bias DACs stay at “ON” value, or toggle with respect to T/R state.
- property bias_mem_enable
Get/Set enable bit for RAM control vs. SPI control of the bias state
- property channel1
Handle for the ADAR1000’s channel 1 object
- property channel2
Handle for the ADAR1000’s channel 2 object
- property channel3
Handle for the ADAR1000’s channel 3 object
- property channel4
Handle for the ADAR1000’s channel 4 object
- property channels
List of the ADAR1000’s channels, in order from 1 to 4
- property chip_id
Chip ID including CSB and hardware address. Of the form “csbX_chipX” where csbX indicates the CSB line for the IC and chipX indicating the hardware address of the chip, 1-4.
- property common_mem_enable
Get/Set the CHX_RAM_BYPASS bits to use either a common beam state for all channels set by registers 0x39 and 0x3A, or individual beam states set by registers 0x3D to 0x44.
- property common_rx_beam_state
Get/Set the Rx beam position used by RAM when all channels point to a common state. Valid states are 0-120.
- property common_tx_beam_state
Get/Set the Tx beam position used by RAM when all channels point to a common state. Valid states are 0-120.
- property external_tr_pin
Get/Set which external T/R switch driver is used (“positive” = TR_SW_POS, “negative” = TR_SW_NEG)
- property external_tr_polarity
Get/Set polarity of the T/R switch driver compared to the T/R state of the ADAR1000. True outputs 0V in Rx mode, False outputs either 3.3V or -5V, depending on which T/R switch driver is enabled.
- generate_clocks()
Generate CLK cycles before pulsing RX_LOAD or TX_LOAD
- initialize(pa_off=- 2.5, pa_on=- 2.5, lna_off=- 2, lna_on=- 2)
Suggested initialization routine after powerup
- parameters:
- pa_off: float
Voltage to set the PA_BIAS_OFF values to during initialization
- pa_on: float
Voltage to set the PA_BIAS_ON values to during initialization
- lna_off: float
Voltage to set the LNA_BIAS_OFF values to during initialization
- lna_on: float
Voltage to set the LNA_BIAS_ON values to during initialization
- latch_rx_settings()
Latch in new Gain/Phase settings for the Rx
- latch_tx_settings()
Latch in new Gain/Phase settings for the Tx
- property lna_bias_off
Get/Set LNA_BIAS_OFF in voltage
- property lna_bias_on
Get/Set LNA_BIAS_ON in voltage
- property lna_bias_out_enable
Get/Set enable for LNA bias DAC output. Disable to allow for always-on self-biased LNAs
- property mode
Get/Set the mode of operation for the device. Valid options are “rx”, “tx”, and “disabled”
- property pol_state
Get/Set polarity switch state. True outputs -5V, False outputs 0V
- property pol_switch_enable
Get/Set polarity switch driver enable state
- reset()
Reset ADAR1000 to default settings
- property rx_bias_state
Get/Set the Rx bias memory position when loading from RAM. Valid states are 1-7.
- property rx_lna_bias_current
Get/Set Rx LNA bias current setting
- property rx_lna_enable
Get/Set Rx LNA enable status
- property rx_sequencer_start
Get/Set the Rx Sequencer’s starting position
- property rx_sequencer_stop
Get/Set the Rx Sequencer’s ending position
- property rx_to_tx_delay_1
Get/Set Rx to Tx Delay 1
- property rx_to_tx_delay_2
Get/Set Rx to Tx Delay 2
- property rx_vga_enable
Get/Set Rx VGA enable status
- property rx_vga_vm_bias_current
Get/Set Rx VGA/Vector Modulator bias current setting
- property rx_vm_enable
Get/Set Rx Vector Modulator enable status
- save_rx_bias(state, lna_bias_off, lna_bias_on, rx_vga_vm_bias_current, rx_lna_bias_current)
Save a bias setting to an Rx memory position
- parameters:
- state: int
State number to save. Valid options are 1 to 7
- lna_bias_off: float
LNA_BIAS_OFF voltage
- lna_bias_on: float
LNA_BIAS_ON voltage
- rx_vga_vm_bias_current: int
Bias current setting for the Rx VGA and Vector Modulator
- rx_lna_bias_current: int
Bias current setting for the Rx LNA
- save_tx_bias(state, pa1_bias_off, pa2_bias_off, pa3_bias_off, pa4_bias_off, pa1_bias_on, pa2_bias_on, pa3_bias_on, pa4_bias_on, tx_vga_vm_bias_current, tx_pa_bias_current)
Save a bias setting to a Tx memory position
- parameters:
- state: int
State number to save. Valid options are 1 to 7
- pa1_bias_off: float
PA1_BIAS_OFF voltage
- pa2_bias_off: float
PA2_BIAS_OFF voltage
- pa3_bias_off: float
PA3_BIAS_OFF voltage
- pa4_bias_off: float
PA4_BIAS_OFF voltage
- pa1_bias_on: float
PA1_BIAS_ON voltage
- pa2_bias_on: float
PA2_BIAS_ON voltage
- pa3_bias_on: float
PA3_BIAS_ON voltage
- pa4_bias_on: float
PA4_BIAS_ON voltage
- tx_vga_vm_bias_current: int
Bias current setting for the Tx VGA and Vector Modulator
- tx_lna_bias_current: int
Bias current setting for the Tx PA
- property sequencer_enable
Get/Set sequencer enable status
- property temperature
Get the temperature reading from the device
- property tr_source
Get/Set TR source for the chip. Valid options are “external” or “spi”
- property tr_spi
Get/Set T/R state using the SPI bit. Valid options are “tx” or “rx”
- property tr_switch_enable
Get/Set T/R switch driver enable state
- property tx_bias_state
Get/Set the Tx bias memory position when loading from RAM. Valid states are 1-7.
- property tx_pa_bias_current
Get/Set Tx PA bias current setting
- property tx_pa_enable
Get/Set Tx PA enable status
- property tx_sequencer_start
Get/Set the Tx Sequencer’s starting position
- property tx_sequencer_stop
Get/Set the Tx Sequencer’s ending position
- property tx_to_rx_delay_1
Get/Set Tx to Rx Delay 1
- property tx_to_rx_delay_2
Get/Set Tx to Rx Delay 2
- property tx_vga_enable
Get/Set Tx VGA enable status
- property tx_vga_vm_bias_current
Get/Set Tx VGA/Vector Modulator bias current setting
- property tx_vm_enable
Get/Set Tx Vector Modulator enable status
- class adi.adar1000.adar1000_array(uri='', chip_ids=None, device_map=None, element_map=None, device_element_map=None)
Bases:
adi.context_manager.context_manager
ADAR1000 Beamformer Array
- parameters:
- uri: type=string
URI of IIO context with ADAR1000 array
- chip_ids: type=list[string]
List of strings identifying desired chip select and hardware ID for the ADAR1000. These strings are the labels coinciding with each chip select and hardware address and are typically in the form csbX_chipX. The csb line can be any number depending on how many are used in the system. The chip number will typically be 1-4 because each CSB line can control up to four ADAR1000s. Note that the order of the devices listed will correspond to the device numbers in the array map directly.
- device_map: type=list[list[int]]
List with the map of where the ADAR1000s are in the array. Each entry in the map represents a row of ADAR1000s referenced by device number. For example, a map:
[[1, 3, 5, 7],[2, 4, 6, 8]]represents an array of 8 ADAR1000s 4 wide and 2 tall.
- element_map: type=list[list[int]]
List of lists with the map of where the array elements are in the physical array. Each entry in the map represents a row of array channels referenced by element number. For example, a map:
[[1, 5, 9, 13],[2, 6, 10, 14],[3, 7, 11, 15],[4, 8, 12, 16]]represents an array of 16 elements (4 ADAR1000s) in a square array.
- device_element_map: type=dict[int, list[int]]
Dictionary with the map of ADAR1000 to array element references. Each key in the map is a device number. The corresponding list of integers represents the array element numbers connected to that ADAR1000, in order of the ADAR1000’s channels. For example, an entry of {3: [10, 14, 13, 9]} connects ADAR1000 #3 to array elements 10, 14, 13, and 9. Element #10 is on the ADAR1000’s channel 1 while element #13 is on the ADAR1000’s channel 3.
- property all_rx_attenuators
Get/Set all Rx Attenuator settings in the array. The format is a list of lists where each row in the array is a list entry in the larger list.
- property all_rx_gains
Get/Set all Rx Gain settings in the array. The format is a list of lists where each row in the array is a list entry in the larger list.
- property all_rx_phases
Get/Set all Rx Phase settings in the array. The format is a list of lists where each row in the array is a list entry in the larger list.
- property all_tx_attenuators
Get/Set all Tx Attenuator settings in the array. The format is a list of lists where each row in the array is a list entry in the larger list.
- property all_tx_gains
Get/Set all Tx Gain settings in the array. The format is a list of lists where each row in the array is a list entry in the larger list.
- property all_tx_phases
Get/Set all Tx Phase settings in the array. The format is a list of lists where each row in the array is a list entry in the larger list.
- calculate_phi(azimuth, elevation)
- Calculate the Φ angles to steer the array in a particular direction. This method assumes that the entire
array is one analog beam.
- parameters:
- azimuth: float
Desired beam angle in degrees for the horizontal direction.
- elevation: float
Desired beam angle in degrees for the vertical direction.
- property device_map
Get the map of ADAR1000s in the array
- property devices
Dictionary representing all of the connected ADAR1000s. The dictionary key is the chip_id for each device.
- property element_map
Get the map of elements in the array
- property element_spacing
Get/Set the element spacing for the array in meters
- property elements
Dictionary representing all of the connected ADAR1000 elements sorted by element number. The dictionary key is the element number for each device.
- property frequency
Get/Set the board frequency in Hz
- initialize_devices(pa_off=- 2.5, pa_on=- 2.5, lna_off=- 2, lna_on=- 2)
Suggested initialization routine after powerup
- parameters:
- pa_off: float
Voltage to set the PA_BIAS_OFF values to during initialization
- pa_on: float
Voltage to set the PA_BIAS_ON values to during initialization
- lna_off: float
Voltage to set the LNA_BIAS_OFF values to during initialization
- lna_on: float
Voltage to set the LNA_BIAS_ON values to during initialization
- latch_rx_settings()
Latch in new Gain/Phase settings for the Rx
- latch_tx_settings()
Latch in new Gain/Phase settings for the Tx
- property rx_azimuth
Get the Rx azimuth angle for the array in degrees
- property rx_azimuth_phi
Get the Rx azimuth phi angle for the array in degrees
- property rx_elevation
Get the Rx elevation angle for the array in degrees
- property rx_elevation_phi
Get the Rx elevation phi angle for the array in degrees
- steer_rx(azimuth, elevation)
Steer the Rx array in a particular direction. This method assumes that the entire array is one analog beam.
- parameters:
- azimuth: float
Desired beam angle in degrees for the horizontal direction.
- elevation: float
Desired beam angle in degrees for the vertical direction.
- steer_tx(azimuth, elevation)
Steer the Tx array in a particular direction. This method assumes that the entire array is one analog beam.
- parameters:
- azimuth: float
Desired beam angle in degrees for the horizontal direction.
- elevation: float
Desired beam angle in degrees for the vertical direction.
- property temperatures
Get the temperature readings of the ADAR1000s in a dictionary
- property tx_azimuth
Get the Tx azimuth angle for the array in degrees
- property tx_azimuth_phi
Get the Tx azimuth phi angle for the array in degrees
- property tx_elevation
Get the Tx elevation angle for the array in degrees
- property tx_elevation_phi
Get the Tx elevation phi angle for the array in degrees