working on message objects, can controller management, Preliminary – Rainbow Electronics T89C51CC02 User Manual
Page 70

70
Rev.A - May 17, 2001
Preliminary
T89C51CC02
15.3.1. Working on message objects
The Page message object register (CANPAGE) is used to select one of the 4 message objects. Then, message
object Control (CANCONCH) and message object Status (CANSTCH) are available for this selected message
object number in the corresponding SFRs. A single register (CANMSG) is used for the message. The maibox
pointer is managed by the Page message object register with an auto-incrementation at the end of each access.
The range of this counter is 8.
Note that the maibox is a pure RAM, dedicated to one message object, without overlap. In most cases, it is not
necessary to transfer the received message into the standard memory. The message to be transmitted can be built
directly in the maibox. Most calculations or tests can be executed in the mailbox area.
15.3.2. CAN Controller management
In order to enable the CAN Controller correctly the following registers have to be initialized:
•
General Control (CANGCON),
•
Bit Timing (CANBT 1,2&3),
•
And for each page
-
message object Control (CANCONCH),
-
message object Status (CANSTCH).
During operation, the CAN Enable message object registers (CANEN) will give a fast overview of the message
object availability.
The CAN messages can be handled by interrupt or polling modes.
A message object can be configured as follows:
•
Transmit message object,
•
Receive message object,
•
Receive buffer message object.
•
Disable
This configuration is made in the CONCH field of the CANCONCH register (see Table 20).
When a message object is configured, the corresponding ENCH bit of CANEN register is set.
Table 20. Configuration for CONCH1:2
When a Transmitter or Receiver action of a message object is finished, the corresponding ENCH bit of the CANEN
register is cleared. In order to re-enable the message object, it is necessary to re-write the configuration.
Non-consecutive message objects can be used for all three types of message objects (Transmitter, Receiver and
Receiver buffer),
CONCH 1
CONCH 2
Type of message object
0
0
disable
0
1
Transmitter
1
0
Receiver
1
1
Receiver buffer