#include <usrp_slots.h>
#include <string>
Go to the source code of this file.
Classes | |
struct | usrp_dboard_eeprom |
Enumerations | |
enum | usrp_load_status_t { ULS_ERROR = 0, ULS_OK, ULS_ALREADY_LOADED } |
enum | usrp_dbeeprom_status_t { UDBE_OK, UDBE_BAD_SLOT, UDBE_NO_EEPROM, UDBE_INVALID_EEPROM } |
Functions | |
void | usrp_one_time_init () |
initialize libusb; probe busses and devices. Safe to call more than once. | |
void | usrp_rescan () |
struct usb_device * | usrp_find_device (int nth, bool fx2_ok_p=false) |
locate Nth (zero based) USRP device in system. Return pointer or 0 if not found. | |
bool | usrp_usrp_p (struct usb_device *q) |
bool | usrp_usrp0_p (struct usb_device *q) |
bool | usrp_usrp1_p (struct usb_device *q) |
bool | usrp_usrp2_p (struct usb_device *q) |
int | usrp_hw_rev (struct usb_device *q) |
bool | usrp_fx2_p (struct usb_device *q) |
bool | usrp_unconfigured_usrp_p (struct usb_device *q) |
bool | usrp_configured_usrp_p (struct usb_device *q) |
struct usb_dev_handle * | usrp_open_cmd_interface (struct usb_device *dev) |
given a usb_device return an instance of the appropriate usb_dev_handle | |
struct usb_dev_handle * | usrp_open_rx_interface (struct usb_device *dev) |
struct usb_dev_handle * | usrp_open_tx_interface (struct usb_device *dev) |
bool | usrp_close_interface (struct usb_dev_handle *udh) |
close interface. | |
usrp_load_status_t | usrp_load_firmware (struct usb_dev_handle *udh, const char *filename, bool force) |
load intel hex format file into USRP/Cypress FX2 (8051). | |
usrp_load_status_t | usrp_load_firmware_nth (int nth, const char *filename, bool force) |
load intel hex format file into USRP FX2 (8051). | |
usrp_load_status_t | usrp_load_fpga (struct usb_dev_handle *udh, const char *filename, bool force) |
load fpga configuration bitstream | |
bool | usrp_load_standard_bits (int nth, bool force, const std::string fpga_filename="", const std::string firmware_filename="") |
load the regular firmware and fpga bitstream in the Nth USRP. | |
bool | usrp_set_hash (struct usb_dev_handle *udh, int which, const unsigned char hash[USRP_HASH_SIZE]) |
copy the given hash into the USRP hash slot which . The usrp implements two hash slots, 0 and 1. | |
bool | usrp_get_hash (struct usb_dev_handle *udh, int which, unsigned char hash[USRP_HASH_SIZE]) |
retrieve the hash from the USRP hash slot which . The usrp implements two hash slots, 0 and 1. | |
bool | usrp_write_fpga_reg (struct usb_dev_handle *udh, int reg, int value) |
bool | usrp_read_fpga_reg (struct usb_dev_handle *udh, int reg, int *value) |
bool | usrp_set_fpga_reset (struct usb_dev_handle *udh, bool on) |
bool | usrp_set_fpga_tx_enable (struct usb_dev_handle *udh, bool on) |
bool | usrp_set_fpga_rx_enable (struct usb_dev_handle *udh, bool on) |
bool | usrp_set_fpga_tx_reset (struct usb_dev_handle *udh, bool on) |
bool | usrp_set_fpga_rx_reset (struct usb_dev_handle *udh, bool on) |
bool | usrp_set_led (struct usb_dev_handle *udh, int which, bool on) |
bool | usrp_check_rx_overrun (struct usb_dev_handle *udh, bool *overrun_p) |
bool | usrp_check_tx_underrun (struct usb_dev_handle *udh, bool *underrun_p) |
bool | usrp_i2c_write (struct usb_dev_handle *udh, int i2c_addr, const void *buf, int len) |
bool | usrp_i2c_read (struct usb_dev_handle *udh, int i2c_addr, void *buf, int len) |
bool | usrp_spi_write (struct usb_dev_handle *udh, int optional_header, int enables, int format, const void *buf, int len) |
bool | usrp_spi_read (struct usb_dev_handle *udh, int optional_header, int enables, int format, void *buf, int len) |
bool | usrp_9862_write (struct usb_dev_handle *udh, int which_codec, int regno, int value) |
bool | usrp_9862_read (struct usb_dev_handle *udh, int which_codec, int regno, unsigned char *value) |
bool | usrp_9862_write_many (struct usb_dev_handle *udh, int which_codec, const unsigned char *buf, int len) |
Write multiple 9862 regs at once. | |
bool | usrp_9862_write_many_all (struct usb_dev_handle *udh, const unsigned char *buf, int len) |
write specified regs to all 9862's in the system | |
bool | usrp_eeprom_write (struct usb_dev_handle *udh, int i2c_addr, int eeprom_offset, const void *buf, int len) |
bool | usrp_eeprom_read (struct usb_dev_handle *udh, int i2c_addr, int eeprom_offset, void *buf, int len) |
bool | usrp_write_aux_dac (struct usb_dev_handle *uhd, int slot, int which_dac, int value) |
write to the specified aux dac. | |
bool | usrp_read_aux_adc (struct usb_dev_handle *udh, int slot, int which_adc, int *value) |
Read the specified aux adc. | |
const std::string | usrp_dbid_to_string (int dbid) |
usrp daughterboard id to name mapping | |
usrp_dbeeprom_status_t | usrp_read_dboard_eeprom (struct usb_dev_handle *udh, int slot_id, usrp_dboard_eeprom *eeprom) |
Read and return parsed daughterboard eeprom. | |
bool | usrp_write_dboard_offsets (struct usb_dev_handle *udh, int slot_id, short offset0, short offset1) |
write ADC/DAC offset calibration constants to d'board eeprom | |
std::string | usrp_serial_number (struct usb_dev_handle *udh) |
return a usrp's serial number. |
enum usrp_load_status_t |
bool usrp_9862_read | ( | struct usb_dev_handle * | udh, | |
int | which_codec, | |||
int | regno, | |||
unsigned char * | value | |||
) |
bool usrp_9862_write | ( | struct usb_dev_handle * | udh, | |
int | which_codec, | |||
int | regno, | |||
int | value | |||
) |
bool usrp_9862_write_many | ( | struct usb_dev_handle * | udh, | |
int | which_codec, | |||
const unsigned char * | buf, | |||
int | len | |||
) |
Write multiple 9862 regs at once.
buf
contains alternating register_number, register_value pairs. len
must be even and is the length of buf in bytes.
bool usrp_9862_write_many_all | ( | struct usb_dev_handle * | udh, | |
const unsigned char * | buf, | |||
int | len | |||
) |
write specified regs to all 9862's in the system
bool usrp_check_rx_overrun | ( | struct usb_dev_handle * | udh, | |
bool * | overrun_p | |||
) |
bool usrp_check_tx_underrun | ( | struct usb_dev_handle * | udh, | |
bool * | underrun_p | |||
) |
bool usrp_close_interface | ( | struct usb_dev_handle * | udh | ) |
close interface.
bool usrp_configured_usrp_p | ( | struct usb_device * | q | ) |
const std::string usrp_dbid_to_string | ( | int | dbid | ) |
usrp daughterboard id to name mapping
bool usrp_eeprom_read | ( | struct usb_dev_handle * | udh, | |
int | i2c_addr, | |||
int | eeprom_offset, | |||
void * | buf, | |||
int | len | |||
) |
bool usrp_eeprom_write | ( | struct usb_dev_handle * | udh, | |
int | i2c_addr, | |||
int | eeprom_offset, | |||
const void * | buf, | |||
int | len | |||
) |
struct usb_device* usrp_find_device | ( | int | nth, | |
bool | fx2_ok_p = false | |||
) | [read] |
locate Nth (zero based) USRP device in system. Return pointer or 0 if not found.
The following kinds of devices are considered USRPs:
unconfigured USRP (no firwmare loaded) configured USRP (firmware loaded) unconfigured Cypress FX2 (only if fx2_ok_p is true)
bool usrp_fx2_p | ( | struct usb_device * | q | ) |
bool usrp_get_hash | ( | struct usb_dev_handle * | udh, | |
int | which, | |||
unsigned char | hash[USRP_HASH_SIZE] | |||
) |
retrieve the hash
from the USRP hash slot which
. The usrp implements two hash slots, 0 and 1.
int usrp_hw_rev | ( | struct usb_device * | q | ) |
bool usrp_i2c_read | ( | struct usb_dev_handle * | udh, | |
int | i2c_addr, | |||
void * | buf, | |||
int | len | |||
) |
bool usrp_i2c_write | ( | struct usb_dev_handle * | udh, | |
int | i2c_addr, | |||
const void * | buf, | |||
int | len | |||
) |
usrp_load_status_t usrp_load_firmware | ( | struct usb_dev_handle * | udh, | |
const char * | filename, | |||
bool | force | |||
) |
load intel hex format file into USRP/Cypress FX2 (8051).
The filename extension is typically *.ihx
Note that loading firmware may cause the device to renumerate. I.e., change its configuration, invalidating the current device handle.
usrp_load_status_t usrp_load_firmware_nth | ( | int | nth, | |
const char * | filename, | |||
bool | force | |||
) |
load intel hex format file into USRP FX2 (8051).
The filename extension is typically *.ihx
Note that loading firmware may cause the device to renumerate. I.e., change its configuration, invalidating the current device handle. If the result is ULS_OK, usrp_load_firmware_nth delays 1 second then rescans the busses and devices.
usrp_load_status_t usrp_load_fpga | ( | struct usb_dev_handle * | udh, | |
const char * | filename, | |||
bool | force | |||
) |
load fpga configuration bitstream
bool usrp_load_standard_bits | ( | int | nth, | |
bool | force, | |||
const std::string | fpga_filename = "" , |
|||
const std::string | firmware_filename = "" | |||
) |
load the regular firmware and fpga bitstream in the Nth USRP.
This is the normal starting point...
void usrp_one_time_init | ( | ) |
initialize libusb; probe busses and devices. Safe to call more than once.
struct usb_dev_handle* usrp_open_cmd_interface | ( | struct usb_device * | dev | ) | [read] |
given a usb_device return an instance of the appropriate usb_dev_handle
These routines claim the specified interface and select the correct alternate interface. (USB nomenclature is totally screwed!)
If interface can't be opened, or is already claimed by some other process, 0 is returned.
struct usb_dev_handle* usrp_open_rx_interface | ( | struct usb_device * | dev | ) | [read] |
struct usb_dev_handle* usrp_open_tx_interface | ( | struct usb_device * | dev | ) | [read] |
bool usrp_read_aux_adc | ( | struct usb_dev_handle * | udh, | |
int | slot, | |||
int | which_adc, | |||
int * | value | |||
) |
Read the specified aux adc.
slot:
which Tx or Rx slot to read aux dac which_adc:
[0,1] which of the two adcs to read *value
: return value, 12-bit straight binary.
usrp_dbeeprom_status_t usrp_read_dboard_eeprom | ( | struct usb_dev_handle * | udh, | |
int | slot_id, | |||
usrp_dboard_eeprom * | eeprom | |||
) |
Read and return parsed daughterboard eeprom.
bool usrp_read_fpga_reg | ( | struct usb_dev_handle * | udh, | |
int | reg, | |||
int * | value | |||
) |
void usrp_rescan | ( | ) |
std::string usrp_serial_number | ( | struct usb_dev_handle * | udh | ) |
return a usrp's serial number.
Note that this only works on a configured usrp.
bool usrp_set_fpga_reset | ( | struct usb_dev_handle * | udh, | |
bool | on | |||
) |
bool usrp_set_fpga_rx_enable | ( | struct usb_dev_handle * | udh, | |
bool | on | |||
) |
bool usrp_set_fpga_rx_reset | ( | struct usb_dev_handle * | udh, | |
bool | on | |||
) |
bool usrp_set_fpga_tx_enable | ( | struct usb_dev_handle * | udh, | |
bool | on | |||
) |
bool usrp_set_fpga_tx_reset | ( | struct usb_dev_handle * | udh, | |
bool | on | |||
) |
bool usrp_set_hash | ( | struct usb_dev_handle * | udh, | |
int | which, | |||
const unsigned char | hash[USRP_HASH_SIZE] | |||
) |
copy the given hash
into the USRP hash slot which
. The usrp implements two hash slots, 0 and 1.
bool usrp_set_led | ( | struct usb_dev_handle * | udh, | |
int | which, | |||
bool | on | |||
) |
bool usrp_spi_read | ( | struct usb_dev_handle * | udh, | |
int | optional_header, | |||
int | enables, | |||
int | format, | |||
void * | buf, | |||
int | len | |||
) |
bool usrp_spi_write | ( | struct usb_dev_handle * | udh, | |
int | optional_header, | |||
int | enables, | |||
int | format, | |||
const void * | buf, | |||
int | len | |||
) |
bool usrp_unconfigured_usrp_p | ( | struct usb_device * | q | ) |
bool usrp_usrp0_p | ( | struct usb_device * | q | ) |
bool usrp_usrp1_p | ( | struct usb_device * | q | ) |
bool usrp_usrp2_p | ( | struct usb_device * | q | ) |
bool usrp_usrp_p | ( | struct usb_device * | q | ) |
bool usrp_write_aux_dac | ( | struct usb_dev_handle * | uhd, | |
int | slot, | |||
int | which_dac, | |||
int | value | |||
) |
write to the specified aux dac.
slot:
which Tx or Rx slot to write. N.B., SLOT_TX_A and SLOT_RX_A share the same AUX DAC's SLOT_TX_B and SLOT_RX_B share the same AUX DAC's
which_dac:
[0,3] RX slots must use only 0 and 1. TX slots must use only 2 and 3.
AUX DAC 3 is really the 9862 sigma delta output.
value
to write to aux dac. All dacs take straight binary values. Although dacs 0, 1 and 2 are 8-bit and dac 3 is 12-bit, the interface is in terms of 12-bit values [0,4095]
bool usrp_write_dboard_offsets | ( | struct usb_dev_handle * | udh, | |
int | slot_id, | |||
short | offset0, | |||
short | offset1 | |||
) |
write ADC/DAC offset calibration constants to d'board eeprom
bool usrp_write_fpga_reg | ( | struct usb_dev_handle * | udh, | |
int | reg, | |||
int | value | |||
) |