
Channel Modes
Understanding the eTPU Channel Hardware, Rev. 0
Freescale Semiconductor
19
as a single TCR time, and to request service after the pulse is complete. It could also be used to switch an
output pin without requesting service, if that was required.
As an input mode,
bm_st
might be used to setup a double time-out on an input transition. The matches
could include asynchronous TCRs such as an angle and a time, and the MRLs would then indicate if an
input event happened after one of the time-out events. If both time-outs occur without a transition, the
channel would request a match service. Once the transition occurs, further matches are blocked, so the
channel automatically records whether the transition occurs before or after a match.
Note that in a synchronous time-time setup, if the earlier match is set in Action Unit B, the transition would
vector to
MatchA_TransB
only when the second match occurs before the transition. If the transition occurs
before the first match, the entry vector would be
MatchB_TransA
and MRLB would not be set. And if the
transition occurs after the first match (B) and before the second, the entry vector would be
MatchB_TransA
, but MRLB would be set. This gives the user three threads to program separately, e.g.
early
,
on-time
, and
late
. See
Figure 2
.
In all cases, a transition captures the TCRs indicated for both action units. Therefore, whether the transition
is early or on-time, both the time and the angle at the transition is available in the thread. If the second
match occurs and no transition is detected, either TCR at the time-out match can be captured.
Figure 2. Transition Double Time-out
MatchB = Minimum Limit
MatchA = Maximum Limit
if
(MatchB_TransA && !MatchA_TransB)
MRLB clear
=>
early transition
if
(MatchB_TransA && !MatchA_TransB)
MRLB set
=>
on-time transition
if (MatchA_TransB)
=
late transition
DetectARisingEdge()
DetectBDisable()