- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi!
I found that if I do renumeration:
CyU3PConnectState(CyFalse, CyTrue); sleep_ms(200); CyU3PConnectState(CyTrue, CyTrue);
I have no receive any Setup requests / Events from USB. As a result my device losts from the host. It happens only under Linux (3.13, 3.16, 3.19, 4.0) with ASMedia ASM1042A controller when connected with USB 3 cable. All other controllers works well.
If I repeat re-enumeration for a some time (2-7 times) it will done successfully.
Is it known issue?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
This is not a known issue. What happens when you increase that delay?
Regards,
- Madhu Sudhan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I increase timeout up to 5 seconds, nothing happens. Any ideas?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
up. any ideas?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi again. As I describe above, timeout increasing does not helps at all. But I observe, that in this case there is no any Setup requests received. And if I repeat re-enumeration for the some time it done successful.
So, work around next:
0. Add boolean flag, set it to false. Example name: enumerationDone
🙂
1. Do re-enumeration as I describe above. Timeout increasing does not required.
2. Wait for a some time (100 ms so good)
3. Check enumarationDone
flag, if true - exits, otherwise go to step 1
4. enumerationDone
flag must be sets to the true by the Setup Request handler. Of course mutex protection is required.
Steps 0-3 done at the re-enumeration routine. Step 4 done at the Setup Request routine.