最近做了ads1282ad采集板,用于地震数据采集,调试过程遇到如下问题,大家看看怎么解决:
1. DRDY在拉高之前有个小脉冲,有影响吗?
2. 我现在用stm32F407的板子来读取ads1282的数据,发现从ads1282的DOUT输出的数据不稳定,相差非常大,请问是哪里设置有问题
3. 初始化:如下
SPI_WriteByte(ADC_SDATAC);
DELAY_FCLK(12);
ADS1282WREG(ADC_ADDR_CFG0,0x52); // ¸ßλÔÚÇ°¡¢Ð£×¼¡¢Ê¹Óûº³å
DELAY_FCLK(12); /* 10 f_CLK cycles required between each byte transaction */
ADS1282WREG(ADC_ADDR_CFG1,0x08); // ·Å´ó±¶Êý1
SPI_WriteByte(ADC_RDATAC);
DELAY_FCLK(12);
读取寄存器基本正确:0 52 08 32 03 0 0 0 0 0 40
请帮我分析分析
1.
user151383853:
看波形不错
但发现从ads1282的DOUT输出的数据不稳定,相差非常大,请问是哪里设置有问题
能否先排除一下信号源的问题?
kevin.wang:
回复 user151383853:
是的,相差非常大,可能是初始化问题,初始化加了reset,也可能是信号源问题,但已经好了,读到的数据如下,感觉还算可以大概有,误差应该可以控制在4bit以内
FFFF6C 16777068 FFFF82 16777090 FFFF58 16777048 FFFF57 16777047 FFFF80 16777088 FFFF75 16777077
但现在有了新问题,例如我想AIN1和AIN2之间切换,发现不行
#define channel01 0x00#define channel02 0x10
while(1)
{
ADS1282WREG(ADC_ADDR_CFG1, channel01 | 0x08); // ·Å´ó±¶Êý1
readdata();
ADS1282WREG(ADC_ADDR_CFG1, channel02 | 0x08); // ·Å´ó±¶Êý1
readdata();
}
具体表现为,只要加上ADS1282WREG(ADC_ADDR_CFG1, channel01 | 0x08); 这句,就不产生DRDY信号,请问有遇到么,是什么原因?