- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using the sample code for Bootloader/Bootloadable -- a code that I know works Ok when the PSoC is connected directly to the computer.
However, when it is connected via an intermediate USB hub (Genesys Logic GL852G -- http://minipcsale.ru/images/Minix-Neo-X8-h/GL852G.pdf ) the following happens:
When I power up the system (both the PSoC and the hub) the Bootloader Host can see the USB HID and I can upload the application fine.
However, when the application is passed control, the USB fails to enumerate. Instead, the code keeps waiting on the while loop in this piece of code:
USBUART_Start(...);
while(0 == USBUART_GetConfiguration()) {
}
USBUART_CDC_Init();
The Bootloader Host application will still list the USB HID.
At that point, if I disconnect from the USB cable from the port and reconnect, the application will enumerate a COM correctly (and the USB HID will go away).
Any ideas why this happens?
How can I get the USB_UART to enumerate in this condition? Will a change to the bootloadable code do it?
Thanks!
--
Dario
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Dario,
Check the voltage provided as a parameter in the USBFS_Start(uint8 device,uint8 mode) API function. If the board is powered with a 5-V supply, the argument mode must be assigned as USBFS_5V_OPERATION. In this case, the internal regulator is enabled. If the board power supply is 3 V, the macro USBFS_3V_OPERATION must be used. If the supply voltage is unknown, it is better to use USBFS_5V_OPERATION because in this case the internal regulator is enabled.
Also please have a look at the KBA: Troubleshooting PSoC® 3, PSoC 4 L-Series, and PSoC 5LP USB Designs - KBA210620
Thanks,
Hima
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Dario,
Check the voltage provided as a parameter in the USBFS_Start(uint8 device,uint8 mode) API function. If the board is powered with a 5-V supply, the argument mode must be assigned as USBFS_5V_OPERATION. In this case, the internal regulator is enabled. If the board power supply is 3 V, the macro USBFS_3V_OPERATION must be used. If the supply voltage is unknown, it is better to use USBFS_5V_OPERATION because in this case the internal regulator is enabled.
Also please have a look at the KBA: Troubleshooting PSoC® 3, PSoC 4 L-Series, and PSoC 5LP USB Designs - KBA210620
Thanks,
Hima
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Hima,
The problem is with USBFS version 3.20. A simple downgrade to 2.80 fixed this issue with no change to the code.