I2C-PS standalone driver


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

Source path for the driver:
Driver source code is organized into different folders. Below diagram shows the iicps driver source organization

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


Controller Features Supported:

I2C bus specification version 2
Supports 16-byte FIFO
Programmable normal and fast bus data rates

Master mode
Write transfer
Read transfer
Extended address support
Support HOLD for slow processor service
Supports TO interrupt flag to avoid stall condition

Slave monitor mode

Slave mode
Slave transmitter
Slave receiver
Extended address support (10-bit address)
Fully programmable slave response address
Supports HOLD to prevent overflow condition
Supports TO interrupt flag to avoid stall condition

Software can poll for status or function as interrupt-driven device
Programmable interrupt generation

Driver Supported Features

The iicps Standalone driver support the below things.
All Controller Features supported.
Known issues and Limitations

Test cases

Refer below pah for testing different examples for each feature of the IP.


  • 2016.3
    • Removed interrupt logic from the eeprom polled example.
    • Removed unused header files from the xiicps_eeprom_polled_example.
  • 2016.4
    • None
  • 2017.1
    • xiicps: Fixed compilation warnings
    • iicps: Workaround for SLVMON issue in zynq
    • iicps: Added readme.txt file to generate doxygen for examples
  • 2017.2
    • None
  • 2017.3
    • None
  • 2017.4
    • None
  • 2018.1
    • None
  • 2018.2
    • iicps: Write transfer size before slave address in xiicps_master.c
    • iicps: Modified the Eeprom scanning mechanism in example xiicps_repeated_start_example.c