2023年11月29日发(作者:)

USRPB210运⾏gnuradioFPGA固件版本冲突错误解决⽅法

事情起源于昨天拿到USRP后开始调试,结果整了⼀个下午都没解决这个问题。

昨天晚上⾃⼰思考了⼀下,觉得还是版本问题。

⾸先,uhd_find_devices和uhd_usrp_probe均可以正常运⾏,没有报错,固件正常加载,序列号也可看到。

teray@teray-X550JK:~$ uhd_find_devices

[INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_-0-g4e06022c

--------------------------------------------------

-- UHD Device 0

--------------------------------------------------

Device Address:

serial: 86680AA

name: Zhixun-wireless_B210

product: B210

type: b200

teray@teray-X550JK:~$ uhd_usrp_probe

[INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_-0-g4e06022c

[INFO] [B200] Detected Device: B210

[INFO] [B200] Loading FPGA image: /usr/local/share/uhd/images/usrp_b210_...

可以看到固件加载完全正常,但是当我们使⽤apt安装的gnuradio-companion

出现报错如下:

RuntimeError: RuntimeError: Expected FPGA compatibility number 14, but got 16:

The FPGA build is not compatible with the host code build.

Please run:

"/usr/lib/x86_64-linux-gnu/uhd/utils/uhd_images_"

⾸先遇到这个不能慌张,不要按照上⾯所提⽰的运⾏固件下载器更新固件,因为那些下载的是最新版本的固件,对解决问题没有帮助。

到官⽅git上找⼀个⽐较古⽼的版本,⽐如on 17 May 2018发布的v3.11.1.0

Generating: '/home/teray/xe6xa1x8cxe9x9dxa2/gnuradio projects/USRP/top_'

Executing: /usr/bin/python -u /home/teray/桌⾯/gnuradio projects/USRP/top_

linux; GNU C++ version 7.3.0; Boost_106501; UHD_003.010.003.000-0-unknown

(top_:7109): IBUS-WARNING **: 11:47:52.488: The owner of /home/teray/.config/ibus/bus is not root!

-- Detected Device: B210

-- Loading FPGA image: /home/teray/software/uhd_firm/uhd-images_3.11.1.0/usrp_b210_... done

-- Operating over USB 3.

-- Detecting internal GPSDO.... No GPSDO found

-- Initialize CODEC control...

-- Initialize Radio control...

-- Performing register loopback test... pass

-- Performing register loopback test... pass

-- Performing CODEC loopback test... pass

-- Performing CODEC loopback test... pass

-- Setting master clock rate selection to 'automatic'.

-- Asking for clock rate 16.000000 MHz...

-- Actually got clock rate 16.000000 MHz.

-- Performing timer loopback test... pass

-- Performing timer loopback test... pass

-- Asking for clock rate 40.000000 MHz...

-- Actually got clock rate 40.000000 MHz.

-- Performing timer loopback test... pass

-- Performing timer loopback test... pass

成功。

以上。