no NRDY/ERDY generated after stream In/Out transaction by BulkStreams firmware example after upgrading SDK from 1.2.1 to 1.2.3

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

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

0 Likes
2 Replies
Anonymous
Not applicable

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;

0 Likes
Anonymous
Not applicable

Hi,

   

Thanks for updating the post with solution to your problem.

   

Thanks,

   

sai krishna.

0 Likes