Thank you for your reply yipingwang, even if all you really said was "read the manual"!
Incidentally, we don't have a problem with IFCTA_B in GPCM mode - we have used the IFC both configured in acknowledgement mode and configured in abort mode (although in abort mode we never trigger an abort so we tie IFCTA_B inactive), and both work as expected.
We understand the fields such as TRAD and TACO, and these affect the transaction as expected - but they only affect the timing within a transaction rather than between transactions.
But prompted by your response, we looked in the reference manual again for any registers that might affect the gap between transactions - and we did indeed find two, both related to "bus turn-around" and therefore only affecting the gap after a read.
These are: IFC_CSORn [TRHZ] and IFC_GCR [TBCTL_TRN_TIME], and some experimentation has indeed shown that these do make a difference to the CS inactive time between consecutive read transactions.
We did not look at these settings closely before as the description of their effect (described in section 23.4.5 "Data buffer control (BCTL)") seems to assume that the BCTL signal is enabled and describe it in relation to Flash modes, whereas we disable the BCTL signal by setting IFC_CSORn [BCTLD] to '1' and we are of course using GPCM mode not a Flash mode.
But we are disappointed that the reference manual indicates that the minimum delay configurable by IFC_CSORn [THRZ] is "20 IP Clocks" (for the TRHZ field set to "000"). As we use a divide ratio of 3, that is 6.66 IFC output clocks, which does indeed match the increase in CS inactive time between consecutive reads compared to between consecutive writes. We tried TRHZ field values of "001" and "010" for 40 & 60 IP Clocks respectively, and the gap between consecutive read transactions did indeed increase by about 7 & 14 IFC output clocks respectively, so we do know that this field is having an effect.
IFC_GCR [TBCTL_TRN_TIME] also affected the gap between consecutive read transactions, but this is not a problem for us as we can set it to zero anyway.
I am prepared to believe that the gap between write transactions is probably fixed and we have no control over it from any registers (but please let me know if I am wrong here).
So, my question becomes simply:
Is the CS inactive time after a read transaction really a minimum of 20 IFC IP Clocks as selected by an IFC_CSORn [TRHZ] field value of "000", or is there any way we can select a shorter time?
I look forward to a reply, although I rather expect that the answer is "no, you are stuck with a minimum of 20 IFC IP clocks", and we will just have to put up with a greatly reduced throughput when reading over this interface. We can mitigate this a little using burst mode, but we regard this as a significant degradation in performance over the interface on the older P-series processors.
Thank you for the support in any case!
Cheers, Bill.