用stm32作为主控去读ADS1198的通道数据值,刚开始去读写进寄存器的数据值,就发现读出来的数据值不对,用逻辑分析去看波形,可以看到芯片返回了写进去的数据值,但是在软件上接收到的数据值就不对,时钟极性和时钟相位都没有问题,而且在读数据的时候,发现芯片严重发烫,请帮忙解答一下
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.
用stm32作为主控去读ADS1198的通道数据值,刚开始去读写进寄存器的数据值,就发现读出来的数据值不对,用逻辑分析去看波形,可以看到芯片返回了写进去的数据值,但是在软件上接收到的数据值就不对,时钟极性和时钟相位都没有问题,而且在读数据的时候,发现芯片严重发烫,请帮忙解答一下
1,用逻辑分析仪可以看到写进去的和读出来的数据值一样
2,只要操作芯片就会发烫
目前采用的是内部时钟,外置的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);
///读通道数据值。。。