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.

[参考译文] LMP9.008万:偏移和增益校准程序

Guru**** 2393405 points
Other Parts Discussed in Thread: ADS114S08

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/626942/lmp90080-offset-and-gain-calibration-procedure

部件号:LMP9.008万
主题中讨论的其他部件: ADS114S08,LMP9.01万

您好,

我正在尝试按照规格文档第26页中描述的步骤对LMP9.008万执行系统校准。

说明似乎不完整,没有提到如何准备校准流程,也没有关于初步要求的信息。

我尝试校准CH0,而不是立即校准CH1。 这个过程有时会成功,但我无法控制。

是否有人尝试过系统校准?

下面是我正在使用的一些代码序列:

//校准准备

//重置LMP
 SPI_Send(0x10);
 SPI_Send(0x00);
 SPI_Send(0x00);
 SPI_Send(0xC3);
 
 延迟(1000);
 
 //设置通道CH0配置
 SPI_Send(0x10);
 SPI_Send(0x02);
 SPI_Send(0x01);
 // 26.83 SPS,增益=1,路径中没有缓冲区
 SPI_Send(0x41);
 
 //设置通道CH1配置
 SPI_Send(0x10);
 SPI_Send(0x02);
 SPI_Send(0x03);
 // 26.83 SPS,增益=1,路径中没有缓冲区
 SPI_Send(0x41);
 
 //设置时钟
 SPI_Send(0x10);
 SPI_Send(0x01);
 SPI_Send(0x02);
 //内部时钟
 SPI_Send(0x20);

// CH0系统校准(CH1系统校准顺序相同)

 SPI_Send(0x10);
 SPI_Send(0x01);
 执行{
  数据= SPI_Send(0x8E)和0x2;
 }同时(data != 0x0);
 
 //设置信道扫描模式
 SPI_Send(0x10);
 SPI_Send(0x01);
 SPI_Send(0x0F);
 SPI_Send(0x00);
 
 //校零
 //-----------
 //将通道CH0设置为VIN7 (GND)
 SPI_Send(0x10);
 SPI_Send(0x02);
 SPI_Send(0x00);
 // VINP:VIN7,VINN:VIN7 (GND)
 SPI_Send(0x3F);
 
 延迟(100);
 
 //将SCALCN设置为偏移系数确定模式
 SPI_Send(0x10);
 SPI_Send(0x01);
 SPI_Send(0x07);
 SPI_Send(0x01);
 
 //等待校准结束
 执行{
  数据= SPI_Send(0x87);
 }同时(data != 0x0);
 
 //刻度校准
 //-----------
 //将通道CH0设置为VIN6
 SPI_Send(0x10);
 SPI_Send(0x02);
 SPI_Send(0x00);
 // VINP:VIN6,VINN:VIN7 (GND)
 SPI_Send(0x37);
 
 //启用IB1源电流
 SPI_Send(0x10);
 SPI_Send(0x01);
 SPI_Send(0x02);
 // 1000uA电流->预期读出1.0V
 SPI_Send(0x2A);
 
 //将1.0V值设置为CH0_SCAL_Gain (0x67A5)
 SPI_Send(0x10);
 SPI_Send(0x03);
 SPI_Send(0x03);
 //SPI_SendData (0x67);
 SPI_Send(0x7F);
 
 SPI_Send(0x04);
 //SPI_SendData(0xA5);
 SPI_Send(0x67);
 
 延迟(100);
 
 //将SCALCN设置为增益系数确定模式
 SPI_Send(0x10);
 SPI_Send(0x01);
 SPI_Send(0x07);
 SPI_Send(0x02);
 
 //等待校准结束
 执行{
  数据= SPI_Send(0x87);
 }同时(data != 0x0);

另一个问题与ADC条目上的预期值1.0V有关。 增益校准的计算值为0x67A5,但所需结果是通过使用0x7F67获得的。

请注意!

谢谢!

克里斯蒂安

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


    我认为校准流程或任何其他初步要求都不需要任何额外准备。 通常,它只是输入您认为是输入0的内容,然后运行偏移校准;然后输入全刻度输入,然后运行增益校准。 您应该先运行偏移校准,然后再执行一次一个通道的校准。

    根据您的描述,您的偏移校准似乎正在工作。 如果您想检查,我会读回偏移校准系数,并确保您的值未关闭。 您可以读回系数和读回ADC数据,以确保其接近0x0000。

    对于您的增益校准系数,我仍然不确定您会收到什么错误。 您提到,您将得到一个计算值0x67A5,而您预期得到的是0x7F67。 这是关于23 % 的一个错误,因此您应该能够跟踪它。

    首先,您使用什么作为参考,在运行校准时,您使用什么作为全刻度输入? 参考电阻是否由IB1或IB2驱动? 全刻度输入是否是另一个看到相同电流的电阻器? 当您执行校准时,我一定会尝试使用精密万用表测量输入值和参考值,只是为了确保这些值与预期值不会相差太远。 我的猜测是您在校准过程中的这些电压不正确。

    不管怎样,请通读我的评论,让我知道您是如何设置校准,测量电压和反馈以跟进的。


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

    您好,Joseph:

    感谢您的快速回复!

    我仔细阅读了您的评论,之后我对我的设计和源代码进行了广泛的审查。

    为了进行校准,我使用IB1设置为1mA,并使用VIN6和VIN7之间连接的1Kohm 0.1 % 电阻器。 事实上,我的设计与文档第45页图66中描述的设计完全相同,使用1个电流源的3线PT-100。

    参考电压为1.235V,它连接至VREFP1,VREFN1连接至接地。

    我测量了参考电阻器上的电压,读数为1.0112V。 根据参考电压,我计算了0x68CE处的增益寄存器值。

    我已按照以下步骤执行系统校准:

    —通道0,偏移校准:VINP=VIN7 (GND),VINN=VIN7 (GND),26.83 SPS,增益=1,路径中无缓冲区,BGCALCN =偏移校正/增益校正。 偏移寄存器读回0xFFFF;

    -通道0,增益校准:VINP=VIN6,VINN=VIN7,IB1=1mA,26.83 SPS, Gain (增益)=1,PATH中没有缓冲区,BGCALCN =偏移校正/增益校正。 在校准读数返回0x7FCE后,增益寄存器设置为0x68CE;

    —通道1,偏移校准:VINP=VIN7 (GND),VINN=VIN7 (GND),26.83 SPS,增益=1,路径中无缓冲区,BGCALCN =偏移校正/增益校正。 偏移寄存器读回0xFFFE;

    -通道1,增益校准:VINP=VIN6,VINN=VIN7,IB1=1mA,26.83 SPS, Gain (增益)=1,PATH中没有缓冲区,BGCALCN =偏移校正/增益校正。 校准读数返回0x7FCB后,增益寄存器设置为0x68CE;

    校准后,我已执行温度测量。 我有两个相同的PT100传感器,一个连接到电子设备,另一个连接到数字万用表。 它们彼此之间的位置非常接近。

    问题是电子元件读取PT100电阻值,万用表显示的另一个PT100的电阻值不同。 它们具有相同的电阻,在将其中一个安装到我的设计之前,我已经检查过。

    例如:万用表为一个PT100读取109.17 欧姆,电子元件为另一个PT100读取111.57 欧姆。 我换了传感器,问题还是一样的。

    我没有任何理想可以从哪里看出这种差异。 我可以说,自热可能是一个问题,但摄氏度的等效差比4摄氏度高,这是太多了。

    我已读回参考电阻器上的电压,与万用表读取的电压相同。

    请给出建议!

    此致,

    克里斯蒂安

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


    我还有一些关于您的校准和测量的问题。

    首先,我认为您的校准方法不正确。 您运行校准,获取一个值,然后用新校准覆盖该值。 例如。 如果VREFP1为1.0000V且VREFN1连接至接地,则输入为1.0000V,则理论增益寄存器值为0x8000,您在校准后会覆盖该值。 校准用于匹配输入电压和参考电压之间的采样。 您获得的第一次校准值是0x7FCE,这意味着输入和引用已被About 0.15 % 关闭,我认为您不会将其纳入您的新值中。

    我不会将增益寄存器值转换为0x68CE,而是将校准寄存器单独保留。 然后测量参考电阻器。 它应约为1kΩ Ω,但应尽可能使用万用表进行精确测量。 然后获取ADC结果并使用比率测量值计算RTD值。 RTD电阻应为:

    RTD值=(ADC结果/2^15)*增益*参考

    这样,您就不需要使用1.235V基准来回缩放数值,也不需要转换为电压。

    我还有两个关于您的设置的问题。 首先,使用1个电流源拓扑,您需要进行两次测量。 首先,您通过VIN0驱动电流源并进行测量1。 其次,将电流源驱动至VIN1并进行测量2。 使用1从2中删除RLINE1和RLINE2的效果。 我只是想确保您正在进行两个测量,否则您可能会遇到来自RLINE1的错误。 其次,您是否对VIN0和VIN1进行了任何输入过滤? 串联电阻可能会在测量中增加一些误差。

    我想说,你们看到的错误是相当大的。 这有助于了解您所获得的增益以及ADC数据是什么。 此时,误差可能是线路电阻,参考电阻的函数,或您使用的校准产生的某些偏移或增益误差。


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

    我已经弄清楚,问题是我认为参考资料是错误的。
    3线PT100传感器通过极短的印刷电路板痕量线直接连接至VIN,没有串联电阻器。
    我已卸下系统校准部件。 现在,正如您所建议的,我直接从ADC值(VIN0/VIN1和VIN1/VIN6)计算RTD值。

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


    我很高兴您能够解决偏移问题。 虽然我意识到您正在使用LMP9.01万,但我确实想指出,我们在ADS114S08中还有另一个类似的部分。 在ADS114S08的数据表中,有一个具有高侧参考的3线双电流源设计示例。

    虽然此设计与您的设计非常不同,但有许多示例计算显示如何确定设计是否在设备的操作范围内。 方程式和设计将有所不同,但您需要考虑的内容将非常相似。

    如果您有任何其他问题,请回复。


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

    您能否向我指出一些有关DC/DC (升压拓扑)电源设备波纹衰减的应用说明?
    我的设计是电池供电的,耗电极低,90 % of Time保持待机模式,耗电约600uA,运行模式下有一些峰值,约16mA。 输入电压为3.6V,锂电池,输出电压为5.0V。 对于我应该使用哪种DC/DC转换器,您有什么建议吗?

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

    克里斯蒂安

    很抱歉,但我认为我没有足够的经验来建议您使用特定的电源设备来减少波纹。 我的建议是在非隔离式跟单信用证/跟单信用证论坛上发布问题。 只需解释一下,您想要减少由DC/DC转换器为精密数据转换器设备供电的脉动。 您可以通过以下链接找到论坛。

    一般而言,我建议使用LDO来在开关转换器之后平滑波纹。 这可能是数据转换器获得电力的最清洁的方式。

    吴若瑟