SPRA876B January   2003  – September 2017 TMS320C28341 , TMS320C28341 , TMS320C28342 , TMS320C28342 , TMS320C28343 , TMS320C28343 , TMS320C28343-Q1 , TMS320C28343-Q1 , TMS320C28344 , TMS320C28344 , TMS320C28345 , TMS320C28345 , TMS320C28346 , TMS320C28346 , TMS320C28346-Q1 , TMS320C28346-Q1 , TMS320F2801 , TMS320F2801 , TMS320F2801-Q1 , TMS320F2801-Q1 , TMS320F28016 , TMS320F28016 , TMS320F28016-Q1 , TMS320F28016-Q1 , TMS320F2802 , TMS320F2802 , TMS320F2802-Q1 , TMS320F2802-Q1 , TMS320F28030 , TMS320F28030 , TMS320F28030-Q1 , TMS320F28030-Q1 , TMS320F28031 , TMS320F28031 , TMS320F28031-Q1 , TMS320F28031-Q1 , TMS320F28032 , TMS320F28032 , TMS320F28032-Q1 , TMS320F28032-Q1 , TMS320F28033 , TMS320F28033 , TMS320F28033-Q1 , TMS320F28033-Q1 , TMS320F28034 , TMS320F28034 , TMS320F28034-Q1 , TMS320F28034-Q1 , TMS320F28035 , TMS320F28035 , TMS320F28035-EP , TMS320F28035-EP , TMS320F28035-Q1 , TMS320F28035-Q1 , TMS320F28050 , TMS320F28050 , TMS320F28051 , TMS320F28051 , TMS320F28052 , TMS320F28052 , TMS320F28052-Q1 , TMS320F28052-Q1 , TMS320F28053 , TMS320F28053 , TMS320F28054 , TMS320F28054 , TMS320F28054-Q1 , TMS320F28054-Q1 , TMS320F28055 , TMS320F28055 , TMS320F2806 , TMS320F2806 , TMS320F2806-Q1 , TMS320F2806-Q1 , TMS320F28062 , TMS320F28062 , TMS320F28062-Q1 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28062F-Q1 , TMS320F28063 , TMS320F28063 , TMS320F28064 , TMS320F28064 , TMS320F28065 , TMS320F28065 , TMS320F28066 , TMS320F28066 , TMS320F28066-Q1 , TMS320F28066-Q1 , TMS320F28067 , TMS320F28067 , TMS320F28067-Q1 , TMS320F28067-Q1 , TMS320F28068F , TMS320F28068F , TMS320F28068M , TMS320F28068M , TMS320F28069 , TMS320F28069 , TMS320F28069-Q1 , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M , TMS320F28069M-Q1 , TMS320F28069M-Q1 , TMS320F2808 , TMS320F2808 , TMS320F2808-Q1 , TMS320F2808-Q1 , TMS320F2809 , TMS320F2809 , TMS320F2810 , TMS320F2810 , TMS320F2810-Q1 , TMS320F2810-Q1 , TMS320F2811 , TMS320F2811 , TMS320F2811-Q1 , TMS320F2811-Q1 , TMS320F2812 , TMS320F2812 , TMS320F2812-Q1 , TMS320F2812-Q1 , TMS320F28232 , TMS320F28232 , TMS320F28232-Q1 , TMS320F28232-Q1 , TMS320F28234 , TMS320F28234 , TMS320F28234-Q1 , TMS320F28234-Q1 , TMS320F28235 , TMS320F28235 , TMS320F28235-Q1 , TMS320F28235-Q1 , TMS320F28332 , TMS320F28332 , TMS320F28333 , TMS320F28333 , TMS320F28334 , TMS320F28334 , TMS320F28335 , TMS320F28335 , TMS320F28335-Q1 , TMS320F28335-Q1 , TMS320R2811 , TMS320R2811 , TMS320R2812 , TMS320R2812

 

  1.   Programming Examples for the TMS320x28xx eCAN
    1.     Trademarks
    2. 1 Introduction
      1. 1.1 TMS320F28x eCAN Features
    3. 2 Programs
    4. 3 Debug and Design Tips to Resolve/Avoid CAN Communication Issues
      1. 3.1 Minimum Number of Nodes Required
      2. 3.2 Why a Transceiver is Needed
      3. 3.3 Debug Checklist
        1. 3.3.1 Programming Issues
        2. 3.3.2 Physical Layer Issues
        3. 3.3.3 Hardware Debug Tips
    5. 4 References
  2.   Revision History

Why a Transceiver is Needed

One cannot directly connect CANTX of node-A to CANRX of node-B and vice versa and expect successful CAN communication. In this case, CAN is unlike other serial interfaces like SCI or SPI. For example, SCI can be made to work with a RS232 transceiver or through a direct connection (SCITX of one node to SCIRX of another node and vice versa). However, CAN bus needs a CAN transceiver for the following reason: In addition to converting the single-ended CAN signal for differential transmission, the transceiver also loops back the CANTX pin to the CANRX pin of a node. This is because a CAN node needs to be able to monitor its own transmission. Why?

  • This has to do with the ACK requirement mandated by the CAN protocol. When a node transmits a frame on the CAN bus, it expects an ACK from at least one other node on the network. For the ACK phase, the transmitter puts out a 1 and expects to read back a 0.
  • During arbitration, a node with a higher-priority MSGID needs to be able to override a 1 with a 0. Here again, the transmitter needs to be able to read back the transmitted data. When a node puts out a 1 and reads back a 0 during the arbitration phase, it loses arbitration.