找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 302|回复: 4
打印 上一主题 下一主题
收起左侧

关于AD1255读数大小与输入成反比的问题

[复制链接]
跳转到指定楼层
楼主
ID:1108750 发表于 2024-7-23 22:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大佬,我用ADS1255读数,结果读数结果与输入电压的大小成反比,线性关系是满足的,检查了高位和低位读取顺序没有问题,不知道会是什么原因呢?参考电压2.5V,输入电压0-2.5V,PGA设置为1.
读取函数如下:
signed int ADS1256ReadData(unsigned char channel)  
{
        unsigned int sum=0,sum1,sum2,sum3=0;
        while(ADS1256_DRDY);                                                                //当ADS1256_DRDY为低时才能写寄存器
        ADS1256WREG(ADS1256_MUX,channel);                                        //设置通道
        CS_0();
        SPI_WriteByte(ADS1256_CMD_SYNC);
        SPI_WriteByte(ADS1256_CMD_WAKEUP);                      
        SPI_WriteByte(ADS1256_CMD_RDATA);
        delay_us(1000);
       
        sum1 = (SPI_WriteByte(0xff) << 16);
        sum2 = (SPI_WriteByte(0xff) << 8);
        sum3 = SPI_WriteByte(0xff);
        sum = sum1+sum2+sum3;
        CS_1();
        if (sum>0x7FFFFF)                                                           // if MSB=1,
        {
                sum -= 0x800000;                                                       // do 2's complement
        }
       sum = sum*0.000596;//求电压 单位mv
        return sum;
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:280298 发表于 2024-7-24 07:06 | 只看该作者
如果是差分信号,成反比也正常,可以试着把电压输入线对调下;
实际应用中,是±都有的,看你怎么处理了
回复

使用道具 举报

板凳
ID:1108750 发表于 2024-7-24 15:01 | 只看该作者
xo37 发表于 2024-7-24 07:06
如果是差分信号,成反比也正常,可以试着把电压输入线对调下;
实际应用中,是±都有的,看你怎么处理了

只用了一个输入口呀,不是差分信号
回复

使用道具 举报

地板
ID:878236 发表于 2024-7-31 09:53 | 只看该作者
你好,我看了一下,后面的判断正负赋值写错了,你写了
  1. sum -= 0x800000;                                                       // do 2's complement
复制代码

根据datasheet中的23页内容,正确应该是
  1. if (sum>0x7FFFFF)           // if MSB=1,
  2.         {
  3.                 sum -= 0x1000000;       // do 2's complement
  4.         }
复制代码

同样的,根据datasheet中的21页部分,里面有说到读取数据的标准流程,你前面的while(ADS1256_DRDY);只有一次,但是后面加了一个1ms的延时,你应该在读数据前再次等待while(ADS1256_DRDY);,再去执行ADS1256_CMD_RDATA读数据,否则你读的数据已经是不稳定的了,你应该按照相应的操作去写,这样子才可以发挥ADS1255的性能。
回复

使用道具 举报

5#
ID:1108750 发表于 2024-7-31 17:20 | 只看该作者
ag26259 发表于 2024-7-31 09:53
你好,我看了一下,后面的判断正负赋值写错了,你写了

根据datasheet中的23页内容,正确应该是

好的,十分感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表