usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

-- GPIO on N320 --

NE
Nowicki, Ed H.
Mon, Jan 27, 2020 1:44 PM

Hi,

I’m having a problem using the front panel GPIO on an N320.  I reverted back to a standard “HG” FPGA build and compiled the GPIO example program (UHD 3.14.0).  However, when I run the example program I get the following:

Error: RuntimeError: The hardware has no gpio bank `FP0'

Is the front panel GPIO bank on the N320 called “FP0” or something else?  I did not see a reference to this in the .dts.

See below for a “uhd_uspr_probe”, “uhd_config_info” dump, and the terminal output after running ./gpio.

Thanks for any help.

Regards,
Ed Nowicki

xku@sdr_nuc:~/workarea-uhd/uhd/host/examples/gpio/build$ uhd_usrp_probe
[INFO] [UHD] linux; GNU C++ version 7.4.0; Boost_106501; UHD_3.14.0.HEAD-0-g6875d061
[INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=192.168.20.2,type=n3xx,product=n320,serial=31A5C5A,claimed=False,addr=192.168.20.2
[INFO] [MPM.PeriphManager] init() called with device args `mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320'.
[INFO] [MPM.Rhodium-0] init() called with args `mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320'
[INFO] [MPM.Rhodium-1] init() called with args `mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320'
[INFO] [0/Replay_0] Initializing block control (NOC ID: 0x4E91A00000000004)
[INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000000320)
[INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000000320)
[INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000001)
[INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000001)
[INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000000)
[INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000000)
[INFO] [0/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000)
[INFO] [0/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000)
_____________________________________________________
/
|       Device: N300-Series Device
|     _____________________________________________________
|    /
|   |       Mboard: ni-n3xx-31A5C5A
|   |   eeprom_version: 2
|   |   mpm_version: 3.14.1.0-gbfb9c1c7
|   |   pid: 16962
|   |   product: n320
|   |   rev: 7
|   |   rpc_connection: remote
|   |   serial: 31A5C5A
|   |   type: n3xx
|   |   MPM Version: 1.2
|   |   FPGA Version: 5.3
|   |   FPGA git hash: 3de8954.clean
|   |   RFNoC capable: Yes
|   |
|   |   Time sources:  internal, external, gpsdo, sfp0
|   |   Clock sources: external, internal, gpsdo
|   |   Sensors: temp, gps_tpv, gps_time, fan, gps_sky, ref_locked, gps_gpgga, gps_locked
|   |     _____________________________________________________
|   |    /
|   |   |       RX Dboard: A
|   |   |   ID: Unknown (0x0152)
|   |   |   Serial: 3191E7D
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Frontend: 0
|   |   |   |   Name: Rhodium
|   |   |   |   Antennas: TX/RX, RX2, CAL, TERM
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 1.000 to 6000.000 MHz
|   |   |   |   Gain range all: 0.0 to 60.0 step 1.0 dB
|   |   |   |   Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz
|   |   |   |   Connection Type:
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Codec: A
|   |   |   |   Name: ad9695-625
|   |   |   |   Gain Elements: None
|   |     _____________________________________________________
|   |    /
|   |   |       RX Dboard: B
|   |   |   ID: Unknown (0x0152)
|   |   |   Serial: 3191E79
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Frontend: 0
|   |   |   |   Name: Rhodium
|   |   |   |   Antennas: TX/RX, RX2, CAL, TERM
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 1.000 to 6000.000 MHz
|   |   |   |   Gain range all: 0.0 to 60.0 step 1.0 dB
|   |   |   |   Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz
|   |   |   |   Connection Type:
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Codec: B
|   |   |   |   Name: ad9695-625
|   |   |   |   Gain Elements: None
|   |     _____________________________________________________
|   |    /
|   |   |       TX Dboard: A
|   |   |   ID: Unknown (0x0152)
|   |   |   Serial: 3191E7D
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Frontend: 0
|   |   |   |   Name: Rhodium
|   |   |   |   Antennas: TX/RX, CAL, TERM
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 1.000 to 6000.000 MHz
|   |   |   |   Gain range all: 0.0 to 60.0 step 1.0 dB
|   |   |   |   Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz
|   |   |   |   Connection Type:
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Codec: A
|   |   |   |   Name: dac37j82
|   |   |   |   Gain Elements: None
|   |     _____________________________________________________
|   |    /
|   |   |       TX Dboard: B
|   |   |   ID: Unknown (0x0152)
|   |   |   Serial: 3191E79
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Frontend: 0
|   |   |   |   Name: Rhodium
|   |   |   |   Antennas: TX/RX, CAL, TERM
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 1.000 to 6000.000 MHz
|   |   |   |   Gain range all: 0.0 to 60.0 step 1.0 dB
|   |   |   |   Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz
|   |   |   |   Connection Type:
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Codec: B
|   |   |   |   Name: dac37j82
|   |   |   |   Gain Elements: None
|   |     _____________________________________________________
|   |    /
|   |   |       RFNoC blocks on this device:
|   |   |
|   |   |   * Replay_0
|   |   |   * Radio_0
|   |   |   * Radio_1
|   |   |   * DDC_0
|   |   |   * DDC_1
|   |   |   * DUC_0
|   |   |   * DUC_1
|   |   |   * FIFO_0
|   |   |   * FIFO_1

~~~~~~~~~~~~~

xku@sdr_nuc:~/workarea-uhd/uhd/host/examples/gpio/build$ uhd_config_info --print-all
UHD 3.14.0.HEAD-0-g6875d061
Build date: Thu, 20 Jun 2019 18:53:05
C compiler: GNU 7.4.0
C++ compiler: GNU 7.4.0
C flags: -DUHD_RFNOC_ENABLED -DHAVE_CONFIG_H -DUHD_LOG_MIN_LEVEL=1 -DUHD_LOG_CONSOLE_LEVEL=2 -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_CONSOLE_COLOR
C++ flags: -DUHD_RFNOC_ENABLED -DHAVE_CONFIG_H -DUHD_LOG_MIN_LEVEL=1 -DUHD_LOG_CONSOLE_LEVEL=2 -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_CONSOLE_COLOR -fvisibility=hidden -fvisibility-inlines-hidden
Enabled components: LibUHD, LibUHD - C API, LibUHD - Python API, Examples, Utils, Tests, USB, B100, B200, USRP1, USRP2, X300, N230, MPMD, N300, N320, E320, OctoClock
Install prefix: /usr/local
Boost version: 1.65.1
Libusb version: 1.0.23
Package path: /usr/local
Images directory: /usr/local/share/uhd/images
ABI version string: 3.14.0

xku@sdr_nuc:~/workarea-uhd/uhd/host/examples/gpio/build$
xku@sdr_nuc:~/workarea-uhd/uhd/host/examples/gpio/build$ ./gpio

Creating the usrp device with: ...
[INFO] [UHD] linux; GNU C++ version 7.4.0; Boost_106501; UHD_3.14.0.HEAD-0-g6875d061
[INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=192.168.20.2,type=n3xx,product=n320,serial=31A5C5A,claimed=False,addr=192.168.20.2
[INFO] [MPM.PeriphManager] init() called with device args mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320'. [INFO] [MPM.Rhodium-0] init() called with args mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320'
[INFO] [MPM.Rhodium-1] init() called with args `mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320'
[INFO] [0/Replay_0] Initializing block control (NOC ID: 0x4E91A00000000004)
[INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000000320)
[INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000000320)
[INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000001)
[INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000001)
[INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000000)
[INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000000)
[INFO] [0/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000)
[INFO] [0/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000)
Using Device: Single USRP:
Device: N300-Series Device
Mboard 0: ni-n3xx-31A5C5A
RX Channel: 0
RX DSP: 0
RX Dboard: A
RX Subdev: Rhodium
RX Channel: 1
RX DSP: 0
RX Dboard: B
RX Subdev: Rhodium
TX Channel: 0
TX DSP: 0
TX Dboard: A
TX Subdev: Rhodium
TX Channel: 1
TX DSP: 0
TX Dboard: B
TX Subdev: Rhodium

Initial GPIO values:
Bit  10  9  8  7  6  5  4  3  2  1  0
Error: RuntimeError: The hardware has no gpio bank `FP0'
xku@sdr_nuc:~/workarea-uhd/uhd/host/examples/gpio/build$

Hi, I’m having a problem using the front panel GPIO on an N320. I reverted back to a standard “HG” FPGA build and compiled the GPIO example program (UHD 3.14.0). However, when I run the example program I get the following: Error: RuntimeError: The hardware has no gpio bank `FP0' Is the front panel GPIO bank on the N320 called “FP0” or something else? I did not see a reference to this in the .dts. See below for a “uhd_uspr_probe”, “uhd_config_info” dump, and the terminal output after running ./gpio. Thanks for any help. Regards, Ed Nowicki ~~~~~~~~~~~~~~ xku@sdr_nuc:~/workarea-uhd/uhd/host/examples/gpio/build$ uhd_usrp_probe [INFO] [UHD] linux; GNU C++ version 7.4.0; Boost_106501; UHD_3.14.0.HEAD-0-g6875d061 [INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=192.168.20.2,type=n3xx,product=n320,serial=31A5C5A,claimed=False,addr=192.168.20.2 [INFO] [MPM.PeriphManager] init() called with device args `mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320'. [INFO] [MPM.Rhodium-0] init() called with args `mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320' [INFO] [MPM.Rhodium-1] init() called with args `mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320' [INFO] [0/Replay_0] Initializing block control (NOC ID: 0x4E91A00000000004) [INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000000320) [INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000000320) [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000001) [INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000001) [INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000000) [INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000000) [INFO] [0/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000) [INFO] [0/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000) _____________________________________________________ / | Device: N300-Series Device | _____________________________________________________ | / | | Mboard: ni-n3xx-31A5C5A | | eeprom_version: 2 | | mpm_version: 3.14.1.0-gbfb9c1c7 | | pid: 16962 | | product: n320 | | rev: 7 | | rpc_connection: remote | | serial: 31A5C5A | | type: n3xx | | MPM Version: 1.2 | | FPGA Version: 5.3 | | FPGA git hash: 3de8954.clean | | RFNoC capable: Yes | | | | Time sources: internal, external, gpsdo, sfp0 | | Clock sources: external, internal, gpsdo | | Sensors: temp, gps_tpv, gps_time, fan, gps_sky, ref_locked, gps_gpgga, gps_locked | | _____________________________________________________ | | / | | | RX Dboard: A | | | ID: Unknown (0x0152) | | | Serial: 3191E7D | | | _____________________________________________________ | | | / | | | | RX Frontend: 0 | | | | Name: Rhodium | | | | Antennas: TX/RX, RX2, CAL, TERM | | | | Sensors: lo_locked | | | | Freq range: 1.000 to 6000.000 MHz | | | | Gain range all: 0.0 to 60.0 step 1.0 dB | | | | Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz | | | | Connection Type: | | | | Uses LO offset: No | | | _____________________________________________________ | | | / | | | | RX Codec: A | | | | Name: ad9695-625 | | | | Gain Elements: None | | _____________________________________________________ | | / | | | RX Dboard: B | | | ID: Unknown (0x0152) | | | Serial: 3191E79 | | | _____________________________________________________ | | | / | | | | RX Frontend: 0 | | | | Name: Rhodium | | | | Antennas: TX/RX, RX2, CAL, TERM | | | | Sensors: lo_locked | | | | Freq range: 1.000 to 6000.000 MHz | | | | Gain range all: 0.0 to 60.0 step 1.0 dB | | | | Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz | | | | Connection Type: | | | | Uses LO offset: No | | | _____________________________________________________ | | | / | | | | RX Codec: B | | | | Name: ad9695-625 | | | | Gain Elements: None | | _____________________________________________________ | | / | | | TX Dboard: A | | | ID: Unknown (0x0152) | | | Serial: 3191E7D | | | _____________________________________________________ | | | / | | | | TX Frontend: 0 | | | | Name: Rhodium | | | | Antennas: TX/RX, CAL, TERM | | | | Sensors: lo_locked | | | | Freq range: 1.000 to 6000.000 MHz | | | | Gain range all: 0.0 to 60.0 step 1.0 dB | | | | Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz | | | | Connection Type: | | | | Uses LO offset: No | | | _____________________________________________________ | | | / | | | | TX Codec: A | | | | Name: dac37j82 | | | | Gain Elements: None | | _____________________________________________________ | | / | | | TX Dboard: B | | | ID: Unknown (0x0152) | | | Serial: 3191E79 | | | _____________________________________________________ | | | / | | | | TX Frontend: 0 | | | | Name: Rhodium | | | | Antennas: TX/RX, CAL, TERM | | | | Sensors: lo_locked | | | | Freq range: 1.000 to 6000.000 MHz | | | | Gain range all: 0.0 to 60.0 step 1.0 dB | | | | Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz | | | | Connection Type: | | | | Uses LO offset: No | | | _____________________________________________________ | | | / | | | | TX Codec: B | | | | Name: dac37j82 | | | | Gain Elements: None | | _____________________________________________________ | | / | | | RFNoC blocks on this device: | | | | | | * Replay_0 | | | * Radio_0 | | | * Radio_1 | | | * DDC_0 | | | * DDC_1 | | | * DUC_0 | | | * DUC_1 | | | * FIFO_0 | | | * FIFO_1 ~~~~~~~~~~~~~ xku@sdr_nuc:~/workarea-uhd/uhd/host/examples/gpio/build$ uhd_config_info --print-all UHD 3.14.0.HEAD-0-g6875d061 Build date: Thu, 20 Jun 2019 18:53:05 C compiler: GNU 7.4.0 C++ compiler: GNU 7.4.0 C flags: -DUHD_RFNOC_ENABLED -DHAVE_CONFIG_H -DUHD_LOG_MIN_LEVEL=1 -DUHD_LOG_CONSOLE_LEVEL=2 -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_CONSOLE_COLOR C++ flags: -DUHD_RFNOC_ENABLED -DHAVE_CONFIG_H -DUHD_LOG_MIN_LEVEL=1 -DUHD_LOG_CONSOLE_LEVEL=2 -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_CONSOLE_COLOR -fvisibility=hidden -fvisibility-inlines-hidden Enabled components: LibUHD, LibUHD - C API, LibUHD - Python API, Examples, Utils, Tests, USB, B100, B200, USRP1, USRP2, X300, N230, MPMD, N300, N320, E320, OctoClock Install prefix: /usr/local Boost version: 1.65.1 Libusb version: 1.0.23 Package path: /usr/local Images directory: /usr/local/share/uhd/images ABI version string: 3.14.0 ~~~~~~~~~~~~~~~~~~~~ xku@sdr_nuc:~/workarea-uhd/uhd/host/examples/gpio/build$ xku@sdr_nuc:~/workarea-uhd/uhd/host/examples/gpio/build$ ./gpio Creating the usrp device with: ... [INFO] [UHD] linux; GNU C++ version 7.4.0; Boost_106501; UHD_3.14.0.HEAD-0-g6875d061 [INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=192.168.20.2,type=n3xx,product=n320,serial=31A5C5A,claimed=False,addr=192.168.20.2 [INFO] [MPM.PeriphManager] init() called with device args `mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320'. [INFO] [MPM.Rhodium-0] init() called with args `mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320' [INFO] [MPM.Rhodium-1] init() called with args `mgmt_addr=192.168.20.2,clock_source=internal,time_source=internal,product=n320' [INFO] [0/Replay_0] Initializing block control (NOC ID: 0x4E91A00000000004) [INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000000320) [INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000000320) [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000001) [INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000001) [INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000000) [INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000000) [INFO] [0/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000) [INFO] [0/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000) Using Device: Single USRP: Device: N300-Series Device Mboard 0: ni-n3xx-31A5C5A RX Channel: 0 RX DSP: 0 RX Dboard: A RX Subdev: Rhodium RX Channel: 1 RX DSP: 0 RX Dboard: B RX Subdev: Rhodium TX Channel: 0 TX DSP: 0 TX Dboard: A TX Subdev: Rhodium TX Channel: 1 TX DSP: 0 TX Dboard: B TX Subdev: Rhodium Initial GPIO values: Bit 10 9 8 7 6 5 4 3 2 1 0 Error: RuntimeError: The hardware has no gpio bank `FP0' xku@sdr_nuc:~/workarea-uhd/uhd/host/examples/gpio/build$