Author Topic: "no silent failure" requirement for high speed device plugged into full speed  (Read 12429 times)

dgustavson

  • Member
  • ***
  • Posts: 3
I am trying to get a product (8 channel audio recorder) USBIF certified.  It is a USB 2.0 (high speed) device that will not operate on USB 1.1 (full speed).  The "no silent failure" requirement states it must enumerate when plugged into a full speed port, but somehow inform the user it will not work.  The driver is custom, Win XP/7.  My driver developer says it is not possible to cause a pop-up message box from a kernel mode driver - only user mode programs can do that.  The user mode recording programs that will use this device are 3rd party - I have no control over them.  How can the I make the pop-up appear on the screen?

Thanks,

Dave Gustavson

Pat Crowe

  • Member
  • ***
  • Posts: 39
You presumably have to provide an application during testing, in order to demonstrate functionality? If that particular app gives the message then you should pass that requirement.

In your position I would email USB-IF and ask what their opinion is. You might find them understanding.

BTW There is no reason why you can't pass the message from your device, using, say, a particular flashing pattern on an LED, and mention the interpretation of this in a manual.
« Last Edit: July 29, 2012, 11:04:50 am by Pat Crowe »

Barry Twycross

  • Frequent Contributor
  • ****
  • Posts: 263
I thought no silent failures only applied to OTG hosts. And its really a host thing to do, not a device driver thing.

dgustavson

  • Member
  • ***
  • Posts: 3
Thanks for your suggestions, Barry and Pat.  I contacted USB-IF, and it is even worse than I thought.  They offered no help or clues on how to accomplish their edict.  AND, they are insisting my device MUST function, albeit with reduced number of channels, on USB full speed.  The spec, to me, (section 5.3.1.1) reads that you can have a device that will operate on high speed only, as long as it enumerates on full speed.  However, they are telling me this requires a special waiver, which is harder to get than an audience with the pope.

Barry Twycross

  • Frequent Contributor
  • ****
  • Posts: 263
The only constraint I see in the spec is section 9.2.6.6 "a high-speed capable device may have configurations that are speed dependent. That is, it may have some configurations that are only possible when operating at high-speed or some that are only possible when operating at full-speed." and then goes onto say the device must support the other speed descriptors.

I've always interpreted that section to say a device may have no functionality at full speed, it could report zero configuration and be perfectly legal. As long as it also reported the high speed configurations properly in the other speed descriptors. I still say "no silent failures" is an OTG only concept, and I'd like to see them quote a section of the spec which applies to your device.

On the other hand, could you just support a configuration which supports a lower data rate. Either fewer channels or lower sample rate so it can fit in full speed? For a well architected device its usually easier to just make it function as well as it can in the limited bandwidth. Full speed is capable of supporting more than 8 44.1kHz or 48kHz streams. What configurations does your device currently support, do any of them fit in a 1023 byte packet?

dgustavson

  • Member
  • ***
  • Posts: 3
Barry, I could make a crippled subset of features that would operate on USB 1.1, but it would be a considerable amount of FPGA logic redesign and driver software changes.  If it added a feature that would benefit anyone, I might do it.  But, I feel like a trained seal being forced to jump through hoops.  Who has  a computer with USB 1.1 ?  Anyway, the reason I started on this quest was because I thought you needed USB-IF certification to pass WHQL.  But, I have just discovered that you can self test using the USB20CV program and feed the log file into WHQL.  So, I am going to see if I can side step the issue that way.

BTW, the official "no silent failure" rule is here:

http://compliance.usb.org/index.asp?UpdateFile=Policies&Format=Standard#13
 

Barry Twycross

  • Frequent Contributor
  • ****
  • Posts: 263
They have an example which is almost directly relevant to you situation, about the video camera. They say "In this example, the camera would be the device responsible for displaying an appropriate message to the consumer." Can you add a red LED which lights up when its enumerated at full speed and doing nothing? Label it "USB error".

If your device is all FPGA, it could be a problem to make it work at full speed, I was thinking firmware. In devices I've implemented (in firmware) its almost no extra code to make full speed work. Or for most designs it would have been extra code to make a device not work at full speed.

I can't say I like the idea of the USB-if inventing requirements which don't appear in a spec.