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 toggle at 80 mhz

Other Parts Discussed in Thread: TM4C123GH6PM

I am using TI Tiva C series board with TM4C123GH6PM microcontroller.i want the GPIO pins to toggle at 80Mhz freq.I tried but the max that i could get was 10mhz only.

Is there any way to toggle it at 80 mhz??

  • Hi Vineet,

    Yes, there's a limitation of 1/10th the clock speed. Check this thread: e2e.ti.com/.../1484265

    Regards,
    Gautam

  • The fastest toggling you can get out of a pin is probably by using the PWM peripheral, not GPIO output control.
    Test it: figure out what is the fastest pwm you can generate while using PWM_SYSCLK_DIV_1 as the source. You might be able to toggle the output at every clock if you load the counters to 1... Never tried it.
    If you configure your system clock at the maximum of a TM4C123x (80Mhz), maybe the above works. Let us know.
  • The IO pad driver probably won't go that fast. You should drive it with timer in pwm mode and see what you can get. The timer will limit you to 60Mhz. The rest will be determined by the drive strength of the IO and the impedance of the load, as well as the capacitance of the PCB trace. There are many factors.
  • Confirmed results:
    Setting the System Clock at 80MHz, the maximum actual GPIO pin output I was able to get was 20MHz (that's full cycles, meaning 40 million level shiftings per second).
    That was obtained with PWM, using Tivaware based configurations.
    Trying twice as much got me nothing but a flat 3V3 output.

    Yes, of course that's assuming really high impedance - I don't rely on GPIO's to drive loads directly except when I'm dealing with really non relevant functions, such as an onboard debug led. Serious things all use external drivers, transistors, opamps and what-not.
  • Final answer:

    No, it is impossible to toggle a GPIO at 80MHz using TM4C123.

    The maximum you can toggle at is 40Mhz, using a timer in PWM mode.

    A few notes about other posts:

    - There is no such thing as a 10% clock limitation.

    - There is no way to obtain 60MHz as suggested, because poster refers to a TM4C123 MCU, which runs at a maximum speed of 80MHz.

    Note that this signal is 40MHz (full cycles), changing the slope 80 million times per second. Might suffice to what poster needed on first place...

  • Might it be that, "GPIO Toggle Rate alone" is an (incomplete) measurement of performance?

    Can the MCU process & push data fast enough so that this (40MHz maximum) GPIO output can "Clock Data" on each/every GPIO clock edge?    That's of interest & importance - is it not?   (and processing of a full (8 bit port's data) rather than (single) bit should receive comment/analysis...)

  •  The maximum i could port out @80Mhz AHB bus was 13.33Mhz only through GPIO.

  • Thanks for that.

    Myself, others would love to see your, "8 bit port output - ideally fetched from a buffer" - and clocked at the highest clock rate you can achieve.   

    Simple toggle of GPIO pin is of far less practical use - delivery of 4 or 8 bit (or more) clocked, parallel data is substantially more valuable/useful...