What's the DMA buffer size and count in your Fx3 firmware?
And how have you implemented the state machine on the master side? Have you made sure to perform data transfers only when looking at the DMA_RDY flag to determine that there is space to fill in the Fx3?
Since you are using the PKTEND signal at the end of a burst of 2048 clocks, I presume your DMA buffer size is greater than 4096.
In such a case, once you've determined that the buffer is ready to take in data and you start transmitting data using the SLWR signal and driving the data bus from the master, you should be able to receive all the 4096 bytes without any hiccups.
If your buffer size is less than 4096 (you mentioned xmit buffer being 1024, I'm not sure if you meant Fx3 buffer or the buffer on the master), for example 1024, then you will end up switching buffers after every 1024 bytes are filled and this involves a finite delay. If you transmit data during this time, it will be lost.
Apart from that, you can also look at the timing diagrams for sync write operation (available in the datasheet and the AppNote: http://www.cypress.com/?rID=51581) to make sure you're interface meets the required timing spec.
Also, it could be possible that the data loss/mismatch might be happening at the master end itself (maybe you're not driving out the data quickly enough and the buffers are getting rewritten with new data).
Hello Shashank, thank you for getting back to me, apologies for taking so very long to respond.
> What's the DMA buffer size and count in your Fx3 firmware?