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.

ADS8686S: 读取值为实际值一半,是什么原因导致?

Part Number: ADS8686S

你好,

ADS8686S使用SPI串行通讯,软件模式;SDOA单线数据,终端配置±5V量程,刚开开始运行均正常,校准系数都对,突然code值变为一半;改变输入值也成比例变化,录波波形也正常,幅值也是一半,DFT值也是按设计量程也是一半;读寄存器回复也是对应软件下发对应量程地址。

当把寄存器改为±2.5V时、code值和设计的±5V量程一致,显示值都是对的;当配置成±10V时,仿真看此时量程像是±20V量程对应。

请帮忙看下可能原因,谢谢!

  • 您好,

    是在什么都不变的情况下,输出code值变为一半吗?感觉像是您漏读了转换结果的MSB位数据,请注意CS下降沿输出转换结果的MSB位,随后的SCLK上升沿输出后续转换结果位。

    建议您用示波器或者逻辑分析仪捕获下下面FIgure 7-30波形图,看下是ADC本来输出值就减半,还是主控端读取时漏读最高位造成的输出值减半?

  • 你好,

    现在的现象是我们通过软件配置的量程和AD转换出来的数据是不对的,比如软件配置的通道量程是5V,配置5V再读出来寄存器也是5V,但是AD转换的数据是按照10V量程转换的。我们也试了设置成10V,实际就是按照20V量程转换的。

    按我的理解,丢失MSB也不会正好是一半,

    如果真是MSB丢失,MSB是符号位,如何会出现转换值正好是一半的?这点如何理解呢?

  • 如果真是MSB丢失,MSB是符号位,如何会出现转换值正好是一半的?

    嗯嗯您说的对,ADS8686S 输出code格式是二进制补码形式。很抱歉 我想当然为二进制格式了。

    现在我怀疑您是不是输出code转输出电压过程有误。您可以举一个例子吗?比如说输入模拟电压是多少?输出code是多少?范围配置是多少?怎样计算的输出电压?

    正常情况下,如果范围配置5V量程,那么 LSB=[5V -(-5V)]/2^16,输出电压就是输出code乘以LSB

    如果您是这样计算的,那么请确认下输入电压是否为期望的输入电压,建议实际测量一下。

  • 突然code值变为一半

    您说突然减半,那重新上电后是否恢复呢?有没有可能芯片已经损坏?用同样的程序测试另一块电路板,输出正常吗?

  • 软件复位不能恢复,重新上电可以恢复正常,不是一直出现,有一定概率出现,随机的。目前仍在查找原因。硬件模式下是OK的。

  • 您测试几块板子是这种情况,有没有可能这块板子管脚存在虚焊造成的?

    在软件模式下有些管脚不使用是否做了正确的连接?

    出现这种现象后,您读取寄存器配置是否与之前相比有改变?

  • 你好,

    上面的问题我们都测试确认过,比如当我设置寄存器的范围为±5V时,当我进AD的电压为5V左右时,按理论采集值就应该是32000左右,但是实际采集值是16000,寄存器配置读出来没有问题,就是我设置的±5V。

    并且我们还试了增加采样电压值,当我加的电压超过10V,也能采样,加13V按我们理解应该溢出,但是实际采样值就是按照设置量程的两倍±10来转换的,采样值21000多、没有溢出。

  • 也就是说不止一块板子是这种情况?如果是这样的话,硬件方面的原因小,很可能是软件方面的问题。

    您输入负的电压测量code是多少?也是减半吗?因为输入负的电压,输出code最高位是1,这样容易检查输出code的高位部分是否丢失

  • 将输出 code转换为电压的各种范围下的LSB datasheet已给出,如下截图,自己不要计算错了:

  • 您好,计算没有问题。

    当设置所有通道的量程为5V时(设置完回读输入范围寄寄存器0x04,0x05,0x06,0x07的值均为0xAA),当通过继保仪施加交流电压7V,通过示波器监视输入电压波形如下:

    按照正常来说,输入已经超过量程范围,采样应该溢出,但是实际采样值是按照10V量程转换的,并未溢出,采样原始数据波形如下:

    当采样异常(采样值为理论值一半)时,读取VCC和ALDO通道的值基本一致

    还有什么原因会导致这个问题呢?

  • HW_RNGSEL[1:0]管脚是怎样连接的,请确保在软件模式下为低电平不变化;

    看功能框图AVDD和ALDO是在9:1 MUX处输入的,没有经过PGA,这样看难道是PGA出现问题了?建议您附上原理图,我看下原理图;

    您测试的每块板子都有这个现象吗?对于测试电路板出现这种现象的比例是多少?

  • 您这个寄存器配置的是什么?这个与范围和通带频率有关:

  • HW_RNGSEL[1:0]管脚接到AGND的。不是一直出现这种现象,是随机出现的。

  • 这个现在配置的是15K

  • 当采样异常(采样值为理论值一半)时,读取VCC和ALDO通道的值基本一致

    也就是采用异常时,读取VCC和ALDO 的值都是正确的?如果是这样的话,感觉像是前端PGA+LPF+ADC driver这段信号链中出问题了,不知道是不是物料的问题,您可以确认下物料来源吗?所使用物料最终购货渠道来源是TI吗?

    或者您可以在TI 官网订购几片芯片以验证吗?即在 ADS8686S 产品首页右上角点击“立即订购”网页会自动滑动到购买处,如下截图所示:

    ADS8686S 产品首页链接:https://www.ti.com.cn/product/cn/ADS8686S