Xilinx AXI-IIC 从协议描述

Xilinx AXI-IIC Slave Protocol description

我正在尝试让 Xilinx AXI IIC-Core 示例运行,可以在 C:\Xilinx.7\ISE_DS\EDK\sw\XilinxProcessorIPLib\drivers\iic_v2_08_a\examples\xiic_slave_example.c 找到它。有人用过这个内核吗?

我找到了这个pg090 axi iic描述,上面写着

Standard communication on the bus between a master and a slave is composed of four parts:
- START
- Slave Address
- Data Transfer
- STOP

但是当我发送写传输时,地址和消息都被接受但 SLAVE 将 SCL 保持为低电平。

谁能告诉我为什么会这样?虽然对时序特性的详细描述可能会有所帮助。

我知道的答案很晚,并不是真正的答案,但我已经尝试过这个例子,结果相同。它可能保持较低的原因是因为该示例期望接收到一定数量的字节,这在现实世界中对于典型的从设备来说根本不切实际。

我设法通过仅使用低级函数(在 xiic_l.h 中定义)并读取 AXI IIC 总线接口 v2,在不使用中断的情况下使用典型的 "EEPROM" 协议实现了一个工作从机。 0 文档第 34-35 页。

示例代码很可能是由于未处理的中断或应该在其中一个处理程序中清除中断而导致的,但从未发现是哪个处理程序。它可能正在等待 RX_FIFO_PIRQ 达到,正如我所说,这对于从站来说是不切实际的,它应该是一点一点的,这就是为什么 RX_FIFO_PIRQ 应该是 0x00.

我学到了一些东西。 CTRL.TX 必须为 1 才能从从机传输,并且 CTRL.TXFIFORESET 必须为 0 才能写入传输(我有这个高电平需要清除并且它没有自动重置该位然后写入 TX 什么也没做即 SCL/SDA 低)...

我打算从中断版本开始,看看如何用中断实现它。

如果您使用 Ultrascale+ 的 image_2020.1,您将遇到 I2C0_SCL 的限制,因为该常见图像存在一个已知问题。我已将图像升级到 image_2020.2 并释放了节流时钟。