TI论坛
直播中

杨雪

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

ADS1230刚开始能够得到正确的结果,但是一段时间后,AD输出就不对了是怎么回事?


  •   刚开始能够得到正确的结果,但是一段时间后,AD输出就不对了。
    第一天的数据
    00 00 20
    00 10 35
    类似的数据,这些数据是对的,接传感器,返回数据可以对应重量
    然后第二天
    00 1E BA
    00 04 7C
    00 00 6A
    然后第三天
    0F FB 1A
    0F FB 19
    0F FB 1C
    这是什么情况,求指教?
    unsigned long ReadAD(void)
    {
    unsigned char i=0;
    unsigned long ADdatatemp=0; //设置AD转换的初始值为0
    while(ADC_RDY1); //RDY = 0??等待AD转换完成
    for(i = 0;i < 20;i ++) //获取20位数据
    {
    ADdatatemp = ADdatatemp << 1;
    ADC_SCLK1 = 1; //CLK = 1
    if(ADC_DOUT1 == 1)
    ADdatatemp = ADdatatemp | 0x000001;
    else
    ADdatatemp = ADdatatemp & 0xFFFFFE;
    ADC_SCLK1 = 0; //CLK = 0
    }
    for(i = 0;i < 4;i ++) //为下一次转换准备
    {
    ADC_SCLK1 = 1;
    ADC_SCLK1 = 0; //CLK = 0
    }
    return(ADdatatemp);
    }

回帖(2)

田爽

2024-12-30 13:57:29
  差别很大啊
是不是中途出现休眠后断电了, 重新测量时 ADC 再次上电后没有经过校准?
举报

美信电子

2024-12-30 17:00:47
从您提供的信息来看,ADS1230在开始时能够正确地获取AD转换结果,但随着时间的推移,输出结果变得不正确。这可能是由多种原因引起的,以下是一些可能的原因和解决方案:

1. **电源不稳定**:如果电源不稳定,可能会导致ADS1230工作不正常。请检查电源是否稳定,并确保ADS1230的供电电压在规定的范围内。

2. **连接问题**:检查ADS1230与传感器之间的连接是否牢固,是否有松动或损坏的连接线。不良的连接可能导致数据传输错误。

3. **传感器问题**:传感器本身可能存在问题,导致输出数据不稳定。尝试更换传感器或检查传感器是否需要校准。

4. **ADS1230芯片问题**:ADS1230芯片可能存在故障。如果可能,尝试更换一个新的ADS1230芯片。

5. **代码问题**:您的代码中可能存在逻辑错误或bug。请仔细检查代码,特别是与AD转换和数据处理相关的部分。您提供的代码片段不完整,无法直接分析代码问题,但您可以检查以下几点:
   - 确保`ADC_RDY1`和`ADC_SCLK1`等控制信号正确设置。
   - 检查数据位是否正确地从传感器读取并存储到`ADdatatemp`变量中。
   - 确保在读取数据后正确地处理和转换数据。

6. **环境因素**:环境温度、湿度等变化可能影响传感器的性能。确保传感器和ADS1230的工作环境符合要求。

7. **软件滤波**:如果数据受到噪声干扰,可以考虑在软件中实现滤波算法,如移动平均滤波或卡尔曼滤波,以提高数据的稳定性。

8. **硬件滤波**:在硬件层面,可以考虑在传感器和ADS1230之间增加低通滤波器,以减少高频噪声的影响。

请根据上述建议逐一排查问题,并尝试相应的解决方案。如果问题仍然存在,可能需要更详细的代码分析和硬件检查。
举报

更多回帖

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