Microchip Technology DM164134 Data Sheet

Page of 402
PIC18FXX8
DS41159E-page 236
© 2006 Microchip Technology Inc.
FIGURE 19-9:
SHORTENING A BIT PERIOD (SUBTRACTING SJW FROM PHASE SEGMENT 2)
 
19.9
Programming Time Segments
Some requirements for programming of the time
segments:
• Prop Seg + Phase Seg 1 
≥ Phase Seg 2
• Phase Seg 2 
≥ Sync Jump Width
For example, assume that a 125 kHz CAN baud rate is
desired using 20 MHz for F
OSC
. With a T
OSC
 of 50 ns,
a baud rate prescaler value of 04h gives a T
of 500 ns.
To obtain a nominal bit rate of 125 kHz, the nominal bit
time must be 8
μs or 16 T
Q
.
Using 1 T
Q
 for the Sync Segment, 2 T
Q
 for the Propa-
gation Segment and 7 T
Q
 for Phase Segment 1 would
place the sample point at 10 T
Q
 after the transition.
This leaves 6 T
Q
 for Phase Segment 2. 
By the rules above, the Sync Jump Width could be the
maximum of 4 T
Q
. However, normally a large SJW is
only necessary when the clock generation of the differ-
ent nodes is inaccurate or unstable, such as using
ceramic resonators. Typically, an SJW of 1 is enough.
19.10 Oscillator Tolerance
As a rule of thumb, the bit timing requirements allow
ceramic resonators to be used in applications with
transmission rates of up to 125 Kbit/sec. For the full bus
speed range of the CAN protocol, a quartz oscillator is
required. A maximum node-to-node oscillator variation
of 1.7% is allowed.
19.11 Bit Timing Configuration 
Registers
The Configuration registers (BRGCON1, BRGCON2,
BRGCON3) control the bit timing for the CAN bus
interface. These registers can only be modified when
the PIC18FXX8 is in Configuration mode.
19.11.1
BRGCON1
The BRP bits control the baud rate prescaler. The
SJW<1:0> bits select the synchronization jump width in
terms of multiples of T
Q
.
19.11.2
BRGCON2
The PRSEG bits set the length of the Propagation Seg-
ment in terms of T
Q
. The SEG1PH bits set the length of
Phase Segment 1 in T
Q
. The SAM bit controls how
many times the RXCAN pin is sampled. Setting this bit
to a ‘1’ causes the bus to be sampled three times; twice
at T
Q
/2 before the sample point and once at the normal
sample point (which is at the end of Phase Segment 1).
The value of the bus is determined to be the value read
during at least two of the samples. If the SAM bit is set
to a ‘0’, then the RXCAN pin is sampled only once at
the sample point. The SEG2PHTS bit controls how the
length of Phase Segment 2 is determined. If this bit is
set to a ‘1’, then the length of Phase Segment 2 is
determined by the SEG2PH bits of BRGCON3. If the
SEG2PHTS bit is set to a ‘0’, then the length of Phase
Segment 2 is the greater of Phase Segment 1 and the
information processing time (which is fixed at 2 T
Q
 for
the PIC18FXX8).
19.11.3
BRGCON3
The PHSEG2<2:0> bits set the length (in T
Q
) of Phase
Segment 2 if the SEG2PHTS bit is set to a ‘1’. If the
SEG2PHTS bit is set to a ‘0’, then the PHSEG2<2:0>
bits have no effect.
Sync
Prop
Segment
Phase
Segment 1
Phase
Segment 2
≤ SJW
T
Q
Sample Point
Nominal Bit Length
Actual Bit Length