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