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.

C6748 Timers and Output pins

In reading the Timer document for the 6748 and reading about the output pins for the timers I came across this sentence:

"Normal timer counting modes cannot be used when the GPIO mode is enabled -- TIMnRS in the timer global control register (TGCR) cannot be brought out of reset when GPENn in GPINTGPEN is asserted"

Does this mean if i don't want to use the pins i cannot use any of the timers? Also, does it also mean that if i use the MDIO, I2C0, etc functionality (pins that are muxed with the timer pins) that i cannot use the timers? If i do not select the timer pins in the pinmux and i don't switch the timer pins to GPIO does that allow me to use the timers without interrupting the MDIO or I2C0 interfaces?

  • The short answer is that you can always use the TIMER counting functions unless you configure the TIMER module to treat its TIMER pins as general purpose pins.

    Here is the long answer.

    The device is an SoC with various independent peripherals.  If each peripheral was fully utilitized, the number of required signals would exceed the actual pin count of the device.  In order to pack all of those peripherals into the device, the signals are multiplexed together for most of the IO pins.

    Even though multiple peripherals are multiplexed together on a single pin, the individual modules are unaware of each other.  In order to prevent contention between peripherals on a single pin, a multiplexer is used to determine which peripheral will master the output function of the pin.  The PINMUXn registers are used to control the multiplexer.

    When it comes to input functions, all of the peripherals will see the logic value on the pin.

    In the case of the TIMERs, they are able to operate in normal counting mode without external signals so they can operate freely while another peripheral like MDIO takes control of the pin output drivers.  You will not be able to use MDIO and SPI_SCS[0] + SPI_SCS[1] at the same time because the signals will collide.

    The TIMER module has a local feature which can treat the TIMER pins as if they are general purpose pins (where you will not be able to use the TIMER counting function).  Since this feature is local to the TIMER module, you would still need to configure the PINMUX register for the TIMER function in order to use it.

    Outside of the TIMER module is a global GPIO peripheral which supports chip-level GPIO functions.  The global GPIO module is independent of the TIMER's local general purpose function, and you would need to configure the PINMUX register for the GPIO function in order to control the pins through the global GPIO peripheral.

    -Tommy