We have a synchronous slave fifo set up and running at 40 MHz, with the active thread selected by the A0 and A1 pins.
It seems that when starting the state machine in the RESET state, writes will always go to thread 0, even if the address pins say, for example, thread 2. Once pktend asserts for the first time, though, the write will start going to the correct thread as specified by the pins.
We have found that by starting the state machine in IDLE, however, the first write goes to the correct thread as it should.
What is different about the RESET state such that it does not work properly, while IDLE does?
I assume you're using CyU3PGpifSMStart with RESET as startindex and facing this issue. Please confirm.
How did you find out that it is getting written to Thread 0? The API should be started with startindex as IDLE, this is indicated in the API Guide. I'll check if there is any pre-requisites if we use the API with other state as startindex and update here.
I am starting with RESET. The demos were doing the same thing, and it seems the documentation says to start in state 0, which is RESET.
To find out which thread it is writing to, I used DMA auto channels to send the contents over to two different USB endpoints, and saw the behavior described.
Have a chat with the engineers who've extensively worked on this. We've not seen this issue before.
Please create a tech support case (MyAccount -> MyCases) so that one of our engineers can analyze this issue.