SLAAEN5 February   2025 MSPM0G1106 , MSPM0G1107 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Bridge between CAN and SPI
  5. 2Implementation
    1. 2.1 Principle
    2. 2.2 Structure
  6. 3Software Description
    1. 3.1 Software Functionality
    2. 3.2 Configurable Parameters
    3. 3.3 Structure of Custom Element
    4. 3.4 Structure of FIFO
    5. 3.5 SPI Receive and Transmit (Transparent Transmission)
    6. 3.6 SPI Receive and Transmit (Protocol Transmission)
    7. 3.7 CAN Receive and Transmit
    8. 3.8 Application Integration
  7. 4Hardware
  8. 5Application Aspects
    1. 5.1 Flexible structure
    2. 5.2 Optional Configuration for SPI
    3. 5.3 Optional Configuration for CAN
    4. 5.4 CAN Bus Multinode Communication Example
  9. 6Summary
  10. 7References

CAN Receive and Transmit

For CAN receive, there are two global variables defined in bridge_can.c.

DL_MCAN_RxBufElement rxMsg;
Custom_Element gCAN_RX_Element;

The following is the process for CAN receive.

  1. Call getCANRxMsg() to get complete message from CAN message RAM to rxMsg.
  2. Call processCANRxMsg() to extract information from rxMsg and store it into gCAN_RX_Element.
  3. Place gCAN_RX_Element into gCan2Spi_FIFO.

For CAN transmit, there are 2 global variables defined in bridge_can.c.

DL_MCAN_TxBufElement txMsg0;
Custom_Element gCAN_TX_Element;

The following is the process for CAN transmit.

  1. Obtain gCAN_TX_Element from gSpi2Can_FIFO.
  2. Call processCANTxMsg() to receive information from gCAN_TX_Element and store it into txMsg0.
  3. Call sendCANTxMsg() to transmit txMsg0 through the CAN.