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.

[参考译文] DAC7760:用户校准和位分辨率问题

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1019607/dac7760-problem-with-user-calibration-and-bit-resolution

器件型号:DAC7760
主题中讨论的其他器件:DAC8760EVMDAC8760

我们在专有电路板上使用4个菊花链 DAC7760器件、读数有一些问题。 我们的设计应能够将4个输入中的任何一个配置为0V 至10V 或4mA 至20mA。

问题1:
根据第28页的公式、当代码设置为1时、如果我希望输出电压为0.0024414 (~2.4mV)、当代码递增1时、我会在表中看到结果 A。由于格式设置、如代码部分中所示


VREF = 5V
增益= 2 (从表1第28页中删除了0V 至10V)
N = 12
2^N = 4096

单极模式:
Vout = VREF *增益*(COD/2^12)

对于代码= 1
VOUT = 5 * 2 *(1/4096)
VOUT = 0.0024414


问题2:
根据 DAC7760数据表第34页中的公式6、给出了以下公式。
CODE_OUT =代码*((User_GAIN + 2^15)/2^16)+ User_zero

对于 DAC7760、2^15的值是2^11 ie N-1?

问题3:
是否有任何其他应用不能帮助提供有关 DAC7760使用的更多说明。

-----------------------------------------------------
Address |           Register                   |  Value
-----------------------------------------------------
0x01    | Write DAC Data register              |  Code - see below
0x55    | Write control register (0to10V)      |  0x1009
0x55    | Write control register (4to20mA)     |  0x100B
0x57    | Write configuration register         |  0x0020
0x58    | Write DAC gain calibration register  |  0x0800
0x59    | Write DAC zero calibration register  |  0x0000

RESULT A:
Code   |  Output
-------|--------
0x0000 | -0.0020
0x0001 |  0.0004 
0x0002 |  0.0028 
0x0003 |  0.0052    
0x0004 |  0.0077
0x0005 |  0.0102 
0x0006 |  0.0126
0x0007 |  0.0150
0x0008 |  0.0175
0x0009 |  0.0200 
0x000A |  0.0224 
0x000B |  0.0248     
0x000C |  0.0273
0x000D |  0.0297 
0x000E |  0.0321
0x000F |  0.0345

Address |           Register               Value
-------------------------------------------------
0x58    | DAC gain calibration register |  0x0800
0x59    | DAC zero calibration register |  0x0001

RESULT B:
Code   |  Output
-------|--------
0x0000 | 0.0004
0x0001 | 0.0004 
0x0002 | 0.0028 
0x0003 | 0.0052  

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

    OLA、


    1.我认为如果将 DAC 增益校准寄存器设置为0x8000、结果将更加有意义。 这会将增益校准设置为1。 如果您将增益校准寄存器设置为0x0800、则会将增益校准设置为略高于0.5、从而使最大输出约为5.3V、并可使输出跳过代码。 由于器件为12位、DAC 输出代码为左对齐、因此我使用以下输出代码并在未启用校准的情况下获取输出电压:

    0x0000 - 0.0000V
    0x0010 - 0.0024V
    0x0020 - 0.0049V
    0x0030 - 0.0073V
    0x0040 - 0.0098V

    如果我启用校准、并且我将增益校准设置为0x8000 (再次设置为左对齐)、这会将增益设置为1、从而实现整个10V 范围。 然后我将偏移校准设置为0x0010、我得到以下结果:

    0x0000 - 0.0024V
    0x0010 - 0.0049V
    0x0020 - 0.0073V
    0x0030 - 0.0098V
    0x0040 - 0.0122V

    这看起来是正确的、其中 LSB 为2.44mV、满量程范围为10V

    2.对于 DAC7760、增益校准代码仍然为2^15。 若要获得增益1、请使用 User_Gain = 0x8000。 如果 User_Gain 为0x0800、则增益约为0.53。

    我使用 DAC7760EVM 及其软件来帮助回答这些问题。 我发现拥有 GUI 可以快速获得有关器件上应如何运行的预期答案。 这是一种测试寄存器并查看从器件获取的输出的便捷方法。


    吴约瑟

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

    您好、Joseph、

    感谢您的回复。

    1、是的、我在写入数据之前将增益设置为1、因为我在向左移动4、从而写入0x0800。

    void dac7760::WriteGainCalibrationRegister(uint16_t dac1, uint16_t dac2, uint16_t dac3, uint16_t dac4)
    {
      dac4<<=4; dac3<<=4; dac2<<=4; dac1<<=4;
      writeRegister(DAC7760_WR_DAC_GAIN_CAL_REG, dac1, dac2, dac3, dac4);
    }

    我这么写 API 的原因是考虑到目的 DAC 增益寄存器是12位、并且驱动程序的用户可能会想知道为什么允许写入0x8000、因为它会溢出。 我会考虑删除剩余的移位并只允许写入0x8000。

    2.感谢您指出我犯的2^15错误。 我认为这是数据表中的错误。 这解释了我在假设该值为 N-1时获取一些愚蠢值的原因。 与 代码值相比、我为 CODE_OUT 计算的所有值都没有意义

    非常棒。当 我今天刚交付产品时、您提到了 DAC7760EVM、目前正在进行设置。

     

    我会报告我取得了多大的进展。 再次感谢

    此致

    OLA

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

    OLA、

    好的。 请告诉我您的发展程度。

    我确实认为 EVM 是一种非常方便的方法、可帮助评估器件并检查运行中是否存在任何问题。 这些器件可能很复杂、很容易错过一些简单的东西。

    吴约瑟

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

    您好、Joseph、

    我似乎遇到了 EVM 板或 USB 软件狗的问题。 DAC8760EVM 应用本身运行正常。 当我单击一些命令按钮时、我可以通过查看"Register"选项卡来看到它正在正确构建命令。 但是、当我单击 Write All Reg 按钮 、然后单击  Read All Reg 按钮时、我得到的值为零。

    在故障排除后、我注意到我在 DVDD 或 VDUT 上没有看到任何电压。 我是否错过了获取 SM-USB-DIG 平台为 EVM 板提供电压的技巧?

     正常运行时、SM-USB-DIG 平台中的 VDUT LED 是否也应亮起? 有时我会看到它亮起、然后熄灭、有时它会一直亮起。

    此致  

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

    OLA、


    对于 DACx760EVM、我通过以下方式设置了所有内容:

    您确实需要外部电源、因此我将 AVDD 连接到+12V、将 AVSS 连接到-2V。 我使用的是双电源、我还有接地连接。 我断开了 JP1 (在 JP1连接的情况下、AVSS 连接到 GND。 我连接了 JP6、因此我可以使用板载分流器测量 IOUT。 我将万用表连接到 VOUT 和 GND、然后连接到 IOUT 和 GND 以测量输出。

    将所有部件连接在一起时、确保 SM-USB-DIG 连接器正确对齐(有时连接器可以在任一方向上处于一个位置)。 顶部还显示了 TI 标识、如图所示。

    对于 GUI、首先单击"Auto-write changes (自动写入更改)"按钮并将其保持开启状态。 当我单击按钮或立即更新值时、这会更新寄存器。 然后、我单击"Reset DAC8760"按钮(两次-一次启用、第二次禁用复位)。

    之后、我选择模式、启用输出、选择双路输出使能、设置电流范围、然后选择校准使能。 我还可以输入 DAC 和校准代码。 此时、一切都应该正常、并且您应该在 IOUT 和 VOUT 上都有输出。


    吴约瑟

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

    您好、Joseph、

    感谢您的详细答复。 我的 EVM 板现在可以正常工作。 我认为问题是 VDUT 未开启、这是为电路板的数字部分供电的原因。 老实说,我不知道为什么它以前没有工作。  

    现在、我将继续执行测试的其余部分、因为我现在可以确认我可以正确写入和读取寄存器。

    我会让您知道我如何继续完成其余的工作。 再次感谢  

    此致

    OLA

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

    您好、Joseph、

    我想提供一些反馈、现在我的行为符合预期。 我遇到的 VDUT 未开启的问题是、我启动 GUI 应用程序、然后连接 SM-USB-DIG 连接器。 这导致 VDUT 无法提供电路板的数字部分运行所需的5V 电压。 因此、所需的正确顺序是首先连接连接器、然后启动 GUI 应用 程序、并确保软件狗中的 VDUT LED 亮起、以指示正在提供所需的电压。

    但是昨天我在点击 Read All Reg 按钮时看到了一些随机行为、今天早上似乎已经消失了、所以我会保持关注、因为我无法解释这种行为的原因。

    我现在要结束这项工作,但我要对你在解决问题方面的帮助表示衷心感谢。  

    此致

    OLA

    以为我在20天前发送了这封邮件、但看起来它从未发送过   

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

    您好、Joseph、

    很抱歉、反馈延迟很长时间。 我的公司购买了 Keysight 34465A 台式数字万用表、现在可以获得准确的读数。 到目前为止、DAC7760EVM 板的性能 达到了100%。  

    另一方面、我们的电路板没有、因此我们假设我们目前正在审查的电路板上可能存在设计问题。 我们在电路板上观察 到的问题之一是 VREF 引脚测量的电压为4.99441V。

    我们不能完全确定这种行为的原因、因为我们正在为电路板提供+15V 和-5V 电压。  

    我想我现在要结束这一工作,但我要感谢你为回答我的所有问题而作出的不懈努力。

    此致

    OLA