Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
Introduction

...

How to Enable

Source path for the driver:
https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/canfd

Driver source code is organized into different folders. Below diagram shows the canfd driver source organization

canfd
|
-- Doc - Provides the API and data structure details
|
- Examples - Reference application to show how to use the driver APIs and calling sequence
|
- Source - Driver source files

Features Supported

Controller Features:

  • Compatible with the ISO 11898 -1, CAN 2.0A, and CAN 2.0B standards
  • Standard (11-bit identifier) and extended (29-bit identifier) frames
  • Flexible Bit rates up to 8 Mb/s
  • Nominal Bit rates up to 1 Mb/s
  • Transmit message FIFO (TxFIFO) with a depth of 64 messages
  • Watermark interrupts for TxFIFO and RxFIFO
  • Automatic re-transmission on errors or arbitration loss in normal mode
  • Two 64-deep RX FIFOs with 32 ID Filter-Mask pairs
  • Four Rx acceptance filters with enables, masks and IDs
  • Loop back and snoop modes for diagnostic applications
  • Mask able error and status interrupts
  • 16-Bit time stamping for receive message
  • Readable Rx/Tx error counters
  • Message with lowest ID transmitted first

Driver Features:

  • Supports Standard and extended frames
  • Supports Config, Sleep, Normal and snoop modes
  • Supports Acceptance filter configurations
  • Supports Polled and interrupt modes
  • Water mark interrupt support for both Tx and Rx FIFOs

Test cases

Canfd polled mode test

https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/canfd/examples/xcanfd_polled_example.c


It configures the CANFD controller in loop back mode with no interrupt enabled and verifies the data received with data sent
Code Block
themeMidnight
Polled Mode test::
CANFD Polled Mode Example Test
Successfully ran XCanFd Polled Mode example

Canfd interrupt mode test

https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/canfd/examples/xcanfd_intr_example.c
It configures the CANFD controller in loop back mode with interrupts enabled and verifies the data received with data sent
Code Block
themeMidnight
Interrupt Mode test:
CANFD Interrupt Example Test
Successfully ran XCanFd Interrupt Mode example

Known issues and Limitations

  • None

Change Log

  • 2019.1

    • Summary:
      • None

  • 2019.2


    • Summary
      • canfd:Fixes incorrect mask values for CANFD2.0
    • Commits
      • e1d5650c canfd:Fixes incorrect mask values for CANFD2.0
  • 2020.1

    • Summary:
      • canfd:Used correct macro to access RX FIFO1 buffer
      • canfd:Fixed missing RX can packets on CANFD2.0
      • canfd: Updated tcl file to support AXI CANFD and CANFD
      • canfd: Fix missing TX canfd packet in loopback
      • canfd: Added support for Protocol Exception and BusOff Event support.
      • canfd: Added PEE support and updated BusOff EventHandler.
      • canfdFix sending extra frames in XCanFd_Send_Queue.
      • canfd: Initialize IsPl of config structure
    • Commits:
      • 182ead82 :Used correct macro to access RX FIFO1 buffer
      • a750484d :Fixed missing RX can packets on CANFD2.0
      • d66e87bf :Updated tcl file to support AXI CANFD and CANFD
      • fa8441de :Fix missing TX canfd packet in loopback
      • dee69bb8 :Added support for Protocol Exception and BusOff Event support.
      • 0cff0aa1 :Added PEE support and updated BusOff EventHandler
      • 417e3677 :Fix sending extra frames in XCanFd_Send_Queue
      • 914c2bdf :Initialize IsPl of config structure
  • 2020.2

    • Summary:
      • canfd: Update Makefile for parallel make execution
    • Commits
      • 59aa1f canfd: Update Makefile for parallel make execution
  • 2021.1


Related Links