This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Send USB-Descriptors twice

Hi users!!

I got some Problems with my USB-Connections.First I want to explain the situation.

I got the LPC2368 Controller and programmed the USB-Connection to Communicate with LabVIEW. And the bidirectional connection works. In LabVIEW I have to close the session and don't want to disconnect the USB-Plugger.
Unfortunately when the Session is closed it seems that LabVIEW close the connection and didn't save the descriptors. Now I want to send the descriptors a second time to establish a new communication. But how will I reach this?
I only know, that the descriptors will be transmitted when the USB will conect the first time. Is a second descriptor transmission possible???

Perhaps I have to store the data in LabVIEW but right know I'm not sure how to do this in LabVIEW.

Parents
  • "I only know, that the descriptors will be transmitted when the USB will conect the first time. Is a second descriptor transmission possible???"

    USB device is a salve for host PC.
    Then, USB device has to obey the host request, when it is possible. (When it can't, return STALL).
    And you should not assume when a host requests the descriptors. Host does as it likes.

    I believe your firmware can return the descriptors, if your code is starting from an established example.

    Likely story is that,
    - When LabView starts again, it sends "device reset" command to the driver.
    - On the USB side, bus reset occurs.
    - Then, the PC starts enumeration again.

    First, observe what is going on the bus using a USB analyzer.
    If you don't have a hardware USB analyzer, download this software sniffer, and 'evaluate' it :-)

    SourceUSB (1 month trial)
    http://www.sourcequest.com/

    Find the request to which your device don't respond well.
    In most case, it is the last request when the sequence stops.
    And then, debug the handler of the request on the firmware.

    Tsuneo

Reply
  • "I only know, that the descriptors will be transmitted when the USB will conect the first time. Is a second descriptor transmission possible???"

    USB device is a salve for host PC.
    Then, USB device has to obey the host request, when it is possible. (When it can't, return STALL).
    And you should not assume when a host requests the descriptors. Host does as it likes.

    I believe your firmware can return the descriptors, if your code is starting from an established example.

    Likely story is that,
    - When LabView starts again, it sends "device reset" command to the driver.
    - On the USB side, bus reset occurs.
    - Then, the PC starts enumeration again.

    First, observe what is going on the bus using a USB analyzer.
    If you don't have a hardware USB analyzer, download this software sniffer, and 'evaluate' it :-)

    SourceUSB (1 month trial)
    http://www.sourcequest.com/

    Find the request to which your device don't respond well.
    In most case, it is the last request when the sequence stops.
    And then, debug the handler of the request on the firmware.

    Tsuneo

Children
No data