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.

[参考译文] DAC8741H:SPI 通信问题

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1178087/dac8741h-spi-communication-issues

器件型号:DAC8741H

大家好、我已经使用 DAC8741H 开发了一个测试 PCB、并且尝试测试初始通信以验证硬件。 但是、我无法与调制解调器建立 SPI 通信。 到目前为止、通过发送[0xa4、0xff、0xff、0xff、0xff、0xff、0xff、0xff、0xff、0xff、0xff、 0xFF]、但没有可识别的消息。 我尝试过的任何其他消息完全没有响应。

注意在所附图片中、C1是芯片选择、C2是 SCLK、C3是 MOSI/SDI、C4是 MISO/SDO

我将使用 Raspberry Pi 4和 spidev 库进行测试、使用 xfer 函数发送/接收位。 我已经验证了我的调制解调器具有3.3V 的功率、逻辑电平也是如此、PI 通过 MOSI 发送到 SDI、只是没有接收任何数据。

我已附上原理图供参考。

如果有任何建议,我将不胜感激,因为我不确定如何继续。 如果可以提供任何具有已知响应的位序列、或者对芯片问题测试位置有任何建议、那将是很好的。

Libby Albanese

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更新:通过使用 spidev 库中的 readbytes 和 writebytes、我能够获得回显响应(请参阅示波器照片)。 但是、我仍然不确定要发送什么消息来获得回复、因此如果对此做出任何澄清、我们将不胜感激

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Libby、

    您是否可以先读回控制寄存器? 我只想查看 SPI 是否正常工作。 寄存器为2h、复位值为0x8042。 这是一个开始验证通信的好地方。

    之后、我们可以检查调制解调器。 您可以首先验证调制解调器本身是否存在某种载波检测、然后通过查看正弦波来验证进入调制解调器的数据(我假设您正在查看 HART 信号)。

    吴约瑟

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    为了澄清这一点、我发送了哪些位值来读取该寄存器?  我认为这是我困惑的一部分。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Libby、  

    寄存器地址为02、因此对于从该地址读取、您需要 在通信的 MSB 中插入1、因此读取将是82 00 00 (额外的两个字节完成了 SPI 帧。  

    之后、您需要发送 NOP 帧(00 00 00 00)以时钟输出读取的数据。

    吴约瑟

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Joseph、

    我发送了[0x82、0x00、0x00]并返回结果(130、128、66)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Libby、

    抱歉、我不小心点击了"TI 认为问题已解决"按钮。

    因此、读取看起来是正确的。 回读数为82 80 42。

    对于调制解调器、您要发送什么? 您是否能够读回任何内容。

    吴约瑟

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我还没有尝试连接 HART 器件、我只是验证 SPI 通信是否正常。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Libby、

    好的、读操作看起来还是正确的。 该值与02寄存器的默认读数匹配:  

    如果需要、您可以通过写入器件进行其他更改。 我会尝试写入同一个寄存器。 同样、将控制寄存器位设置为80 42作为默认值。  您可以写入 WDTO 位(不打开 WDT)。 这些位是高三个 MSB。 您可以通过写入02 E0 42将其更改为111。

    将这些值写入器件后、您可以检查数据是否真正写入寄存器。 只需读回寄存器、即可看到该值已更新。

    吴约瑟