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.

[参考译文] DAC7678EVM:DAC7678EVM -写入 LDAC 寄存器会更改掉电寄存器。 为什么?

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/719966/dac7678evm-dac7678evm---writing-to-ldac-register-changes-power-down-register-why

器件型号:DAC7678EVM

您好!

我有 DAC7678EVM、并将其配置为如下所述。  我能够以接近400kHz 的频率成功地与器件通信。

我在向任何通道输出模拟电压之前尝试配置器件、我发现 LDAC 和内部基准寄存器干扰掉电寄存器。

--------------------

序列:

  • 写入序列到软件复位:        0x70、M 0x00、L 0x00
  • 循环和读取寄存器:

PWRDOWN_REG:    0x0000
CLEARCODE_REG:   0x0000
LDAC_REG:      0x0000
INTREF_STATUS_REG:0x0000
INTREF_FLEX_REG:  0x0000

  • 写入序列以清除代码寄存器:      0x50、M 0x00、L 0x30
  •  清除代码寄存器的读取序列:         M 0x00、L 0x03
  • 将序列写入 LDAC 寄存器:         0x60、M 0xFF、L 0x00
  •  LDAC 寄存器的读取序列:            M 0x00、L 0xFF
  • 循环和读取寄存器:

PWRDOWN_REG:    0x00F8  <--为什么? 预期: M 0x0000
CLEARCODE_REG:   0x0003
LDAC_REG:      0x00FF
INTREF_STATUS_REG:0x0000
INTREF_FLEX_REG:  0x0000

  • 将序列写入掉电寄存器:      0x40、M 0x5F、L 0xE0
  •  清除代码寄存器的读取序列:         M 0x02、L 0xFF
  • 循环和读取寄存器:

PWRDOWN_REG:    0x02FF <--正常
CLEARCODE_REG:   0x0003
LDAC_REG:      0x00FF
INTREF_STATUS_REG:0x0000
INTREF_FLEX_REG:  0x0000

  • 将序列写入内部参考静态寄存器:      0x80、M 0x00、L 0x00
  •  内部参考静态寄存器的读取序列:         M 0x00、L 0x00
  • 将序列写入内部参考灵活寄存器:    0x90、M 0x50、L 0x00
  •   内部参考静态寄存器的读取序列:         M 0xA0、L 0x00  <--为什么?  预期: M 0x00、 L 0x05
  • 循环和读取寄存器:

PWRDOWN_REG:    0x0280  <--为什么?  为什么这种情况再次发生变化?
CLEARCODE_REG:   0x0003
LDAC_REG:      0x00FF
INTREF_STATUS_REG:0x0000
INTREF_FLEX_REG:  0xA000   <--为什么?  这毫无意义。

--------------------

我很难理解为什么当我写入 LDAC 或内部基准寄存器时断电寄存器会改变值。 使用逻辑分析仪/示波器时、I2C 信号看起来良好。

我正在使用以下 配置...  

JP1、JP2和 JP10开路

JP11关闭

JP4闭合1/2位置

JP6闭合1/2位置

JP7闭合1/2位置

JP3悬空

JP8和 JP9闭合2/3位置

J3.3处为+5V

J3.5和 J2.10上的 GND

SCL 位于 J2.16

SDA 位于 J2.20

感谢您提前提供的任何帮助!

Phil

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

    我的同事 Uttam 应该能够在星期一为您提供帮助。

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

    谢谢、Paul。。。 这将是一个巨大的帮助。

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

    感谢您的联系。 让我在 EVM 上测试它并返回。 因为明天我们有一个当地的假期、所以我将在本周结束时回来。

    此致、
    Uttam Sahu
    精密 DAC 应用工程师
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,Uttam! 我期待着再次听到。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Uttman。。。

    您是否有机会查看此内容?

    谢谢。。。

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

    我将为 Uttam 进入本主题。 很抱歉、我在这里没有回复、因为我可以看到自8月中旬发布初始帖子以来没有太多进展。

    遗憾的是、我的实验室中没有这些板之一、因此我无法快速将任何内容放入实验室进行调试。 但是、我已经联系了我们的设计团队、让他们从一些资源中了解在 LDAC / VREF 寄存器和断电寄存器之间的任何关联方面、内部可能会发生什么情况。 直接参与此项目的原始人员不可用、但其他设计工程师仍应能花一些时间帮助他们找到有关设计数据库的方法。

    同时、我会问一些其他问题、以便我更好地了解正在发生的情况、因为除了 LDAC / VREF 寄存器和断电模式之间可能存在或可能不存在的相互关系之外、这里还有一些奇怪的现象。

    具体而言、回读的值在某些情况下与预期一致时并不总是有意义。 其中最突出的是回读0xA000、以了解您所说的 INTREF_FLEX_REG。 根据数据表、MSDB 中不应出现任何1。 也许我们可以专注于您的系统的更简单测试-您可以写入 INTREF_Flex_REG、然后读回寄存器(之前、期间或之后都没有其他步骤)吗? 我只想看看我们是否可以为该寄存器获得干净的回读。 如果我们仍然看到 MSDB 中的数据为高电平、那么我想详细了解如何执行写入和读取-理想情况下、每个写入和读取命令的地址/命令结构是什么、 或许还可以使用 I2C 总线的示波器捕获、以便我们验证时序和逻辑阈值等

    我们还可以使用器件的二次读取方法作为另一个比较点、如数据表的第30页所示。 基本上发出一个重复起始、R/!W 位被设定为1 -允许在写入序列后读出最后一个寄存器的两个字节。

    除了上述建议的数字域测试之外、还应探测模拟域中的基准、以查看器件实际发生的情况、直到我们能够验证数字通信的完整性。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kevin:

    很抱歉耽误你的回答。  今天晚上,我只花了几分钟时间把这一点综合起来。  以下是两条串联发送的 I2C 消息(我加宽了捕捉窗口以查看两者、请原谅中间的快速启动栏)。  

    我事先对器件进行了下电上电、以确保所有设置都正确。  就我所能说的... 我将发送正确的命令。  我同意、响应的 MSByte 中不应有任何内容。  

     我唯一不做的是使用重复启动。  这不会导致任何其他寄存器出现问题;我已成功使用常规/静态内部参考模式。 出于任何原因、灵活的内部基准模式都不合作。  我正在尝试在第33页的底部表中设置"基准已通电、无论 DAC 电源状态如何"选项。

    我认为这是一个明显的问题、我缺少它。

    感谢您的帮助!

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

    我仍在努力获取一些数字资源、以打开设计数据库并返回到我的此主题。 我的理解是,这对他们来说是一个非常糟糕的时刻,因此很难获得分配的资源。

    我现在将在这方面再多推一点、以尝试更好地关闭。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Philip、

    最后、我们对实际器件原理图等进行了一些仿真备份和透视。

    我在这里主要关注的是、鉴于存在多种断电模式、例如、这些寄存器中的某些寄存器在回读情况下的行为是唯一的。 如果是回读、但没有基于通道的回读、因此我无法立即看到这种机制是如何工作的。 在对多个通道执行写操作后对断电寄存器进行简短读回时、不会直接由数字内核控制、因此可以解释您观察到的意外读回结果。

    如果您在模拟域中观察到所需/预期的行为、这是该器件必须提供的最佳行为、因为似乎无法通过数字回路进行确认。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kevin:

    感谢您的回答。  但是、我不确定我是否在关注您的解释。  您是否说我在写入任何通道寄存器后无法从断电寄存器或内部基准(灵活模式)寄存器进行回写/读?  如果是这种情况、何时可以成功写/读回这两个寄存器?  数据表建议可以使用读取命令来完成此操作;我没有看到任何迹象表明在写入通道寄存器后无法执行此操作。

    谢谢

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

    我同意数据表中的建议、写入和读取操作对任何寄存器都有效。 但我认为,在编写文件时,提交人并没有完全考虑或验证其操作。

    基本上、通过仿真、我可以确认回读实现会由于数字实现中的一些错误而返回断电和内部基准灵活模式寄存器的错误数据。 它可以与即时回读配合使用、具体取决于写入序列的具体内容以及每个通道的配置方式、但简而言之、回读操作不可靠(尽管在模拟域中实现了所需的配置、但无法通过数字进行确认)。 在某种程度上,我认为,我在上一篇文章中试图解释的一些基本逻辑差距进一步加剧了这些缺陷。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我会将有关回读的信息传递给数据表所有者、并建议对数据表进行更改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Kevin 对此进行深入研究。 不幸的是、回读不起作用、因此很难或不可能知道内部基准是否持续受电。 感谢您将此内容传递给数据表团队。