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 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 35-24. 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 35-25. Fault Qualification in RAMP1
OperationFigure 35-26. Fault Qualification in RAMP2
Operation
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 35-27. 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 the following figure. 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 the folowing second figure for RAMP2 mode. 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 35-28. Waveform Generation in RAMP1
mode with Restart ActionFigure 35-29. 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 the following
figure Capture Action “CAPTMAX”
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 Capture Action “DERIV0”.
CCx Content:
In CAPTMIN and
CAPTMAX operations, CCx keeps the respective extremum captured values,
see Capture Action “CAPTMAX”. In LOCMIN, LOCMAX or
DERIV0 operation, CCx follows the counter value at fault time, see Capture Action “DERIV0”.
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 35-32. Waveform
Generation with Halt and Restart ActionsFigure 35-33. 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 35-34. 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.