MM Defender 2013 07 07
7/13/2013 4:55 PM Well, the Defender lasted for one tank of propane. The intermittent described in MM Defender Controller has struck again. After measuring everything with a 'scope, the results are quite different from the last time. Too bad a scope camera was not available for the previous revisions of the schematic and circuit explanation, because the results are completely different, and required correcting both.
In this failure mode, the RB5 via 20k (aka "short") pulse lasts for 2.5 ms but charges C4 to 3.5v, not 2.5 volts as previously (and erroneously) stated. This voltage matches the Vih of T0CKI, which is 3.3v typical at 5v Vdd and 25 degrees C (from DS30453E figure 14-10 page 95). With the thermistor disconnected, the RB6 via 162k (aka "long") pulse lasts 23 ms, but the C4 voltage flattens out, charging C4 to only 2.0 volts. Connecting the thermistor charges C4 from RB4 (and RB6) to 2.8 volts, which is apparently insufficient to shorten the "thermistor" pulse, which remains 23 ms. The thermistor measured 194 kOhms. Something was loading the C4 voltage down.
Removing power and thermistor and all assemblies, I measured the static resistance to ground on C4 at about 100-110 kOhms, fluctuating. Unstable fluctuating spurious resistances are generally the result of contamination. I examined and cleaned the PCB with an electric toothbrush, but there was no improvement.
Real Time Notes
The following notes were written in real time trying to analyze the circuit.
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, so 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, as 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.
Time passes...
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 apparently some original solder flux residue under the cap that could absorb water and become conductive, thereby causing the no-starting problem that has been plaguing the machine since its second or third year in service, where it might not start after a period of dampness until baking in the sun for a day or more.
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. I use water soluble acid flux because it washes clean with running water (although I use an ultrasonic cleaner). An isopropyl alcohol mix aids in quickly drying the pcb.
For the sake of completeness, I lugged the propane tank indoors, downloaded a timer program, and logged the events, thermistor pulse widths, vs elapsed time. MM_Defender_Controller#Timing and Thermistor Circuit Pulse Widths