Odd Error When Switching Between GPIF-II and Loopback Configs | Cypress Semiconductor
Odd Error When Switching Between GPIF-II and Loopback Configs
Our firmware allows the host to configure the FX3 in a couple different ways. In the default configuration, the host writes data to the GPIF-II over EPs 2/4 and reads back over EPs 6/8. The firmware can also configure the FX3 to loopback what's written on EPs 2 and 4 to EPs 6 and 8. In most circumstances, this works fine. The firmware can switch back and forth between these two configurations without any issue, unless things happen in the following order:
-Switch to the loopback mode.
-Write/read from one of the endpoints.
-Switch back to the default mode.
-Switch back to the loopback mode.
-Attempt to write/read from one of the endpoint.
At this point, libusb will through up an error, LIBUSB_ERROR_OTHER[-99]. That error only appears on the first write or the first read. All subsequent writes and reads using the loopback configuration are correct. Does anyone have any idea what could be causing this?