cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
3,483 Views
Registered: ‎05-22-2017

AXI IIC (2.0) / xps-iic-2.00 Randomly Stops/Hangs

Jump to solution

I'm not sure if this is because of the driver or because of the core, but I've been having issues with the AXI IIC 2.0 hanging randomly after 15 seconds to 7 minutes.

 

I'm currently using Ubuntu on the Zynq-7010, and have 5 I2C ports (2 PS and 3 PL) for a product with several redundant I2C sensors. As I have so many redundant systems, I can't put all the sensors on the same bus, because the devices would all share the same addresses, which would break everything.

 

I've tried different sensors, and bringing the AXI IIC down to 100 KHz, but the issue doesn't seem to go away. The entirety of the AXI system is running at 50 MHz.

 

I have seen a few issues in the forums with regards to the driver, we're currently running xps-iic-2.00, however I'm unsure how to upgrade the driver.

0 Kudos
Reply
1 Solution

Accepted Solutions
5,555 Views
Registered: ‎05-22-2017
I think I found the solution:

- Step down to 100 kHz output
- Set clock inertial delay to 300E-6 seconds. Since our AXI runs at 50MHz, this translates to a count of 15
- Set data inertial delay to 50E-6 seconds. I just used a count of 2.

Sources:
https://forums.xilinx.com/t5/Networking-and-Connectivity/Set-INERTIAL-DELAY-in-IIC-module/td-p/495248

https://www.xilinx.com/support/documentation/ip_documentation/xps_iic.pdf

View solution in original post

0 Kudos
Reply
3 Replies
3,412 Views
Registered: ‎05-22-2017
Additionally:
I have the AXI IIC interrupt connected.

When I run the same sensor driver, which simply opens, reads, and closes file-descriptor of the I2C device, it runs for multiple hours on the ARM I2C peripheral.
0 Kudos
Reply
5,556 Views
Registered: ‎05-22-2017
I think I found the solution:

- Step down to 100 kHz output
- Set clock inertial delay to 300E-6 seconds. Since our AXI runs at 50MHz, this translates to a count of 15
- Set data inertial delay to 50E-6 seconds. I just used a count of 2.

Sources:
https://forums.xilinx.com/t5/Networking-and-Connectivity/Set-INERTIAL-DELAY-in-IIC-module/td-p/495248

https://www.xilinx.com/support/documentation/ip_documentation/xps_iic.pdf

View solution in original post

0 Kudos
Reply
3,357 Views
Registered: ‎05-22-2017
Addendum: A clean install of Vivado helped, since I had issues creating new Boot.bin files.
0 Kudos
Reply