diff options
Diffstat (limited to 'mpm/include')
-rw-r--r-- | mpm/include/mpm/ad937x/ad937x_ctrl.hpp | 91 |
1 files changed, 89 insertions, 2 deletions
diff --git a/mpm/include/mpm/ad937x/ad937x_ctrl.hpp b/mpm/include/mpm/ad937x/ad937x_ctrl.hpp index 82e3d0ea2..22029a135 100644 --- a/mpm/include/mpm/ad937x/ad937x_ctrl.hpp +++ b/mpm/include/mpm/ad937x/ad937x_ctrl.hpp @@ -55,6 +55,46 @@ class ad937x_ctrl : public boost::noncopyable { public: typedef std::shared_ptr<ad937x_ctrl> sptr; + + static const uint32_t TX_BB_FILTER; + static const uint32_t ADC_TUNER; + static const uint32_t TIA_3DB_CORNER; + static const uint32_t DC_OFFSET; + static const uint32_t TX_ATTENUATION_DELAY; + static const uint32_t RX_GAIN_DELAY; + static const uint32_t FLASH_CAL; + static const uint32_t PATH_DELAY; + static const uint32_t TX_LO_LEAKAGE_INTERNAL; + static const uint32_t TX_LO_LEAKAGE_EXTERNAL ; + static const uint32_t TX_QEC_INIT; + static const uint32_t LOOPBACK_RX_LO_DELAY; + static const uint32_t LOOPBACK_RX_RX_QEC_INIT; + static const uint32_t RX_LO_DELAY; + static const uint32_t RX_QEC_INIT; + static const uint32_t DPD_INIT; + static const uint32_t CLGC_INIT; + static const uint32_t VSWR_INIT; + static const uint32_t TRACK_RX1_QEC; + static const uint32_t TRACK_RX2_QEC; + static const uint32_t TRACK_ORX1_QEC; + static const uint32_t TRACK_ORX2_QEC; + static const uint32_t TRACK_TX1_LOL; + static const uint32_t TRACK_TX2_LOL; + static const uint32_t TRACK_TX1_QEC; + static const uint32_t TRACK_TX2_QEC; + static const uint32_t TRACK_TX1_DPD; + static const uint32_t TRACK_TX2_DPD; + static const uint32_t TRACK_TX1_CLGC; + static const uint32_t TRACK_TX2_CLGC; + static const uint32_t TRACK_TX1_VSWR; + static const uint32_t TRACK_TX2_VSWR; + static const uint32_t TRACK_ORX1_QEC_SNLO; + static const uint32_t TRACK_ORX2_QEC_SNLO; + static const uint32_t TRACK_SRX_QEC; + static const uint32_t DEFAULT_INIT_CALS_MASKS; + static const uint32_t DEFAULT_TRACKING_CALS_MASKS; + static const uint32_t DEFAULT_INIT_CALS_TIMEOUT; + /*! \brief make a new AD9371 ctrl object using the specified SPI iface * * \param spi_mutex a mutex that will be locked whenever the SPI iface is to be used @@ -72,7 +112,15 @@ public: //! finishes initialization of the AD9371 by loading the ARM binary and setting a default RF configuration virtual void finish_initialization() = 0; - + + /*! \setup initialization and tracking calibration + * + *\param init_cals_mask bit masking field for init calibration default to 0x4DFF + * NOTE: this init cals mask need to be at least 0x4F. + *\param tracking_cals_mask bit masking field for tracking calibration default to 0xC3 + *\param timeout init calibration timeout. default to 10s + */ + virtual void setup_cal(uint32_t init_cals_mask, uint32_t tracking_cals_mask, uint32_t timeout) = 0; //! resets and start the JESD deframer (JESD Rx, for RF Tx) virtual void start_jesd_rx() = 0; @@ -211,9 +259,10 @@ public: void export_mykonos(){ LIBMPM_BOOST_PREAMBLE("ad937x") using namespace mpm::chips; - bp::class_<ad937x_ctrl, boost::noncopyable, std::shared_ptr<ad937x_ctrl> >("ad937x_ctrl", bp::no_init) + bp::class_<ad937x_ctrl, boost::noncopyable, std::shared_ptr<ad937x_ctrl>>("ad937x_ctrl", bp::no_init) .def("begin_initialization", &ad937x_ctrl::begin_initialization) .def("finish_initialization", &ad937x_ctrl::finish_initialization) + .def("setup_cal", &ad937x_ctrl::setup_cal) .def("start_jesd_rx", &ad937x_ctrl::start_jesd_rx) .def("start_jesd_tx", &ad937x_ctrl::start_jesd_tx) .def("start_radio", &ad937x_ctrl::start_radio) @@ -242,6 +291,44 @@ void export_mykonos(){ .def("set_fir", &ad937x_ctrl::set_fir) .def("get_fir", &ad937x_ctrl::get_fir) .def("get_temperature", &ad937x_ctrl::get_temperature) + .def_readonly("TX_BB_FILTER", &ad937x_ctrl::TX_BB_FILTER) + .def_readonly("ADC_TUNER", &ad937x_ctrl::ADC_TUNER) + .def_readonly("TIA_3DB_CORNER", &ad937x_ctrl::TIA_3DB_CORNER) + .def_readonly("DC_OFFSET", &ad937x_ctrl::DC_OFFSET) + .def_readonly("TX_ATTENUATION_DELAY", &ad937x_ctrl::TX_ATTENUATION_DELAY) + .def_readonly("RX_GAIN_DELAY", &ad937x_ctrl::RX_GAIN_DELAY) + .def_readonly("FLASH_CAL", &ad937x_ctrl::FLASH_CAL) + .def_readonly("PATH_DELAY", &ad937x_ctrl::PATH_DELAY) + .def_readonly("TX_LO_LEAKAGE_INTERNAL", &ad937x_ctrl::TX_LO_LEAKAGE_INTERNAL) + .def_readonly("TX_LO_LEAKAGE_EXTERNAL", &ad937x_ctrl::TX_LO_LEAKAGE_EXTERNAL) + .def_readonly("TX_QEC_INIT", &ad937x_ctrl::TX_QEC_INIT) + .def_readonly("LOOPBACK_RX_LO_DELAY", &ad937x_ctrl::LOOPBACK_RX_LO_DELAY) + .def_readonly("LOOPBACK_RX_RX_QEC_INIT", &ad937x_ctrl::LOOPBACK_RX_RX_QEC_INIT) + .def_readonly("RX_LO_DELAY", &ad937x_ctrl::RX_LO_DELAY) + .def_readonly("RX_QEC_INIT", &ad937x_ctrl::RX_QEC_INIT) + .def_readonly("DPD_INIT", &ad937x_ctrl::DPD_INIT) + .def_readonly("CLGC_INIT", &ad937x_ctrl::CLGC_INIT) + .def_readonly("VSWR_INIT", &ad937x_ctrl::VSWR_INIT) + .def_readonly("TRACK_RX1_QEC", &ad937x_ctrl::TRACK_RX1_QEC) + .def_readonly("TRACK_RX2_QEC", &ad937x_ctrl::TRACK_RX2_QEC) + .def_readonly("TRACK_ORX1_QEC", &ad937x_ctrl::TRACK_ORX1_QEC) + .def_readonly("TRACK_ORX2_QEC", &ad937x_ctrl::TRACK_ORX2_QEC) + .def_readonly("TRACK_TX1_LOL", &ad937x_ctrl::TRACK_TX1_LOL) + .def_readonly("TRACK_TX2_LOL", &ad937x_ctrl::TRACK_TX2_LOL) + .def_readonly("TRACK_TX1_QEC", &ad937x_ctrl::TRACK_TX1_QEC) + .def_readonly("TRACK_TX2_QEC", &ad937x_ctrl::TRACK_TX2_QEC) + .def_readonly("TRACK_TX1_DPD", &ad937x_ctrl::TRACK_TX1_DPD) + .def_readonly("TRACK_TX2_DPD", &ad937x_ctrl::TRACK_TX2_DPD) + .def_readonly("TRACK_TX1_CLGC", &ad937x_ctrl::TRACK_TX1_CLGC) + .def_readonly("TRACK_TX2_CLGC", &ad937x_ctrl::TRACK_TX2_CLGC) + .def_readonly("TRACK_TX1_VSWR", &ad937x_ctrl::TRACK_TX1_VSWR) + .def_readonly("TRACK_TX2_VSWR", &ad937x_ctrl::TRACK_TX2_VSWR) + .def_readonly("TRACK_ORX1_QEC_SNLO", &ad937x_ctrl::TRACK_ORX1_QEC_SNLO) + .def_readonly("TRACK_ORX2_QEC_SNLO", &ad937x_ctrl::TRACK_ORX2_QEC_SNLO) + .def_readonly("TRACK_SRX_QEC", &ad937x_ctrl::TRACK_SRX_QEC) + .def_readonly("DEFAULT_INIT_CALS_MASKS", &ad937x_ctrl::DEFAULT_INIT_CALS_MASKS) + .def_readonly("DEFAULT_TRACKING_CALS_MASKS", &ad937x_ctrl::DEFAULT_TRACKING_CALS_MASKS) + .def_readonly("DEFAULT_INIT_CALS_TIMEOUT", &ad937x_ctrl::DEFAULT_INIT_CALS_TIMEOUT) ; } #endif |