LPC2294-ErrataSheet-->CAN
[ 2007-5-11 6:01:00 | By: CANopen ]
 

Phliphs对LPC2294内置CAN模块七个异常的解释(摘自《Integrated Circuit Errata Sheet》):

CAN.1         CAN bus activity does not wake from powerdown mode
Introduction: The CAN interface may be configured such that activity on the CAN bus lines will wake the part from power-down mode.
Problem:      CAN bus activity fails to wake the part from power-down.
Work-around:  CAN bus pins may be tied to external interrupt inputs which will wake the part from power-down.

CAN.2         No wake up from CAN sleep mode using SM bit
Introduction: The CAN Controller will enter sleep mode if the SM bit in the CAN Mode register is set to 1, no CAN interrupt is pending, and there is no activity on the CAN bus. The CAN Controller wakes up (and sets the WUI bit in the CAN Interrupt register if the WUIE bit in the CAN Interrupt Enable register is set to 1), in response to a dominant bit on the CAN bus or software clearing the SM bit in the CAN Mode register.
Problem:      Clearing the SM bit does not cause the CAN module to wakeup from CAN sleep mode.
Work-around:  None, the SM bit cannot be used as a source of CAN wakeup.

CAN.3         Shared access for Identifier Look-Up Table (LUT)
Introduction: In FullCAN mode,CAN messages are automatically stored in a special section of the LUT RAM. In the Acceptance filter Look-Up Table, CAN message identifiers can be enabled/disabled by clearing/setting the Message Disable bit.
Problem:      When the CPU accesses the LUT while a message is being received, the Acceptance Filter may not work correctly and messages can be lost.
Work-around:  1. The CPU should not access the LUT during operation. Since the FullCAN mode would cause the CPU to access the LUT during operation, the problem does not occur when the FullCAN mode is not used.
              2. Do not enable/disable the Message Identifiers in the LUT while the CAN module is enabled.

CAN.4         Triple Transmit Buffer function not working correctly
Introduction: The CAN block provides three transmit buffers. Each of them has a length of four 32-bit words and is able to store one complete CAN message
Problem:      The Triple Transmit Buffer function cannot be used.
Work-around:  Use any one Transmit buffer only (Use either Transmit Buffer 1, Transmit Buffer 2 or Transmit Buffer 3 exclusively). The buffer you decided to use should be loaded only when there is no pending transmission.

CAN.5         Handling Reset Mode and Abort Transmission
Introduction: In Reset Mode, the CAN operations are disabled and writable registers can be written. If an Abort Transmission command is issued then a pending transmission request is cancelled if not already in progress.
Problem:      Normal operation cannot be resumed after reset or abort transmission without using one of the workarounds below.
Work-around:  Two possible workarounds are possible.
              1. After exiting the Reset Mode, before sending the first actual message, a dummy message should be transmitted with identifier 0x0 (Standard Frame Format). This message should be transmitted by setting both the Self Reception Request bit and the Abort Transmission bit in the Command register simultaneously. (Note: CAN Identifier 0x0 should not be used in the application)
              2. If CAN Identifier 0x0 is used by the application then the above workaround cannot be used. This second workaround is not applicable to CAN Controller 1 since this solution needs the TDx pin to be shared with a port pin.
              Before normal operation is started,
              a. Initialize the CAN Controller and Acceptance Filter.
              b. Load CAN Transmit Buffer with a CAN message. Make sure that the Acceptance filter is configured to receive this message.
              c. Switch P0.xx/TD pin to Port function by configuring the appropriate bits in the PINSELx register.
              d. Start transmission of a message with the Single Shot Transmission and Self Reception Command (Command=0x12).
              e. Wait until message is received (configure Receive Interrupt).
              f. Switch P0.xx/TD pin function back to TD function.
Continue with normal operation. Please note that the Transmit Buffer used for initial message must be used for all further CAN transmissions (see CAN.4).

CAN.6         Look-up Table Error Address (LUTerrAd) register does not function.
Introduction: When a syntax error in the LUT is encountered, the LUT address of the incorrect line is reported in the LUTerrAd register
Problem:      If there is a syntax error then the address line is not reported and the acceptance filtering is disabled.
Work-around:  Add two disabled dummy message identifiers to the last possible address of the 2K LUT RAM (address 0xE003 87FC). Also, if an explicit Standard Frame Format section is enabled, add two disabled dummy message identifiers at the end of that section.

CAN.7         Receiving messages while arbitration is lost.
Introduction: The CAN module can lose arbitration to another CAN node during an attempt to transmit a CAN message. The message of the CAN node the arbitration was lost to is supposed to be received correctly by the CAN module.
Problem:      Messages might not be received correctly if during a CAN Transmission the CAN bus arbitration is lost to another CAN node.
Work-around:  Use the Self Reception Request command instead of the Transmission Request command. However, it has to be taken into account that now all transmitted messages may be received if not prevented by appropriate Acceptance Filter settings. (Don’t set up Acceptance Filter Message Identifiers for the messages you are transmitting yourself.)

 

发表评论:

    大名:
    密码: (游客无须输入密码)
    主页:
    标题:

时 间 记 忆
最 新 评 论

专 题 分 类
最 新 日 志
最 新 留 言
搜 索
用 户 登 录
友 情 连 接
博 客 信 息


Powered by Oblog.