USRP Hardware Driver and USRP Manual  Version: 4.8.0.13-3362-g59e51db9
UHD and USRP Manual
USRP N3xx Series

Table of Contents

Comparative features list

  • Hardware Capabilities:
    • Dual SFP+ Transceivers (can be used with 1 GigE, 10 GigE, and Aurora)
    • External PPS input & output
    • External 10 MHz input & output (20 MHz and 25 MHz inputs also supported)
    • External White Rabbit time/frequency reference input support
    • Internal 25 MHz reference clock
    • Internal GPSDO for timing, location, and 20 MHz reference clock + PPS
    • External GPIO Connector with UHD API control
    • External USB Connection for built-in JTAG debugger and serial console
    • Xilinx Zynq SoC with dual-core ARM Cortex A9 (Speedgrade 2) and Kintex-7 FPGA (XC7Z100 or XC7Z035 depending on variant)
  • Software Capabilities:
  • FPGA Capabilities:
    • Timed commands in FPGA
    • Timed sampling in FPGA
    • RFNoC capability

The N3XX series of USRPs is designed as a platform. The following USRPs are variants of the N3XX series:

N310/N300 4-channel/2-channel Transceiver

N310isoExplode.png
N310 Exploded View
  • Supported master clock rates: 122.88 MHz, 125 MHz, 153.6 MHz
  • Tuning range: 10 MHz to 6 GHz
    • Below 300 MHz, additional LOs and mixer stages are used to shift the signal into the frequency range of the AD9371
    • Tunable down to 1 MHz in UHD however performance is not guaranteed
  • Support for external LOs
  • 4 RX DDC chains in FPGA (2 for N300)
  • 4 TX DUC chain in FPGA (2 for N300)
  • 2 SFP+ connectors

The N310 is a 4-channel transmitter/receiver based on the AD9371 transceiver IC. It has two daughterboards with one AD9371 each; every daughterboard provides two RF channels. Note that the product code "N310" refers to the module consisting of mother- and daughterboard, the daughterboard itself is referred to by its codename, "Magnesium".

The N300 is a subset of the N310. It has 2 TX/RX channels (on a single daughterboard; the daughterboard itself is the same as the N310) and a smaller FPGA (XCZ035). Also, it does not have connectors for external LOs.

N320/N321 2-channel Transceiver

  • Supported master clock rates: 200 MHz, 245.76 MHz, 250 MHz
  • Tuning range: 3 MHz to 6 GHz
    • Below 450 MHz, an additional LO and mixer stage is used to shift the signal into the range of the main LO stage
    • Tunable down to 1 MHz in UHD however performance is not guaranteed
  • Support for external LOs
  • 2 RX DDC chains in FPGA
  • 2 TX DUC chain in FPGA
  • LO sharing between multiple devices (N321 only)
  • 2 SFP+ connectors + 1 QSFP+ connector

The N320 is a 2-channel transmitter/receiver using discrete components instead of an RFIC. It has two daughterboards, each has one ADC/DAC and provides one RF channel.

The difference between the N320 and the N321 is in its LO sharing capability. The N320 has a single input for the TX and RX LOs, respectively. The N321 also has the ability to export its LO up to four times, making it possible to share LOs between a large number of N321 devices without having to provide an external, separate LO source. Due to number of connectors required to provide the large number of LO outputs, the N321 does not have a front-panel GPIO connector.

The N320 has a higher maximum analog bandwidth than the N310. It can provide rates up to 250 Msps, resulting in a usable analog bandwidth of up to 200 MHz. In order to better use the high available rates, the N320/N321 devices have an additional QSFP+ connector on the back panel which can be used for streaming data to and from the radios. In order to facilitate the higher bandwidth, UHD uses a technology called Data Plane Development Kit (DPDK). See the DPDK page for details on how it can improve streaming, and how to use it.

Overview

The Zynq CPU/FPGA and host operating system

The main CPU of the N310 is a Xilinx Zynq SoC XC7Z100 (exception: The N300). It is both a dual-core ARM Cortex A9 CPU and Kintex-7 FPGA on a single die. The CPU is clocked at 800 MHz (speedgrade 2).

The programmable logic (PL, or FPGA) section of the SoC is responsible for handling all sampling data, the 10 GigE network connections, and any other high-speed utility such as custom RFNoC logic. The processing system (PS, or CPU) is running a custom-build OpenEmbedded-based Linux operating system. The OS is responsible for all the device and peripheral management, such as running MPM, configuring the network interfaces, running local UHD sessions, etc.

It is possible to connect to the host OS either via SSH or serial console (see sections SSH connection and Serial connection, respectively).

The STM32 microcontroller

The STM32 microcontroller controls various low-level features of the N3xx series motherboard: It controls the power sequencing, reads out fan speeds and some of the temperature sensors. It is connected to the Zynq via an I2C bus.

It is possible to log into the STM32 using the serial interface (see Connecting to the microcontroller). This will allow certain low-level controls, such as remote power cycling should the CPU have become unresponsive for whatever reason.

The SD card

The N3XX series uses a micro SD card as its main storage. The entire root file system (Linux kernel, libraries) and any user data are stored on this SD card.

The SD card is partitioned into four partitions:

  • Boot partition (contains the bootloader). This partition usually does not require any modifications.
  • Two system partitions (root file systems). These contain the operating system and the home directory (anything mounted under / that is not the data or boot partition). Up until UHD 4.6/Yocto release zeus, the two rootfs partitions are identical in the .sdimg filesystem image. Starting from UHD4.7/Yocto release kirkstone, only the first partition is populated in the .sdimg filesystem image and the second rootfs partition is empty. The reason there are two of these is to enable remote updates: An update running on one partition can update the other one without any effect to the currently running system. Note that the system partitions are erased during updates and are thus unsuitable for permanently storing information.
  • A data partition, mounted in /data. This is the only partition that is not erased during file system updates.

Note: It is possible to access the currently inactive root file system by mounting it. After logging into the device using serial console or SSH (see the following two sections), run the following commands:

$ mkdir temp
$ mount /dev/mmcblk0p3 temp
$ ls temp # You are now accessing the idle partition:
bin   data  etc   lib         media  proc  sbin  tmp    usr
boot  dev   home  lost+found  mnt    run   sys   uboot  var

The device node in the mount command will likely differ, depending on which partition is currently already mounted.

Getting started

This will run you through the first steps relevant to getting your USRP N3XX series up and running.

Assembling the N3XX

Unlike the X300 or N200 series, there is no assembly of daughterboards required. Members of the N3XX product family, such as the N310, ship with daughterboards pre-installed.

Checklist:

  • Connect power and network
  • Read security settings
  • Connect clocking (if required)
  • Connect external LOs (if required)

Updating the file system

Before doing any major work with a newly acquired USRP N300/N310, it is recommended to update the file system. Updating the filesystem can be accomplished directly on the N300/N310 by using Mender or externally by manually writing an image onto a micro SD card and inserting it. While manual updating is faster, Mender requires no direct physical access to the device. For details on using Mender, see Section Mender: Remote update capability .

Manual updating is simply loading an image on the micro SD card. The first step in that process is to obtain an image.

To obtain the default micro SD card image for a specific version of UHD, install that version of UHD (3.11.0.1 or later) on a host system with Internet access and run:

$ uhd_images_downloader -t n3xx_common_sdimg_default

The image will be downloaded to <UHD_INSTALL_DIR>/share/uhd/images/usrp_n3xx_fs.sdimg, where <UHD_INSTALL_DIR> is the UHD installation directory.