PIC18CXX8
DS30475A-page 210
Advanced Information
2000 Microchip Technology Inc.
17.3
CAN Modes of Operation
The PIC18CXX8 has the following modes of operation.
These modes are:
Configuration mode
Disable mode
Normal Operation mode
Listen Only mode
Loopback mode
Error Recognition mode (selected through
CANRXM bits)
Modes are requested by setting the REQOP bits,
except the Error Recognition mode, which is requested
through the CANRXM bits. Entry into a mode is
acknowledged by monitoring the OPMODE bits.
When changing modes, the mode will not actually
change until all pending message transmissions are
complete. Because of this, the user must verify that the
device has actually changed into the requested mode
before further operations are executed.
17.3.1
CONFIGURATION MODE
The CAN module has to be initialized before the activa-
tion. This is only possible if the module is in the Config-
uration mode. The Configuration mode is requested by
setting REQOP2 bit. Only when the status bit
OPMODE2 has a high level, the initialization can be
performed. Afterwards, the configuration registers and
the acceptance mask registers and the acceptance fil-
ter registers can be written. The module is activated by
setting the control bits CFGREQ to zero.
The module will protect the user from accidentally vio-
lating the CAN protocol through programming errors.
All registers which control the configuration of the mod-
ule can not be modified while the module is on-line.
The CAN module will not be allowed to enter the Con-
figuration mode while a transmission is taking place.
The CONFIG bit serves as a lock to protect the follow-
ing registers.
Configuration registers
Bus Timing registers
Identifier Acceptance Filter registers
Identifier Acceptance Mask registers
In the Configuration mode, the module will not transmit
or receive. The error counters are cleared and the inter-
rupt flags remain unchanged. The programmer will
have access to configuration registers that are access
restricted in other modes.
17.3.2
DISABLE MODE
In Disable mode, the module will not transmit or
receive. The module has the ability to set the WAKIF bit
due to bus activity, however, any pending interrupts will
remain and the error counters will retain their value.
If REQOP<2:0> is set to 001, the module will enter the
module Disable mode.
This mode is similar to dis-
abling other peripheral modules by turning off the mod-
ule enables. This causes the module internal clock to
stop unless the module is active (i.e., receiving or
transmitting a message). If the module is active, the
module will wait for 11 recessive bits on the CAN bus,
detect that condition as an idle bus, then accept the
module disable command. OPMODE<2:0>=001 indi-
cates whether the module successfully went into mod-
ule Disable mode
The WAKIF interrupt is the only module interrupt that is
still active in the module Disable mode. If the WAKIE is
set, the processor will receive an interrupt whenever
the CAN bus detects a dominant state, as occurs with
a SOF.
The I/O pins will revert to normal I/O function when the
module is in the module Disable mode.
17.3.3
NORMAL MODE
This
is
the
standard
operating
mode
of
the
PIC18CXX8. In this mode, the device actively monitors
all bus messages and generates acknowledge bits,
error frames, etc. This is also the only mode in which
the PIC18CXX8 will transmit messages over the CAN
bus.
17.3.4
LISTEN ONLY MODE
Listen
Only
mode
provides
a
means
for
the
PIC18CXX8 to receive all messages, including mes-
sages with errors. This mode can be used for bus mon-
itor applications, or for detecting the baud rate in ‘hot
plugging’ situations. For auto-baud detection, it is nec-
essary that there are at least two other nodes which are
communicating with each other. The baud rate can be
detected empirically by testing different values until
valid messages are received. The Listen Only mode is
a silent mode, meaning no messages will be transmit-
ted while in this state, including error flags or acknowl-
edge signals. The filters and masks can be used to
allow only particular messages to be loaded into the
receive registers, or the filter masks can be set to all
zeros to allow a message with any identifier to pass.
The error counters are reset and deactivated in this
state. The Listen Only mode is activated by setting the
mode request bits in the CANCON register.