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
- For the differential positive output, a single constant
- 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)