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.

[参考译文] ADS1118:K 热电偶的 ADS1118 ADC 模式集合

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/813940/ads1118-ads1118-adc-mode-collection-of-k-thermocouple

器件型号:ADS1118

尊敬的 TI 工程师

 我使用 STM32微控制器驱动 ADS1118来收集 K 热电偶。收集的数据不正确。  下面是我的工作方式、 看看是否有问题。谢谢

1、ADS1118读写功能

uint16_t ADS1118_ReadConfReg (uint16_t reg)

   uint16_t conf_reg=0;
   
   SPI_CS_LOW;
   delay_us (100);
//   conf_reg = SPI_ReadData (SPI1_Obj、0x04FB);      //温度传感器
   
   CONF_REG = SPI_ReadData (SPI1_Obj、reg);   //ADC 收集
//   conf_reg = SPI_ReadData (SPI1_Obj、0x89a);   // ADC 收集
   SPI_CS_HIGH;
   
   返回 conf_reg;


uint32_t ADS1118_ReadWriteReg (空)

   uint32_t conf_reg=0;
   
   SPI_CS_LOW;
   delay_us (100);
   CONF_REG = SPI_ReadData_32位(SPI1_Obj、0x04EB04EB);
   
   SPI_CS_HIGH;
   
   返回 conf_reg;

2、主功能处理

#define ReadADC_Reg             0x8283      //0x04e3

uint16_t ads1118_v=0;
uint32_t ads_reg = 0;
float ads_value = 0;

while (1)

ads1118_v = ADS1118_ReadConfReg (ReadADC_Reg);   //ad collect
ads_value =(float) ads1118_v * 4.096/32768;

printf ("ads118值:%x;ads1118_tempature:%.2f\r\n"、ads1118_v、ads_value);

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

    Dany、

    我不是看代码、而是认为直接从 ADC 查看输出数据更容易。 使用一组来自原始 ADC 数据(未转换为温度)的100个读数进行报告。

    当您说收集的数据不正确时、它有何不正确之处? 数据是否始终不正确、或者偶尔出现读取错误? 虽然这可能是将代码转换为温度的问题、但它也可能是收集数据的方法的问题、并且在/DRDY 指示后无法足够快地获得数据。

    吴约瑟

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

    Dany、

    为了确保您具有此功能、ADS1118EVM 的构建就像热电偶测量应用一样、您可以在此处找到用户指南:

    这里还有一个简短的指导手册电路:

    此外、您还可以在以下位置找到有关此系统的应用手册:

    此处还有一个 TI 参考设计:

    吴约瑟

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

    吴约瑟

      首先、感谢您的回答。

      在温度传感器模式下、数据正常。  在 ADC 模式下、数据不正确。  请参阅 下面的屏幕截图。

     1、这是 ADC 模式

       2、这是温度模式

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

    Dany、



    现在、内部温度传感器测量看起来正常。 如果您的温度大约为25.6°C、并且器件处于室温下、读数应该很好。 不过、测量时 ADC 值读数为0或1。

    这可能是几个方面之一。 首先、您可以在原理图中的某个位置短接输入电压。 如果您以最高数据速率运行、您可能会看到一些噪声、并有一些偏移。 其次、您可能会为 ADC 设置错误的满量程范围。 通常、您需要将电压设置为±0.256V。 例如、如果您处于±4.096V FSR 范围内、则该范围的 LSB 为125uV。 这仍然很小、但如果在±0.256V FSR 中 LSB 约为7.8uV、则更容易看到偏差。

    对于设置、我还会检查其他一些事项。 我肯定会在单次转换模式下使用该器件。 更改信道时、使用此模式可确保我获得正确信道的正确读数。 我还会使用较慢的数据速率来确保噪声不是一个大因素。 您可以查看我在上一篇文章中提到的热电偶指导手册的 ADC 设置。

    之后、我认为您应该测量真实的电压源、而不是热电偶、以便测试您的系统。

    如果所有这些都不能帮助调试您的系统、则发布您的原理图。 我想查看所有到 ADS1118的连接、看看还有什么连接到输入。


    吴约瑟

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

    吴约瑟

      感谢您的患者响应。

      现在、我将按照您的建议配置满量程振铃。 测量的数据如下:

    #define ReadADC_Reg             0x8B8B

    硬件连接:

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

    Dany


    在我看来、您获得的数据是正确的、但未正确报告温度。 要计算温度、必须首先使用下图将冷端温度转换为电压。



    对于 ADC、您可以获得大约7的热电偶测量值。 您确实有一些噪声、这些噪声可能来自系统中导线的 EMI 拾取。 如果您得到7作为输出代码、并且使用±0.256V FSR、则此转换为:

    7*7.8125uV = 54.68uV

    然后使用内部温度传感器并获取温度。 在之前的读数中、得到的值为25.59°C (例如)。

    然后、您可以通过 k 型热电偶表将该温度转换为热电压。 这将转换为1.02415mV。 将其添加到54.68uV 的热电偶电压中。 这将成为:

    1024.15uV+54.68uV = 1078.83uV。

    将其转换回温度、得到:26.938°C


    吴约瑟

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

    吴约瑟

       感谢您的分析!

      我将根据您的分析再次对其进行测试。

      在工作中度过美好的一天!