UM10237_2 © NXP B.V. 2008. All rights reserved.
User manual Rev. 02 — 19 December 2008 494 o f 792
NXP Semiconductors UM10237
Chapter 18: LPC24XX CAN controllers CAN1/2

8.16 Transmit Data Register B (CAN1TDB[1/2/3] - 0xE004 40[3C/4C/5C],

CAN2TDB[1/2/3] - 0xE004 80[3C/4C/5C])

When the corresponding TBS bit in CANSR is 1, software can write to one of these
registers to define the 5th through 8th data bytes of the next transmit message. The Data
Length Code defines the number of transferred data bytes. The first bit transmitted is the
most significant bit of TX Data Byte 1.
9. CAN controller operation

9.1 Error handling

The CAN Controllers count and handle transmit and receive errors as specified in CAN
Spec 2.0B. The Transmit and Receive Error Counters are incriminated for each detected
error and are decremented when operation is error-free. If the Transmit Error counter
contains 255 and another error occurs, the CAN Controller is forced into a state called
Bus-Off. In this state, the following register bits are set: BS in CANxSR, BEI and EI in
CANxIR if these are enabled, and RM in CANxMOD. RM resets and disables much of the
CAN Controller. Also at this time the Transmit Error Counter is set to 127 and the Receive
Error Counter is cleared. Software must next clear the RM bit. Thereafter the Transmit
Error Counter will count down 128 occurrences of the Bus Free condition (11 consecutive
recessive bits). Software can monitor this countdown by reading the Tx Error Counter.
When this countdown is complete, the CAN Controller clears BS and ES in CANxSR, and
sets EI in CANxSR if EIE in IER is 1.
The Tx and Rx error counters can be written if RM in CANxMOD is 1. Writing 255 to the
Tx Error Counter forces the CAN Controller to Bus-Off state. If Bus-Off (BS in CANxSR) is
1, writing any value 0 through 254 to the Tx Error Counter clears Bus-Off. When software
clears RM in CANxMOD thereafter, only one Bus Free condition (11 consecutive
recessive bits) is needed before operation resumes.

9.2 Sleep mode

The CAN Controller will enter sleep mode if the SM bit in the CAN Mode register is 1, no
CAN interrupt is pending, and there is no activity on the CAN bus. Software can only set
SM when RM in the CAN Mode register is 0; it can also set the WUIE bit in the CAN
Interrupt Enable register to enable an interrupt on any wake-up condition.
Table 437. Transmit Data Register B (CAN1TDB[1/2/3] - address 0xE004 40[3C/4C/5C],
CAN2TDB[1/2/3] - address 0xE004 80[3C/4C/5C]) bit description
Bit Symbol Function Reset
Value RM
Set
7:0 Da ta 5 If RTR = 0 and DLC 0101 in the corresponding CANTFI , this
byte is sent as the 5th Data byte of the next transmit message. 0X
15;8 Data 6 If RTR= 0 and DLC 0110 in the corresponding CANTFI, this
byte is sent as the 6th Data byte of the next transmit message. 0X
23:16 Data 7 If RTR = 0 and DLC 0111 in the corresponding CANTFI, this
byte is sent as the 7th Data byte of the next transmit message. 0X
31:24 Data 8 If RTR = 0 and DLC 1000 in the corresponding CANTFI, this
byte is sent as the 8th Data byte of the next transmit message. 0X