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.

ads1282调试过程遇到的问题

Other Parts Discussed in Thread: ADS1282

最近做了ads1282ad采集板,用于地震数据采集,调试过程遇到如下问题,大家看看怎么解决:

1. DRDY在拉高之前有个小脉冲,有影响吗?

2. 我现在用stm32F407的板子来读取ads1282的数据,发现从ads1282的DOUT输出的数据不稳定,相差非常大,请问是哪里设置有问题

3.  初始化:如下

SPI_WriteByte(ADC_SDATAC);
DELAY_FCLK(12);

ADS1282WREG(ADC_ADDR_CFG0,0x52); // ¸ßλÔÚÇ°¡¢Ð£×¼¡¢Ê¹Óûº³å
DELAY_FCLK(12); /* 10 f_CLK cycles required between each byte transaction */

ADS1282WREG(ADC_ADDR_CFG1,0x08); // ·Å´ó±¶Êý1

SPI_WriteByte(ADC_RDATAC);
DELAY_FCLK(12);

读取寄存器基本正确:0 52 08 32 03 0 0 0 0  0  40

请帮我分析分析

1. 

  • 看波形不错

    发现从ads1282的DOUT输出的数据不稳定,相差非常大,请问是哪里设置有问题

    能否先排除一下信号源的问题?

  • 是的,相差非常大,可能是初始化问题,初始化加了reset,也可能是信号源问题,但已经好了,读到的数据如下,感觉还算可以大概有,误差应该可以控制在4bit以内

    FFFF6C 16777068
    FFFF82 16777090
    FFFF58 16777048
    FFFF57 16777047
    FFFF80 16777088
    FFFF75 16777077

    但现在有了新问题,例如我想AIN1和AIN2之间切换,发现不行

    #define channel01 0x00
    #define channel02 0x10

    while(1)

    {

    ADS1282WREG(ADC_ADDR_CFG1, channel01 | 0x08);                // ·Å´ó±¶Êý1

    readdata();

    ADS1282WREG(ADC_ADDR_CFG1, channel02 | 0x08);                // ·Å´ó±¶Êý1

    readdata();

    }

    具体表现为,只要加上ADS1282WREG(ADC_ADDR_CFG1, channel01 | 0x08);       这句,就不产生DRDY信号,请问有遇到么,是什么原因?