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.

[参考译文] DAC60508:无法读取器件 ID 或任何其他寄存器;SDO 看起来是随机的

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1194093/dac60508-cannot-read-device-id-or-any-other-registers-sdo-is-seemingly-random

器件型号:DAC60508

您好!

我对设置和调试 SPI 通信比较陌生、因此我感谢您的耐心等待。  

我已将 DAC60508重新刷入电路板、并尝试读取器件 ID、但未成功。 我已验证 SPI 模式是否正确、在模式1中、下面进行了验证。 我在这里查看了论坛、并看到其他评论建议写入触发寄存器以执行软复位、清除 LDAC、写入 SYNC 寄存器以清除 BRDcast 使能、并清除配置寄存器以确保 FSDO 为0、尽管这是默认值。

  具有与上述相同 MOSI 字节的后续 SPI 访问周期将从 DAC 返回半稳定但非传感器值、其中没有一个是器件 ID、甚至是上一个访问周期中第一个字节的回波。

下面是我的板的 DAC 原理图:

我目前正在使用 nRF52840进行调试、SPI 上没有上拉线路、但 DAC 是唯一连接的 SPI 器件。 我不认为这会是问题、但我还是有点不熟悉、所以可能会是问题!

如果有任何帮助、我们将不胜感激!

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

    我们现在将进行回顾。

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

    您好、Drew、

    您能告诉我您的 SPI 时钟以多大的频率运行吗? 在数据表的第28页、表7显示了 SPI 接口的时序要求、在该表 中、您将看到读取操作的最大时钟速度低于写入操作。

    谢谢、

    Garrett Shirley

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

    您好、Garrett、

    感谢你的答复。 我在这里以500kHz 的频率运行 SPI 时钟。 我尝试了高达8MHz 的频率、结果相同。

    在上面添加一个更多的上下文、在上述6个访问周期集之后、我会在一秒钟后再次重复6个周期。 然后、前三个周期在 SDO 线上具有第一组中不存在的位。 在6个周期的后续循环中、SDO 线保持不变、如下所示。

    以下是另一个示例、其中我尝试软复位、然后重复读取器件 ID:

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

    您好、Drew、

    触发软件复位的命令与以下命令之间大约有多长时间的延迟? 在数据表第24页的第8.3.3.1节中、它表示在与器件通信有效之前、复位事件之后必须有250us 的延迟。

    谢谢、

    Garrett Shirley

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

    您好、Garret、

    我以前没有发现这一点;我之前曾尝试过手动单步执行每个访问周期、每次之间至少有一秒没有成功。 我现在在软复位后添加了300us 延迟、结果如下:

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

    您好、Drew、

    您能否为我确认您使用的是 DAC60508Z 或 DAC60508M、而不是 DAC60508ZC 或 DAC60508MC? 只有 DAC60508Z 和 DAC60508M 具有 SDO 功能的引脚。 数据表第44页上的封装选项附录显示了您的器件上将有哪些标记、具体取决于您的特定版本。

    谢谢、

    Garrett Shirley

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

    您好、Garrent、

    完整的 MPN 是  DAC60508MRTER。 因此、我认为这属于 DAC60508M 类别。

    如果有用、这里有一个 DAC 放置和引脚接头的屏幕截图、这些引脚接头用于将 DAC 与 nRF52840-DK 连接。 其下方的微控制器未焊接到板上。

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

    您好、Drew、

    尽管读回数据时出现问题、您是否仍然能够观察到 DAC 输出上的任何变化? 我想确认您正在与器件正确通信。 在您的第一个帖子中、SPI 帧似乎处于正确的模式、但看到 DAC 输出从启动值变化将会确认。

    如果您写入:

    SYNC = 0x0000

    CONFIG = 0x0000

    增益= 0x01FF

    DAC0 = 0x0000

    您应该会看到 DAC0上的输出变为0V。 您能确认吗?

    谢谢、

    Garrett Shirley

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

    发送这些写入命令后、我可以确认在 DAC0输出上看到0V。 如果下一步是在设置了较高电压的情况下检查输出、我只尝试使用相同的结果 DAC0=0x0FFF、DAC0上的电压为0V。  

    我已经订购了开发套件、如果该套件有助于解决问题、我将在本周内收到该套件。 它适用于80604、但它们应该足够类似、以便在这种情况下提供帮助。

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

    您好、Drew、

    您能否测量 DAC 的引脚1并确认基准电压为~2.5V? 此外、如果可能、您能否从其中一条 SPI 命令上传模拟波形? 我怀疑问题是 SPI 命令格式化。 DAC80604 EVM 应该能够用作与 DAC60508进行通信的参考、因为它们使用相同的 SPI 格式、并且总体运行相似。  

    谢谢、

    Garrett Shirley

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

    这是上述写入命令的两个连续循环、将 DAC0输出设置为最大值

    我已确认引脚1电压基准、可测量~2.5V。

    将 DAC0设置为0V 时、重复的写入循环会导致以下结果:

    这让人安心。 我会在它到达时在这里发出消息。

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

    您好、Drew、

    查看数据表第29页的图65、我看到 SCLK 在 CS 转换为低电平时处于高电平。 在您的示波器捕获中、当 CS 转换时 SCLK 为低电平。 您能否更改 SPI 设置、使其处于高电平空闲状态、同时确保数据仍在 SCLK 下降沿锁存? 此外、查看最新的示波器捕获、当您写入寄存器8以将 DAC0设置为满量程时、寄存器数据实际上是左对齐的。 因此、要将 DAC 设置为满量程输出、您需要写入0xFFF0、而不是0x0FFF。 您将0x0FFF 写入寄存器8、并且在给定基准分频器和 DAC 增益设置的情况下、您应该会看到基于数据表第21页上的公式1的~0.155V 输出。

    谢谢、

    Garrett Shirley