Revision fb1f8e1a host/lib/usrp/dsp_utils.cpp

b/host/lib/usrp/dsp_utils.cpp
30 30
    return std::ceil(std::log(num)/std::log(T(2)));
31 31
}
32 32

  
33
/*!
34
 *     3                   2                   1                   0
35
 *   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
36
 *  +-------------------------------+-------+-------+-------+-------+
37
 *  |                                               | DDC0Q | DDC0I |
38
 *  +-------------------------------+-------+-------+-------+-------+
39
 */
33 40
boost::uint32_t dsp_type1::calc_rx_mux_word(subdev_conn_t subdev_conn){
34 41
    switch(subdev_conn){
35
    case SUBDEV_CONN_COMPLEX_IQ: return (0x1 << 2) | (0x0 << 0); //DDC0Q=ADC1, DDC0I=ADC0
36
    case SUBDEV_CONN_COMPLEX_QI: return (0x0 << 2) | (0x1 << 0); //DDC0Q=ADC0, DDC0I=ADC1
37
    case SUBDEV_CONN_REAL_I:     return (0x3 << 2) | (0x0 << 0); //DDC0Q=ZERO, DDC0I=ADC0
38
    case SUBDEV_CONN_REAL_Q:     return (0x1 << 2) | (0x3 << 0); //DDC0Q=ADC1, DDC0I=ZERO
42
    case SUBDEV_CONN_COMPLEX_IQ: return (0x1 << 4) | (0x0 << 0); //DDC0Q=ADC0Q, DDC0I=ADC0I
43
    case SUBDEV_CONN_COMPLEX_QI: return (0x0 << 4) | (0x1 << 0); //DDC0Q=ADC0I, DDC0I=ADC0Q
44
    case SUBDEV_CONN_REAL_I:     return (0xf << 4) | (0x0 << 0); //DDC0Q=ZERO,  DDC0I=ADC0I
45
    case SUBDEV_CONN_REAL_Q:     return (0x1 << 4) | (0xf << 0); //DDC0Q=ADC0Q, DDC0I=ZERO
39 46
    default:                     UHD_THROW_INVALID_CODE_PATH();
40 47
    }
41 48
}
42 49

  
50
/*!
51
 *     3                   2                   1                   0
52
 *   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
53
 *  +-------------------------------+-------+-------+-------+-------+
54
 *  |                                               | DAC0Q | DAC0I |
55
 *  +-------------------------------+-------+-------+-------+-------+
56
 */
43 57
boost::uint32_t dsp_type1::calc_tx_mux_word(subdev_conn_t subdev_conn){
44 58
    switch(subdev_conn){
45
    case SUBDEV_CONN_COMPLEX_IQ: return (0x1 << 4) | (0x0 << 0); //DAC1=DUC0Q, DAC0=DUC0I
46
    case SUBDEV_CONN_COMPLEX_QI: return (0x0 << 4) | (0x1 << 0); //DAC1=DUC0I, DAC0=DUC0Q
47
    case SUBDEV_CONN_REAL_I:     return (0xf << 4) | (0x0 << 0); //DAC1=ZERO,  DAC0=DUC0I
48
    case SUBDEV_CONN_REAL_Q:     return (0x0 << 4) | (0xf << 0); //DAC1=DUC0I, DAC0=ZERO
59
    case SUBDEV_CONN_COMPLEX_IQ: return (0x1 << 4) | (0x0 << 0); //DAC0Q=DUC0Q, DAC0I=DUC0I
60
    case SUBDEV_CONN_COMPLEX_QI: return (0x0 << 4) | (0x1 << 0); //DAC0Q=DUC0I, DAC0I=DUC0Q
61
    case SUBDEV_CONN_REAL_I:     return (0xf << 4) | (0x0 << 0); //DAC0Q=ZERO,  DAC0I=DUC0I
62
    case SUBDEV_CONN_REAL_Q:     return (0x0 << 4) | (0xf << 0); //DAC0Q=DUC0I, DAC0I=ZERO
49 63
    default:                     UHD_THROW_INVALID_CODE_PATH();
50 64
    }
51 65
}

Also available in: Unified diff