解决ubuntu 16.04系统上2017.06版本之后的LimeSDR V1.4驱动不能正常运行OpenAirInterface搭建的LTE实验环境的问题

参考ubuntu 16.04系统LimeSDR V1.4使用OpenAirInterface搭建LTE实验环境搭建实验环境的时候,只能使用LimeSDR v17.06.0的驱动,更新版本的的驱动,运行之后,手机设备不能正确的连接到建立的基站。

这个原因是由于

这部分的修改,导致问题的部分如下图:

左侧为修改前的代码,右侧为修改后的代码

从图片中代码的对比可以看到,当调用int LMS7_Device::SetGain(bool dir_tx, size_t chan, unsigned gain)设置的发送(TX)增益(gain)小于等于52的时候,代码没有设置硬件的CG_IAMP_TBB寄存器。默认情况下,OpenAirInterface设置的发送增益为7dB

要解决这个问题,则需要修改这部分的代码,修改后的代码如下:

上述的代码修改之后,就可以用最新的LimeSDR v17.06.0驱动测试运行OpenAirInterface的服务了。

以上的修改截至有效到:

也就是到LimeSDR v17.12.0版本都是可以这样修改的,(不过验证LimeSDR v17.12.0版本自身是不稳定的),后续的版本就不需要修改上面的部分了,后续版本已经修正了上面的问题。

目前测试中,下列版本可以在上面修改后继续正常工作:

如下的版本修改导致一系列的寄存器含义改变,这点需要注意,果然是MCU的改变导致了问题。

对于使用最新版本驱动LimeSDR v18.04.1的情况,目前测试发现当天线的发射功率设置为67(很神奇的一个数字,大于这个数字都是可以的)的时候,OpenAirInterface可以正常工作。从现象上观察应该是最新版本的驱动在发射功率设置上存在BUG,估计是开发人员没有测试发射功率比较低的情况。

修改的话,执行如下修改

里面的tx_gain修改为67即可(默认为7)。

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注