- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have one question concerning USBFS component and CY8C5888LTI-LP097 chip:
Is it possible to configure USBFS component, using PSoC Creator, in such way that when I connect CY8C5888LTI-LP097 chip via USBFS controller to Windows 10, Windows 10 automatically load WINUSB driver? I was reading something about OS Descriptors, but i could not find precise instruction how to configure USBFS component via Creator.
If someone can help, I would much appreciate.
Thank you.
Dusan.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The Component provide an option to handle vendor specific requests. But you need to implement required requests processing in FW. Here is extract from datasheet:
Handle vendor requests in user code
The Component provides an empty vendor request handler (available in the USBFS_vnd.c file) for unsupported vendor requests. This parameter overrides the vendor request handler function with a user implementation. The USBFS_HandleVendorRqst() function must be implemented by the user to service incoming vendor requests. This function is invoked whenever the vendor request is received and must return with an indication on whether it was handled or not. This option is unchecked by default.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello
CYUSB.SYS and the driver from http://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-sof...gives signed drivers.About Winusb driver usage with USBFS component much info is not there
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for replay,
But, if I understood correctly, isn't this driver intended for FX3 devices?
Best regards,
Dusan.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Dusan,
I suppose you are looking for Microsoft OS Descriptors for USB Devices | Microsoft Docs section Extended Compat ID. The USBFS component in the String descriptor tab has an option "Include MS OS String descriptor" but descriptor value is hard coded. So most probably you would need to modify Component to serve your needs.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi svoz,
Thanks for joining discussion.
You are right, "Include MS OS String descriptor" option must be checked in order to append the "MSFT100" string to OS descriptor index location of 0xEE.
Maybe I don't understood whole procedure correctly, but according to WCID Devices · pbatard/libwdi Wiki · GitHub I think that some other descriptors should be set in firmware ("Thus, the second part of making your device WCID is ensuring that your firmware answers a Vendor Request with wIndex=0x0004
and bRequest=0x##
, to return a Compatible ID").
I'm just not sure is it possible to include this statements in firmware, or is possible to do whole procedure inside USBFS graphical commponent setup.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The Component provide an option to handle vendor specific requests. But you need to implement required requests processing in FW. Here is extract from datasheet:
Handle vendor requests in user code
The Component provides an empty vendor request handler (available in the USBFS_vnd.c file) for unsupported vendor requests. This parameter overrides the vendor request handler function with a user implementation. The USBFS_HandleVendorRqst() function must be implemented by the user to service incoming vendor requests. This function is invoked whenever the vendor request is received and must return with an indication on whether it was handled or not. This option is unchecked by default.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi svoz,
Thank you for pointing me to that explanation. I will try to implement this
function inside FW somehow.
Thank you,
Best regards,
Dusan.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Just in case that someone is interested, it is possible to make Windows 10 load WINUSB driver if "CYUSB" is changed to WINUSB inside USBFS_descr.c file:
Instead of
(uint8)'C', (uint8)'Y', (uint8)'U', (uint8)'S', (uint8)'B',
0x00u, 0x00u,0x00u
should be put:
(uint8)'W', (uint8)'I',(uint8)'N', (uint8)'U', (uint8)'S', (uint8)'B',
0x00u, 0x00u,
Also 'Include MS OS String Descriptor' option should be checked inside setup of USBFS component.
After every full project regeneration it is necessary to change string again.
Regards,
Dusan.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It looks like a pre-build User Command (Build Settings -> yr project -> User Commands -> Pre Build) happens after code generation but before compilation. So it'd be possible to add a script here which edits the CYUSB to a WINUSB in the descriptor file.
That's kinda horrible, though --- is there a better way?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FWIW, I have a script which correctly patches the file here:
fluxengine/patcher.vbs at master · davidgiven/fluxengine · GitHub
If you add this to your project route and then put cscript patcher.vbs in your user command pre build box (and then edit the script to update the path), it'll patch the generated file on every build. Probably. At least it does when I try it. There's no error checking. But my device now works fine with WinUSB without needing an explicit driver or .inf file, which is great.
Dear friendly folk at Cypress: can we have this configurable, please? This script makes me a little nauseous every time I look at it.