Drivers Tektronix USB Devices



Universal Serial Bus (USB) provides an expandable, hot-pluggable Plug and Play serial interface that ensures a standard, low-cost connection for peripheral devices such as keyboards, mice, joysticks, printers, scanners, storage devices, modems, and video conferencing cameras. Migration to USB is recommended for all peripheral devices that use legacy ports such as PS/2, serial, and parallel ports.

Table of Contents

  • PyVISA and the NI-VISA Library on Windows
  • Python and Libusb with Linux

Drivers Tektronix Usb Devices Adapter

I am trying to get a RSA306B spectrum analyzer to be recognized by NI MAX.The RSA306B is connected to the computer through USB 3.0 -The device shows up in device manager under USB controllers -I have downloaded the drivers provided by Tektronix for the RSA306B -I'm running Windows 7 With the RSA306B plugged in while Tektronix SignalVu-PC is running or not, the device does not show up in NI. Under device descriptor in the device information, I see 'bMaxPacketSize: 0x9'. Some additional information:-I'm connected to the RSA306 through USB 3.0-I'm running Windows 7-The device shows up in device manager under USB-I have downloaded any device drivers provided by Tektronix. I'm sure I'm missing something simple, but it isn't obvious to me.

Drivers Tektronix USB Devices

Finding USB Busses and Devices

  • For Linux, use lsusb to list usb busses and devices connected to them. The command, lsusb -v will provide much information. Then use lsmod to list the kernel modules loaded. Note that LinuxCommand.Org explains shell commands.

Instrument USB Interfaces

  • The USB test and measurement specifications provide the information necessary to communicate with compliant instruments. The GPIB over USB specifications are commonly used. Perusing these documents, one can readily understand why a dynamic library between Python and libusb or a substantial Python module would be so useful. Once you understand how to achieve communication over USB, then you can send commands and receive data according to the syntax for a particular instrument. An oscilloscope might conform to the Interchangeable Virtual Instruments - Scope Class specifications or the Standard Commands for Programmable Instruments (SCPI).

USB Linux Kernel Drivers

  • To understand device drivers in Linux, buy or download for free the Linux Device Driver book. The USB chapter.
  • Writing a Simple USB Driver by Greg Kroah-Hartman is illuminating.
  • The USBTMC kernel driver is a character device driver for USBTMC compliant instruments and can be downloaded here. This is an attractive solution for low speed communication, but since there is no Python module you will have to use ctypes and read and write to the /dev/usbtmcX files directly.

PyVISA and the NI-VISA Library on Windows

Drivers tektronix usb devices wireless adapter
  • PyVisa can be used with XP to communicate with this oscilloscope via USB. As the documentation shows, this is accomplished using a LabView Visa compatible DLL.
  • Tektronix TDS1012B Digital Oscilloscope

    • This Python program acquires a waveform and performs an FFT using the FFT function in the SciPy or numpy packages. The crude tds1012b.py module provides a few functions and classes for the scope. The programming manual for the tds1000/2000 series explains the command sequences.

Drivers Tektronix Usb Devices Pc Camera

PyVISA and the NI-VISA Library on Linux

  • As this informative forum exchange shows, this approach can be problematic, at least for Tektronix oscilloscopes.

PySerial

Drivers Tektronix Usb Devices Wireless Adapter

  • The PySerial module provide a simple means to achieve low speed communication using the serial.Serial class with /dev/tty0usb. As an example, channels.py and prologix_usb2gpib.py modules can be used to create a prologix usb to gpib converter object based on the serial.Serial communication channel object. The Prologix USB to GPIB converter uses the FTDI FT232BL USB-Serial (UART) IC to mimic a serial port connection to the GPIB bus, thus requiring the use of the pyserial module. Upon enumeration, the FT232 usb device is claimed by the kernel modules ftdi_sio and usbserial. You can see if these are loaded by running the lsmod command

Python and Libusb with Linux

  • Libusb provides user-space access to usb devices, and the PyUSB module provides access through Python. The libusb api can be used in lieu of PyUSB documentation. PyLibUSB seems to be similar but uses ctypes. Together with the libusb api, this is an attractive choice.
  • Examples

    • PyUSB can be used to communicate with the prologix device as well, although you have to know much about how the microcontroller uses the IO stream from the FTDI USB chip. The program prologix_pyusb.py finds and claims interface 0 of configuration 1. Note that interface needs to be released from the kernel module that initially claimed the device upon enumeration, presumably ftdi_sio. Also, create or modify /etc/udev/rules.d/11-prologix.rules with GROUP='users' and MODE='0666' so that all users can open the device.

Other Dynamic Libraries, Libusb and Python

  • Libftdi uses libusb to talk to FTDI FT232BM/245BM, FT2232C/D and FT232/245R controllers. This is the open-source version of FTDIs libftd2xx. There is said to be a Python module.
  • The LabJack family of USB analog and digital IO devices uses a custom dynamic library to communicate through libusb. Make sure the file /etc/udev/rules.d/10-labjack.rules has GROUP='users' and MODE='0666' so that all users can open the device. With the LabJack disconnected, reload the udev rules using 'udevadm control --reload-rules'. Also, download the source code for exodriver from labjack.com/support and follow the simple installation instructions. Under Linux, the library liblabjack.so (actually a link to the real library liblabjack.so.2.0.1) is in /usr/local/lib, an unusual location. If the 'import LabJackPython' line in a program results in the error 'could not load LabJackUSB driver', do the following. In /etc/ld.so.conf.d create the file labjack.conf. This file has only one line: /usr/local/lib . Then as root, run ldconfig. If in doubt, run 'ldconfig -v | grep labjack', and you should see a statement about liblabjack.so.

Other Dynamic Libraries And Libusb But No Python

  • The I2C Tiny USB Project provides a USB interface to an I2C port using the Atmel attiny45.
  • The USB Tiny ISP project provides a USB interface to an SPI port using the Atmel ATTINY2313-20PU.
Tektronix-->

Universal Serial Bus (USB) provides an expandable, hot-pluggable Plug and Play serial interface that ensures a standard, low-cost connection for peripheral devices such as keyboards, mice, joysticks, printers, scanners, storage devices, modems, and video conferencing cameras. Migration to USB is recommended for all peripheral devices that use legacy ports such as PS/2, serial, and parallel ports.

Drivers Tektronix Usb Devices Adapters

The USB-IF is a Special Interest Groups (SIGs) that maintains the Official USB Specification, test specifications and tools.

Windows operating systems include native support for USB host controllers, hubs, and devices and systems that comply with the official USB specification. Windows also provides programming interfaces that you can use to develop device drivers and applications that communicate with a USB device.

USB in WindowsWindows 10: What's new for USB

Overview of new features and improvements in USB in Windows 10.

USB FAQ

Frequently asked questions from driver developers about the USB stack and features that are supported in USB.

Microsoft OS Descriptors for USB Devices

Windows defines MS OS descriptors that allows better enumeration when connected to system running Windows operating system

Microsoft-provided USB driversUSB device-side drivers in Windows

A set of drivers for handling common function logic for USB devices.

USB host-side drivers in Windows

Microsoft provides a core stack of drivers that interoperate with devices that are connected to EHCI and xHCI controllers.

USB-IF device class drivers

Windows provides in-box device class drivers for many USB-IF approved device classes, audio, mass storage, and so on.

USB generic function driver–WinUSB

Windows provides Winusb.sys that can be loaded as a function driver for a custom device and a function of a composite device.

USB generic parent driver for composite devices–Usbccgp

Parent driver for USB devices with multiple functions. Usbccgp creates physical device objects (PDOs) for each of those functions. Those individual PDOs are managed by their respective USB function drivers, which could be the Winusb.sys driver or a USB device class driver.

WDF extension for developing USB drivers
  • USB connector manager class extension (UcmCx) reference
  • USB host controller (UCX) reference
  • USB function class extension (UFX) reference
Testing USB devices with Windows

Get information about the tools that you can use to test your USB hardware or software, capture traces of operations and other system events, and observe how the USB driver stack responds to a request sent by a client driver or an application.

Read an overview of tests in the Hardware Certification Kit that enable hardware vendors and device manufacturers to prepare their USB devices and host controllers for Windows Hardware Certification submission.

Other Resources for USB

Official USB Specification

Provides complete technical details for the USB protocol.

Microsoft Windows USB Core Team Blog

Check out posts written by the Microsoft USB Team. The blog focuses on the Windows USB driver stack that works with various USB Host controllers and USB hubs found in Windows PC. A useful resource for USB client driver developers and USB hardware designers understand the driver stack implementation, resolve common issues, and explain how to use tools for gathering traces and log files.

OSR Online Lists - ntdev

Discussion list managed by OSR Online for kernel-mode driver developers.

Windows Dev-Center for Hardware Development

Miscellaneous resources based on frequently asked questions from developers who are new to developing USB devices and drivers that work with Windows operating systems.

USB-related videos

UWP apps for USB devicesUnderstanding USB 3.0 in Windows 8Building great USB 3.0 devicesUSB Debugging Innovations in Windows 8 (Part I, II, & III)

USB hardware for learning

MUTT devices

MUTT and SuperMUTT devices and the accompanying software package are integrated into the HCK suite of USB tests. They provide automated testing that can be used during the development cycle of USB controllers, devices and systems, especially stress testing.

OSR USB FX2 Learning Kit

If you are new to USB driver development. The kit is the most suitable to study USB samples included in this documentation set. You can get the learning kit from OSR Online Store.

Write a USB client driver (KMDF, UMDF)

Introduces you to USB driver development. Provides information about choosing the most appropriate model for providing a USB driver for your device. This section also includes tutorials about writing your first user-mode and kernel-mode USB drivers by using the USB templates included with Microsoft Visual Studio.

Write a USB host controller driver

If you are developing an xHCI host controller that is not compliant with the specification or developing a custom non-xHCI hardware (such as a virtual host controller), you can write a host controller driver that communicates with UCX. For example, consider a wireless dock that supports USB devices. The PC communicates with USB devices through the wireless dock by using USB over TCP as a transport.

  • USB host controller (UCX) reference
Write a function controller driver for a USB device

You can develop a controller driver that handles all USB data transfers and commands sent by the host to the device. This driver communicates with the Microsoft-provided USB function controller extension (UFX).

USB function class extension (UFX) reference

Write a USB Type-C connector driver

Windows 10 introduces support for the new USB connector: USB Type-C. You can write a driver for the connector that communicates with the Microsoft-provided class extension module: UcmCx to handle scenarios related to Type-C connectors such as, which ports support Type-C, which ports support power delivery.

USB connector manager class extension (UcmCx) reference

Write a USB dual-role controller driver

USB Dual Role controllers are now supported in Windows 10. Windows includes in-box client drivers for ChipIdea and Synopsys controllers. For other controllers, Microsoft provides a set of programming interfaces that allow the dual-role class extension (UrsCx) and its client driver to communicate with each other to handle the role-switching capability of a dual-role controller.

For more information about this feature, see:

USB dual-role controller driver programming reference

Write a USB driver for emulated devices

Windows 10 introduces support for emulated devices. Now you can develop an emulated Universal Serial Bus (USB) host controller driver and a connected virtual USB device. Both components are combined into a single KMDF driver that communicates with the Microsoft-provided USB device emulation class extension (UdeCx).

Emulated USB host controller driver programming reference

Write a UWP app

Provides step-by-step instructions about implementing USB features in a UWP app. To write such an app for a USB device you need Visual Studio and Microsoft Windows Software Development Kit (SDK) .

Write a Windows desktop app

Describes how an application can call WinUSB Functions to communicate with a USB device.

WinUSB functions

Common programming scenarios

List of common tasks that a driver or an app performs in order to communicate with a USB device. Get quick info about the programming interfaces you need for each task.

USB samples

Development tools

Download kits and tools for Windows