AM3354: AM335x USB error package quesiton

Part Number: AM3354
Other Parts Discussed in Thread: AM1808

Tool/software:

Hi Expert,

When a customer uses an AM3354 and a PL2586 USB hub downstream for ESD testing,

the data is recorded to the USB hub and an ERR message is displayed. This error message is normal, but the CPU USB host controller cannot detect the error, and the CPU cannot recover from the hub.

Is this because the PL2586 is too new, or is there another method for error detection?

Thanks

Daniel

  • Hi Daniel,

    I don't think we had tested this hub. Let me check internally.

    Regards,

    Stan

  • Hi Stan

    Is there any update?

    Thanks

    Daniel

  • Hi Daniel,

    Can you confirm this USB hub is not problematic and is able to provide a valid descriptor when connected to a PC?

    Best regards,

    Luis Parga

  • Yes, This usb hub can perform valid enumeration with both PC and AM3354.

  • Hi, Luis

    Can you please help us on this issue?

  • Hi Andy,

    When you say 'the CPU cannot recover from the hub', do you mean the AM3354 USB 2.0 controller stops working after the USB2.0 analyzer connected to the USB hub observes the 0x3C error? Does this happen during IEC61000-4-2 testing? Do you have ESD diode protection for D+/D- and VBUS lines on the AM3354? Do you see ESD issues when conducting the test without the USB hub in the loop?

    Best regards,

    Luis Parga

  • Hello Luis, 

    When ESD happens, the device (mouse in this case) ,which connected to the hub, stop working.

    And hub will report the 0x3C error to AM3354. 

    Our problem is that the AM3354 usb host controller can not detect this error.

    We need TI help to find a way for AM3354 to detect this error.

    Thanks

  • Hi Hairou,

    Thanks for the information. Are you using Linux SDK for AM3354? Have you tried using a USB2.0-compatible thumbdrive instead of a mouse? If so, do you see the same error? When mouse stops working and assuming you are using Linux SDK, if you run 'lsusb' command, do you still see the mouse in the bus? When you say that AM3354 cannot detect the error, where do you expect this error to show (protocol analyzer, Linux prompt, etc.)?

    Best regards,

    Luis Parga

  • Hello Luis,

    1. we are not using Linux SDK.

        instead, we are using TI's host controller driver

    //*****************************************************************************
    //
    // usbhostenum.c - Device enumeration code for the USB host library.
    //
    // Copyright (c) 2008-2010 Texas Instruments Incorporated. All rights reserved.
    // Software License Agreement

    //*****************************************************************************

    //*****************************************************************************

    //
    // usbhhid.c - This file contains the host HID driver.
    //
    // Copyright (c) 2008-2010 Texas Instruments Incorporated. All rights reserved.
    // Software License Agreement
    //
    // Texas Instruments (TI) is supplying this software for use solely and
    // exclusively on TI's microcontroller products. The software is owned by
    // TI and/or its suppliers, and is protected under applicable copyright
    // laws. You may not combine this software with "viral" open-source
    // software in order to form a larger program.
    //
    // THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
    // NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
    // NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    // A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
    // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
    // DAMAGES, FOR ANY REASON WHATSOEVER.
    //
    // This is part of AM1808 StarterWare USB Library, resused from revision 6288 of the
    // stellaris USB Library
    //
    //*****************************************************************************

    2. in this case, we are not using thumb-drive. Because this particular hub port is

        for mouse / keyboard usage.

    3. since this is an INT-IN endpoint, and hub is reporting error (0x3C), we expect 

        hid driver can detect this error USB_EVENT_ERROR

    Thanks a lot

    Hairuo

    HIDIntINCallback(unsigned int ulIndex, unsigned int ulPipe, unsigned int ulEvent)
    {
    switch (ulEvent)
    {
    //
    // Handles a request to schedule a new request on the interrupt IN
    // pipe.
    //
    case USB_EVENT_SCHEDULER:
    break;

    //
    // Called when new data is available on the interrupt IN pipe.
    //
    case USB_EVENT_RX_AVAILABLE:
    //
    // Send the report data to the USB host HID device class driver.
    //

    break;

    case USB_EVENT_ERROR:

  • Hi Hairuo,

    I am not familiar with the use case of this USB host controller driver being used outside the SDK. I will inquire internally with my team and will get back to you. Please allow me 1-2 days.

    Best regards,

    Luis Parga

  • Hi Hairuo,

    After checking internally, the team believes this is software issue where the AM3354 USB host software is not handling the ERR transaction from the hub properly. Can you provide more details on the software implementation the customer is using? Why is SDK not being used? Could customer migrate to using the SDK (maybe Linux) so we can better support them? I see latest version as of end of last year in ti.com.

    Best regards,

    Luis Parga