1. The latest patch prevents the SCL state machine from becoming stuck when a slave no acks during the last data byte being transmitted. This change was necessary in order to avoid generating the stop condition too early while transmitting data.
2. Changed data setup time so that it does not interfere with the hold time requirement imposed by the IIC spec.
3. Fixed the TxErrorHandler function in the driver so that it calls the status handler even if the Rx buffer pointer is not set while MSMS == 1. The customer application also needs to make sure that the status handler deals with the error condition properly. For instance, if the slave does not respond, it is desirable to clear the MSMS bit to release the bus. Clearing the MSMS bit cannot be added to the driver since different applications might choose to handle this error condition differently. The driver should not try to predict the customer's application.
These patches will be included in the next EDK Major release with additional enhancement. The Revision code will be updated in the next release of the core.
You can download the latest opb_iic_v1_01_d patch from the following FTP site:
You can download the latest Software Driver patch from the following FTP site:
For installing the patch, please refer to (Xilinx Answer 23474).
For installing the Driver patch, please unzip the driver and place the 'iic_v1_02_a' in 'drivers' subdirectory in your project.