After upgrading the SDK from 1.2.1 to 1.2.3, it looks like the BulkStream example firmware (1.2\firmware\basic_examples\cyfxbulkstreams) isn't responding to any In/Out transactions with NRDY/ERDY (as observed comparing the newer vs older hardware trace). The firmware's AppThread is producing debug messages 1/second, but it's like the streams I/O is messed up. With the same example build using the 1.2.1 SDK, it works beautifully. In my app/driver, with the new firmware, the HCI is reporting an XACT error, which seems to be the correct thing to do if NRDY/ERDY is missing (1.2.1 firmware is OK). I've attached screenshots of the HW analyzer trace of the working 1.2.1 firmware and the broken 1.2.3 firmware. I scanned the source of the two files side by side, but couldn't see any obvious difference that would have a functional impact.
Is there anyone running the BulkStream example firmware with the latest 1.2.3 SDK?
Thanks,
Perry
Disabling LPM works around the issue (thanks to tech support, Harikrishnan!). Here is the edit to the example cyfxbulkstreams.c:CyFxBulkStreamsApplnStart() that fixes the issue for me:
case CY_U3P_SUPER_SPEED:
+ apiRetStatus = CyU3PUsbLPMDisable();
+ if (apiRetStatus != CY_U3P_SUCCESS) {
+ CyU3PDebugPrint (4, "CyU3PUsbLPMDisable failed, Error code = %d\n", apiRetStatus);
+ CyFxAppErrorHandler (apiRetStatus);
+ }
glIsStreams = CyTrue;
size = 1024;
break;
Hi,
Thanks for updating the post with solution to your problem.
Thanks,
sai krishna.