Hi.
I am using the ADS1148 system to measure temperature through a thermocouple, up to 1200 degrees Celsius. I measure the cold end of the thermocouple through an NTC thermistor. Up to approximately 700 degrees Celsius, the measurement proceeds correctly. However, between 700 and 1000 degrees is a problem with the stability of the measurement. Although an independent meter indicates an increase in the temperature in the furnace, the ADS1148 shows much less. The difference is sometimes 100 degrees Celsius.
I am using a K type thermocouple. The problem occurs when the thermocouple voltage is above 30 mV. The power system is an AC / DC converter on PCB. While the system is running, there is no computer connected to it.
This is my configuration function for ADS1148:
void ADS1148_Init(void) { uint8_t tmp = 0; eADS_State = ADS_INIT; /*Prepared values for initializing the ADS1148 system*/ uint8_t ADS_SetMux0[3] = {0x40, 0x00, 0x01}; uint8_t ADS_SetVBias[3] = {0x41, 0x00, 0x00}; uint8_t ADS_SetMux1[3] = {0x42, 0x00, 0x30}; uint8_t ADS_SetSYS0[3] = {0x43, 0x00, 0x41};//0x42}; uint8_t ADS_SetIDAC0[3] = {0x4A, 0x00, 0x06}; uint8_t ADS_SetIDAC1[3] = {0x4B, 0x00, 0x89}; uint8_t ADS_SetGPIOCFG[3] = {0x4C, 0x00, 0x00}; uint8_t ADS_SetGPIODIR[3] = {0x4D, 0x00, 0x00}; uint8_t ADS_SetGPIODAT[3] = {0x4E, 0x00, 0x00}; ADS1148_Close(); HAL_Delay(10); ADS_CS_High(); ADS_RESET_High(); ADS_START_High(); HAL_Delay(16); tmp = SDATAC; ADS_CS_Low(); /* Transmission of parameters by SPI*/ HAL_SPI_Transmit(&hspi1, &tmp, 1, 1); HAL_Delay(SPS5DELAY); HAL_SPI_Transmit(&hspi1, &ADS_SetSYS0[0], 3, 1); HAL_Delay(SPS20DELAY); HAL_SPI_Transmit(&hspi1, &ADS_SetMux0[0], 3, 1); HAL_SPI_Transmit(&hspi1, &ADS_SetMux1[0], 3, 1); HAL_SPI_Transmit(&hspi1, &ADS_SetVBias[0], 3, 1); HAL_SPI_Transmit(&hspi1, &ADS_SetIDAC0[0], 3, 1); HAL_SPI_Transmit(&hspi1, &ADS_SetIDAC1[0], 3, 1); HAL_SPI_Transmit(&hspi1, &ADS_SetGPIOCFG[0], 3, 1); HAL_SPI_Transmit(&hspi1, &ADS_SetGPIODIR[0], 3, 1); HAL_SPI_Transmit(&hspi1, &ADS_SetGPIODAT[0], 3, 1); ADS_CS_High(); tmp = SELFOCAL; ADS_CS_Low(); HAL_SPI_Transmit(&hspi1, &tmp, 1,1); HAL_Delay(SPS20CALIBRATIONDELAY); ADS_CS_High(); ADS_START_Low(); }
Temperature graph:
- The green line is a temperature graph as seen by the ADS1148 chip