这个错误发生得源码位于:ad9361_device.cpp
/***********************************************************************
* Calibration functions
***********************************************************************/
/* Calibrate and lock the BBPLL.
*
* This function should be called anytime the BBPLL is tuned. */
void ad9361_device_t::_calibrate_lock_bbpll()
{
_io_iface->poke8(0x03F, 0x05); // Start the BBPLL calibration
_io_iface->poke8(0x03F, 0x01); // Clear the 'start' bit
/* Increase BBPLL KV and phase margin. */
_io_iface->poke8(0x04c, 0x86);
_io_iface->poke8(0x04d, 0x01);
_io_iface->poke8(0x04d, 0x05);
/* Wait for BBPLL lock. */
size_t count = 0;
while (!(_io_iface->peek8(0x05e) & 0x80)) {
if (count > 1000) {
throw uhd::runtime_error("[ad9361_device_t] BBPLL not locked");
break;
}
count++;
std::this_thread::sleep_for(std::chrono::milliseconds(2));
}
}
AD9361的BBPLL没有锁定上;
1、AD9361的问题,硬件问题。
2、供电不够,导致芯片无法稳定下来;
3、配置程序的问题,时序不对,导致无法稳定