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.

[参考译文] TMS320F28377D:F28377 的 DAC 输出错误

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1636169/tms320f28377d-dac-output-error-of-f28377

器件型号: TMS320F28377D

您好的团队、

我们的模拟输出来自 MCU (TI 的 TMS320F28377DZWTT) 的 U1 和 T1。 为了供客户使用、DAC 功能在通过以下电路后输出 AO1 和 AO2。

对于这两个问题模型、我们完全更换了以下电路、但发现偏置电压仍然存在。 因此、我们回溯到 MCU、发现 MCU 本身的命令输出端有 0.02V 的压降。 放大 11.22 倍后、电压差约为 0.2V。

我们想问几个问题:

1. MCU 本身在 DAC 中是否有错误?

2.由 VREFIA 输入电源引起的错误是否也有影响? 您能帮助确认图层之间的关系吗?

3.错误部分的规格是什么?

image.pngimage.png

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

    您好、Jimmy、

    在提供完整答案之前、一些详细信息有助于优化分析:

    • 您使用的 VREFHIA 电压是多少? (2.5V、3.0V 或其他值?) 这一点很重要、因为工厂校准仅在 2.5V 电压下执行。
    • 您是否Device_cal()在初始化期间调用? 这会加载出厂偏移修整值。
    • 假设 AO1 和 AO2 都显示相同的 0.02V 偏移 还是它们不同?

    也就是说、检索到的规格直接解决了您的问题。


    直接回答

    1. MCU DAC 是否有固有误差?

    是的。 您测量的 0.02V (20mV) 偏移处于 DAC 的指定容差范围内:

    参数 最小值 最大值 注释
    失调电压误差 –10mV +10mV 在中点[1]
    增益误差 –2.5% +2.5% 满量程范围的一半[1]
    INL –5 LSB +5 LSB 已更正端点[1]

    在偏移规格的边缘可以观察到 20mV。 在× 11.22 μ s 后、这会产生~0.2V 的信号、这是预期的行为、而不是缺陷。

    2. VREFHIA 会影响该错误吗?

    是的、直接。 DAC 输出遵循此传递函数[2]:

    DACOUT = (DACVALA × DACREF) / 4096
    

    VREFHIA 中的任何误差、噪声或偏差都会按比例传播到输出。 关键要求:

    • VREFHIA 必须介于之间 2.4V 和 VDDA [1]
    • 如果 VREFHIA 超过 VDDA + 0.3V、则会激活内部阻断电路、导致输出不正确[1]
    • 需要适当的去耦: ≥μ F 1µF 电容器 VREFHIA 和 VREFLOA 之间、靠近器件[3]放置

    严重问题: DAC 偏移经过工厂校准 仅以 2.5V 基准电压工作 [4]。 如果您使用的是不同的 VREFHIA 电压、必须使用手动调整失调电压修整DAC_tuneOffsetTrim()、以保持数据表性能[4]。

    3、错误规格汇总

    规范 数据值 引文
    失调电压误差 ±10mV(中点处) [1]
    增益误差 ±2.5% FSR [1]
    INL ±5 LSB(典型值±2 LSB) [1]
    DNL ±1LSB(典型值±0.4LSB) [1]
    线性输出范围 0.3V 至 VDDA−0.3V [1]
    基准电压范围 2.4V 至 VDDA [1]

    建议的操作

    1. 验证 VREFHIA 电压 —如果不是 2.5V、请使用DAC_tuneOffsetTrim()重新校准[4]
    2. 检查 VREFHIA 去耦 —确保正确放置≥μ F 1µF 电容器[3]
    3. 实现软件补偿 —偏移 DACVAL 命令、以考虑在特定工作点测得的误差
    4. Device_cal()请调用确认 —重置[5]后加载出厂校准值

    结论

    0.02V 失调电压处于 DAC 的指定误差范围内、这是预期行为。 消除 0.2V 放大后偏置的最可能方法是调整失调电压修整(如果使用非 2.5V 基准)或在 DACVAL 命令中实现软件补偿。 如果您可以确认 VREFHIA 电压以及是否正在调用校准函数、我可以提供更有针对性的指导。


    参考资料:

    1. TMS320F28377D 数据表 — DAC 电气规格
    2. TMS320F28377D 技术参考手册 — DAC 模块
    3. TMS320F28377D 数据表 — 引脚配置
    4. TMS320F28377D 技术参考手册 — DAC 校准
    5. TI E2E 论坛 — DAC 失调电压修整讨论

    此致、

    Zackary Fleenor

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

    尊敬的 

    感谢您的详细说明。

    • 您使用的 VREFHIA 电压是多少?  (2.5V、3.0V 或其他值?) 这一点很重要、因为工厂校准仅在 2.5V 电压下执行。
    • A:REF 为 3V
    • 您是否 Device_cal() 在初始化期间调用?  这会加载出厂偏移修整值。
    • 答:尊敬的跟踪  
    • 假设 AO1 和 AO2 都显示相同的 0.02V 偏移 还是它们不同?
    • 答:下面仅显示 AO1。  
    •  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jimmy:

    我不理解你在这里的第二个答案。 您能否提供进一步的澄清?

    此致、

    Zackary Fleenor

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

    尊敬的 Fleenor:

    抱歉、键入错误的单词。  

    • 您是否 Device_cal() 在初始化期间调用?  这会加载出厂偏移修整值。
    • 答: 客户不使用  Device_cal() 初始化期间调用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jimmy:

    感谢您确认客户在初始化过程中未调用` evice_cal ()`D。 鉴于此、和 3V VREFHIA 电压、0.02V 偏移为*预期*并显著加剧。

    正如我们所指出的、工厂校准仅在 2.5V 下执行。 `D` evice_cal () 、MCU 在采用 3V 基准时依赖于可能不准确的默认修整值。 这实际上会禁用初始失调电压补偿。

    由于只有 AO1 显示失调电压、这也可能表明轻微的通道间不匹配、这种不匹配随着缺少校准和 VREFHIA 升高而变得显而易见。

    **以下是我们建议客户按优先级顺序执行的操作:**

    1.**实施` evice_cal ()`D:**这是*最直接*的解决方案。 在初始化期间添加此函数调用将加载出厂修整值、并可能使偏移更接近规格... 可能会完全消除。 实施后、他们应立即重新测试。

    `D**如果` evice_cal ()`D不可行(由于代码限制等),实现` ac_tuneOffsetTrim ()`D:**由于它们使用 3V ,它们*必须*使用` ac_tuneOffsetTrim () 手动校准偏移。 这将需要测量 AO1 上的实际输出偏移并相应地调整修整值。 技术参考手册详细介绍了该过程。

    3.**验证 VREFHIA 去耦:**只是为了确认、VREFHIA 和 VREFLOA 之间是否存在≥μ F 1µF 电容器、并且该电容器在物理上靠近芯片? 尽管不太可能*导致*一致的 0.02V 失调电压、但它会导致噪声和潜在的稳定性问题。

    4.**考虑软件补偿(作为最后的手段):**只有在上述步骤不产生令人满意的结果时、才应采用软件中的调整 DACVAL 命令来补偿偏移。 这并不理想于正确的校准。

    如果您有任何其他问题、敬请告知。

    此致、

    Zackary Fleenor