SPRAD59 October   2023 TMS320F280039

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. Introduction
  5. Key Differences Between DCAN and MCAN
  6. Module Initialization
    1. 3.1 DCAN Initialization
    2. 3.2 MCAN Initialization
    3. 3.3 Initialization sequence
    4. 3.4 Code Snippets for Module Initialization
  7. Bit Timing Configuration
  8. Message RAM Configuration
  9. Interrupt handling
    1. 6.1 MCAN Interrupt Sources
    2. 6.2 DCAN Interrupt Handling
    3. 6.3 MCAN Interrupt Handling
  10. Transmitting data
    1. 7.1 Basic Transmission Process
      1. 7.1.1 Transmission with DCAN
      2. 7.1.2 Transmission with MCAN
    2. 7.2 MCAN Vs DCAN Transmit Procedural Differences
    3. 7.3 MCAN Transmit Concepts
      1. 7.3.1 Tx Event FIFO
  11. Receiving Data
    1. 8.1 Introduction to Reception
    2. 8.2 Basic Reception Process
      1. 8.2.1 DCAN Reception
      2. 8.2.2 MCAN Reception
    3. 8.3 Filter Elements
      1. 8.3.1 Filter Element Structure
    4. 8.4 Rx Buffer
      1. 8.4.1 Receiving in Rx Buffer
    5. 8.5 Rx FIFO
      1. 8.5.1 Receiving in Rx FIFO
    6. 8.6 Receiving High Priority Messages
  12. Avoiding network errors
  13. 10References

Abstract

C2000 Real-time MCUs feature three types of Controller Area Network (CAN) modules: eCAN, DCAN and MCAN. While eCAN and DCAN only support classic CAN, MCAN supports both classic CAN and CAN FD. Devices such as TMS320F2838xD, TMS320F2838xS, TMS320F28003x and TMS320F280015x feature both DCAN and MCAN modules. Some C2000 devices only feature the MCAN module since it supports both classic CAN and CAN FD. Although all of the aforementioned CAN modules are compliant with the CAN protocol standard, none of them are software-compatible with each other. Specifically, the DCAN and MCAN module employ a completely different architecture and hence, register and bit structure. This warrants a very different programming approach between the modules. This document is intended to ease the migration from DCAN to the MCAN module. It discusses the most common operations such as module initialization, bit-timing configuration, message RAM configuration, buffer and FIFO configuration, data transmission, reception (with filtering) and error handling. It explains how these operations are done in DCAN and MCAN modules. Code snippets are shown as warranted.