MM Defender 2013 07 07

From PalOMoney
Revision as of 02:14, 14 July 2013 by Dev (talk | contribs)
Jump to navigation Jump to search

7/13/2013 4:55 PM Well, it lasted for one tank of propane. The intermittent has struck again. I measured everything, and got results that are quite different from the last time. Too bad I didn’t have a scope camera when I published the timing on the schematic and circuit explanation, because the results are completely different.

In this failure mode: The short pulse lasts for 2.5 ms but charges C4 to 3.5v, not 2.5 volts. This voltage matches the Vih of T0CKI, which is typical 3.3v at 5v Vdd and 25 degrees C. With the thermistor disconnected, the long pulse is 23 ms, but it charges C4 to only 2.0 volts, flattening out. Connecting the thermistor charges C4 to 2.8 volts, and is apparently insufficient to shorten the long pulse, which remains 23 ms. The thermistor measures 194 kOhms. Removing power and thermistor and all assemblies, I measured the static resistance to ground on C4 at about 100-110 kOhms, fluctuating.

I have to consider that my previous measurements of 2.6 volts are inaccurate, perhaps because of an intermittently defective scope probe, or some other sloppiness on my part. Consider that the T0CKI input is supposed to trigger at nominal Vdd x 0.85 minimum or 4.2 volts with Vdd = 5v, and typical of 3.5 volts. This is much higher than 2.6 volts. If RB7 were used as an input, it would switch at only 1.4 volts typical at 25C, much lower. So 2.6 volts just doesn’t make sense. Also, the previous measurement was remarkable and memorable because the voltage levels for both the long and short pulses were the same, or nearly so, regardless of whether the thermistor was inserted or not.

The 100 kOhm resistance to ground is apparently dragging the circuit down, preventing the C4 voltage from driving the input high enough to trigger the input, resulting in a “bad thermistor” fault. I examined the pcb and cleaned it again with isopropyl alcohol to eliminate any trace contamination. But the R to ground remained. Measuring the four other pins RB4-7 showed the resistance increased by the corresponding series resistors. This leaves the T0CKI input itself. This pin is ESD protected by a diode and FET, then it feeds a series resistor into a Schmitt trigger.

If T0CKI is dragging the thermistor circuit down, the pin is either damaged, or not programmed correctly. I tested the power on rise time, and it was about 10 ms, which is under 18 ms that is used by the power on reset delay circuit. I was disturbed, however, by a burst of high frequency as the voltage went through 3-4 volts or so. Could this be the RC clock or some other oscillation, and could this somehow fool the uC? Reading the data sheet, there doesn’t seem to be any options that would affect the input resistance. The only options are to reverse the input polarity, and insert a pre-scaler. There is no option to make the pin an output, it is always an input. So, it the Schmitt trigger is somehow misbehaving, or the input ESD circuit broken down a bit to create an equivalent 100 k resistance to ground, there are no uC registers that would change this. So, if the input is working at all (as it seems to be with the short pulse), then it seems that a hardware solution (addition of a buffer amplifier) will be required. But, remember, this problem cleared itself a month ago, only to return. If the input had gone haywire during the trap operation, it would have shut down (low temperature), but it didn’t, it just finished the tank, stopped, then another rain storm (don’t know about lightening), and now unhappy days.

The next step is to unsolder the T0CKI pin and see if the 100 kOhm resistance goes away. If it does, I will try adding an amplifier. If not, it has to be somewhere else. This is also a good time to insert a 10k or so resistor in the Vdd/~mclr.

Well that was fun. I lifted 2 pins T0CKI and RB7, and there was no change. Then I lifted C4, and that was the culprit. Not the cap, but some residue under the cap that was conductive as long as the humidity was not very low. It seemed that the cap was very low to the pcb, with almost no clearance, and there was some original solder flux residue under the cap that could absorb water and become conductive. I can’t quite explain how that PCB was manufactured. If it were using solder paste with rosin or no-clean flux, this would explain it. In high impedance circuits, you can never depend on non-conductivity of flux residue. All flux must be thoroughly removed, including no-clean. No clean works, if it works at all, only for purely digital circuits, and I would not trust it even for that.

For the sake of completeness, I lugged the propane tank indoors and downloaded a timer program. Here is the starting sequence

Timing and Thermistor Circuit Pulse Widths

-30 secs plug in AC power
0 switch on 13.5 ms -- room temperature
2:57 low speed solenoid on
3:10 first change 13ms
4:02 8 ms
4:40 5.5 ms
5:00 2.4 ms
7:00 0.8 ms
7:50 Turn gas off
9:56 1.0 ms
11:06 2.4 ms == to short pulse
12:00 4.0 ms
12:45 flashing Led 6.0 ms
13:26 8.0 ms
14:06 10 ms
14:55 12 ms