Introduction
This page gives an overview of canps driver which is available as part of the Xilinx Vivado and SDK distribution.
This is common for both Zynq and ZynqMP.
This is common for both Zynq and ZynqMP.
How to Enable
Source path for the driver:https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/canps
Driver source code is organized into different folders. Below diagram shows the canps driver source organization
canps
|
-- 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
- Bit rates up to 1 Mb/s
- Transmit message FIFO (TxFIFO) with a depth of 64 messages
- Transmit prioritization through one high-priority transmit buffer (TxHPB
- Watermark interrupts for TxFIFO and RxFIFO
- Automatic re-transmission on errors or arbitration loss in normal mode
- Receive message FIFO (RxFIFO) with a depth of 64 messages
- 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
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
- Supports Transmit prioritization through one high-priority transmit buffer (TxHPB)
Test cases
Canps polled mode test
https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/canps/examples/xcanps_polled_example.cIt configures the CAN controller in loop back mode with no interrupt enabled and verifies the data received with data sent
Polled Mode test:: CAN Polled Mode Example Test Successfully ran CAN Polled Mode Example Test
Canps interrupt mode test
https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/canps/examples/xcanps_intr_example.cIt configures the CAN controller in loop back mode with interrupts enabled and verifies the data received with data sent
Interrupt Mode test: CAN Interrupt Example Test Successfully ran CAN Interrupt Example Test
Canps water mark interrupt test
https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/canps/examples/xcanps_watermark_intr_example.cIt configures the CAN controller in loop back mode with rx and tx water mark interrupts enabled with some RX and TX threshold.
Water Mark Test: CAN Watermark Example Test Successfully ran CAN Watermark Example Test
Known issues and Limitations
- None
Change Log
2017.1
- None
2017.2
- None
2017.3
- None
2017.4
- None
2018.1
- None
2018.2
- None
2018.3
- None
2019.1
- None
2019.2
- None
2020.1
- None