diff --git a/qick_lib/qick/VERSION b/qick_lib/qick/VERSION index a78d2d6b..07267c51 100644 --- a/qick_lib/qick/VERSION +++ b/qick_lib/qick/VERSION @@ -1 +1 @@ -0.2.406 +0.2.413 diff --git a/qick_lib/qick/rfboard.py b/qick_lib/qick/rfboard.py index 09216a47..00f888cb 100644 --- a/qick_lib/qick/rfboard.py +++ b/qick_lib/qick/rfboard.py @@ -1542,6 +1542,12 @@ def enable_dc(self, gain): def get_gain(self): pass +class AbsDacBalunChain(ABC): + pass + +class AbsAdcBalunChain(ABC): + pass + class AdcRfChain111(AbsAdcRfChain): def __init__(self, ch, switches, attn_spi): # Channel number. @@ -1796,6 +1802,14 @@ def get_gain(self): with self.soc.board_sel.enable_context(self.card_num): return self.gain.get_gain() +class DacBalunChain216(AbsDacBalunChain, Chain216): + def __init__(self, soc, card, global_ch, card_num, card_ch): + super().__init__(soc, card, global_ch, card_num, card_ch) + +class AdcBalunChain216(AbsAdcBalunChain, Chain216): + def __init__(self, soc, card, global_ch, card_num, card_ch): + super().__init__(soc, card, global_ch, card_num, card_ch) + class DaughterCard216(ABC): NCH = None # channels per daughter card CARDNUM_OFFSET = None # DAC cards are 0-3, ADC cards are 4-7 @@ -1839,6 +1853,13 @@ class DacDcCard216(DaughterCard216): GPIO_OUTPUTS = [("PD%d"%(i), 0) for i in range(4)] NAME = 'DC Out' +class DacBalunCard216(DaughterCard216): + NCH = 4 + CARDNUM_OFFSET = 0 + CHAIN_CLASS = DacBalunChain216 + GPIO_OUTPUTS = [None]*4 + NAME = 'Balun Out' + class AdcRfCard216(DaughterCard216): NCH = 2 CARDNUM_OFFSET = 4 @@ -1855,6 +1876,13 @@ class AdcDcCard216(DaughterCard216): GPIO_OUTPUTS = [("PD%d"%(i), 1) for i in range(2)] + [None]*2 NAME = 'DC In' +class AdcBalunCard216(DaughterCard216): + NCH = 2 + CARDNUM_OFFSET = 4 + CHAIN_CLASS = AdcBalunChain216 + GPIO_OUTPUTS = [None]*4 + NAME = 'Balun In' + class BoardSelection: """ This class is used to enable one daughter card on the RF Board for the ZCU216, V1. @@ -2309,6 +2337,8 @@ def rfb_config(self, no_tproc): card = DacDcCard216(card_num, self, gpio) elif card_id == 3: card = DacRfCard216(card_num, self, gpio) + elif card_id == 6: + card = DacBalunCard216(card_num, self, gpio) else: card = None if card is None: @@ -2331,6 +2361,8 @@ def rfb_config(self, no_tproc): card = AdcDcCard216(card_num, self, gpio) elif card_id == 2: card = AdcRfCard216(card_num, self, gpio) + elif card_id == 5: + card = AdcBalunCard216(card_num, self, gpio) else: card = None if card is None: