Recoverable faults can restart or halt
the timer/counter. Two faults, called Fault A and Fault B, can trigger recoverable fault
actions on the compare channels CC0 and CC1 of the TCC. The compare channels' outputs
can be clamped to inactive state either as long as the fault condition is present, or
from the first valid fault condition detection on until the end of the timer/counter
cycle.
Fault Inputs
The first two channel input events
(TCCxMC0 and TCCxMC1) can be used as Fault A and Fault B inputs, respectively. Event
system channels connected to these fault inputs must be configured as asynchronous. The
TCC must work in a PWM mode.
Fault Filtering
There are three filters available for
each input Fault A and Fault B. They are configured by the corresponding Recoverable
Fault n Configuration registers (FCTRLA and FCTRLB). The three filters can either be
used independently or in any combination.
Input Filtering
By default, the event detection is asynchronous. When the event
occurs, the fault system will immediately and asynchronously perform the
selected fault action on the compare channel output, also in device power modes
where the clock is not available. To avoid false fault detection on external
events (e.g. due to a glitch on an I/O port) a digital filter can be enabled
and configured by the Fault B Filter Value bits in the Fault n Configuration
registers (FCTRLn.FILTERVAL). If the event width is less than FILTERVAL (in
clock cycles), the event will be discarded. A valid event will be delayed by
FILTERVAL clock cycles.
Fault Blanking
This ignores any fault input for a certain time just after a
selected waveform output edge. This can be used to prevent false fault
triggering due to signal bouncing, as shown in the figure below. Blanking can
be enabled by writing an edge triggering configuration to the Fault n Blanking
Mode bits in the Recoverable Fault n Configuration register (FCTRLn.BLANK). The
desired duration of the blanking must be written to the Fault n Blanking Time
bits (FCTRLn.BLANKVAL).
The blanking time
tbis calculated by
tb=1+BLANKVALfGCLK_TCCx_PRESC
Here,
fGCLK_TCCx_PRESC
is the frequency of the prescaled peripheral clock frequency
fGCLK_TCCx.
The prescaler is
enabled by writing '1' to the Fault n Blanking Prescaler bit
(FCTRLn.BLANKPRESC). When disabled,
fGCLK_TCCx_PRESC=fGCLK_TCCx.
When enabled,
fGCLK_TCCx_PRESC=fGCLK_TCCx/64.
The maximum blanking time (FCTRLn.BLANKVAL= 255) at
fGCLK_TCCx=96MHz is 2.67µs (no prescaler) or 170µs
(prescaling). For fGCLK_TCCx=1MHz, the maximum blanking
time is either 170µs (no prescaling) or 10.9ms (prescaling
enabled).
Figure 49-22. Fault Blanking in RAMP1
Operation with Inverted Polarity
Fault Qualification
This is enabled by writing a '1' to the Fault n Qualification bit
in the Recoverable Fault n Configuration register (FCTRLn.QUAL). When the
recoverable fault qualification is enabled (FCTRLn.QUAL=1), the fault input is
disabled all the time the corresponding channel output has an inactive level,
as shown in the figures below.
Figure 49-23. Fault Qualification in RAMP1
OperationFigure 49-24. Fault Qualification in RAMP2
Operation with Inverted Polarity
Fault Actions
Different fault actions can be
configured individually for Fault A and Fault B. Most fault actions are not mutually
exclusive; hence two or more actions can be enabled at the same time to achieve a result
that is a combination of fault actions.
Keep Action
This is enabled by writing the Fault n Keeper bit in the Recoverable
Fault n Configuration register (FCTRLn.KEEP) to '1'. When enabled, the
corresponding channel output will be clamped to zero as long as the fault
condition is present. The clamp will be released on the start of the first cycle
after the fault condition is no longer present, see next Figure.
Figure 49-25. Waveform Generation with Fault
Qualification and Keep Action
Restart Action
This is enabled by writing the Fault n Restart bit in Recoverable
Fault n Configuration register (FCTRLn.RESTART) to '1'. When enabled, the
timer/counter will be restarted as soon as the corresponding fault condition is
present. The ongoing cycle is stopped and the timer/counter starts a new cycle,
see Figure 49-26. In Ramp 1 mode, when the new cycle starts, the
compare outputs will be clamped to inactive level as long as the fault
condition is present.
Note: For RAMP2 operation, when a
new timer/counter cycle starts the cycle index will change automatically, see
Figure 49-27. Fault A and Fault B are qualified only during
the cycle A and cycle B respectively: Fault A is disabled during cycle B, and
Fault B is disabled during cycle A.
Figure 49-26. Waveform Generation in RAMP1 mode
with Restart ActionFigure 49-27. Waveform Generation in RAMP2 mode
with Restart Action
Capture Action
Several capture actions can be selected by writing the Fault n
Capture Action bits in the Fault n Control register (FCTRLn.CAPTURE). When one of
the capture operations is selected, the counter value is captured when the fault
occurs. These capture operations are available:
CAPT - the equivalent to a
standard capture operation, for further details refer to Capture Operations
CAPTMIN - gets the minimum
time stamped value: on each new local minimum captured value, an event or
interrupt is issued.
CAPTMAX - gets the maximum
time stamped value: on each new local maximum captured value, an event or
interrupt (IT) is issued, see Figure 49-28.
LOCMIN - notifies by event
or interrupt when a local minimum captured value is detected.
LOCMAX - notifies by event
or interrupt when a local maximum captured value is detected.
DERIV0 - notifies by event
or interrupt when a local extreme captured value is detected, see Figure 49-29.
CCx Content:
In CAPTMIN and CAPTMAX
operations, CCx keeps the respective extremum captured values, see Figure 49-28. In LOCMIN, LOCMAX or DERIV0 operation, CCx
follows the counter value at fault time, see Figure 49-29.
Before enabling CAPTMIN or
CAPTMAX mode of capture, the user must initialize the corresponding CCx
register value to a value different from zero (for CAPTMIN) top (for CAPTMAX).
If the CCx register initial value is zero (for CAPTMIN) top (for CAPTMAX), no
captures will be performed using the corresponding channel.
MCx Behaviour:
In LOCMIN and LOCMAX operation,
capture is performed on each capture event. The MCx interrupt flag is set only
when the captured value is above or equal (for LOCMIN) or below or equal (for
LOCMAX) to the previous captured value. So interrupt flag is set when a new
relative local Minimum (for CAPTMIN) or Maximum (for CAPTMAX) value has been
detected. DERIV0 is equivalent to an OR function of (LOCMIN, LOCMAX).
In CAPT operation, capture is performed on each capture event. The
MCx interrupt flag is set on each new capture.
In CAPTMIN
and CAPTMAX operation, capture is performed only when on capture event time,
the counter value is lower (for CAPTMIN) or higher (for CAPMAX) than the last
captured value. The MCx interrupt flag is set only when on capture event time,
the counter value is higher or equal (for CAPTMIN) or lower or equal (for
CAPTMAX) to the value captured on the previous event. So interrupt flag is set
when a new absolute local Minimum (for CAPTMIN) or Maximum (for CAPTMAX) value
has been detected.
Interrupt Generation
In CAPT mode, an interrupt is generated on each filtered Fault n
and each dedicated CCx channel capture counter value. In other modes, an
interrupt is only generated on an extreme captured value.
This is configured by writing 0x1 to the Fault n Halt mode bits in
the Recoverable Fault n Configuration register (FCTRLn.HALT). When enabled, the
timer/counter is halted and the cycle is extended as long as the corresponding
fault is present.
The next figure ('Waveform Generation with Halt and Restart
Actions') shows an example where both restart action and hardware halt action
are enabled for Fault A. The compare channel 0 output is clamped to inactive
level as long as the timer/counter is halted. The timer/counter resumes the
counting operation as soon as the fault condition is no longer present. As the
restart action is enabled in this example, the timer/counter is restarted after
the fault condition is no longer present.
The figure after that ('Waveform Generation with Fault
Qualification, Halt, and Restart Actions') shows a similar example, but with
additionally enabled fault qualification. Here, counting is resumed after the
fault condition is no longer present.
Note that in RAMP2 and RAMP2A operations, when a new timer/counter
cycle starts, the cycle index will automatically change.
Figure 49-30. Waveform Generation with Halt and Restart ActionsFigure 49-31. Waveform Generation with Fault Qualification, Halt, and Restart
Actions
Software Halt Action
This is configured by writing 0x2 to the Fault n Halt mode bits in
the Recoverable Fault n configuration register (FCTRLn.HALT). Software halt
action is similar to hardware halt action, but in order to restart the
timer/counter, the corresponding fault condition must not be present anymore,
and the corresponding FAULT n bit in the STATUS register must be cleared by
software.
Figure 49-32. Waveform Generation with Software
Halt, Fault Qualification, Keep and Restart Actions
The online versions of the documents are provided as a courtesy. Verify all content and data in the device’s PDF documentation found on the device product page.