
Understanding the eTPU Channel Hardware, Rev. 0
Channel Modes
Freescale Semiconductor
20
3.4
Both Matches, Double Transition
In
BothMatchDoubleTransition()
(bm_dt), neither the first match nor the first transition requests service.
These can happen in any order, but the first transition will always set TDLA and capture its TCR. Since,
as a general rule, a transition capture cannot be overwritten by a subsequent match, the capture register
will always have the transition time/angle if TDLA is set.
When the second transition occurs, TDLB will be set and the TCR selected in Action Unit B will be
captured. If the second transition occurs before the second match, then it will request service; subsequent
matches are blocked, and it is a simple matter to test MRLA to determine if the first match occurred before
the second transition.
If both matches occur before the second transition, the second match will request service. Note that after
the second match, the second transition (or even both transitions) can occur before the channel is scheduled
for service. Again, this condition is easily tested. If TDLB and both MRLs are set, the second transition
occurred after the second match. The window testing of a pulse is illustrated in
Figure 3
Figure 3. Pulse Time-out
MatchA = Minimum Limit
MatchB = Maximum Limit
if
(MatchA_TransB)
MRLA and MRLB clear
=>
early pulse
if
(MatchA_TransB)
MRLA set && MLRB clear
=>
on-time
if(MatchA_TransB
&& MatchB_TransA)
MRLA and MRLB set
=>
late pulse
DetectARisingEdge()
DetectBFallingEdge()