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.

LM73 single abnormal read

Other Parts Discussed in Thread: LM73

Hello,

I have an application that is using 6 LM73 temp sensors on the same I2C bus. The sensors are performing temperature conversions continuously in full power mode, and my MCU is reading the temperature register of each sensor every ~1ms. I notice that every so often one of the sensors reads a bogus value. This can happen to any of the sensors and is not localized to a single sensor. The temperature is normally around 35C and the bogus value is always around -20C. When this happens, it appears that the LM73 just had a single bad temperature conversion because for the entire ~80ms period before the next conversion is complete, I read the same -20C value for the temperature.

Vdd looks good on a scope. We are powering with 3.3V, with 100nF bypass cap and measuring ~50mV peak to peak noise. The power-on ramp also looks good ramping from 0 to 3.3V in about 1ms.

Any help explaining why this might be happening would be appreciated.

Thanks,

-Alec

  • Hi Alec,

    Let me look into this, and get back to you.

    Aaron
  • I have a little more information about this problem. I changed our MCU firmware to only read the temperature every 112ms (the max conversion time for the resolution we are using). I ran this over the last 4 days, and got two abnormal reads (-20C instead of expected 35C). With the old firmware that reads temperature every 1ms, we get an abnormal read at >1 per hour. So, this significantly reduces the rate of abnormal reads, but does not eliminate it.

    With this information, my theory is that there is a very small time window when reading the temperature over I2C can corrupt the temperature register on the LM73 (perhaps when a new conversion has just completed and that data is being copied into the temperature register). I don't see any warning or hint of this phenomenon in the datasheet though.
  • Hi Alec,

    I apologize for taking so long in responding to your thread. Last week, it was long weekend holiday here, and I was out of town with no internet or email access.

    We believe that it is highly likely that noise in your system is causing these bad readings, since they happen randomly and increase when you increaseed the reading rate of the data. To resolve this, you might want to filter out the bad data, since it’s occurring very infrequently. Since the LM73 communications protocol does not include data verification such as parity or CRC, this would be good practice as noise can cause a bad reading at any time.

    Hope this helps.

    Aaron
  • I don't think it can be noise on the I2C lines. As I explained in the initial post, we are reading the temperature register over I2C every ~1ms, and the temperature conversion is every ~80ms. When we have an abnormal read, the I2C bus reads back the same exact abnormal value on every I2C transaction for the next 80ms (>80 separate I2C transactions). This suggests that the LM73 either had a bad conversion or the temperature register in the LM73 was corrupted.

    Also, besides that pretty convincing evidence I have also tried slowing down the I2C bus speed from 400kHz to 100kHz with no change in abnormal reads. I also looked at the I2C bus on a scope and it looked normal.