TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS1198读取数据值不正确

用stm32作为主控去读ADS1198的通道数据值,刚开始去读写进寄存器的数据值,就发现读出来的数据值不对,用逻辑分析去看波形,可以看到芯片返回了写进去的数据值,但是在软件上接收到的数据值就不对,时钟极性和时钟相位都没有问题,而且在读数据的时候,发现芯片严重发烫,请帮忙解答一下

user151383853:

看到芯片返回了写进去的数据值,但是在软件上接收到的数据值就不对,时钟极性和时钟相位都没有问题? 怎么判断出来的,我值得再检查检查.
读数据的时候,发现芯片严重发烫,就算信号短路, 读数据的时间也很短.应该不会太导致发热.可能需要看别的方向

Li Chao Li:

回复 user151383853:

1,用逻辑分析仪可以看到写进去的和读出来的数据值一样

2,只要操作芯片就会发烫

Li Chao Li:

回复 Li Chao Li:

xyz549040622:

回复 Li Chao Li:

1.用逻辑分析仪可以看到写进去的和读出来的数据值一样,起码说明你读写的命令没错,数据解析出错了,应该是程序问题。
2.操作芯片发烫,找电源和PCB的问题,不应该发烫的。

Amy Luo:

您好,

建议您先解决芯片发烫的硬件问题,检查下接线是否错误、各部分供电是否符合芯片要求。

Li Chao Li:

回复 Amy Luo:

目前采用的是内部时钟,外置的3V电压,麻烦给看看硬件哪里的问题吗?目前并没有找到哪里出来问题,芯片正常供电不会发烫,但是只要操作芯片就开始发烫了,目前我是这样初始化的

HAL_GPIO_WritePin(CLKSEL_1198_GPIO_Port, CLKSEL_1198_Pin, GPIO_PIN_SET); // Use Internal Clock

HAL_Delay(1);

HAL_GPIO_WritePin(PWDN_1198_GPIO_Port, PWDN_1198_Pin, GPIO_PIN_SET);  //active Power on = 1

HAL_Delay(1);

HAL_GPIO_WritePin(RESET_1198_GPIO_Port, RESET_1198_Pin, GPIO_PIN_RESET); //Reset = 0

HAL_Delay(10);

HAL_GPIO_WritePin(RESET_1198_GPIO_Port, RESET_1198_Pin, GPIO_PIN_SET); //Reset = 1

HAL_Delay(1000);

ads1198_sendcmd(SDATAC_1198);  //stop command

HAL_Delay(1);

ads1198_write_registger(CONFIG1_1198,0x45); //250sps

HAL_Delay(1);

ads1198_write_registger(CONFIG2_1198,0x34);

HAL_Delay(1);

ads1198_write_registger(LOFF_1198,0x33); // (7.5%/92.5%)+Pull-up/pull-down mode+DC lead-off detection turned on

HAL_Delay(1);

ads1198_write_registger(CONFIG3_1198,0x4e); //external Vref

HAL_Delay(1); 

ads1198_write_registger(CH1SET_1198,0x10);  //gain = 1

…配置其他通道

HAL_Delay(1);

//start conversion

HAL_GPIO_WritePin(START_1198_GPIO_Port, START_1198_Pin, GPIO_PIN_SET); //start = 1

HAL_Delay(1);

ads1198_sendcmd(RDATAC_1198);  //read data continuely

HAL_Delay(1);

///读通道数据值。。。

Li Chao Li:

回复 Li Chao Li:

已解决,谢谢你们的帮助

Amy Luo:

回复 Li Chao Li:

20脚是AVSS,上图好像是连接到+3.3VP上了,确认下PCB上是不是也是这样连接的。

xyz549040622:

回复 Li Chao Li:

好奇是什么问题导致的呢?

赞(0)
未经允许不得转载:TI中文支持网 » ADS1198读取数据值不正确
分享到: 更多 (0)