Use of the USBFS_Start() API's second argument | Cypress Semiconductor
Use of the USBFS_Start() API's second argument
The USBFS_Start API description does not mention about the use of the second argument. The argument enables / disables the internal regulator between Vddd and the potential to which the D+ line is pulled-up.
We need to take care that the second argument correctly relfects the Vddd voltage we are using to operate the IC.
Suppose if you are operating at Vddd = 5V but you use the argument as USBUART_1_3V_OPERATION, the internal regulator for regulating the D+ pull-up voltage to 3.3V is disabled and it simply passes the Vddd voltage to the D+ pull-up. So in this case, when you pass 5V over to the D+ pull-up, it made the D+ be driven to >4V. This is invalid as per the specification, the range for a output high voltage is 2.8-3.6V. In this case, the USB port of a PC might not communicate with the device, whereas you will see that if you use an external hub in between the PC - the device is able to communicate.