【问题标题】:Xilinx AXI-IIC Slave Protocol descriptionXilinx AXI-IIC 从协议描述
【发布时间】:2015-06-12 08:26:20
【问题描述】:

我正在尝试让 Xilinx AXI IIC-Core 示例工作,该示例可在 C:\Xilinx\14.7\ISE_DS\EDK\sw\XilinxProcessorIPLib\drivers\iic_v2_08_a\examples\xiic_slave_example.c 找到。有人体验过这个核心吗?

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

总线上的标准主从通信由四部分组成:
- 开始
- 从地址
- 数据传输
- 停止

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

谁能告诉我为什么会发生这种情况?尽管详细描述时序特征可能会有所帮助。

【问题讨论】:

    标签: xilinx i2c


    【解决方案1】:

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

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

    示例代码很可能是由未处理的中断引起的,或者当它应该在其中一个处理程序中时没有清除中断,但从未发现是哪一个。它可能正在等待到达 RX_FIFO_PIRQ,正如我所说的,这对于从机来说是不切实际的,它应该是逐位的,这就是为什么 RX_FIFO_PIRQ 应该是 0x00。

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

    我将从中断版本开始,看看如何使用中断来实现它。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2022-01-13
        • 1970-01-01
        • 2022-01-24
        • 2021-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多