IntroductionThis 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:https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/iicpsDriver source code is organized into different folders. Below diagram shows the iicps driver source organizationiicps|-- 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 2Supports 16-byte FIFOProgrammable normal and fast bus data ratesMaster modeWrite transferRead transferExtended address supportSupport HOLD for slow processor serviceSupports TO interrupt flag to avoid stall conditionSlave monitor modeSlave modeSlave transmitterSlave receiverExtended address support (10-bit address)Fully programmable slave response addressSupports HOLD to prevent overflow conditionSupports TO interrupt flag to avoid stall conditionSoftware can poll for status or function as interrupt-driven deviceProgrammable interrupt generation
Driver Supported FeaturesThe iicps Standalone driver support the below things.All Controller Features supported.Known issues and Limitations
Test casesRefer below pah for testing different examples for each feature of the IP.https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/iicps/examples
- Removed interrupt logic from the eeprom polled example.
- Removed unused header files from the xiicps_eeprom_polled_example.
- xiicps: Fixed compilation warnings
- iicps: Workaround for SLVMON issue in zynq
- iicps: Added readme.txt file to generate doxygen for examples
- iicps: Write transfer size before slave address in xiicps_master.c
- iicps: Modified the Eeprom scanning mechanism in example xiicps_repeated_start_example.c
- iicps: Added arbitration lost support
- iicps: Add timeout event to slave interrupt handler
- iicps: Correct XIicPs_GetOptions function
- iicps: Re-organization of driver
- iicps: Add support for 10-bit address in Master/Slave.
- iicps: Clear the ISR before enabling interrupts.
- iicps: Add clocking support
- iicps: Modified eeprom examples to detect page size