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.

AM6442: how to reduce the time delay between two GPMC reads

Part Number: AM6442
Other Parts Discussed in Thread: AM6421

Tool/software:

Hi,

when using AM6421 GPMC to communicate with FPGA,  the time delay between two reads seems very long. in the test, the delay is around 0.26us as shown in the following picture. the yellow line is the CS signal. 

my questions are:

1 why the delay between two reads are so long, even though we set the cycle delay to NO Delay?

2 how can we reduce the time delay between two reads?

3 the same delay is shown between two writes. how to reduce the time delay between two writes?

we do not want to use GPMC burst mode because there will be a lot of work on FPGA coding.

The GPMC config is as following.

synchronous single write and read mode are configured. wait pin is enabled. the timing parameter is as following

and the read from FPGA code is as following:

volatile uint16_t *pSrc = (volatile uint16_t *)(OFFSET + BASEADDRESS_CS0);
volatile uint16_t *pDst = (volatile uint16_t *)test_gpmcRxBuf;
for(i = 0; i<16; i++)
{
*pDst = *pSrc;
pSrc++;
pDst++;
}

thank you!

  • Hello Pian Zhou,

    Could you please confirm if the 0.26usec delay is occurring between each 16-bit read?
    I suspect that this delay is caused by the time it takes for the core to read from the register, which is typically around 0.2usec.

    To troubleshoot this issue, could you try the following test? Currently, you are running the GPMC at 100MHz.

    Try using the clock input divider values to reduce the frequency to 25MHz, and then check if the 0.26usec delay still exists.

    Additionally, instead of using a for loop to read the data, try using a memcpy API to see if it makes a difference in the delay.

    Regards,

    Anil

  • Hi Swargram,

    1, Yes, the 0.26usec delay is occuring between each 16 bit read;

    2, change the GPMC FCLK to 25MHz, the delay is almost the same 0.26 usec as 100MHz GPMC FCLK;

    3, the 0.26usec delay increased a bit when using memcpy API 

    4, put the code into TCM, the delay is almost the same 0.26 usec;

    Regards

  • Hello Pian Zhou,

    To read the GPMC CS base address from the R5F core for the 4 Bytes approximately the R5F core can take almost 0.4usec time.

    So, here you are reading only the 16bit and this 0.2usec time is the valid time in between the two reads.

    This time can't be decreased .

    Regards,

    Anil.

  • Hi Swargam,

    thank you for the feedback.

    is there any way to reduce the delay time between 2 reads?

  • Hello Pian Zhou,

    As I mentioned above, the read time from the register is not possible to reduce.

    If you need more throughput, then try DMA and, other than this, we don't have any methods to improve the performance.

    Regards,

    Anil.