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:来自IC的错误数据

Guru**** 2537350 points
Other Parts Discussed in Thread: LM1117, ADS1118EVM, ADS1118

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/654563/ads1118-erroneous-data-from-ic

部件号:ADS1118
主题中讨论的其他部件:LM1117,,

我正在ADC和温度传感器转换期间从IC接收大量数据。 当 我向IC写入0x0E6B时,我得到的是K型热电偶产生的ADC 0x00D9。 当我向IC写入0x0E7B时,我得到了0xE9C作为温度传感器温度。 我目前处于大约20°C的环境中。

我 正在使用设备数据表中描述的电路(第32页10.2 部分中的图50)

我不知道如何纠正这种情况。 这些测量结果显然不正确。

我正在使用带5V电源的PIC18F2510控制器。 我正在使用3.3 V,通过LM1117 3.3V稳压器从5V电源降压。

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

    Timothy,


    从温度传感器读取的数据与从ADC读取的正常电压读数不同。 数据表示为14位结果,在16位转换结果中左对齐。

    您的0xE9C读数从0x0E9C开始。 在二进制中,这将变为:

    0000 1110 1001 1100

    使用前14位,因此您删除后两位,这将变为:

    000011 1010 0111

    将此转换回十六进制,您将获得:

    0x03A7 -> 935

    这会导致29.2°C的温度(这可能意味着您的主板功耗会导致某些温度上升)。

    查看此转换在您的系统中是否有意义。 不管怎样,请告诉我这是否有帮助,或者我们可以讨论调试此问题的其他方法。


    吴若瑟

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我修改了我的代码以包含2位的移位,从而获得14位的结果,但这仍然没有什么意义。 根据数据,70.1 的环境温度(使用已校准的温度计测量)为我提供了0xd5的热电偶读数,对应于41.3 deg C的温度。温度传感器提供的值为0xe74,在换档后转换为0x39d。 这意味着温度传感器指示的温度为28.9 dec C。热电偶和IC处于相同的环境中。

    奇怪的是,当我将热电偶放在冰浴中时,读数为0x6a,对应于20.75 deg C的温度,它与我的已校准温度计给出的室温相距不到一度。

    我不明白IC做了什么来给我这么奇怪的结果。

    我无法用这些数据做任何事情。 通常,我可能会将冷接点温度转换为等效mV读数并添加它,但这只会使这种情况变得更糟。 你有什么建议吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Timothy,

    我看到了一个错误,但它与您预期的略有不同。 热电偶电压读数为0xD5,转换为213d,读数为1.664mV。 使用转换表,仅当冷接点处于0°C时,此值才为41.3°C

    但是,您的冷接点温度不是0°C,而是室温。 您需要将冷接点温度转换为电压,然后将热电偶测量值中的电压相加。 然后返回到表中了解温度。 但是,浏览您的数字,这些值将关闭。 我不确定问题来自什么原因。 通常,如果冷接点和热电偶温度相同,则热电偶的测量值为0伏。

    作为一项实验,我尝试使用ADS1118EVM进行类似的测量。 它有一个专用连接器,并随附一个K型热电偶。 首先,测量温度传感器。 我读了0xC44,它将温度传感器转换为0x311。 该值变为785D并转换为24.53°C

    现在我测量热电偶。 我握住热电偶,以便测量我的食指和拇指之间的温度,从而使其不处于室温。 测量此值时,我得到0xC0的读数。 这转换为48d,电压为375uV。

    要获得热电偶温度,我首先将冷接点温度转换为电压。 从温度传感器开始,24.53°C的电压与表中的电压为0.981uV。

    获取此冷接点电压并将其添加到热电偶测量电压中。 合计后,您将得到0.981uV+375uV。 这将给出33.75°C的值 我相信这是相当准确的。

    回到您的设置,我不确定是什么问题。 前面是否有大型串联电阻器? 串联阻抗可能会与任何输入电流发生反应,从而增加一个错误。 您是否能够发布示意图? 是否可以显示设置的照片? 如何偏置热电偶?

    无论如何,请仔细阅读ADS1118EVM用户指南。 原理图是热电偶测量的良好模板,指南中可能还有其他有用信息。

    吴若瑟

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

    我正在使用的电路直接来自第32页上的数据表部分10.2。如下所示:

    电阻器为1 % ,盖为10 %。 除pic18f2510控制器外,没有其它连接。 我尝试用这里的另一个ads1118更换,结果几乎相同。 我想我的代码可能是错误的,但我可以使用逻辑分析器观察数据的来路并通过SPI线路。 我只是不想去了解这里发生了什么问题。

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


    EVM的原理图与数据表中的原理图完全相同,但EVM仅使用AIN2和AIN3进行热电偶测量。 您很可能使用AIN0 AIN1输入进行测量,但除了输入多路复用器的编程之外,这不会产生任何影响。

    我要注意的是,如果热电偶和冷接点的温度相同,热电偶的测量值应为0伏。 由于您正在测量实际电压,这可能意味着您的主板上有某种热梯度。 这就是为什么我要求提供一张图片,只是为了查看热电偶连接与设备之间的距离。 另外,主板上的处理器或其它设备也有可能消耗一些电源,这可能会转化为另一个增加的温度梯度。

    查看逻辑分析器输出可能很有用。 我会公布输出读数。 可以修改输出的一种方法是为每次读取设置32个SCLK时钟。 这也会产生输出数据和配置寄存器。 如果你刚好有一个Saleae逻辑分析器,发送输出文件,我有一个Saleae,可以用设备软件打开文件。


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


    我有一段时间没有收到您的信息,我想看看您是否能够使ADS1118正常工作。 正如我在上几个帖子中提到的那样,我认为ADS1118是测试设置的好工具,我所介绍的方法应该能够获得有效数据。

    我很快就会关闭此帖子,但是如果您无法使系统正常工作,请重新发布,我们可以讨论解决方案。 如果POST窗口关闭,请随时启动另一个线程。


    吴若瑟