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.

[参考译文] DAC80508EVM:CAN#39;t 使 DAC 输出、SDO 引脚意外动作

Guru**** 2584525 points
Other Parts Discussed in Thread: USB2ANY

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/935110/dac80508evm-can-t-get-dac-to-output-sdo-pin-is-acting-unexpectedly

器件型号:DAC80508EVM
主题中讨论的其他器件:USB2ANY

首先、我不使用 USB2ANY 来控制评估板、我没有电缆。 我使用 FPGA 控制器(CMOD A7)直接连接到 CS、SCLK、SDI 和 SDO 引脚。 我已经附上了几个示波器时序快照、很抱歉图片质量不佳、因为我们的示波器没有屏幕截图。 橙色/黄色曲线为 SCLK、白色曲线为 SDI、蓝色曲线为 CS、绿色曲线为 SDO。

下图显示了尝试将值0x8fff 写入 DAC 4的情况、第二个图显示了一个位变为高电平、以显示我写入 SCLK 的哪一侧。 总的来说、我将写入0x0B 8f ff.

接下来、我尝试读取器件 ID 寄存器、因此我向 DAC 发送了0x81 00、但我得到的结果不是我所期望的、正如您在下一张图片中看到的。 我还尝试读取其他寄存器、但无论我输入哪个地址、SDO 引脚都具有相同的值。

最后、我将 SDO 迹线留在示波器上、并尝试再次写入 DAC、它大约抖动两三个不同的值、这是令人惊讶的。 我附上了这样一个国家。

根据我对默认值的理解、即使我自己不初始化寄存器、我也应该能够写入 DAC、这是正确的吗? 目前、我猜我不会写入任何寄存器、但我会从 SDO 引脚获得某种响应、因此我不确定。

如果您发现任何明显的计时问题、或者我写的内容不正确、请告诉我。 我使用 FPGA 的3.3V 电压为 VDD 和 VIO 供电。 如果您需要我提供的任何其他信息、或希望我尝试一些其他信息、请随时告诉我。

谢谢!

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

    尊敬的 Mathew:

    务必了解回读函数需要两条命令:首先、发出读取命令。  然后、必须发送另一个 SPI 数据包、在接下来的24个时钟周期内、数据将在 SDO 上随时钟移出。

    第二个命令可以是 NOP 命令(全为0)或下一个写入命令。

    请验证您是否可以立即使用读取命令来读取器件 ID 寄存器。

    谢谢、

    Paul

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

    Paul、

    感谢您的回复。 我将持续发送命令0x810000、这应该是读取器件 ID 寄存器的命令。 根据我的理解、如果我持续发送这个命令、那么下一个周期 SDO 应该返回寄存器的值。 这就是我在上面的第三张图片中所做的操作、其中发送的每个命令都是读取命令、因此每次 CS 变为低电平时、都应返回寄存器的值、但第一次除外。 是这样吗?

    谢谢、

    Mathew

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

    没错。  多次发送命令将重复读取。

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

    这就是我在第三张图片中所做的、我从 DAC 得到的响应是0x300003、这是图片中的绿色轨迹。

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

    第三幅图像显示了最高有效位的问题。  在时钟的下降沿期间、该位看起来不会保持高电平。  您可以尝试解决这个问题吗?

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

    我不确定如何解决该问题、因为这是 SDO 引脚、所以 DAC 会将其写入我的数据。 我也注意到了这一点、但我忽略了它、因为我不确定 CS 变为低电平后 SDO 引脚会有什么变化、但 SCLK 尚未变为高电平。 您对这两个事件之间为什么会出现高电平有什么想法吗?

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

    好的、今天回去再试一次、我更困惑了。 SDO 引脚波形在示波器上的变化似乎取决于我正在探测的其他引脚、这在我看来很奇怪。 我在50欧姆模式下使用示波器、但每通道仅为60mA、而我的 FPGA 可以输出600mA 的3.3V 电源、因此我不知道为什么要更改它。 无论测试引线 I 探针是什么、SCLK、SDI 和 CS 引脚都不会改变波形。 您知道这种情况的发生原因吗?

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

    我决定使用我之前放置的 Arduino Uno 对其进行测试、并使用标准 SPI 库编写一个快速 SPI 程序。 这样、我就能够按预期进行读取和写入。 我还注意到、使用 Arduino 提供的5V 电源时、DAC 默认输出2.5V。 然后、我连接了一个开关电源、该电源为 VDD 和 VIO 引脚提供5V 电压、无需连接到 IO 引脚、DAC 输出为2.5V。 然后、我将3.3V 电源从 CMOD A7连接到引脚、得到0V 输出。 这对我来说很困惑,因为它应该只消耗最大6mA 的电流,FPGA 说它可以输出>250mA,所以为什么它在5V 电源而不是3.3V 电源时默认为中点 DAC 值?

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

    好的、经过相当多的测试后、我相信我已经弄清楚了最大的问题是什么。 我现在使用可变电源为 DAC 上的 VDD 和 VIO 供电、仅当我将电压升高到~3.6V 以上时才会发生上电复位。 如果我的电压大约为3.6-3.8V、我可以使用 FPGA 控制 DAC。 但是、当 VDD/VIO 超过约3.8V 时、我无法再对其进行控制。 我的逻辑信号为3.3V,因此它们仍应高于规定的0.7*VIO,但它不起作用。 您是否知道低于3.6V 时 DAC 为什么无法开启或工作? 规格表显示、它应在低至2.7V 的电压下工作、因此我有点困惑。

    编辑:更改了电压值、可变电源读数与万用表不匹配。 修正万用表值。

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

    尊敬的 Mathew:

    我担心使用此50Ω 端接会导致问题。  这种检查不应必要。  看起来逻辑高电压小于2V。  如果您将 FPGA 配置为50 Ω 终端、则振幅需要是逻辑高电压的2倍。

    您能否在示波器设置为高阻抗的情况下进行验证?  

    如果您在一个50Ω Ω 输出上使用50个端接、那么您的数字逻辑电平将减少50%、因此您的逻辑信号可能不如预期的高。

    DAC 应该能够在低于3.6V 的电压下工作、因此我担心其他情况会发生。   

    您还可以共享原理图吗?

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

    尊敬的 Paul:

    您说得对、我在50欧姆模式下使用示波器、这会使逻辑信号下降。 现在、它们的工作电压高达4.5V、这正是我从规格表中期望的值、感谢您指出这一点。

    至于 DAC 未初始化寄存器、当我只将电源连接到电路板、而没有连接任何其他电源时、它仍然只在大约3.6V 时打开。 我附上了设置的快速图、这非常基本、没有连接任何其他引脚(连接到 DAC 0的万用表除外)。 如果您对 DAC 输出在低于3.6V 时不会初始化为中点值的原因有任何想法、我们将不胜感激。

    感谢您指出50欧姆终端!

    最棒的

    Mathew

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

    您好!

    接下来、我将接管 Paul 的这个话题。

    DAC 上电时的电源电压是多少? 是3.3V 吗? 对于 低于或等于3.3V 的 VDD、我们无法获得2.5V 基准电压、内部缓冲器没有运行的余量、并且将关闭、这就是您无法获得输出的原因。

    为此、我们有一个用于参考的内部分频器、您需要启用/2模式。 在增益寄存器中启用 div x 2后、您就可以继续了。

    如果电源高于3.3V、则不会出现与上述问题相关的问题。

    要遵循的步骤。

    1.为器件加电。

    2.写入增益寄存器

    请参阅以下参考输入规格。  

    请告诉我这有帮助。

    此致、

    AK

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

    您好!

    是否有关于此问题的任何更新? 您是否需要进一步的帮助?

    此致、

    AK