CAN Driver

Introduction

Introduction

This page gives an overview of can driver which is available as part of the Xilinx Vivado and SDK distribution.

How to Enable

Source path for the driver:

https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/can

The driver source code is organized into different folders. The below diagram shows the can driver source organization can.
|

  • - 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:

  • Industrial (I, –40 to +100°C junction temperature) and automotive/defense Q-Grade (Q, –40 to +125°C junction temperature) device support.

  • Supports both standard (11-bit identifier) and extended (29-bit identifier) frames

  • Supports bit rates up to 1 Mb/s • Transmit message FIFO with a user-configurable depth of up to 64 messages

  • Transmit prioritization through one high-priority transmit buffer

  • Automatic re-transmission on errors or arbitration loss • Receive message FIFO with a user-configurable depth of up to 64 messages

  • Acceptance filtering (through a user-configurable number) of up to four acceptance filters

  • Sleep mode with automatic wake up

  • Loopback mode for diagnostic applications

  • Maskable error and status interrupts

  • Readable error counters

Driver Supported Features

The CAN Standalone driver support the below things.

  • All controller features supported.

Test cases:

         In AXI CAN, we are running below examples

  • xcan_polled_example.c

                 It configures the CAN controller in loop back mode with no interrupt enabled and verifies the data received with data sent.

                https://gitenterprise.xilinx.com/embeddedsw/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/can/examples/xcan_polled_example.c

  • xcan_intr_example.c

                 It configures the CAN controller in loop back mode with interrupts enabled and verifies the data received with data sent.

                 https://gitenterprise.xilinx.com/embeddedsw/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/can/examples/xcan_intr_example.c

1 2 Successfully ran Can polled Example Successfully ran Can Interrupt Example

Known Issues and Limitations

  • None

Change Log

  • 2019.1

    • Summary:

      • None

  • 2019.2

    • None

  • 2020.1

    • None