This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] FDC2114EVM:使用 Verilog 和 Artix-7 FPGA 板通过自定义 I2C 控制器进行连接(写入有效、但读取不能&'t)

Guru**** 2380860 points
Other Parts Discussed in Thread: FDC2114EVM, FDC2114
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/708071/fdc2114evm-interfacing-through-custom-i2c-controller-using-verilog-and-artix-7-fpga-board-write-works-but-read-doesn-t

器件型号:FDC2114EVM
主题中讨论的其他器件: FDC2114

大家好、我在这里是新手、如果我违反了规则、请原谅我(这里的支持人员指导我、不知道要在其他地方发布)

我有 FDC2114EVM、我正在尝试将其与我在 CMOD Artix7-15T FPGA 板上使用 Verilog 构建的 I2C 控制器连接。 我取出了连接到 FDC2114的微控制器板、以便我成为唯一控制传感器的主器件。

现在、我已经成功遵循了基于这个文档(/lit/ds/snoscz5a/snoscz5a.pdf)的每个时序和序列技术规格。

我有读取和写入模式可用。 写入模式成功地确认了我发送的所有四(4)个帧、而读取模式只确认前两(2)个地址、并且不会在重复起始后拉低第三个地址。

我曾尝试减少和增加重复启动前的延迟、但它仍然无法正常工作。

考虑到第一个串行总线地址和从机寄存器被应答、并且重复启动后的下一个帧没有应答、这是否是因为我在重复启动时发生了错误? 或者、我还应该考虑其他问题吗?

这里是我的波形供参考。  https://imgur.com/a/V8m5RiC

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有任何规则被破坏! 我们很乐意为您提供帮助。

    您是否能够看到 FDC2114响应您的写入命令? 例如、如果您更改传感器驱动电流、您是否看到传感器振荡的振幅变化?

    您能否共享为读取命令发送的数据? 仅从图像中解析有点困难。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、感谢您的回答!

    [引用 user="Clancy Soehren"]您是否能够看到 FDC2114 响应您的写入命令?

    是的、写入命令正常工作。

    [引用 user="Clancy Soehren"]您能否共享为读取命令发送的数据?

    我正在读取常量寄存器、在本例中为配置寄存器(0x1A)、其默认值应为(0x2801)。 我发送的示波器屏幕上的配置地址错误顺便说一下、我的换档方向错误。

    但我已经解决了这个问题。

    问题在于 ADDR 管脚也应在重复启动后失效。 这就是从器件(FDC2114)没有在第三个帧上应答的原因。 我最初所做的是使第一个地址帧上的 ADDR 引脚无效、然后在事务的其余部分将其保持为高电平。 为了解决我的问题、我必须在重复开始后的第二个地址帧(第三个帧)期间再次取消置位。

    它现在正在工作、我将为器件的所有寄存器获取正确的值。

    我在第一次阅读文档时并不是很明白、或许有人建议通过在文档中包含引脚波形来改进它? 或者我在读取它时是否错过了某个东西。

    但是、同样、人们从零开始取出已经实施的内容、就像我使用 I2C 所做的那样、这种情况并不常见。

    谢谢!