English
Language : 

K60P100M100SF2RM Datasheet, PDF (1328/1809 Pages) Freescale Semiconductor, Inc – K60 Sub-Family Reference Manual
Memory Map/Register Definition
48.3.8 Error Counter (CANx_ECR)
This register has two 8-bit fields reflecting the value of two FlexCAN error counters:
Transmit Error Counter (TXERRCNT field) and Receive Error Counter (RXERRCNT
field). The rules for increasing and decreasing these counters are described in the CAN
protocol and are completely implemented in the FlexCAN module. Both counters are
read-only except in Freeze Mode, where they can be written by the CPU.
FlexCAN responds to any bus state as described in the protocol, e.g. transmit ‘Error
Active’ or ‘Error Passive’ flag, delay its transmission start time (‘Error Passive’) and
avoid any influence on the bus when in ‘Bus Off’ state. The following are the basic rules
for FlexCAN bus state transitions.
• If the value of TXERRCNT or RXERRCNT increases to be greater than or equal to
128, the FLTCONF field in the Error and Status Register is updated to reflect ‘Error
Passive’ state.
• If the FlexCAN state is ‘Error Passive’, and either TXERRCNT or RXERRCNT
decrements to a value less than or equal to 127 while the other already satisfies this
condition, the FLTCONF field in the Error and Status Register is updated to reflect
‘Error Active’ state.
• If the value of TXERRCNT increases to be greater than 255, the FLTCONF field in
the Error and Status Register is updated to reflect ‘Bus Off’ state, and an interrupt
may be issued. The value of TXERRCNT is then reset to zero.
• If FlexCAN is in ‘Bus Off’ state, then TXERRCNT is cascaded together with another
internal counter to count the 128th occurrences of 11 consecutive recessive bits on
the bus. Hence, TXERRCNT is reset to zero and counts in a manner where the
internal counter counts 11 such bits and then wraps around while incrementing the
TXERRCNT. When TXERRCNT reaches the value of 128, the FLTCONF field in
the Error and Status Register is updated to be ‘Error Active’ and both error counters
are reset to zero. At any instance of dominant bit following a stream of less than 11
consecutive recessive bits, the internal counter resets itself to zero without affecting
the TXERRCNT value.
• If during system start-up, only one node is operating, then its TXERRCNT increases
in each message it is trying to transmit, as a result of acknowledge errors (indicated
by the ACKERR bit in the Error and Status Register). After the transition to ‘Error
Passive’ state, the TXERRCNT does not increment anymore by acknowledge errors.
Therefore the device never goes to the ‘Bus Off’ state.
• If the RXERRCNT increases to a value greater than 127, it is not incremented
further, even if more errors are detected while being a receiver. At the next
successful message reception, the counter is set to a value between 119 and 127 to
resume to ‘Error Active’ state.
1328
K60 Sub-Family Reference Manual, Rev. 6, Nov 2011
Freescale Semiconductor, Inc.