TI论坛
直播中

王桂兰

7年用户 1192经验值
私信 关注
[问答]

ADS1255在DRDY为低的时候,读到的数值始终为0,为什么?


  • 电路

    单片机STM32F373
    通信接口:SPI3,速率2Mbps
    初始化代码:

    读取AD值代码:

    读取结果,发回的AD值始终为0
    测试二:读取地址为00H-0AH的寄存器值
    代码:

    返回值:
    00H-0AH: 32 01 00 03 E0 00 30 75 00 00 00
    最后三位为:FSC,值为0,根据公式:

    这可能是导致读取AD值始终为0的原因。

    但是,什么原因导致校准后的FSC0

回帖(4)

李宏

2024-11-29 15:14:38
如果您不执行校准操作,AD转换正常吗
举报

李红

2024-11-29 15:14:47
 基准电压您设置的是多少?AIN0和AIN1管脚,您输入的信号幅值范围分别是什么
如果输入信号满足AD的要求范围,您可以附上您读取转换结果的时序图吗
举报

李秀芳

2024-11-29 15:14:57
   1.不连接
您这里的不连接是指悬空吗?不建议悬空,输入管脚悬空状态下输入信号是未知的,建议将输入管脚连接至固定有效电平来测试读AD转换结果
2.将S-接GND,S+接可变电阻的可变端,电压从0~5V变化
Buffer Enabled 或者说Buffer on的状态下,模拟输入管脚的电压输入范围是AGND ~ AVDD-2.0V,即0 ~ 3V,因此3 V至5V的输入电压超出了信号范围。
如上建议AIN0和AIN1管脚输入固定的电平,读取AD转换结果,您是使用的RDATA还是RDATAC?请附上您读取转换结果的时序图,看时序是否存在问题
举报

人走了

2024-11-30 16:19:42
ADS1255是一款24位模数转换器(ADC),具有多种功能和配置选项。根据您的描述,您在使用STM32F373单片机通过SPI3接口与ADS1255通信时,遇到了DRDY为低时读取的AD值始终为0的问题。以下是一些可能的原因和解决方案:

1. 硬件连接问题:请检查您的硬件连接是否正确,包括SPI接口的MISO、MOSI、SCK和CS引脚。确保ADS1255的电源和地线连接正确,以及模拟输入通道是否正确连接。

2. SPI通信速率:您提到SPI通信速率为2Mbps,这可能不是ADS1255的最佳速率。请查阅ADS1255的数据手册,了解推荐的SPI通信速率,并相应地调整您的代码。

3. 初始化代码:请确保您的初始化代码正确配置了ADS1255的寄存器。这包括设置正确的采样速率、增益、输入通道等。您可以查阅ADS1255的数据手册,了解如何正确配置这些寄存器。

4. 读取AD值代码:请检查您的读取AD值代码,确保您正确地发送了读取命令,并正确地解析了返回的数据。您可以查阅ADS1255的数据手册,了解如何正确地读取AD值。

5. FSC值为0的原因:FSC(校准因子)为0可能意味着ADS1255没有正确校准。请查阅ADS1255的数据手册,了解如何正确地校准设备。您可能需要手动设置FSC值,或者使用ADS1255提供的校准功能。

6. 软件滤波:如果您的信号中存在噪声,可能导致ADS1255读取到错误的AD值。您可以尝试在软件中实现滤波算法,以减少噪声对AD值的影响。

综上所述,您需要检查硬件连接、SPI通信速率、初始化代码、读取AD值代码以及FSC值的设置。确保这些方面都正确配置后,您应该能够解决读取AD值始终为0的问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分