Differential Output Pins

Description

General-purpose digital differential output pin pairs

This resource implements pairs of differential output pins, which may typically be used to drive external differential analog circuitry. The pins are mapped in the I/O Mapping Panel .

When the SCIF driver is initialized, the pins are by configured as tri-stated.

When the SCIF driver is uninitialized, the pins are returned to the MCU domain GPIO module, with no pull. Note that the uninitialization does not modify the GPIO module’s output enable settings, and it is assumed that the pins have not been configured as outputs.

The differential output is enabled by calling gpioGenDiffOutput() with specified I/O pins and value, and is disabled by calling gpioDisableDiffOutput() .

Name and Label

A short name and a descriptive label must be specifed for each I/O usage:

  • The name is used for references in task code, for example as parameters to gpioGenDiffOutput() . For a name XYZ:
    • For the differential positive output, a single constant AUXIO_OP_XYZ is created automatically
    • For the differential negative output, a single constant AUXIO_ON_XYZ is created automatically
  • The label is used in the I/O Mapping Panel , and also in automatically generated code documentation

Output Drive Strength

Output drive strength is configurable per resource I/O usage, with the same options as in the SDK-provided PIN or GPIO driver.

See the device datasheet to find which I/O pins have high-drive capability.

Limitations

Each pin pair must be in the same AUX I/O bank nibble. This means that both AUX I/O pin indexes must be in the range ``4n+0`` to ``4n+3`` , where n is the same for both pins.

Examples

Differential Signalling

// Depend on the current state ...
if ( ... ) {

    ... Do something here ...

    // Output differential 0
    gpioGenDiffOutput(AUXIO_OP_DIFF, AUXIO_ON_DIFF, 0);

} else {

    ... Do something here ...

    // Output differential 1
    gpioGenDiffOutput(AUXIO_OP_DIFF, AUXIO_ON_DIFF, 1);
}

... Do something here ...

// Disable the differential output
gpioDisableDiffOutput(AUXIO_OP_DIFF, AUXIO_ON_DIFF);

Procedures Overview

Name Brief description
gpioDisableDiffOutput() Disables differential signal output on a pair of AUX I/O pins (both pins revert to tri-state simultaneously). More …
gpioGenDiffOutput() Generates differential signal output on a pair of AUX I/O pins (one pin goes high, the other goes low). More …

Constants

None.

Global Variables

None.

Procedures

gpioDisableDiffOutput

Prototype: gpioDisableDiffOutput(#auxioP, #auxioN)

Disables differential signal output on a pair of AUX I/O pins (both pins revert to tri-state simultaneously).

The pin pair must be in the same AUX I/O bank nibble. This means that both AUX I/O pin indexes must be in the range 4n+0 to 4n+3, where n is the same for both pins.

Parameter value(s)

  • #auxioP : Positive output (index of AUX I/O pin)
  • #auxioN : Negative output (index of AUX I/O pin)

gpioGenDiffOutput

Prototype: gpioGenDiffOutput(#auxioP, #auxioN, value)

Generates differential signal output on a pair of AUX I/O pins (one pin goes high, the other goes low). The two pins transition simultaneously.

The pin pair must be in the same AUX I/O bank nibble. This means that both AUX I/O pin indexes must be in the range 4n+0 to 4n+3, where n is the same for both pins.

Parameter value(s)

  • #auxioP : Positive output (index of AUX I/O pin)
  • #auxioN : Negative output (index of AUX I/O pin)
  • value : Differential output value (0 = auxioP low, 1 = auxioP high)