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.

[参考译文] TMS320LF2407A:ADC 有一个奇怪的现象。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1311243/tms320lf2407a-there-is-a-strange-phenomenon-with-the-adc

器件型号:TMS320LF2407A
主题中讨论的其他器件:LM358LM2904

你好。

到目前为止、我们一直在销售使用2407A 的产品。
最近已证实 ADC 在特定值下运行异常。
我检查了几年前购买的 CPU ,但同样的现象出现,只有一个不同的程度。
到目前为止、由于不常使用该技术的区域出现异常、该技术似乎已经被忽视。

当您逐渐增大 ADC 输入引脚的电压并观察 AD 值时、就会出现这种现象、其显示方式如下图所示。 (在照片中、0是 RESULT0的值、15是 RESULT15的值。)


该值在某个期间固定为256。
245和256之间的所有值看起来都为256。
如果您测量 CPU ADC 输入的电压、它是线性的且正常的。

用于观察的程序如下。


if (AD_StartOk == 1)
{

温度= ADCTRL2 & 0x0200;//检查 INT 标志 SEQ1

while (temp=0)
{
温度= ADCTRL2 & 0x0200;//检查 INT 标志 SEQ1

SET (ADCTRL2、BIT9);//此 INT FALG 位必须由用户写入1来进行清除

AD_ALL_SUM_RESULT_VALUE = 0;
AD_ALL_SOM_RESULT_RESULT_VALUE =(RESULT0>>6)&0x3FF);
test[0]= AD_all_sum_result_value;
AD_ALL_SUM_RESULT_VALUE =((Result1>>6)&0x3FF);
test[1]= ad_all_sum_result_value;
AD_ALL_SUM_RESULT_VALUE =((Result2>>6)&0x3FF);
test[2]= ad_all_sum_result_value;
AD_ALL_SUM_RESULT_VALUE =((Result3>>6)&0x3FF);
test[3]= AD_all_sum_result_value;
AD_ALL_SOM_RESULT4_VALUE =((RESULT4>>6)&0x3FF);
test[4]= ad_all_sum_result_value;
AD_ALL_SOM_RESULT_RESULT_VALUE =((RESULT5>6)&0x3FF);
test[5]= ad_all_sum_result_value;
AD_ALL_SOM_RESULT_VALUE =((RESULT6>>6)&0x3FF);
test[6]= ad_all_sum_result_value;
AD_ALL_SOM_RESULT_RESULT_VALUE =(RESULT7>>6)&0x3FF);
test[7]= ad_all_sum_result_value;
AD_ALL_SOM_RESULT_RESULT_VALUE =(RESULT8>>6)&0x3FF);
test[8]= ad_all_sum_result_value;
AD_ALL_SOM_RESULT_RESULT_VALUE =(RESULT9>6)&0x3FF);
test[9]= ad_all_sum_result_value;
AD_ALL_SOM_RESULT_RESULT_VALUE =(RESULT10>>6)&0x3FF);
test[10]= ad_all_sum_result_value;
AD_ALL_SOM_RESULT_RESULT_VALUE =(RESULT11>>6)&0x3FF);
test[11]= ad_all_sum_result_value;
AD_ALL_SOM_RESULT_RESULT_VALUE =(RESULT12>>6)&0x3FF);
test[12]= ad_all_sum_result_value;
AD_ALL_SOM_RESULT_RESULT_VALUE =(RESULT13>>6)&0x3FF);
test[13]= ad_all_sum_result_value;
AD_ALL_SOM_RESULT_RESULT_VALUE =(RESULT14>>6)&0x3FF);
test[14]= ad_all_sum_result_value;
AD_ALL_SOM_RESULT_RESULT_VALUE =(RESULT15>>6)&0x3FF);
test[15]= ad_all_sum_result_value;

有什么我可以检查的吗?

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

    年轻、

             您是否认为 ADC 输入引脚上存在的直流电压正确但相应的(转换后)数字值不正确? 您能回答以下问题吗?

     

    1. 此设计投入生产多长时间了?
    2. 如果此设计正在量产、到目前为止随此器件提供了多少电路板?
    3. 这种问题出现在多少个电路板上? DPPM 值是多少?
    4. 在出现问题的电路板中、问题是间歇性的还是永久性的?
    5. 如果问题是间歇性的、发现问题的频率有多高?
    6. 是否可以轻松一致地重现问题?
    7. 在一个运行良好已有一段时间的器件中可以看到这一点吗? 如果是、多长时间?
    8. 故障的确切性质是什么?
    9. 器件是否在完全上电之前驱动了任何引脚? 即、电源轨已达到最终稳态值?
    10. 是否有任何引脚被处理违反了数据表中规定的 VIH/VIL 技术规格? 例如、是否有5V 电平信号馈送到任何输入引脚?
    11. 温度是否与问题有任何相关性? 即、问题发生的发生率是否因环境温度而异?
    12. 您是否愿意与我们分享原理图?
    13. 能否发送故障器件顶部的照片?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我确认制造工厂或我们的测试流程没有发生任何变化。 我们未听说任何其他客户有类似问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. 此设计投入生产多长时间了?
      1. 自2012年以来没有任何硬件修订。
    2. 如果此设计正在量产、到目前为止随此器件提供了多少电路板?
      1. 2012年以来交付的产品数量约为10,000件。
    3. 这种问题出现在多少个电路板上? DPPM 值是多少?
      1. 出现在所有产品中。 但是、在程度上存在一些差异。 例如、在之前随附照片中的数据中、值244到256固定为256、但对于好的产品、值251到256固定为256。
    4. 在出现问题的电路板中、问题是间歇性的还是永久性的?
      1. 出现在所有产品中。
    5. 如果问题是间歇性的、发现问题的频率有多高?
      1. 出现在所有产品中。
    6. 是否可以轻松一致地重现问题?
      1. 是的、如果在电路板上将244~256 Ω 的值固定为256、则同一个部分中将继续出现相同的现象。
        其他测试正在进行中。 该测试将记录一个表现良好行为的电路板和一个表现不良行为的电路板的值、并将两个电路板替换为同一批次的 CPU、以查看行为是否有任何变化。
        我们将在确认后分享。
    7. 在一个运行良好已有一段时间的器件中可以看到这一点吗? 如果是、多长时间?
      1. 据推测,自古以来,情况一直如此。
        之前、256左右的 AD 值并不重要。 然而、最近使用了大约256个值、并且观察到这种现象。
    8. 故障的确切性质是什么?
      1. 如前所述、某些段的 AD 值固定为256。
    9. 器件是否在完全上电之前驱动了任何引脚? 即、电源轨已达到最终稳态值?
      1. 如何检查电源轨是否已达到稳定状态?
        但是、存在需要时间的初始化逻辑、例如、在 DSP Init 之后进行存储器初始化。 之后、外部安全装置引脚被激活(它是第一个被驱动的引脚)并且外部芯片被初始化。 与常用的流程似乎没有任何差异。
    10. 是否有任何引脚被处理违反了数据表中规定的 VIH/VIL 技术规格? 例如、是否有5V 电平信号馈送到任何输入引脚?
      1. 不存在。
    11. 温度是否与问题有任何相关性? 即、问题发生的发生率是否因环境温度而异?
      1. 它与温度无关。
    12. 您是否愿意与我们分享原理图?
      1. 我们会接收多种类型的模拟信号。 热电偶、PT 100、4~20mA、0~5V 但是、由于这种现象对于所有类型的传感器都是相同的、因此我们认为它与模拟电路无关。 观察所有电路都没有意义、因此我将为一个信号共享电路。
    13. 能否发送故障器件顶部的照片?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们记录了一个产品处于良好状态、一个产品处于不良状态的测试结果、并使用同一批次的 CPU 替换它们。
    更换 CPU 之前没有变化。 状态良好的产品仍处于良好状态(从250到256固定为256)、状态不佳的产品也处于不良状态(从245到256固定为256)。
    显然,这一现象是由于外部因素造成的。
    不过、即使您直接测量进入 ADC 输入的 CPU 引脚、电压也是线性且准确的。
    在测量主要电压 Vref - 3.2V、VCCA 3.31V、VDD 3.31V 时、未显示任何异常。
    你有一个可能的原因吗?

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

    年轻、

                   很明显、问题不是 LF2407A、而是由外部因素造成的、如您所说。 我建议您选择以下两项:

    1. 驱动 ADC 输入的信号的源阻抗。 在您发送的图像中、我看到您在单位增益配置中使用了 LM358。 但是、您还提到存在许多其他信号源、因此我想知道所有模拟信号是否都得到适当缓冲。
    2. 我看到 LM358N 配备-12V。 请确保所有 ADC 通道的输入信号电平严格处于数据表限制范围内。

    该器件已有23余年的历史、此类器件的出货量已达数百万。 ADC 中没有已知问题(勘误表中所见问题除外)。

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

    未在 AD 处理电路中发现问题。

    我发现有问题的部分,但我不明白。

    下面是生成 Vref 电压的电路。
    我不知道为什么在没有使用专用芯片的情况下以这种方式配置、但我看不到任何问题。

    Vref 在3.18和3.22V 之间变化。
    如果您删除此器件并连接 VrefHI 和 VCCA、则之前发生的问题将不会出现。 只是 ADC 处理值的波动超过预期值、但不保持固定在256。

    除了 VrefHI 的电压不得高于 VCCA 的电压外、我知道对 VrefHI 没有限制、但我不明白这为什么会成为一个问题。
    我不明白为什么所有电路板上的该值都固定在256 (对于我们中使用数字器件的人而言、这是一个有意义的值)。
    在我看来、这似乎不是由于 VrefHI 的电压问题而可能发生的现象。

    Vref 电路有什么特别之处吗?
    请看一下电路。 我找到了原因,但很难接受。

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

    如果从上面连接的 Vref 电路中移除齐纳二极管、则在一个电压波动的区域内会发生电压波动、如下图所示。
    为什么? Vref 电路和 CPU 内部电路之间是否存在干扰?
    拍照时电压低。
    它的摆幅为3.45V。

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

    此外、我们将 Vref 设置为2.5V 并进行测试。
    256上的工作原理类似。
    我将 Vref 设定为2.5V 并删除了齐纳二极管。
    AD 值和以前一样固定在128,256和512。

    我安装了一个齐纳二极管、将 Vref 设置为2.5V、并通过将一条与 LM2904输出引脚到 CPU VrefHI 的细线并联的线路来增强它。
    AD 值固定为256几乎是不可能的。
    还会检测到 AD 值255和257、但与其他值相比、保持256的段更多。
    但它处于可用的级别。

    结论是、这是因为 Vref 线较弱。
    但是、即使我直接在 CPU VrefHI 引脚上测量电压、3.2V 也得到了很好的测量。 我认为、如果线路较弱、应该会出现压降。 这一现象没有得到很好的理解。

    你对我有什么建议吗?

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

    年轻、

      我们的数据表指出:

    VREFHI 和 VREFLO 必须在整个转换时间内保持稳定、在所需分辨率的±1/2 LSB 范围内

    问题似乎与基准电压有关。 您可以使用有源 FET 探头检查基准电压并评估噪声量子。 我恐怕我无法在这之外提供帮助。

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

    是的、感谢您确认。

    我想如果 VrefHI 波动、AD 结果会波动很大、但事实证明、波动的不仅仅是值、还可能导致 ADC 出现问题。

    您能解释一下为什么在振动 VrefHI 和 VrefLO 时 CPU 内部会出现问题吗?

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

    顾名思义、基准电压是评估输入模拟电压的基准。 基准上的噪声肯定会使转换后的数字值偏斜。 精确量化/表征结果将如何受到影响是极其困难的。 我们所能做的就是进行定性观察。