cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

SuSh_1535366
Contributor

Hello,

I found the FX3 FAQs (KBA224051), the description of BACKFLOW_DETECT in this article was as follows:

Question: In the AN75779 example, I enabled BACKFLOW_DETECT. When the FX3 Firmware calls CyU3PGpifDisable(), FX3 occasionally stops responding. Why does it happen?

Answer: It may happen because of PIB/GPIF error interrupts invoked in the application. If you enable BACKFLOW_DETECT, you need to disable any interrupt with the CyU3PVicDisableAllInterrupts() function during  the CyU3PGpifDisable() process.

I actually encountered this problem and was able to solve it with the provided workaround, but there are some questions.

In the AN75779 source code, the PIB/GPIF error interupt callback function only sets 1 to the flag.

So I don't think there is a problem with the processing.

What mechanism does FX3 stop responding to?

My application also uses UART interrupts, can I disable only PIB/GPIB error interrupts?

Please let me know if you have any information.

Regards,

Shimamura

0 Likes
1 Solution
HirotakaT_91
Moderator
Moderator

Hello Shimamura-san,

Sorry for the delay.

I understood disabling only CY_U3P_VIC_PIB_CORE_VECTOR does not help to resolve its issue.

You can mask PIB_ERR and GPIF_ERR to resolve its issue, not need to mask MMC_ERR.

PIB->intr_mask &= ~(CY_U3P_PIB_INTR_PIB_ERR | CY_U3P_PIB_INTR_GPIF_ERR );

Best regards,

Hirotaka Takayama

View solution in original post

0 Likes
5 Replies