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.

[参考译文] ADS1261EVM:ADS1261内部热敏电阻读取返回预期值的一半

Guru**** 2393725 points
Other Parts Discussed in Thread: ADS1261EVM, ADS1261

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1003000/ads1261evm-ads1261-internal-thermistor-read-returns-half-of-the-expected-value

器件型号:ADS1261EVM
主题中讨论的其他器件: ADS1261

您好!

我一直在配置 ADS1261EVM、并运行一些我无法理解的结果。  

我使用 FPGA 来控制器件。  

当我为模块加电时、我想通过读取热敏电阻 VDD/4和(AVDD-AVSS)/4来测试我接收到的值、以验证我的控制模块是否正确。

在读取数据时、我接收0xFF、0x12的位流、然后是我的24位数据、然后在命令结束时 DRDY 返回高电平。  

我的问题是、这些情况下的数据恰好是我所期望的数据的一半。 我已将器件设为默认值、然后通过发送以下命令配置内部基准:
0x4610。  

测量 I set 0x51bb、然后发送命令0x0800、然后发送0x0a00、再发送0x1200。 我将手动发送这些命令、因此每个命令之间的时间大约为~5秒。  

是否有我丢失的设置。 我将 DIP 开关设置为5V。  

我附上了我正在接收的数据的图片、顶部数字上的刻度代表时钟的点。  

(我希望图片不是无法看到的)我得到0xFF_1203_18cF


我还有几个问题:
在我的实际设计中、如果 AVDD = 5V、AVSS = GND、并且我的数据是单端的、则进入 AIN0 (例如2.5V)。 我是否应该将 MUXN 设置为 AINCOM (接地参考?)、Vcom? 我是否希望 ADC 报告0x00_0000的代码、因为数据是有符号二进制补码? 目前、当我尝试这种情况时、我会得到大约0x3f_FFFF、这表明我只能从 ADC 获得23位分辨率?

2.我假设在上述情况下我希望绕过 PGA (如果我相对于接地进行测量?)

如果我们测量0-5V 单端信号、建议使用 AVDD (~5.2V、AVSS (GND)的内部基准作为基准  

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

    您好、Tyler、

    您是否尝试读回寄存器以确保它们按您的预期配置? 尤其是 REF 寄存器、因为这会直接影响从器件接收到的 ADC 代码?

    您从 ADC 接收到什么值、您期望得到什么值? 您提供了一个输出代码(0318CFh)、但我不确定它对应的是什么。

    在任何 SPI 事务期间查看 SCLK 信号也会很有帮助、因此更容易理解 ADC 何时实际读取数据。

    对于您的其他问题:

    1. 请参阅 ADS1261数据表(转换数据格式)中的第9.5.3.2节。 ADS1261具有一个从-FS 扩展到+FS 的双极性编码方案、对于这个器件、这个方案是-VREF/增益到+VREF/增益。 如果使用内部 VREF (2.5V)且增益为1、则差分输入信号范围为-2.5V 至+2.5V。 例如、对于0-5V 单端输入、您应将该信号应用于 AIN0、然后使用 REFOUT 引脚将 AIN1偏置为2.5V、以便始终相对于该固定电压测量0-5V 信号(这被视为伪差分输入)。 因此、当 AIN0 = 0V 时、ADC 测量值为0V - 2.5V =-2.5V。 当 AIN0 = 5V 时、ADC 测量值为5V - 2.5V = 2.5V、现在您正在使用 ADC 的整个代码范围。
    2. 是的、如果您使用单极电源测量单端输入、则需要绕过 ADS12PGA 的 PGA
    3. 请参阅#1

    布莱恩

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

    您好、Bryan、

    非常感谢您的快速响应!

    当我通过发送命令0x2600来读取 REF 寄存器时、ADS1261以0x2610进行响应。 我的逻辑分析仪工具无法显示时钟、但 TIP 上的每个节拍都表示 SCLK 的 POedge。   

    因此、我今天早上读取热敏电阻的步骤是(全部手动发送):
    1.打开设备电源
    2.发送命令0x2600 (接收0x2605)
    3.发送命令0x4610  
    4.发送0x2600 (接收0x2610)
    5.发送0x51bb
    6.发送0x3100 (接收0x31bb)
    7.发送0x0800 (开始)
    8.发送0x0a00 (停止)
    9.发送0x1200 (读取)
    10、我收到0xff_1206_3d1f、 这与我预期的完全相同。  

    所以我昨天可能犯了个错误... 抱歉。  

    但是、如果我使用外部5V - 0V、那么读取热敏电阻是否需要使用不同的过程? 当我复位到寄存器6上的默认0x5以将参考值放回时、我读取的是我预期值的一半(0xff_1203_19bf)。  

    非常感谢您的帮助!

    Tyler

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

    您好、Tyler、

    很高兴看到内部温度传感器回读现在工作。

    对于后一个问题、您是否询问如果使用5V VREF 而不是2.5V VREF、测量结果将如何变化? 如果增益= 1且 VREF = 2.5V、则最大正代码8388608 (十进制)对应于2.5V 的输入电压。 因此、1V 信号对应于1/2.5 *最大代码= 3355443 (同样、以十进制表示、不是十六进制表示)。

    如果将基准电压增加到5V、则最大代码仍为8388608 (十进制)。 因此、在这些情况下、1V 信号对应于1/5 *最大代码= 1677721 (同样、以十进制表示、不是十六进制表示)。 换言之、1V 输入信号的输出代码是5V VREF 的十进制值的1/2、而2.5V VREF 的输出代码则是十进制值的一半。 这似乎是您看到的内容。

    使用 ADS1261 Excel 计算器工具(https://www.ti.com/lit/zip/sbac200)、我看到您的第一个输出代码在 VREF = 2.5V 时对应于0.121V 的电压、在 VREF = 5V 时对应于0.121V 的电压。 请参见下图。

    根据 ADS1261数据表中的第9.3.1.3节、该电压对应于23.7°C 的温度或大约室温。

    布莱恩

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

    正确。 该器件的默认值是使用 AVDD 和 AVSS (对于开发板、该值可以是+/- 2.5和5V、0V)。 因此、在我看来、如果您使用 AVDD = 5V 和 AVSS = 0的默认值、您将只能获得23位分辨率。 是这样吗?  

    非常感谢您的澄清!

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

    你(们)好、Tyler

    为什么您只能使用5V VREF 获得23位分辨率?

    布莱恩

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

    您好、Bryan、

    很抱歉、我刚刚通读并意识到我误解了您之前的消息。 这非常完美、因为我不理解 分辨率随参考变化的方式! 感谢您的澄清。  

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

    感谢您澄清 Tyler、很高兴我们能提供帮助。

    由于此特定问题已得到解决、我现在将关闭此主题、但如果您将来需要帮助、请随时开始新主题。

    布莱恩