This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于ads1222使用的问题

Other Parts Discussed in Thread: ADS1222

您好,我在使用贵司的ads1222芯片时,通过stm32f103rct6给ads1222的clk脚发2mhz的pwm,通过拉高拉低管脚的方式给sclk管脚发脉冲,我参照数据手册上的说明来编写程序,DRDY/DOUT 出来的数据是否是补码的形式,我是通过手册图25来计算高低电平持续时间的,高低电平都是172us,但是出来的数据我不知道正不正确,我把我的代码贴在下面,还有,我接的是传感器的正负信号,范围是0-10mv,电桥输出,s型压力传感器,麻烦帮忙看一下有什么错误之处。

void ADS_Res24Bit(void)
{
extern u32 resdata;
extern unsigned char resch[3];
extern int cont_i;


while(DR_DOUT);//等待drdy/dout管脚拉低

for(cont_i=0;cont_i<24;cont_i++)//
{

SCLK=1;
delay_us(172);//delay_us(723);
SCLK=0;
delay_us(172);//elay_us(723);//发一个脉冲


if(DR_DOUT==1)//判断drdy/dout管脚电平
{
resdata|=(0x00800000>>cont_i);//电平的值给resdata

}
else if(DR_DOUT==0)
{
resdata&=(0xFF7FFFFF>>cont_i);
}

}

printf("%u\r\n",resdata);//发完24个脉冲后串口输出数据
resdata&=0x00000000;
while(DR_DOUT);//等待管脚拉低,第二次数据转换


}

输出的数据如下

256

32

8388607

32

0

285868031

8

50303

256

17

8

12415

480

32

391

16

16

0

272

0

102399

32

0

32

32

3

480

7

24

36863

136

24

193

40959

64

66559

0

15487

64

0

225

25151

64

267263

256

7

384

136

224

65535

136

7

120

16

384

3

32

0

195

4159

96

58367

120

7

256

7

448

32

392

3

448

16

16777215

128

17

224

32

99

0

17891327

8

6271

128

7

32

275455

96

0

411697151

64

0

16

0

0

280

7711

128

8

1991

8

4718591

8

1151

264

7

384

7

64

50175

64

0

264

32319

264

24

48

0

8

67

0

15

504

81919

504

3

224

33

56

0

63

384

  • 您好,

    是的,ads1222输出的24bit数据是补码形式。ads1222输出代码与输入信号的关系如Table2所示。

    单片机输出信号波形是否为期望波形,可以用示波器捕获进行查看。

  • 您好,我示波器测量过,输出有波形,但是我得出的数据并不稳定,变化很大,从几百到几万都有,不知这个是什么原因,是程序不对还是其它别的原因,我是在每个sclk脉冲发完后才检测DRDY/DOUT管脚,这样有问题吗?
  • 您好,
    DRDY/DOUT管脚有两个用途。首先,它通过变低来指示新数据准备就绪。然后,在SCLK的第一个上升沿上,DRDY/DOUT管脚改变功能并开始输出转换数据,最有效位(msb)优先。在随后的每个SCLK上升沿上,数据被移出。在所有24位都被输出之后,可以通过sclk将此管脚强制拉高。然后它将一直保持高位,直到新转换数据准备就绪。

    输出数据不稳定,可能存在以下一个或多个问题。
    首先,在模拟输入端混入了其他干扰信号,导致ADC采集到了干扰信号。
    其次,是参考电压。如果参考电压(电源)有噪声,结果也会有噪声。建议电源和参考电压做好滤波处理。
    再就是PCB布局。将模拟信号和数字信号分开布局布线,避免相互干扰。