Baud Rate Generator
Timer 2 is selected as the baud rate generator by setting
TCLK and/or RCLK in T2CON (Table 2). Note that the
baud rates for transmit and receive can be different if
Timer 2 is used for the receiver or transmitter and Timer 1
is used for the other function. Setting RCLK and/or TCLK
puts Timer 2 into its baud rate generator mode, as shown
in Figure 4.
The baud rate generator mode is similar to the auto-reload
mode, in that a rollover in TH2 causes the Timer 2 regis-
ters to be reloaded with the 16-bit value in registers
RCAP2H and RCAP2L, which are preset by software.
The baud rates in Modes l and 3 are determined by Timer
2’s overflow rate according to the following equation.
Modes
1
and
3
Baud
Rates
=
Timer 2 Overflow Rate
16
The Timer can be configured for either timer or counter
operation. In most applications, it is configured for timer
operation (CP/T2 = 0). The timer operation is different for
Timer 2 when it is used as a baud rate generator. Nor-
mally, as a timer, it increments every machine cycle (at
1/12 the oscillator frequency). As a baud rate generator,
however, it increments every state time (at 1/2 the oscilla-
tor frequency). The baud rate formula is given below.
Modes
1
and
3
Baud Rate
=
Oscillator
Frequency
32 x
[65536
−
(
RCAP2H, RCAP2L
)
]
where (RCAP2H, RCAP2L) is the content of RCAP2H and
RCAP2L taken as a 16-bit unsigned integer.
Timer 2 as a baud rate generator is shown in Figure 4.
This figure is valid only if RCLK or TCLK = 1 in T2CON.
Note that a rollover in TH2 does not set TF2 and will not
generate an interrupt. Note too, that if EXEN2 is set, a l-to-
0 transition in T2EX will set EXF2 but will not cause a re-
load from (RCAP2H, RCAP2L) to (TH2, TL2). Thus when
Timer 2 is in use as a baud rate generator, T2EX can be
used as an extra external interrupt.
Note that when Timer 2 is running (TR2 = 1) as a timer in
the baud rate generator mode, TH2 or TL2 should not be
read from or written to. Under these conditions, the Timer
is incremented every state time, and the results of a read
or write may not be accurate. The RCAP2 registers may
be read but should not be written to, because a write might
overlap a reload and cause write and/or reload errors. The
timer should be turned off (clear TR2) before accessing
the Timer 2 or RCAP2 registers.
OSC
EXF2
P1.0
(T2)
P1.1
(T2EX)
TR2
EXEN2
C/T2 BIT
TRANSITION
DETECTOR
TIMER 2
INTERRUPT
T2OE (T2MOD.1)
÷2
TL2
(8-BITS)
RCAP2L
RCAP2H
TH2
(8-BITS)
÷2
Figure 5. Timer 2 in Clock-Out Mode
AT89C52
9