• AVR Freaks

USB2514B on Win10: Insufficient system resources exist to complete the API.

Author
TnF
New Member
  • Total Posts : 3
  • Reward points : 0
  • Joined: 2019/07/27 10:11:42
  • Location: 0
  • Status: offline
2019/08/20 19:16:02 (permalink)
0

USB2514B on Win10: Insufficient system resources exist to complete the API.

Hello. I'm using a USB2514B usb controller in my project and i've just finished soldering the components.
It is running the default configuration CFG_SEL0: Low and CFG_SEL1: High. I can toggle CFG_SEL0 to run external configuration via EEPROM.
I can connect to the hub and windows reads VID and PID just fine, all working normally.
However if i connect a device to any of the 4 downstream ports i get:
This device cannot start. (Code 10)

Insufficient system resources exist to complete the API.
 
Data and power to the controller is done via an upstream USB-C (2.0) port. This should qualify as Bus-powered operation. Downstream ports are still bus-powered directly from the upstream port, even though technically this is out of USB spec (i believe they need to be switchable). Thus PRTPWR pins are not used neither OCS pins (at least in this revision because i want to make sure the basic operation works).
 
I think this may have to do with the default configuration. I can provide more details tomorrow if needed but it is past 5am at the moment and i need to catch some sleep.
 
If anyone can help i'll be glad. Not sure if i need to open a ticket.
 
Kind regards
 
#1

3 Replies Related Threads

    TnF
    New Member
    • Total Posts : 3
    • Reward points : 0
    • Joined: 2019/07/27 10:11:42
    • Location: 0
    • Status: offline
    Re: USB2514B on Win10: Insufficient system resources exist to complete the API. 2019/08/21 18:20:13 (permalink)
    0
    Update: Tested different configurations using the EEPROM and basically i can make the devices work if i set the hub to be self-powered. I believe this is because the device requests 500mA and the hub reports 100mA per device max so windows decides not to start the device.
     
    However my devices are powered directly via the upstream port. I still don't understand why there is this limitation, but my guess is 100mA per device (4 ports + 1 hub = 5x100=500mA). I guess i can run it as "self-powered" and allow the host to control the total current downstream?
    #2
    ric
    Super Member
    • Total Posts : 23598
    • Reward points : 0
    • Joined: 2003/11/07 12:41:26
    • Location: Australia, Melbourne
    • Status: offline
    Re: USB2514B on Win10: Insufficient system resources exist to complete the API. 2019/08/21 19:05:01 (permalink)
    +2 (2)
    Yes, you are breaking the USB "rules", but the only way to be "bus powered" and support downstream devices which are also bus powered (and need more than 100mA) is to lie, and pretend you are "self powered".
    You can get away with this if it's embedded in your own system, and you have control over what is going to be connected.
    If you made a standalone hub like this, and tried to sell it, you'd fail USB certification.
    (Yes, I'm aware you can buy cheapy Chinese hubs that do exactly this.)
     

    I also post at: PicForum
    Links to useful PIC information: http://picforum.ric323.co...opic.php?f=59&t=15
    NEW USERS: Posting images, links and code - workaround for restrictions.
    To get a useful answer, always state which PIC you are using!
    #3
    TnF
    New Member
    • Total Posts : 3
    • Reward points : 0
    • Joined: 2019/07/27 10:11:42
    • Location: 0
    • Status: offline
    Re: USB2514B on Win10: Insufficient system resources exist to complete the API. 2019/08/21 19:44:51 (permalink)
    +2 (2)
    Thanks for the reply.  I thought so as well. However my intuition as a user is that since every USB port is capable up to 500mA, hence i thought that a usb hub downstream a host port should still support 500mA active total since the host monitors the current supplied. What i don't understand is why there is a specific 100mA limitation per port..i guess USB spec, right? If that is the case technically all external usb hubs should be externally powered so that 500mA per port is available.
     
    Anyways my device is just a custom keyboard that has an integrated hub. 1 port is connected to the controller and 3 ports are available to the end user. (supposed use: 1 mouse + 1 usb mic + 1 usb flash drive). I should be more worried reaching the current limit due to all RGB led per key haha.
     
    I've also tested the performance of the hub and measured no speed difference. I'm very satisfied :)
    Also the E2PROMAPP makes it a breeze preparing an EEPROM file :) However just by pure luck in the forums i found out that USB2534 is a direct replacement of USB2514B which has internal EEPROM. It would be nice to know beforehand, it simplifies some things and has more features.
    Currently i'm also using a USB switch, EEPROM and a 3.3V LDO from Microchip in the same project and i'm pleased with the quality and functionality of Microchip's products so in the future will definitely look first here :)
    #4
    Jump to:
    © 2019 APG vNext Commercial Version 4.5