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.

[参考译文] TMS320F2.8069万M:温度依赖性和输入电阻测试,带ADC自校准

Guru**** 2587345 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/657089/tms320f28069m-temperature-dependency-and-input-resistance-testing-with-adc-self-calibration

部件号:TMS320F2.8069万M

您好,

客户对ADC自校准有一些疑问。

问题是关于根据http://www.ti.com/lit/er/sprz342k/sprz342k.pdf中的勘误表所需的F2806x周期性ADC零偏移自校准

他们看到偏移值随温度的变化而有所变化,测试设置如下所示。 您能否告诉我这种温度依赖性是否在他们下面看到的范围内?

 

其次,下面有一个测试尝试建立对VREFLO路径输入电阻的依赖性,但我不确定这是否是一个好的测试,请参阅下面的内容。 这是否在预期范围内?

 

 

常规设置:

1.      我们的系统正在利用ADC的内部电压参考。  

2.      让VREFHI引脚保持浮动状态。

3.       VREFFLO引脚直接对地短路。

4.      我们使用VREFLO运行推荐的校准例程,如第499页上的spruh18g所述。

5.      校准例程在VREF0的两组5个ADC读数之间使用ping-pong,其中第一个读数被丢弃,第四个读数触发对下一组的请求。

6.      应用了80个计数的临时偏移,并累积和平均256个值以查找错误。

7.      例程使用ACQPS =6 (7个周期),并且不启用重叠模式。

8.      *我们发现通过8个通道进行流式传输并保留第一个条目确实影响生成的结果读数。

 

根据温度测试ADC偏移设置

1.      执行上述初始化会将ADCOFFTRIM设置为0x22

2.      我们重新运行校准并始终获得该值。

3.      读取1.65V参考电压读数为0x0822-0x824 (约为1.672V)。

4.      使ADCOFFTRIM失效,返回大约0x800-0x802

5.      使用另一个通道和一些增益电路,我们应用了18-24V输入,并注意到如果没有应用偏移,则产生的寄存器值与预期输入精确匹配。

6.      我们取出热气枪,将板的温度从大约20C提高到大约60C。  再次测试电压范围。  我们注意到可能出现1计数漂移。  没有什么重要的。

7.      我们重新启动了处理器,保持了较高的温度。  校准生成0x1E

8.      我们重新运行校准,它将新值保持在温度下。

9.      对于ADC上的每个测量值,我们使用一个精确度约为0.002V的O形电位计确认了引脚处的相应电压

 

根据VREFLE输入电阻测试ADC偏移设置

1.      设置新主板,运行基线检查。 校准结果为0x1C,VREFFLO关闭。

2.      将接地线连接到外部引脚(B5)并修改校准例程以使用外部值。  0x1b

3.      我将一个5.9kohm电阻器放在其中并重新校准。  0x1D0 (偏移量的10倍)。

4.      替换为2.2千欧的电阻器。 0x13A。

5.       220欧姆,0x1C4,0x1C3

6.       10欧姆,0x18,0x19,0x19

7.3.3欧姆      ,0x1D (当我们接近0时增加!)

      8.浮动,0x16C,0x16B,0x167 (低于5.9k电阻器!)

 

 

结论:

1.      应用0V电源时,应用于ADC的输入电阻似乎具有很强的灵敏度。

2.      系统自然看起来放松到0x167,因此超过阈值的电阻自然会接近该值。

3.      对于低于500欧姆的电阻,其行为是非线性的。

4.       VREFFLO的测量具有温度灵敏度。

5.      这种灵敏度似乎不会影响偏离滑轨的ADC读数,可能意味着接近滑轨的增益误差或非线性。

6.      毫不奇怪,浮动值在结果校准中显示更大的噪声。

有人能对测试和结论发表意见吗?

 

谢谢!

——Gunter

 

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

    [引述]1.       应用0V电源时,应用于ADC的输入电阻似乎具有很强的灵敏度。[/QUOT]

    额外的输入电阻(Rs)会降低ADC采样电容器(Ch)的充电时间。  较大的ACQPS值可适应增加的电阻。


    [引述]2.       系统自然会松弛到0x167,因此,如果电阻超过阈值,则自然会接近此值。  [/引述]

    ADC信道没有内部偏置,因此每个器件和信道的"自然"值可能不同。

    [引述]3.       如果电阻低于500欧姆,则其行为为非线性。  [/引述]

    与#1类似,Ch的充电行为 可能看起来是非线性的。

    [引述]4.       VREFLO的测量具有温度灵敏度。  [/引述]

    是的,ADC偏移量预计会随温度而漂移,这就是建议定期校准的原因。

    [引述]5.       这种灵敏度似乎不会影响偏离导轨的ADC读数,可能意味着接近导轨的增益误差或非线性。  [/引述]

    是的,ADC在数据表中指定了增益错误。  增益和偏移误差可能相互独立。

    [引述]6.       毫不奇怪,浮动值在结果校准中显示更大的噪声。  [/引述]

    我们认为浮动输入上的ADC转换在本质上是未定义的和随机的。

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

    现在忽略电阻测试,我想重点关注轨对轨线性并获得校准问题。

    我们正在运行Device_cal和建议的偏移校准例程,并进行了一些修改以明确解决首次读取和重叠读取损坏的ADC勘误表。

    这里的问题是,在多个电路板上,在芯片的多个副本上,我们发现从0x040到0x840计数范围,我们在器件引脚上的o范围和ADC结果寄存器之间获得了一致的测量值(在大约一个计数范围内) 如果我们没有使用偏移校准例程。

    对于0x0040以下的值,我们看到偏移校准的趋势,这就是为什么我要提出有关非线性的问题。
    在0x840计数以上,我们没有太多测试。

    如果您认为这是增益错误,则Spruh18g建议不要修改我知道的唯一寄存器,以解决运行Device_cal后的增益问题。
    您如何建议我们继续?

    如果您认为这是另外一种情况,您是否在本地测试设置中看到类似的行为?

    我们未发现将接地应用到外部引脚与校准与使用VREFFLO之间存在显著差异。  

    我们只注意到校准例行程序产生的温度过高偏移中的温度灵敏度。  当我们应用了无偏移时,输出值在整个温度中与ADC读数保持一致,从大约0x040到0x840,从室温到60C,使用热枪,使用红外温度计测量。  给定板上的校准例行程序生成的校准值在给定温度下保持一致。

    您是否看到类似的行为?

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

    [报价用户="Carl Kelso"

    这里的问题是,在多个电路板上,在芯片的多个副本上,我们发现从0x040到0x840计数范围,我们在器件引脚上的o范围和ADC结果寄存器之间获得了一致的测量值(在大约一个计数范围内) 如果我们没有使用偏移校准例程。

    对于0x0040以下的值,我们看到偏移校准的趋势,这就是为什么我要提出有关非线性的问题。
    在0x840计数以上,我们没有太多测试。

    如果您认为这是增益错误,则Spruh18g建议不要修改我知道的唯一寄存器,以解决运行Device_cal后的增益问题。
    您如何建议我们继续?

    如果您认为这是另外一种情况,您是否在本地测试设置中看到类似的行为?

    [/引述]

    在发货前,每个设备上都有以下预期行为并进行检查:

    • 当执行偏移校准时,当输入电压接近VREFLO时,ADC转换应向0收敛。  增益误差在此VREFLE层可以得到折扣。  当使用与主ADC转换相同的ACQPS设置执行偏移校准时,偏移校准应是最准确的。
    • 当输入电压接近VREFHI上限值时,增益误差成为主要误差因子,校准偏移误差可忽略不计。  增益错误可能导致ADC转换在VREFHI时被裁剪为小于4095的值,或者在达到VREFHI之前,转换可能在4095时饱和。
    • 使用DNL和INL参数指定0和MAX ADCRESULT (由总增益误差确定)之间转换的线性。  例如,从0和MAX ADCRESULT之间的理想直线转换,预计INL偏差不会超过+/-4 LSB。

    您能否阐明ADCRESULT趋向于偏移校准的行为?  对VREFLE采样时ADCRESULT的值是多少?

    增加ACQPS设置是否有助于线性?  ADC时钟是否配置为45MHz或更低?

    [报价用户="Carl Kelso"

    我们未发现将接地应用到外部引脚与校准与使用VREFFLO之间存在显著差异。  

    我们只注意到校准例行程序产生的温度过高偏移中的温度灵敏度。  当我们应用了无偏移时,输出值在整个温度中与ADC读数保持一致,从大约0x040到0x840,从室温到60C,使用热枪,使用红外温度计测量。  给定板上的校准例行程序生成的校准值在给定温度下保持一致。

    您是否看到类似的行为?

    [/引述]

    这听起来是合理的行为,但我可能缺少一个细微的细节。  偏移校准只能随给定板上的温度而变化。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据您的评论,我进行了一些挖掘。 我发现我们在偏移校准例程(90MHz !=45MHz)之后立即设置ADC时钟分频器。 我已将此项移到该函数调用之前,并且生成的偏移更接近我预期的值(测试为0x50,读数为0x56)。

    我需要重建用于执行初始测试的测试设置,但我将根据此更改提供更多信息。 症状似乎一致,但我想确认,这是我们所看到的情况的总和。

    我是否还需要考虑device_cal上的时钟限制?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Carl,

    据我所记忆,时钟异常主要适用于ADC (最大45MHz)和支持的闪存等待状态。

    汤米