adar1000#
- class adi.adar1000.adar1000(uri='', context=None, chip_id='csb1_chip1', device_number=1, array_element_map=None, channel_element_map=None)#
Bases:
attribute
,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:
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