微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > ADS1256可以读寄存器的数据,但是读取不了电压的数据

ADS1256可以读寄存器的数据,但是读取不了电压的数据

时间:10-02 整理:3721RD 点击:

我用普通GPIO的方式模拟SPI总线的方式去模拟,向寄存器写入了数据,然后再将他读取出来,数据是正确的,但是当我发送完sync、wakeup和radata命令后,读取电压的数据一直为0,这是怎么回事?

unsigned int value = LOW;
while(1)
{
gpio_get_value(DRDY, &value);
if (!value)
break;
}
ADS1256SPI(ADS1256_CMD_SYNC); //ADS1256转换指令
ADS1256SPI(ADS1256_CMD_WAKEUP); //ADS1256唤醒指令

while(1)
{
gpio_get_value(DRDY, &value);
if (!value)
break;
}
ADS1256SPI(ADS1256_CMD_RDATA); //ADS1256转换指令
gpio_set_value(SCLK, LOW);
DelayMs(DELAY_1US*100);

先看看有没有启动转换呢?

第一条为SCLK,第二条为发送rdata,第三条为DRDY,怎么看有没有转换?

时序是对的,数据线DOUT上一直是低电平吗

对,DOUT一直都是低电平,这怎么回事啊?THX

寄存器配置是怎样的?单次还是连续转换?电源电压、参考电压都正常吗

readDrdyLowLevel();
ADS1256SPI(ADS1256_CMD_SELFCAL);
readDrdyHighLevel();
readDrdyLowLevel();

ADS1256WREG(ADS1256_STATUS,0xf7);
ADS1256WREG(ADS1256_MUX,0x18);
ADS1256WREG(ADS1256_ADCON,0x00);
ADS1256WREG(ADS1256_DRATE,ADS1256_DRATE_50SPS);

readDrdyLowLevel();
ADS1256SPI(ADS1256_CMD_SELFCAL);
readDrdyHighLevel();
readDrdyLowLevel();

单次采集,电压电压、参考电压都正常,刚才不知道为什么可以读到正常的电压数据,但是后来重新运行程序就不行了。

你好,这个问题怎么出来啊?

对某个寄存器写操作后,再读取,看是否设置成功?

设置成功,但是电压数据还是读不出来!还是原来那样

你好,我做ADS1256的模拟数据采集的时候,遇到些问题,可否加qq,或者微信聊一下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top