General-purpose timers (TIM2 to TIM5)
RM0090
608/1731
DocID018909 Rev 11
An external incremental encoder can be connected directly to the MCU without external
interface logic. However, comparators are normally be used to convert the encoder’s
differential outputs to digital signals. This greatly increases noise immunity. The third
encoder output which indicate the mechanical zero position, may be connected to an
external interrupt input and trigger a counter reset.
gives an example of counter operation, showing count signal generation and
direction control. It also shows how input jitter is compensated where both edges are
selected. This might occur if the sensor is positioned near to one of the switching points. For
this example we assume that the configuration is the following:
•
CC1S= ‘01’ (TIMx_CCMR1 register, TI1FP1 mapped on TI1)
•
CC2S= ‘01’ (TIMx_CCMR2 register, TI2FP2 mapped on TI2)
•
CC1P= ‘0’, CC1NP = ‘0’, IC1F =’0000’ (TIMx_CCER register, TI1FP1 noninverted,
TI1FP1=TI1)
•
CC2P= ‘0’, CC2NP = ‘0’, IC2F =’0000’ (TIMx_CCER register, TI2FP2 noninverted,
TI2FP2=TI2)
•
SMS= ‘011’ (TIMx_SMCR register, both inputs are active on both rising and falling
edges)
•
CEN = 1 (TIMx_CR1 register, Counter is enabled)
Figure 168. Example of counter operation in encoder interface mode
Table 96. Counting direction versus encoder signals
Active edge
Level on opposite
signal (TI1FP1 for
TI2, TI2FP2 for TI1)
TI1FP1 signal
TI2FP2 signal
Rising
Falling
Rising
Falling
Counting on
TI1 only
High
Down
Up
No Count
No Count
Low
Up
Down
No Count
No Count
Counting on
TI2 only
High
No Count
No Count
Up
Down
Low
No Count
No Count
Down
Up
Counting on
TI1 and TI2
High
Down
Up
Up
Down
Low
Up
Down
Down
Up
TI1
forward
forward
backward
jitter
jitter
up
down
up
TI2
Counter