This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C1294NCPDT: EPI HB16: Wrong statement of IRDYDLY in datasheet?

Part Number: TM4C1294NCPDT

Hi Everyone

I use the TM4C1294NCPDT und try to connect an FPGA with the EPI in HB16 Mode.
With the iRDY signal I would like to stall the access for read and for write operations.

In the Datasheet figure 11-5 on page 836 it is shown what happens if iRDY is asserted, depending on the IRDYDLY configuration.
The Register "EPIHB16TIME" on Page 931 under IRDYDLY confirms the figure 11-5.

Depending on the IRDYDLY configuration, the access BEGINNS to stall 1,2 or 3 EPI clockcycles after iRDY goes LOW.
After the stalling time (in figure 11-5 its only 1 EPI clock) the datatransfer continues.

My measurements shows, that independent of the IRDYDLY configuration, the access always beginns to stall after 3 EPI clockcycles.
BUT depending on the IRDYDLY configuration the time after iRDY goes HIGH again is different.
For IRDYDLY=1 its 1 EPI clock after iRDY is HIGH again. For IRDYDLY=3 its 3 EPI clock after iRDY is HIGH again.

My attached Figures:
1: IRDYDLY = 1: it takes 3 EPI cc to stall. 
2: IRDYDLY = 1: carries on 1 EPI cc after iRDY is HIGH again.
3: IRDYDLY = 3: it takes 3 EPI cc to stall. 
4: IRDYDLY = 3: carries on 3 EPI cc after iRDY is HIGH again.

With my understanding and this measurements the concept of the IRDYDLY is wrong in the  figure 11-5 on page 836 as well as Page 931.
IRDYDLY does not influence the start of the stalling but how long it takes to recover from the stall.

I am very thankful if you have some more information about the IRDYDLY or could prove my findings as wrong.
Kind regards Livio

Configuration of the EPI:

EPI0_HB16CFG_R =
  EPI_HB16CFG_RDYEN
| EPI_HB16CFG_WRHIGH
| EPI_HB16CFG_RDHIGH
| EPI_HB16CFG_MODE_ADNMUX;

EPI0_HB16CFG2_R =
  EPI_HB16CFG2_CSCFG_CS;

EPI0_HB16TIME_R =
  (1 << (EPI_HB16TIME_IRDYDLY_S))
// | (1 << (EPI_HB16TIME_IRDYDLY_S+1))
| EPI_HB16TIME_WRWSM
| EPI_HB16TIME_RDWSM
| (1 << EPI_HB16TIME_CAPWIDTH_S);