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.

[参考译文] ADS1241:SELF0CAL 抵消了 ODAC 的影响

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/816250/ads1241-self0cal-nullifying-the-effect-of-odac

器件型号:ADS1241

我正在使用 ADS1241将热电偶毫伏转换为数字数据。我通过向 ODAC 写入零来禁用它、然后发出 SELFCAL 命令。 之后、我使用值0x83启用了 ODAC、该值大约为16毫伏。 我有1.235伏作为基准。 PGA 为1、缓冲器禁用、范围位为零。

SELFCAL 命令可消除 ODAC 的影响。

源代码为:

偏移= 0x00;
ADS1241WriteRegister (ADS1241_ODAC_register、1、offset);
for (j = 0;j < 200;j++);
for (j = 0;j < 200;j++);
for (j = 0;j < 200;j++);

////自校准
ADS1241AssertCS (1);
for (j = 20;j > 0;j-);


buf_ads[0]=(ADS1241_SELFCAL);
HAL_SPI_transmit (&hspi1、buf_ads、1、100);
for (j = 0;j < 20;j++);
//HAL_DELAY (100);
ADS1241AssertCS (0);


对于(i=0;i<1000;i++);
对于(i=0;i<1000;i++);
对于(i=0;i<1000;i++);

偏移= 0x83;
ADS1241WriteRegister (ADS1241_ODAC_register、1、offset);
for (j = 0;j < 200;j++);
for (j = 0;j < 200;j++);

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

    您好、Akash、

    不清楚您的说法是什么问题、您没有以任何数据为例提供给我们。  您的期望是什么? 您的输入电压是多少?

    ADS1241的 SELFCAL 将消除器件偏移和增益误差。  必须将 ODAC 设置为零、否则 SELFCAL 也会删除从 ODAC 设置创建的偏移。  这似乎是代码中的正确顺序、但您需要使用示波器测量命令之间的时间、以验证延迟环路是否按预期工作。  很可能、总数为3000的计数在 ODAC 被写入前几乎没有足够的时间完成校准。

    最好的方法是监控 DRDY、以确保其在写入 ODAC 之前已完成从高电平到低电平的信号传输。

    此外、如果您尚未查看以下文档、请查看此文档。

    http://www.ti.com/lit/an/sbaa077a/sbaa077a.pdf

    此致、

    Bob B