Electronics > Repair
What might this theromstat MCU be doing ??
(1/1)
MathWizard:
I have a honeywell thermostat, and the displayed temp is only 5C/41F, when it's more like 22C/72F, so the heater stays on.
It has 2 thermistors in parallel, in circuit they measure ~9k at roomtemp. 1 is easy to remove, I should check it. But those therm's are roughly between 2 ports of an ATMEGA169, PE2,4. Nothing from outside the MCU reads weird to a DMM.
All the PE ports can be inputs or outputs, and PE2 can also be the non-inverting pin of a comparator AIN0. PE3 can be the inverting pin of a comparator, AIN1. The 2 20k's and un-measureable cap in circuit, is about 1/3 the physical size of the 5u for whatever reason.
Powered up, every few seconds those ports, repeat a group of 3 things, 4 times. So it should be counting charge and timing stuff I guess. I'm not that familiar with integrator circuits, it doesn't remind me of the slope-integrator in my DMM's.
At 1st I figured there was just some DC current, always passing through the thermistors, so I applied a few hundred mV between the therm's and the 100R, and I've seen 15C and up over 20C get displayed as the temp. So it's not totally broken.
But IDK what's working anyways, so does this make sense to anyone ??
MathWizard:
And here's the datasheet
MathWizard:
Ok so the MCU just charges up the cap, from 3 places, and times each one, until they reach Vcc/2 and the comparator triggers. I think the 1st, is by internally connecting to something about Vcc=3.07V. Then one path is Vhigh through a 10k resistor, then the last is Vhigh through the parallel thermisitors.
Out of circuit the charging cap is 1uF, and 1 therm is ~9k, and the other is ~18k, not the 5u and 9k they seemed in circuit.
But I soldered in a 20k pot in place of the Thermisistors, and I can see that the average 'amount of time'/'#of ohms' is 749ns/ohm . So 10k would make the cap take 7.49ms to trigger. But pretty much the whole time I had the 20k pot in, the temp wasn't being displayed anymore, just the E1 for error1, which I read was just general temperature senor problems.
But nothing I've checked outside the MCU, seems bad. The clock and temp profile programs, and days of the week, all that stuff still gets displayed at least, and the buttons seem to work. So then I removed the chip.
Today I finally dumped the flash and eeprom of a MCU, with an ArduinoISP and AVRdudess finally worked and I got the hex files. Maybe it's all gibberish but that was fun.
But it seems the chip just has default fuse bytes, I'm not sure what order the Lock bytes go in, but they are 0xFC, so b11101101.
So what could I try in the way of debugging, like even attempting JTAG ? What could be wrong inside the MCU, any transistor of 100's of thousands. For that matter, maybe the problem is in the internal memory, and the hex files won't be correct. I can order a new chip and see if I can copy the hex files to the new chip.
With it out of circuit, what kind of tests can be done, without having to mess up the memory ? Can an ArduinoISP check all the ports, and modes, and registrars, operations, interrupts, etc ???
Navigation
[0] Message Index
Go to full version