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.

[参考译文] DAC7578:输入寄存器上的 DAC 读取序列

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/836221/dac7578-dac-read-sequence-on-input-register

器件型号:DAC7578
主题中讨论的其他器件: DAC7678DAC5578

我的团队正在定制板上使用 DAC7578 12位8通道器件。 在定制电路板原型设计之前、我一直在使用 DAC7678 EVM 进行开发。 我在 DAC7578的读取序列中遇到了一些意外问题。 请参阅所捕获的 I2C 字节序列与两个器件的附加快照。

DAC7578:

DAC7678:

两个器件上的测试序列为:

为所有 DAC 通道加电(断电寄存器0x40;PD1 = PD2 = 0;选择所有通道)

2.将完整计数写入 DAC 输入寄存器通道 D 并更新所有 DAC 寄存器(全局软件 LDAC:0x20;通道 D:0x03;完整计数:0xFFF)

3.读回 DAC 输入寄存器 D (0x03)

不过、虽然在满基准值时正确观察到通道 D 上的电压、但从 DAC7578的回读不会反映写入的完整计数。

每个通道的 DAC 输入寄存器和 DAC 寄存器之间有何差异?

应在软件中读回哪个寄存器?

导致两个器件之间读回不一致的原因可能是什么?

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

    您好 Ruta、

    您能否描述用于访问通道 D 回读的确切命令序列? 我不确定我是否正在正确解读两个屏幕截图。

    数据表第32页还介绍了两个回读序列、我认为尝试两者都查看它们是否都报告了意外数据会很有趣。

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

    感谢您的回复 Kevin、

    使用 I2C 协议分析器捕获了命令序列、并显示了通过总线传输的字节数据。 这是一个新生应用、测试原型板为加电写入通道回读通道。

    对于这两种器件:

    为所有 DAC 通道加电  

    CA 字节:0x40 (断电寄存器)

    msdb+LSDB:0x1f、0xE)(对于加电、PD1=PD2=0;DAC A - DAC H 位设置为1、X 位设置为0)

    2.将完整计数(FFF0)写入 DAC 通道 D

    CA 字节:0x23 (全局软件 LDAC、写入通道 D)

    msdb+LSDB:0xFF、0xF0 (完整计数、在两个 DAC 上观察到预期的模拟输出)

    3.读取写入通道 D 的值

    CA 字节:0x03 (读取输入寄存器、通道 D)

    4.读取字节

    在 DAC7678上、这是预期的0xFFF0。 在 DAC7578上、即使模拟输出正确、也是0xFF00。

    为什么 DAC7578存在差异? 在这两个器件上、我仅使用3.3V 的外部基准、DAC7678的内部基准被禁用。

    此外、我还研究了 DAC7578数据表 P40操作示例中描述的回读序列。 我遵循与通道 D 类似的回读序列(读取输入寄存器)。 这就是我想知道 DAC 寄存器(CA 字节0x10)和输入寄存器(CA 字节0x00)之间有何差异的原因。

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

    您好、Ruta、

    您是否已使用 DAC 寄存器对此进行了测试并观察到预期行为?

    我们的大多数 DAC 产品、尤其是多通道器件、在设计时通常被称为 DAC 数据的双缓冲移位寄存器。 这意味着数据基本上会加载到临时位置、直到 LDAC 信号通过硬件引脚或在本例中为软件命令跳闸为止。 我已经看到过一些情况、在这些情况下、读回临时缓冲寄存器可能会产生一些意外结果、但我无法肯定地说、如果不专门深入到该器件中、就无法做到这一点。

    我想查看读取 DAC 数据寄存器而不是输入寄存器的结果、以及由 R/W 位设置为1的重复起始启动启动的替代回读方法的结果。 这应该重复之前的写入帧内容。

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

    大家好、Kevin、我使用 DAC 寄存器对此进行了测试、我仍然看到同样的问题。

    定制电路板上的 DAC7578:

    DAC7678 EVM:

    我看到了启动/重复启动读取方法。 在这种情况下、使用了什么命令访问字节?

    或者是否只需发送 start->slave address->ereedive start->( receive data bytes)->NACK?

    感谢你的帮助

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

    鲁塔

    这很有趣-这是我对这篇阅读内容可能被破坏的主要考虑。

    是-备用读取方法只是从从器件地址和 R/W 设置为高电平重复开始。

    您是否向任何其他 DAC 通道写入了任何数据?

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

    尊敬的 Kevin:

    是的、在写入 DAC7578的其他通道时、我看到了类似的结果。 我在这个线程上发布了通道 D、作为一个示例。

    当我尝试使用替代的读取方法时、我没有收到器件的响应。 如果这是器件上的错误、我仍在尝试进行调试、但器件在发送带有从器件地址的第一个起始条件后、似乎没有从低电平位置释放 SDA 线。

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

    鲁塔

    过去两个星期,我外出旅行,试图赶上各种议题。

    我找到了另一个 E2E 主题(https://e2e.ti.com/support/data-converters/f/73/p/803228/2975424#pi320995=1)、在该主题中、其他用户似乎正在从器件中读取数据、但我自己没有对此进行过播放。

    Paul 似乎拥有该线程提供的硬件设置、我将看到他仍然拥有该设置、可以运行任何进一步的测试来帮助解决此主题。

    同时、查看您的定制电路板原理图可能会有所帮助。 您的 FAE 支持团队已通过电子邮件联系我、如果您想将支持团队转移到那里以共享原理图等、我们可以继续这样做。

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

    您好、Ruta、

    您能否确认您拥有的器件实际上是 DAC7578而不是 DAC5578? 您描述的行为对于8位器件是正确的。  如果您不确定、请告诉我器件顶部的所有标记、我可以为您进行确认。

    另一个快速测试是尝试测量几个12位代码之间的不同值。  例如:

    1. 将0x8000写入一个通道、测量并记录输出

    2.将0x80F0写入 同一 通道、测量并记录输出-输出是否与步骤1发生变化?

    3.将0x8100写入 同一 通道、测量并记录输出-它现在是否已更改?

    如果1和2之间没有变化、那么您可能有一个8位器件。  如果您在步骤3之后只看到更改、则确认了更改。  

    谢谢、
    Paul

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

    Paul、Kevin:我检查了定制板制造商生成的 BOM 上的差异、他们组装了错误的器件(5578)。 非常感谢您的帮助、也很抱歉、因为很难掌握电路板上的实际部件。