Hi,
I'm having trouble reading a K-type Thermocouple. I have implemented a circuit according to the Thermocouple example 10.2.2 in the datasheet for the ADS1248 www.ti.com/.../ads1248.pdf (without Cold Junction comp). My schematic is attached below. I'm using power from my microcontroller as the 3V3 bias source.
When I measure the Thermocouple in (warm) ambient air, I get 4.6 Ohm. If I blast it with 200C (392F) air from my reflow station, I measure 36.3 Ohm. If I measure across TestPoint 1 & 2, I get an output of 2.1mV in ambient air, and 7.6mV with the reflow pointed at it. Electrically, this seems sound.
In terms of code, I'm testing this on a Particle Photon (STM32F205 based) microcontroller using a library that I have used with this ADC before. This is what I'm setting up:
// AIN1 as positive, AIN0 as negative adc.regWrite( INPMUX_ADDR_MASK, ADS_P_AIN1 + ADS_N_AIN0 ); // Gain to 32 adc.regWrite( PGA_ADDR_MASK, ADS_PGA_ENABLED + ADS_GAIN_32 ); // Datarate to 20 adc.regWrite( DATARATE_ADDR_MASK, ADS_DR_20 ); // Internal reference on and selected adc.regWrite( REF_ADDR_MASK, ADS_REFINT_ON_ALWAYS + ADS_REFSEL_INT );
So I'm using the internal reference to measure AIN0 vs AIN1. I can see the registers being updated and set. When I output the raw data reading from the ADC, I get numbers in the range around "8405608" (+/-200) but they are not affected by applying heat to the Thermocouple.
I feel that I have missed something basic here and I cannot seem to see where my problem is?
Register dump:
Register 0x00 = 0x08 // ID Register 0x01 = 0x00 // STATUS Register 0x02 = 0x10 // INPMUX Register 0x03 = 0x0d // PGA Register 0x04 = 0x04 // DATARATE Register 0x05 = 0x0a // REF Register 0x06 = 0x00 // IDACMAG Register 0x07 = 0xff // IDACMUX Register 0x08 = 0x00 // VBIAS Register 0x09 = 0x01 // SYS Register 0x0a = 0x00 Register 0x0b = 0x00 Register 0x0c = 0x00 Register 0x0d = 0x00 Register 0x0e = 0x00 Register 0x0f = 0x40 Register 0x10 = 0x00 Register 0x11 = 0x00