cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

KaFu_3122371
New Contributor II

Following the threads here: Re: FX3 SDK version 1.3.4 won't put breakpoints while running  , is there a fix or workaround for this problem? The workaround suggested in the mentioned thread says to revert back to SDK 1.3.3. But as the OP in that thread pointed out, https://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-sdk-archives does not contain the Eclipse version and plugins that was included with SDK 1.3.3. Abhinav's reply in that thread says he attached the 1.3.3 SDK installer, but I don't see it. Can someone reupload the 1.3.3 SDK installer?

 

Thank you,

David

0 Likes
1 Solution
JayakrishnaT_76
Moderator
Moderator

Hello David,

Please find the link to download FX3 SDK 1.3.3 for windows in the link given below:

https://drive.google.com/file/d/1O2emLOmgZl1UXA7ukh9bc1qa9ujGHwO5/view

Please note that we strongly recommend to use SDK 1.3.4 for building production firmware. SDK 1.3.4 has fixes for bugs that were reported against SDK 1.3.3. So, if you use SDK 1.3.3 for building production firmware, then there are high chances to see failures.

Best Regards,
Jayakrishna

View solution in original post

0 Likes
5 Replies
JayakrishnaT_76
Moderator
Moderator

Hello David,

Is it possible for you to add the breakpoints before running? Is this a feasible solution for you? If not, can you please let us know why do you want to add the breakpoints while running the code?

Best Regards,
Jayakrishna
0 Likes
KaFu_3122371
New Contributor II

Yes, I can add breakpoints before running. But after running, I cannot add breakpoints or halt the CPU anymore. I don't think this solution is feasible for me because the problem I am having with my application is that it no longer respond after numerous USB resets.

The test we are doing is having the host application start up, connect to the FX3, send USB reset and then normal startup actions like set configuration, do some application specific stuff, then finally close down host application. This is repeated every 5 seconds. Everything runs well until hours later, when FX3 would suddenly not respond to the host computer anymore. The host computer is running Linux and the USB driver would throw errors such as "Cannot set link state" in the kernel logs. I have a separate debug through FX3's I2C lines for my application and that does not respond either. Finally, I tried looking at a USB trace with an USB analyzer and it shows that the FX3 device either cannot complete link training or right after link training, it is returning bad symbols to get descriptor requests.

My thought now is to debug the FX3 and see if it is hung up. As you can see, I do not know where or if it is even hung up, so I do not know where to put a break point or what to watch. I cannot sit next to the tester for hours and continue every time it lands on a break point. I was hoping I could start the debugger, let the test run, then halt the CPU when the aforementioned problem occurs and start looking. If you have a better suggestion, please let me know.

Lastly, I also have the watchdog timer set. But it is not tripping and resetting the FX3 either.

 

Thanks,

David

0 Likes
JayakrishnaT_76
Moderator
Moderator

Hello David,

Please refer to the SDK example USBBulkSrcSink and add the code to obtain the USB logs to your custom firmware. After this, please print the USB logs along with the UART traces. I feel that these USB logs along with the UART traces can give us a clue on the failure.

In addition to this, kindly share the traces captured using the USB analyzer for us to check.

Please let me know if you have any queries on this.

Best Regards,
Jayakrishna
0 Likes
KaFu_3122371
New Contributor II

Hi Jayakrishna,

I do have the USB logs enabled with CyU3PUsbInitEventLog. However, as described above, my problem is that none of the connections I have (USB3 and I2C) to the FX3 are responding. Therefore I cannot read out that log. [FYI, we are reserving UART for another function so I am using I2C and wrote my own thread to pump out messages I added in my firmware through that.]

Please find the attached trace captures using the Advisor T3 analyzer from LeCroy. The 14:16 trace was taken as follows:

  1. Ran the test described above until FX3 no longer responds as mentioned.
  2. Disconnected the USB3 cable from FX3.
  3. Added the analyzer in between host and FX3.
  4. Started recording on the analyzer.
  5. Reconnected USB3 to FX3.

IIRC, the 14:18 trace was similar, except steps 2, 3 and 5 were replaced with simply restarting the host computer. The host computer is running Linux and the kernel logs showed "Cannot set link state" messages.

 

Seeing as this is morphing into a discussion about something else, I created a separate thread for the particular problem I have: FX3 suddenly disappears and cannot reconnect to hosts 

However, I would still like an answer to my original question regarding getting the 1.3.3 SDK installer so that we can halt the CPU while running.

Thanks,

David

0 Likes
JayakrishnaT_76
Moderator
Moderator

Hello David,

Please find the link to download FX3 SDK 1.3.3 for windows in the link given below:

https://drive.google.com/file/d/1O2emLOmgZl1UXA7ukh9bc1qa9ujGHwO5/view

Please note that we strongly recommend to use SDK 1.3.4 for building production firmware. SDK 1.3.4 has fixes for bugs that were reported against SDK 1.3.3. So, if you use SDK 1.3.3 for building production firmware, then there are high chances to see failures.

Best Regards,
Jayakrishna

View solution in original post

0 Likes