Hi,
Few words about our system:
We have a TMS320C6678 (only one core) chip interconnected with a Cyclone V FPGA through EMIF-16.
We are able to send/receive data by writing/reading to appropriate memory address at C6678.
Our system works right now in the following way:
1. Every 4ms FPGA generates an interrupt to the DSP through GPIO Interrupt.
This informs us that data is ready to be read out.
2. After the interrupt we trigger EDMA3 through EDMA Channel Controller (TPCC) 1 to move the data
to the processor. It takes about 3ms to move the data.
EMIF is set now for pretty low speed settings, so we could speed this up, however we predict that ultimately we would have increase of data so anyway we would end up with 3ms.
3. We asynchronically need to write/read some registers from FPGA in this 3ms window.
And our problem is at step 3, becasue our write/read gets stalled to the moment when EDMA finishes it's transfer.
We thought that DSP has higher priority than EDMA so it could access the EMIF and FPGA even when the transfer occurs.
We even tried to change QUEPRI (Queue Priority Register) and set everything to lowest prioty on every channel controller (7 instead of 0). However we think that it maybe the priority that only applies between channel controllers.
We also thought about splitting one big transfer to let's say two EDMA transfers, when one would trigger another. So it would give place for
the DSP to write/read register more quickly. However we don't like the solution :).
We would appreciate any help on the matter.
Best regards,
Pawel Dabrowski