How to report back i2c errors to host (PC)?

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

cross mob
arnova2
Level 2
Level 2
10 replies posted 10 sign-ins 5 replies posted

I'm using vendor commands (implemented in the setup callback function) to implement i2c register read/write to/from my FPGA. I was wondering: How does one normally report back to the host (PC) that the i2c transfer failed? I assumed that returning false from the Setup-Callback (in some examples used by some "isHandled"-logic) would do this, but apparently it's not. Furthermore I was unable to find what exactly is done with the value returned from the Setup-callback-function.

Would one simply implement an additional vendor command for reading back the result of the previous vendor command?

0 Likes
1 Solution
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

Hi,

When CyU3PUsbSendEP0Data() or CyU3PUsbGetEP0Data() is called before returning false from the fallback, then the control transfer will not fail.

Regards,

Hemanth

View solution in original post

3 Replies
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

Hi,

When false is returned from the setup callback function ep0 endpoint is stalled and hence the vendor command is expected to fail.

Please see section 5.36.5.11 of FX3 API Guide available in below path:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\doc\firmware

Regards,

Hemanth
0 Likes

But that is only supposed to work when there's still data available in ep0, right? If all data is already consumed, there's not point in stalling it, right?

0 Likes
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

Hi,

When CyU3PUsbSendEP0Data() or CyU3PUsbGetEP0Data() is called before returning false from the fallback, then the control transfer will not fail.

Regards,

Hemanth