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.

[参考译文] ADS1247:使用 ADS1247进行单端测量

Guru**** 2502205 points
Other Parts Discussed in Thread: ADS1247

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/987544/ads1247-single-ended-measurement-with-ads1247

器件型号:ADS1247

你(们)好。

我尝试使用 ADS1247进行单端测量、但无论我做什么 、它都会返回相同的值。

下面是我的原理图:

我已按如下方式设置 ADS1247上的寄存器:

  • PGA=1
  • 数据输出速率为5SPS  

我用于从中读取数据的过程(伪代码中)如下所示:

(在 该代码运行之前很久、START 被拉为高电平、并且从不变为低电平)

  • 将#CS 拉为低电平(启用 SPI)
  • 发送命令 RDATA (0x12)
  • 将#CS 拉为高电平
  • 等待#DRDY 变为低电平
  • 将#CS 拉至低电平
  • 发送命令 NOP (0xFF)、在  可变0中记录返回的字节
  • 发送命令 NOP (0xFF)、在 可变1中记录返回的字节
  • 发送命令 NOP (0xFF)记录变量2中返回的字节
  • 将#CS 拉为高电平

当我查看返回的数据时、这三个值始终分别为0x80、0x00和0x00。  原理图上 VIN 处的电压输入波动在70-100mV 左右。

我知道 SPI 通信工作正常、因为我可以读回我写入的寄存器、它们匹配。  我已经尝试使用自偏移校准、对 AIN1施加1/2 Vs 偏置并打开内部基准、但似乎没有什么影响。

 我是积极的、我做了一些愚蠢的事情。  您能给我指正确的方向吗?

非常感谢、

福斯

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

    您好、Foz、

    您能否提供为 ADC 提供的完整寄存器设置?

    此外、为什么在 DRDY 变为低电平之前发出 RDATA 命令? 我本希望您先发出 RDATA 命令、然后在 DRDY 变为低电平后发出24个 SCLK。

    布莱恩

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

    您好、Bryan、

    感谢您的回答。

     ADC 的完整设置(发生在我在原始帖子中详述的循环之前)为:

    • 通电
    • 等待20毫秒、为 PSU 电容器提供充电时间
    • 将#CS 拉至低电平
    • 发送复位(0x06)
    • 等待1 毫秒
    • 发送 SDATAC (0x16)
    • *将 寄存器3写入 GAIN=1、采样率=5sps (命令0x43、0x00、0x00)
    • 发送 SYNC 命令(0x04、0x04)
    • 等待 200毫秒(为 ADC 提供稳定时间-我确定没有必要)
    • 将#CS 拉为高电平

    我已经尝试设置其他几个寄存器、但现在、所有这些都在发生。  每当我写入寄存器时、我一次只写入一个寄存器、以确保我不会覆盖任何重要的内容。  

    至于为什么我在 DRDY 变低之前发布 RDATA、这只是因为我是一个哑铃$$、 显然无法正确读取指令。  我现在已更改(DRDY 变为低电平、发送 RDATA、发送24个 SCLK) 、返回的值保持在 0x80、0x00和0x00。

    我的 ADC 应用正在测量峰值检测器电路的输出、充电需要几毫秒(请参阅下图、我正在测量蓝色迹线)。  我需要确保在非常具体的时间进行测量。  您认为我应该在希望开始测量时发出 SYNC 命令、然后在 DRDY 变为低电平时发出 RDATA 吗?  

    感谢您的帮助和时间、

    福斯

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

    您好、Foz、

    您是否启用了内部基准? 我在您的初始化例程中没有看到这一点、但由于您没有连接外部基准、因此您必须使用内部基准。

    您可以探测 REFOUT 引脚以确保内部 VREF 已打开。 如果不是、那么您会遇到一些数字通信问题。

    如果您可以打开 VREF、那么我会在 PGA = 1的情况下向 ADC 输入施加1V 信号、查看其转换是否正确。 如果没有、请以十六进制向我发送 ADC 代码。 还要确保信号源以 PCB 相同的接地端(AGND)为基准。

    SYNC 命令以及 START 引脚可用于控制转换周期何时开始。 SYNC 命令时序如图79所示、而 START 引脚时序如图70所示。 请注意、ADS1247在整个转换时间内采集多个样本、因此您不是在拍摄单个时间点的快照、而是在更长的时间内获取平均值。 我只是想确保这一点很清楚。

    布莱恩

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

    您好、Bryan、

    对反应缓慢表示歉意。  结果我遇到了另一个问题-为 ADC 供电的正电压稳压器发生了故障。  现已修复。  我只是意识到它已经损坏、因为我将 VREFOUT 限定在范围内、 并且看到它只输出了大约500mV 的电压。

    非常感谢、

    福斯