Testing the temperature tolerance

A project log for avr-rid - easy resistor identification

Identify plug-in modules or user settings with a single resistor.

nqtronixnqtronix 02/27/2021 at 16:010 Comments
Finally I got around to "verify" the stated operational temperature range. "Verify" in quote marks because my setup the bare minimum possible:

A small test PCB (from a yet unreleased project) is the DUT and contains an ATTINY13A, the reference resistor, a test resistor (screw mounted) and a a temperature sensor. Well, not a proper sensor, but  a 3904 SMD transitor whose BE forward voltage changes at about -2.1mV/°C . Both the base and the collector are soldered to GND to improve heat transfer into the transistor. The voltage is measured with a multimeter. The calculated id value is send to the uart TX pin, received by a uart-usb adapter and displayed on terminal on my phone.

The test procedure is simple:
  1. Initialize the code at room temperature (in my lab 15°C = 0.64V)
  2. Connect a resistor to test
  3. Heat up the board with a hot air rework tool until the reported value is incorrect

I've measured three 1% resistors, all of them are edge cases with the worst expected performance:

Although this is not a precise test by any means, I'm very happy that the results exceeded my expectations. I'm confident that the code will work on most AVRs reasonably reliable until 70°C, maybe 85°C. For critical applications where an incorrect detection could lead to permanent damage I'd still recommend to only use the even values and interpret all odd ones as an error.