Inventra HDRC USB Controller

http://processors.wiki.ti.com/index.php/Inventra_HDRC_USB_Controller




Inventra HDRC USB Controller

Translate this page to  de - Deutsch es - Español  fi - Suomi fr - Français  ja - 日本語 zh-CN - ‪中文(中国大陆)‬  Translate 
MAINTENANCE ALERT: 05 MAY 2012 
The Embedded Processors Wiki is scheduled to undergo routine maintenance and updates between the hours of 8:00 AM and 12:00 PM (GMT -5) on Saturday, May 5, 2012. 
During this period, the wiki content may be unavailable for short periods of time and will not be editable. Please plan accordingly.

The Inventra HDRC USB Controller (HDRC = Highspeed Dual Role Controller) is a member of an ASIC design family that is used by TI and several other vendors for implementing USB functionalities. Modes of the unit are master (host, A device; with high, full and low speed) and slave (gadget, B device; high and full speed). Some variants might only support 4 fully flexible endpoints in slave mode at the same time. In master mode some variants of this units might only drive one slave or endpoint at a time plus one hub in between. Due to the sufficiently smart switching ability between those modes the USB On-The-Go (OTG) standard is implemented by this unit.

Contents

  [hide]
  • 1 TI semiconductors equipped with this unit
  • 2 Linux drivers
  • 3 Other Family members
  • 4 Web Links
  • 5 Technology Related Press Releases

TI semiconductors equipped with this unit

This unit is used in these TI devices:

  • DaVinci (DM355, DM365, DM644x, DM6467)
  • OMAP (OMAP 243x, OMAP 3; DA830/OMAP-L137)
  • TUSB 6010

Linux drivers

This unit is supported by the Linux kernel by the musb code and module. For using it it needs to be enabled whilst configuring the kernel included desired sub options and maybe the more general Linux USB OTG capability.

The TI data sheet for the OMAP35x (dated July 2008) lists this features:

  • Host mode driver
    • Mass Storage Class (MSC) Host
    • Hub Class.
    • Human Interface Devices (HID)
    • Isochronous Devices(ISO)
  • Slave mode driver
    • Mass Storage Class (MSC) Slave.
    • Communication Device Class (CDC) Slave support
    • Remote Network Driver Interface Specification (RNDIS) Slave support.

For that specific processor at that time OTG was mentioned as not-supported by the described version of the drivers.

The LSP 1.20 documentation (April 2008) for the DaVinci family states this:

The USB peripheral provides support for USB 2.0 including HID, HDD, CD and mass storage classes. [...] The USB driver is implemented as a communication driver. EDMA is used for both host and device operations. USB host and slave drivers are described in the following sections.

And later provides this more detailed listing on the drivers maturity state:

  • Supports data transfer in both PIO and DMA mode for all kernel preemption modes
  • Supports host and slave operations
  • Supports class driver for HID and Mass storage.
  • Supports USB ISO Class
  • Supports partial USB OTG for HNP and SRP. (HNP=Host Negotiation Protocol, SRP=Session Request Protocol)
    • USB OTG functionality has been tested on the DM355 devices by connecting two EVMs back to back using a mini-AB USB cable.
    • OTG functionality is currently operated/invoked by providing inputs to the proc entry.

With the publicly available preliminary documentation for LSP 2.10 dealing with the "DaVinci Linux Device Drivers" there comes a rich set of USB bandwidth benchmarks for a variety of processors and the following listing of featured USB drivers:

  • Data transfer in both PIO and DMA mode for all preemption modes
  • Internal CPPI DMA is used for both host and device operations.
  • Interrupt Endpoint scheduling feature to overcome the limitations of availability of number of Interrupt endpoints.
  • Provision to reserve bulk or Isochronous endpoints according to the necessity.
  • MSC Host and Slave support
  • USB HID Host support with hiddev and evdev interfaces
  • CDC Slave support (see e.g. this page at usb-software.org)
  • RNDIS Slave support
  • USB-ISO Audio/Video Host support

The software driver stack is divided in at least two functional layers. The base is the musb_hdrc module that knows about and controls the ASIC unit. The upper layers are formed by a set of gadget drivers for the various functionalities. These will, depending on system configuration, load and then plug in to the musb_hdrc module. They will get activated after the USB connection has successfully completed its configuration cycle using the Session Request Protocol (SRP) and finished this in the matching mode (host/gadget). The driver further takes care for the right voltage detection state as provided by the hardware unit. The hardware unit provides voltage level indicators matching the A mode (AVALID) and B mode (general VALID indicator) requirements, thus correct external wiring of all related pins of the SOC is necessary for proper operation.

Other Family members

Another naming related to a variant of this unit in the Linux kernel driver source is:

Inventra (Multidrop) Highspeed Dual-Role Controllers: (M)HDRC

Other variants out there in the wild are known as:

Mentor Graphics Inventra USB Full-Speed Dual-Role Controller (MUSBFDRC)

Web Links

  • SPRS518 - OMAP35X Linux Drivers Datasheet
  • sprs496 - LSP 1.20 DaVinci Linux Drivers
  • sprs566 - LSP 2.10 DaVinci Linux Drivers (partially labeled as product preview)
  • OMAPpedia, chapter" Support Tools", section "ADB over USB" (ADB = Android Debug Bridge)
  • linux configuration and testing of the musb driver on uclinux
  • MUSBMHDRC IP data sheet
  • USB-OTG Basics
  • USB OTG Standards Info Page

Technology Related Press Releases

  • Mentor Graphics, Inventra(TM) Intellectual Property division Delivers Dual-Role IP Core for Full-Speed USB 2.0 Standard and New "On-The-Go" Portable Specification (2001)
  • Hi-Speed USB On-The-Go IP Core Added to Mentor's Inventra Portfolio (2003)
  • Mentor Graphics USB On-the-Go Intellectual Property Achieves Compliance Certification (2003)
  • Mentor Graphics Introduces its High-Speed USB-Certified PHY for Embedded Host Applications in the SMIC 0.13 micron Process (2006)
E2e.jpg For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Inventra HDRC USB Controller here.
Hyperlink blue.png Links
ARM Microcontroller MCU ARM Processor Digital Media Processor Digital Signal Processing Microcontroller MCU Multi Core Processor
Ultra Low Power DSP 8 bit Microcontroller MCU 16 bit Microcontroller MCU 32 bit Microcontroller MCU

Leave a Comment

你可能感兴趣的:(Inventra HDRC USB Controller)