22.3.3.7 Output Control
The outputs are configured by writing to the Fault Control (TCDn.FAULTCTRL)
register. TCDn.FAULTCTRL is only reset to ‘0
’ after a POR reset. During
the reset sequence after any Reset, TCDn.FAULTCTRL will get its values from the TCD Fuse
(FUSE.TCDCFG).
The Compare x Enable (CMPxEN) bits in TCDn.FAULTCTRL enable the different outputs. The CMPx bits in TCDn.FAULTCTRL set the output values when a Fault is triggered.
The TCD itself generates two different outputs, WOA and WOB. The two additional outputs, WOC and WOD, can be configured by software to be connected to either WOA or WOB by writing the Compare C/D Output Select (CMPCSEL and CMPDSEL) bits in the Control C (TCDn.CTRLC) register.
The user can override the outputs based on the TCD counter state by writing a
‘1
’ to the Compare Output Value Override (CMPOVR) bit in the
Control C (TCDn.CTRLC) register. The user can then select the output values in the
different dead and on times by writing to the Compare Value (CMPAVAL and CMPBVAL) bit
fields in the Control D (TCDn.CTRLD) register.
When used in One Ramp mode, WOA will only use the setup for dead time A (DTA) and on time A (OTA) to set the output. WOB will only use dead time B (DTB) and on time B (OTB) values to set the output.
When using the override feature together with Faults detection (input modes), the CMPA (and CMPC/D if WOC/D equals WOA) bit in TCDn.FAULTCTRL must be equal to CMPAVAL[0] and [2] in CTRL. If not, the first cycle after a Fault is detected can have the wrong polarity on the outputs. The same applies to CMPB in the TCDn.FAULTCTRL (and CMPC/D if WOC/D equals WOB) bit, which must be equal to CMPBVAL[0] and [2] in TCDn.CTRLD.
Due to the asynchronous nature of the TCD and that input events can
immediately affect the output signal, there is a risk of nanosecond spikes occurring on
the output without any load on the pin. The case occurs in any input mode different from
‘0
’ and when an input event is triggering. The spike value will
always be in the direction of the CMPx values given by the TCDn.FAULTCTRL register.