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:无法触发单通道更新

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/803228/dac7578-unable-to-trigger-a-single-channel-update

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

在我们的自动化测试中、我正在编写用于控制 DAC7578的软件。 根据 DAC7578数据表中的表14、用户似乎可以为单个 DAC 通道设置新代码、但在接收到触发信号之前、代码不会传递到输出端。 我的理解是、以下任一项可用作更新单个通道的触发器:

  • 方法1:使用命令 b0000和 B0001写入 DACx 输入寄存器、然后更新 DACx 通道
  • 方法2:命令 b0011来写入和更新 DACx 通道

在使用软件测试此功能时、我无法使任一种方法正常工作。 下面 以粗体显示了我的问题

  • 方法1:
  1. 复位器件(所有通道都设置为0x0000)
  2. 使用命令 b0000将通道 A 设置为0xFFF
  3. 使用命令 B0001更新通道 A
  4. 通道 A 输出保持为0 -发送命令 B0001后、不应将通道 A 更新为0xFFF?
  • 方法2:
    1. 复位器件(所有通道都设置为0x0000)
    2. 使用命令 b0000将通道 A 设置为0xFFF、将通道 B 设置为0xAAA
    3. 使用命令 b0011将通道 C 设置为0xCCC 并仅更新通道 C
    4. 通道 A、B 和 C 在发送命令 b0011后全部更新-发送命令 b0011时、不仅应更新通道 C?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Eric:

    您对该器件的理解是正确的、它应按照您的描述进行更新。 这使我认为数据的格式不正确、或者存在其他类型的硬件问题。 您能否确认 I2C 命令是否已使用示波器正确格式化? 您能否分享您的原理图片段?

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

    尊敬的 Paul:

    感谢您的回答! 我随函附上:

    • 我们的原理图的一个片段(DAC7578 Schematic.PNG)
    方法1.
    • I2C 解码命令- I2C 解码(方法1).txt
    • I2C 引脚的原始状态- I2C 原始(方法1).txt
    • Salea 逻辑采集 - Salea Method1.txt  
    方法2.
    • I2C 解码命令- I2C 解码(方法2).txt
    • I2C 引脚的原始状态- I2C 原始(方法2).txt
    • Salea 逻辑采集 - Salea Method2.txt

    注意:如果您想打开 Salea Method#的文件扩展名、请将其更改为.logicdata。 我必须将其更改为.txt 才能将其发布在此处。

    原理图(V_DAC = 5V)

    e2e.ti.com/.../7206.I2C-Decoded-_2800_Method-1_2900_.txte2e.ti.com/.../4621.I2C-Decoded-_2800_Method-2_2900_.txte2e.ti.com/.../I2C-Raw-_2800_Method-1_2900_.txte2e.ti.com/.../I2C-Raw-_2800_Method-2_2900_.txte2e.ti.com/.../7433.Salea-Method1.txte2e.ti.com/.../7080.Salea-Method2.txt

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

    我无法打开 Saleae 文件、我收到一条错误消息、说它们是在比我的新软件上创建的。 我已更新到最新版本并尝试了新的 Alpha 版本、运气不佳。

    我可以立即指出、SDA 和 SCL (R145、R147)上的上拉值非常大(100kΩ Ω)。 我会5kΩ 一个介于2kΩ μ V 至 μ V 之间的值。 这可能会导致问题、除非您在共享原理图之外的线路上有额外的上拉电阻。

    请参阅此文档:www.ti.com/.../slva689.pdf

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

    尊敬的 Paul:

    逻辑文件是使用版本1.2.18捕获的。 我已附上下面的逻辑采集图像。

    此外、SCL 和 SDA 上还有一个额外的1k 上拉电阻、未在原理图中显示。

    为了进行完整性检查、我尝试在使用 DAC758的不同电路板上重现此问题、但仍然看到相同的行为。

    方法1:

    方法2第1部分:

    方法2第2部分:

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

    您能否尝试读回方法1中的输入寄存器和 DAC 寄存器、以查看第一条命令是否正常工作?
    您是否也可以尝试更改地址? 是否可能存在地址冲突?

    我将在最后订购 EVM 并进行试用

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

    您好!

    当然、结果如下:

    1. 使用命令0x0写入0xFFF
    2. 使用命令0x10写入0x1
    3. 读取0x10返回0x0
    4. 使用命令0x30写入0xAAA
    5. 读取0x10返回0xAAA

    由于此器件位于其自己的 I2C 总线上、因此我不会期望任何地址冲突。

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

    是否可以使用命令0x0添加2到3之间的读取并读取输入寄存器?

    此外、您是否验证了 I2C 总线上是否有其他驱动器可能存在地址冲突?  

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

    当然、以下是更新后的结果:

    1. 使用命令0x0写入0xFFF
    2. 读取0x0返回0xFFF
    3. 使用命令0x10写入0x1
    4. 读取0x0返回0xFFF
    5. 读取0x10返回0x0
    6. 使用命令0x30写入0xAAA
    7. 读取0x10返回0xAAA

    DAC 是总线上唯一的 I2C 从器件、只有一个主器件、因此我认为不会存在地址冲突。

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

    还值得一提的是、在我们到目前为止的讨论中、所有通道都设置为使用 LDAC 引脚(使用命令0x60写入0x0、使用命令0x61进行读取确认)。

    如果我将通道(通道 A)配置为忽略 LDAC 引脚(使用命令0x60写入0x1)、则使用命令0x0设置的任何值都将立即传递到 DAC 输出。

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

    您能否根据方法1和2准确地描绘或描述何时对 LDAC 引脚进行脉冲?

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

    到目前为止、在我对方法1和方法2的测试中、LDAC 引脚一直保持恒定(无脉冲)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    到目前为止、在我对方法1和方法2的测试中、LDAC 引脚一直保持恒定(无脉冲)。 我不打算在我的应用中使用 LDAC 引脚。 我刚才注意到、我看到的行为会根据通道配置为使用还是忽略 LDAC 引脚而发生变化。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它被保持在低电平还是高电平? 低电平是必需的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它一直处于高位。 我现在将其更改为保持低电平。 它始终保持低电平、不会产生脉冲。

    在 LDAC 拉低时重新测试后、无论通道 A 是否配置为忽略 LDAC 引脚、使用命令0x0后、通道 A 都会立即更新。

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

    尊敬的 Paul:

    只需办理入住手续。 您是否能够在您的终端上测试这一点?

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

    尊敬的 Eric:

    很抱歉耽误了时间、上周我在城外开会、离开前无法测试硬件。  我相信我们看到的一些用例是 LDAC 位置不正确。   

    我认为在您的情况下、您应该将 LDAC 连接到高电平、但您需要屏蔽 LDAC 寄存器中的 LDAC 功能。  我认为您需要使用命令0x6并将所有位设置为高电平(写入0x60FF00)。  这将告诉器件忽略 LDAC 引脚。  我可以在今天下午或明天上午的实验室中测试这一点、但您可能需要在结束时尝试一下

    谢谢、

    Paul

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

    谢谢你。 我在我的末端测试它、结果如下:

    • LDAC 引脚连接高电平、LDAC 被屏蔽以用于所有输出- DAC 输出立即更新
    • LDAC 引脚连接低电平、LDAC 被屏蔽以用于所有输出- DAC 输出立即更新

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

    尊敬的 Eric:

    我看到的结果相同、我认为这可能是产品数据表中的错误。  我目前正在与设计团队合作进行确认。

    是否可以仅使用命令2和命令3以及命令0来同步应用中的 DAC 输出? 此外、请注意、我们新发布的器件可以替代您系统中的 DAC7678、称为 DAC53608。  

    谢谢、

    Paul

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

    尊敬的 Paul:

    感谢您确认此行为。 我将从驱动程序中删除此函数、以防止用户产生混淆。 我会将这些信息传递给我们的电路板设计人员。感谢您的帮助!