TI论坛
直播中

梁宏满

8年用户 1057经验值
私信 关注
[问答]

ADS1262采集到的32位数据一直为128 0 0 0,这是怎么回事呀?


  • ADS1262的寄存器配置和读写都没有问题,但是发现采集到的32位数据一直为128 0 0 0,这是怎么回事呀?
    adc_code = ADS1262ReadData(6,1); //AD读取数据
    val = ((long double)adc_code/0x7fffffff);
    val*=2.499;
    printf("CODE: %10d CODE: %10d VOL: %.8Lf rn ",adc_code,adc_code,val);
    下面是AD读取数据的程序
    int32_t ADS1262ReadData(uint8_t NumBytes, uint8_t DataByteStartNum)
    {
    // assert((4 == NumBytes) || (5 == NumBytes) || (6 == NumBytes)); //Aborts program if FALSE
    // assert((0 == DataByteStartNum) || (1 == DataByteStartNum)); //Aborts program if FALSE
    uint8_t ADC_Bytes[6]; //Holds
    int32_t ADC_Data_Only;
    int i;
    DACNCSS(0);
    // while(ADS_DRDY);
    for( i = 0; i < NumBytes; ++i)
    ADC_Bytes = SPI_DAC_SendByte(0);
    ADC_Data_Only = ((int32_t)ADC_Bytes[DataByteStartNum + 0] << 24) | //Data MSB
    ((int32_t)ADC_Bytes[DataByteStartNum + 1] << 16) |
    ((int32_t)ADC_Bytes[DataByteStartNum + 2] << 8) |
    ((int32_t)ADC_Bytes[DataByteStartNum + 3] << 0); //Data LSB
    DACNCSS(1);
    return ADC_Data_Only;
    }

回帖(4)

刘润生

2024-12-4 14:20:28
  1.你是单电源供电还是双电源?参考电压是多少?
2.你应该是溢出了吧
举报

肖锋

2024-12-4 14:20:40
如果读取的是32位数据的话,单电源供电出现128 0 0 0,说明输入检测到的是负电压。还有没看懂你的ADC读取程序,你读的是24位数据还是32位数据呢,说实话,没看懂,ADC_Bytes的数据是哪来的,用的中断吗?提供的资料太少了。
举报

王苑苑

2024-12-4 14:20:53
芯片烧了
举报

刘娟

2024-12-4 17:13:15
从您提供的信息来看,您在使用ADS1262进行数据采集时遇到了问题,采集到的32位数据一直为128 0 0 0。您已经确认了寄存器配置和读写没有问题。在这种情况下,我们可以从以下几个方面进行排查:

1. 硬件连接问题:请检查ADS1262与微控制器之间的连接是否正确,包括SPI接口的连接以及电源和地线。确保所有连接都牢固且无短路。

2. 参考电压问题:请检查ADS1262的参考电压是否设置正确。如果参考电压不正确,可能会导致采集到的数据异常。请参考ADS1262的数据手册,确保参考电压设置正确。

3. 输入信号问题:请检查输入信号是否正常。如果输入信号有问题,可能会导致采集到的数据异常。您可以使用示波器或其他测量工具检查输入信号。

4. 程序问题:请检查您的程序代码,确保没有错误。您提供的代码片段中,`ADS1262ReadData`函数的实现部分被省略了。请确保该函数正确实现了SPI通信和数据读取。此外,您可以尝试使用其他函数或库来读取数据,以排除程序代码问题。

5. ADS1262芯片问题:如果以上步骤都无法解决问题,可能是ADS1262芯片本身存在问题。您可以尝试更换一个ADS1262芯片,看看问题是否解决。

综上所述,您可以从硬件连接、参考电压、输入信号、程序代码和ADS1262芯片等方面进行排查,以找到问题的原因并解决。希望这些建议对您有所帮助。
举报

更多回帖

×
20
完善资料,
赚取积分