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.

GPIO slow behavoiur

Other Parts Discussed in Thread: TMS320C6745

I use C6745 own-made board.
I need use GPIO at least on 50MHz.

My PLL-registers initialization
- CLKMODE = 0 (internal)
- PLLM = 22
- PREDIV = 0
- POSTDIV = 0
- PLLDIV3 = 2
- PLLDIV5 = 5
- PLLDIV7 = 7.

So, I have SYSCLK1 = 20MHz(crystal) * (22+1) = 460MHz and SYSCLK4=460/4=115MHz.

According to "TMS320C6745/C6747 DSP SystemReference Guide " (sprufk4d.pdf) Table7.1: GPIO is clocked from SYSCLK4:
SYSCLK4 System configuration (SYSCFG), PLLC0, PSCs, EMAC/MDIO,GPIO, I2C1, USB1.1(1) /4 Fixed Ratio

I measure period with oscilloscope in the following code and see that time value between transitions 0-1-0 is 50nc that is too slow for me.


volatile Uint32* p1 = (Uint32*)0x1E26090; // GPIO SET_DATA67 register volatile Uint32* p2 = (Uint32*)0x1E26094; // GPIO CLR_DATA67 register
Uint32 mask = 4096; // GP612

while(1)
{
*p1 = mask;
*p2 = mask;
*p1 = mask;
*p2 = mask;
*p1 = mask;
*p2 = mask;
}


Please advice what can I do to increase GPIO speed.
to increase GPIO speed.

  • If you want to do really fast bit-banging of GPIO you'd be better off choosing a Stellaris Cortex M3 device.  The 6745 was not built to do blazing fast GPIO operations.  The memory architecture is optimized for DDR2 access, not for GPIO access.  I think what you're seeing is pretty much as good as you'll get.

  • Brad,
    Thank you for the answer.

    I already understood that C6745 GPIO can not be fast as required for my
    tasks but I was waiting for confirmation that problem is connected with
    C6745 but not with my understanding of the documentation.