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.

[参考译文] TMS320F28034:AdcOffsetSelfCal()似乎必须避免勘误"ADC:初始转换"

Guru**** 2546480 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/913017/tms320f28034-adcoffsetselfcal-seems-it-has-to-avoid-the-errata-adc-initial-conversion

器件型号:TMS320F28034
主题中讨论的其他器件:C2000WARE

您好、香榭丽舍

进行了比较   

确保偏移保持在数据表的“单次重校准”范围内
规范中,在 Device_cal()之后执行 AdcOffsetSelfCal()函数
ADC 已配置。

我已经在 C:\ti\c2000\C2000Ware_3_01_00_00\device_support\f2803x\con\source\DSP2803x_adc.c 中检查了 AdcOffsetSelfCal ()
它有一个句子 AdcConvean = AdcConversion();      //在  DSP2803x_adc.c 中的 VREFLO 上捕获 ADC 转换

AdcConversion (void){
 :
sum += AdcResult.ADCRESULT0;   // Hitoshi 认为这是第一次转换。
sum += AdcResult.ADCRESULT1;
 :

我认为由于勘误表"ADC:初始转换"、第一个转换结果必须被丢弃。
请检查上面的 AdcConversion(),我认为需要进行一些修改。

例如,必须将虚拟读取添加到 AdcOffsetSelfCal()等
否则、我担心它可能会对 ADC 精度测量产生负面影响。

提前感谢您的善意检查和分享解决方案。
此致、
Hitoshi

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

    Hitosi-San、

    是的、最佳做法是丢弃第一个样本。  在偏移校准示例中、创建者认为256次转换的样本大小足够大、可以减轻由第一个样本引起的误差。

    Tommy

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

    嗨、Tommy、

    如果索引和 SampleSize 使用相同的值、 那么 AdcConversion (void)的可接受修改如下所示?

    AdcConversion (void){
     :
    // Sum += AdcResult.ADCRESULT0;   // Hitoshi 认为这是第一次转换。 这将被丢弃。
    sum += AdcResult.ADCRESULT1;
    sum += AdcResult.ADCRESULT1;     // ADCRESULT1被添加两次而不是 ADCRESULT0
     :
     :
    AdcRegs.ADCINTFLGCLR.bit.ADCINT2 = 1;//清除 ADCINT2 (INT2CONT = 0)
    // Sum += AdcResult.ADCRESULT8;   // Hitoshi 认为这也是第一次转换。 这将被丢弃。
    sum += AdcResult.ADCRESULT9;
    sum += AdcResult.ADCRESULT9;     // ADCRESULT9被添加两次而不是 ADCRESULT8

    客户需要一个用于更正的示例代码。
    提前感谢您的友好检查。
    此致、
    Hitoshi

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

    Hitosi-San、

    您所显示的内容是可以接受的、但请注意、除了第一个无效样本之外、优质样本也会丢失。

    例如:

    • 所有 ADCRESULT8结果将始终有效、因为 ADC 转换器在循环中持续运行
    • 所有 ADCRESULT0结果都将被丢弃、但只有来自第一个循环迭代的 ADCRESULT0无效

    如果需要定期校准、我建议查看 ADC_periode_offset_calibration 示例。

    Tommy

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

    嗨、Tommy、

    让我与 您一起双击勘误的 ADC:初始转换。
    根据勘误表、它显示"当 ADC 转换由顺序或同步采样模式下的任何触发源启动时、第一个采样可能不是正确的转换结果。"

    对于示例代码"DSP2803x_ADC.c"、 ADCINT2启动 SOC0-7、 ADCINT1启动 SOC8-15。
    ADCINT2和 ADCINT1似乎是触发器、SOC0和 SOC8是触发器之后的第一个转换。

    它们似乎是触发器。
    感谢您的善意澄清。

    此致、
    Hitoshi





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

    Hitosi-San、

    仅当 ADC 转换器被允许空闲时、才会发生初始转换错误。 对于大多数应用、ADC 转换由不同源触发的转换序列之间的空闲转换周期定期触发。 因此、该通报的措辞旨在建议丢弃每个触发序列的第一个样本。

    在连续自触发转换的情况下、ADC 转换流水线会不断加载、因此没有空闲转换周期。 在应用变通办法时,AdcConversion()中256样本循环的整个输出可以视为单个序列。

    Tommy

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

    嗨、Tommy、

    感谢您的友好解释。
    我理解并将相应地处理勘误表。

    再次非常感谢。
    此致、
    Hitoshi