Using SDK 1.2 I have modified the SlaveFifoSync5Bit example to use 2bit address interface with 4 Bulk endpoints, 2 IN, 2 OUT using four DMA threads
In file SlaveFifoSync5Bit/cyfxslfifosync.h I have altered the define statements to:
(In this configuration the code runs correctly and enumerates).
#define CY_FX_EP_PRODUCER_1 0x02 /* EP 2 OUT */
#define CY_FX_EP_PRODUCER_2 0x04 /* EP 4 OUT */
#define CY_FX_EP_CONSUMER_1 0x88 /* EP 8 IN */
#define CY_FX_EP_CONSUMER_2 0x82 /* EP 2 IN */
However if I use the following define statement, FX3 returns DMAChannelCreateFailed, error code 64. I can set CY_FX_EP_CONSUMER_2 to different endpoints other than 6 and it will work correctly. Why does it not work with EP6?
#define CY_FX_EP_CONSUMER_2 0x86 /* EP 6 IN */
I can also generate this error using end point 6 with the async example from SDK v1.2