cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 5, 3 & 1

dari_292216
New Contributor II

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

0 Likes
1 Solution
himam_31
Employee

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

View solution in original post

0 Likes
2 Replies
himam_31
Employee

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

View solution in original post

0 Likes
dari_292216
New Contributor II

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.

0 Likes