Revision 1bef3487 host/lib/usrp/dboard/db_wbx_version3.cpp

b/host/lib/usrp/dboard/db_wbx_version3.cpp
114 114
    int v3_tx_mod = ADF4350_PDBRF;
115 115

  
116 116
    //set the gpio directions and atr controls
117
    self_base->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, v3_tx_mod|v3_iobits);
118
    self_base->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, RXBB_PDB|ADF4350_PDBRF);
119
    self_base->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, TX_PUP_5V|TX_PUP_3V|v3_tx_mod|v3_iobits);
120
    self_base->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, RX_PUP_5V|RX_PUP_3V|ADF4350_CE|RXBB_PDB|ADF4350_PDBRF|RX_ATTN_MASK);
121

  
122
    //setup ATR for the mixer enables (always enabled to prevent phase slip between bursts)
123
    //set TX gain iobits to min gain (max attenuation) when RX_ONLY or IDLE to suppress LO leakage
124
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_IDLE,        v3_tx_mod, TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod);
125
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_RX_ONLY,     v3_tx_mod, TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod);
126
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY,     v3_tx_mod, TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod);
127
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, v3_tx_mod, TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod);
128

  
129
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_IDLE,        RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB);
130
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_TX_ONLY,     RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB);
131
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_RX_ONLY,     RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB);
132
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_FULL_DUPLEX, RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB);
117
    self_base->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, \
118
            v3_tx_mod|v3_iobits);
119
    self_base->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, \
120
            RXBB_PDB|ADF4350_PDBRF);
121
    self_base->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, \
122
            TX_PUP_5V|TX_PUP_3V|v3_tx_mod|v3_iobits);
123
    self_base->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, \
124
            RX_PUP_5V|RX_PUP_3V|ADF4350_CE|RXBB_PDB|ADF4350_PDBRF|RX_ATTN_MASK);
125

  
126
    //setup ATR for the mixer enables (always enabled to prevent phase
127
    //slip between bursts).  set TX gain iobits to min gain (max attenuation)
128
    //when RX_ONLY or IDLE to suppress LO leakage
129
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \
130
            dboard_iface::ATR_REG_IDLE, v3_tx_mod, \
131
            TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod);
132
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \
133
            dboard_iface::ATR_REG_RX_ONLY, v3_tx_mod, \
134
            TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod);
135
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \
136
            dboard_iface::ATR_REG_TX_ONLY, v3_tx_mod, \
137
            TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod);
138
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \
139
            dboard_iface::ATR_REG_FULL_DUPLEX, v3_tx_mod, \
140
            TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod);
141

  
142
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \
143
            dboard_iface::ATR_REG_IDLE, \
144
            RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB);
145
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \
146
            dboard_iface::ATR_REG_TX_ONLY, \
147
            RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB);
148
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \
149
            dboard_iface::ATR_REG_RX_ONLY, \
150
            RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB);
151
    self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \
152
            dboard_iface::ATR_REG_FULL_DUPLEX, \
153
            RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB);
133 154
}
134 155

  
135 156
wbx_base::wbx_version3::~wbx_version3(void){

Also available in: Unified diff