|
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.
|
▷ |