Meanwhile, I would recommend you to create a tech support case. Most probably the author of that application note will be helping you there.
Will do. I will post my findings here since I am sure many other people will have issue with this project.
Is there any progress on this problem as I believe it may be related to my problem posted in http://www.cypress.com/?app=forum&id=167&rID=66200
The image sensor project also uses the CyU3PGpifSMSwitch() function.
I created a support case, but have not received any help yet. I read your thread and I also believe they are related.
SDK 1.1.1 made no difference.
When you are using 0xFFFF instead of 257 for parameter "fromState" does your firmware also run for a longer time (e.g. around 20'000-50'000 successful transfers)?
I tried that after reading your thread, but it didn't have any effect. My state machine freezes very quickly.
The following I found in the FX3 release notes:
The CyU3PGpifSMSwitch API may not be able to trigger a desired state machine switch if
the state machine in use makes use of mirror states. This is because the state machine
may actually be stuck in a mirror of the user specified start state instead of in the start state
itself. In this release, the API has been updated to trigger an immediate switch if the state
machine is in the specified start state or one of its mirrors. This will not be sufficient if the
state machine reaches a mirror of the start state only after the Switch API has been called.
If the CyU3PGpifSMSwitch API needs to be used in systems which make use of state
machines with mirror states, it is recommended that the application specify a timeout value
in the CyU3PGpifSMSwitch() API call and retry the switch operation periodically until it
I believe this causes the problem. However, the proposed solution does not sound very encouraging to me.
Now I just see that changes from SDK version 1.1 are:
"Fixed a defect in the CyU3PGpifSMSwitch() API which would cause state machine
switches to fail if the GPIF designs use mirror states."
Now I am confused: Is this problem now fixed with SDK 1.1.1 or an open issue?
Actually, we have seen a defect with the CyU3PGpifSMSwitch() API in previos SDK versions. We were seeing that bug when there is a chance for mirror states. That has been fixed in the latest SDK1.1.1.
That is the reason why I was asking you guys to test with the latest SDK.
New SDK made no difference for me.
I can see that you have created a tech support case and also you mentioned that there was no reply.
Is that the case still?. Please let me know who is handling your case.
I am sure that one of our engineer is trying to replicate your issue to find a solution.
I have received a reply since my post here. I believe Karnik is the one handling my case. I sent my source code yesterday and have not heard anything since.
After installing SDK 1.1.1 it seems that the Gpif switching business is working. However, that data transfer still stops after short time. The UsbdStatus function says that the state is STALLED witch status UNKNOWN. Any ideas on that one?
LastError results in 170 (The requested resource is in use)