本文主要是介绍【USRP】报错:Error: RuntimeError: [ad9361_device_t] BBPLL not locked,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个错误发生得源码位于: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、配置程序的问题,时序不对,导致无法稳定
这篇关于【USRP】报错:Error: RuntimeError: [ad9361_device_t] BBPLL not locked的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!