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.

ADS1263: 配置完寄存器后ADC没有数据输出

Part Number: ADS1263
Other Parts Discussed in Thread: ADS1262

有两个问题请教一下:

1、我用的是ADS1263,但我只想使用ADC1,不用ADC2,只配置ADC1能让ADC正常工作吗?还是说必须得配置ADC1和ADC2才能让该芯片正常工作;

2、按照我的理解只配置ADC1也能让他工作。所以我给ADC1的配置依次写入如下寄存器:我是按照寄存器块操作的,所以依次写入了“0x43,0x03”表示连续写入4个寄存器数据;

     STOP1
     0x43
     0x03
     MODE0
     MODE1
     MODE2
     INPMUX
     0x4F
     0x00
    REFMUX
     START1

如果配置没错的话,当写入START1的时候,就可以在引脚“DOUT/DRDY”上看到下降沿信号,表示数据已经准备就绪。可是实际上“DOUT/DRDY”引脚一直是高电平;

我有两个猜测:1、寄存器 配置错了或者没写进去;2、ADS1263必须ADC1和ADC2同时使用才能正常工作;

所以想请教下问题可能出在哪里
       

  • 有没有人可以帮我确认下,ADS1263可以当ADS1262来用吗

  • 您好,

    寄存器您配置的值是什么?是否配置进去,可以通过写入后再读出来看是否正确来验证,寄存器读写时序在datasheet Figure 9-56和Figure 9-57,如果写入后不能正确读出来,为了确认读写时序是否存在问题,您可以附上您的读写时序示波器波形吗?请将CS、SCLK、DOUT和DIN显示在同一示波器屏幕中

    ADS1263比ADS1262多一路ADC2,ADS1263应该是可以当ADS1262来使用的。

  • 现在情况好些了,DRDY脚有信号出来了。

    1、我没有去读配置寄存器的值,我通过修改数据输出速率的寄存器,分别设置速率20Hz和100Hz,DRDY脚出现脉冲的频率是跟速率一致的,所以可以简单的判断寄存器已经被配置了。我再仔细读一次寄存器值确认下。

    2、第二个问题比较奇怪。DOUT脚输出的波形幅值不是“0-3.3V”,而是“0.8V~3.3V”,很奇怪,DOUT输出就像是被抬高了一样。这个现象还没解决,没想明白。

  • DOUT您是怎样连接到主控端的?如果DOUT输出电流比较大的话,DOUT输出低电平幅值就会高

    关于启动转换,您是使用的start1命令启动的吗?如果是命令启动,需要将START pin置低电平

    您是使用的连续转换模式,还是Pulse转换模式?如果是Pulse转换模式,就采集一个样本数据,需要STOP1命令和从新启动转换;

  • 我这里又有了新的进展:

    1、我之前的电路接法是:pin14“DRDY”脚不用,悬空,pin9“START”不用,接地。配置一直都是连续转换模式。一开始的想法是利用pin13“DOUT/DRDY”脚做监控,直接连接到fpga的脚上,后来也试了“START1”命令,反正都读不出来数据。

    2、现在我改策略了。配置一个寄存器我就读一次该寄存器值。我配置的过程和值举例:

            a、发送STOP1命令;
            b、发送“0x45”      //写地址是0x05的寄存器“Mode2”
            c、发送0x00;
            d、发送0x12;       //配置数据
            e、发送0x25;       //读Mode2
             f、发送0x00;
            g、读配置的数据;

    好消息是:程序固化到fpga中,重新上电,可以读取到配置数据“0x12”;

    坏消息是:如果不掉电,在线配置,比如更改配置数据为“0x33”,下载程序,此时读到的配置数据还是“0x12”,好像配置过程没有起作用。

                     如果将程序固化进FPGA里,重新上电,就可以读到正确的“0x33”

    这个现象让我很不解。

  • 抱歉,我对FPGA不了解,我对这个现象确认下是不是正常的

  • 抱歉,我也不知道为什么是这样,建议您咨询所使用FPGA的技术支持

  • 每次更改寄存器后,写入“RESET”命令好像就可以在线更新寄存器数据了。我现在已经可以正确读出数据了。我想确认下两个问题:

    1、外部参考电压的选择是不是只需要配置寄存器“REFMUX”就可以了;

    2、1bit代表的电压值计算是不是这样:2*VREF / 2^32

  • 您的意思是说reset命令之后再下载程序,就可以正确读取数据了是吗?

    1、是的,只需要通过REFMUX寄存器配置外部参考电压源

    2、是的,但是增益不是1的话,为1LSB=2*VREF / (Gain · 2^N ),N是分辨率,N = 32 (ADC1), N = 24 (ADC2)

  • 先写“RESET”命令,再写其他寄存器,就可以直接更新寄存器数据。

    我现在的问题是,读到的adc code总是比实际的差分电压差小2倍

  • 好的,感谢您的反馈!

    您是使用的哪种读取方式?Read Data Direct 还是Read Data by Command?datasheet 中Figure 9-43和Figure 9-44有对应的读取时序图,建议您用示波器测试SPI通信波形,看是器件输出的问题,还是程序读取的问题?

  • 我的读时许少了一个时钟周期,现在一切都正常了。