Modification to an overheated CM11A
Credits: Steve Miller, personal correspondence
|
This information is freely provided AS IS, with no implied warranty. Use it at your own risk. Measurements and observations Before discussing the circuit modification, let me cover the measurements and observations that led up to the modification. The reason for this is mainly so that you can judge for yourself whether this modification makes sense for your unit. These observations are based on data gathered from a sample of only two units. Your unit may be a different revision level and what follows may not applicable. My unit would overheat within 20 minutes to 1 hour of my dining room lights being dimmed. After modifying the CM11A, my unit has run for two weeks straight without any problems regardless of the position of the dining room dimmer switch. Overheating is somewhat vague, so let me define what it means to me. When I refer to my CM11A as "overheating", I mean that the circuitry is drawing enough extra current to cause the raw VCC power supply output to fall from a normal +36V to +16V or less. The CM11A circuit board resembles a capital U. With this "U" viewed from the component side and oriented with the opening upward, the 470uf capacitor located in lower right corner is the filter capacitor for the raw VCC supply. From the +36V supply, all internal operating voltages are derived. This overcurrent condition severely loads the AC power transformer causing it to heat up. As this transformer gets hotter, its efficiency goes down and the raw VCC supply falls even further. Eventually the raw VCC will fall far enough that the CM11A will stop functioning. Overtime, the AC power transformer will be destroyed by this excessive heat. Signs of excessive current draw from the AC power transformer are a CM11A that is too hot to hold in your hand or the smell of acrid varnish in the room where the CM11A is installed. Overheat conditions are terminated in one of two ways: Either the unit is unplugged which allows the circuit to reset, or the CM11A is directed to transmit an X-10 signal on the power line. Such a transmission will at least temporarily terminate the overheat condition. The unit will again enter the overheat mode, should the conditions that caused the overheat still exist. Like many other users, I have found that some light dimmers can radiate a signal back the power line that is capable of driving the CM11A into the overheat mode. After discovering that the raw VCC dropped from +36V to less than +16V during the overheat condition, I searched for the circuit that could be consuming this massive additional current. Since the unit did work normally when not overheating, I knew that no components were shorted or defective. Only the X-10 output signal stage was really capable of drawing this kind of extra current. Tracing the raw VCC over to this circuit, I located the output transistor that was getting very warm also. The transistor tested good, as did the driver transistor which was controlling it. Therefore I continued tracing the circuit back to X-10 controller IC, pin 7. This controller IC is made by MicroChip and is often referred to by its family name, PIC. As "PIC" is shorter than X-10 controller IC, I will use PIC from now on to refer to this component. Troubleshooting was time consuming because the condition is intermittent. The unit will often run normally for about 20 minutes even with the dimmer switch activated. As Murply's Law would dictate, it would be going into overheat repeatedly right about the time I was ready to go to sleep. With neither a schematic, nor a copy of the source code, I had to determine the circuit's operation by observation. When not transmitting X-10 signals, the PIC holds pin 7 low. This keeps the output transistor cut off. To transmit an X-10 signal, the PIC releases pin 7 and allows it to float to about 1.5 volts. At 1.5 volts, the output transistor is biased into its active region and the oscillator signal is driven through to the power line. A binary signal that pulls to ground in one state and floats in the other state is called an open collector output. The PIC does not have an open collector output on pin 7, port RB1, its operation is emulated by the firmware. To fake out an open collector output, the firmware changes the port from an output to an input whenever it wants to release the pin 7. When overheating, however, pin 7 was neither pulled to ground nor floating. Instead, during overheat, the PIC was driving pin 7 hard to a logic high. This logic high was turning the output transistor constantly on and pulling way too much current. Since, cycling the AC power or sending an X-10 transmit command would clear the overheat, it appeared at first that the firmware had a major bug in one of the routines that was driving pin 7 high. However, what kept bothering me was that this buggy routine was only ever entered when the dimmer switch was in the dim position. After reviewing the spec sheets for PICs, I got an idea of what was really causing this problem. PIC microcontrollers use a "Read- Modify-Write" operation when you attempt to alter a single bit of an output port. Both pins 7 and 9 are part of Port B on this chip. Pin 9, RB3, is a gate output pulse that is internally synchronized to the zero crossing of the AC powerline. Therefore 60 times a second, pin 9 is driven HIGH and then LOW. I assumed that to alter pin 9, the firmware was using instructions that following the "Read-Modify-Write" operation mode. Instructions like, BCF, bit clear in F and BSF, bit set in F use "Read-Modify-Write". Individual bits of an I/O port cannot be independently modified. Instead the entire port is accessed every time. Now if during the READ portion a noise pulse drives pin 7 momentarily HIGH, this bad value will be written back to pin 7 during the WRITE portion. Should the noisy dimmer switches be able to generate a noise pulse onto pin 7, then two things are required. First, the amplitude of this noise pulse must be strong enough to overcome the output driver pulling pin 7 low. Secondly, the timing of this noise pulse must coincide with the "Read-Modify-Write" operation. Both conditions must simultaneously exist in order to enter the overheat mode. While, it was an interesting theory, I had scoped pin 7 earlier and did not see any noise. Perhaps the pulse was very narrow and I missed it. Turning up the intensity on the old analog scope, I took another look and sure enough a large spike was there. To document the problem I borrowed a digital storage scope and captured the waveform shown in the link below.
You can see that the peak of this signal exceeds the VIH minimum of the PIC chip. Therefore, a "Read-Modify-Write" operation taking place close to the peak will cause the state of pin 7 to flip from a LOW to a HIGH. The firmware is unaware of this change, because the last value it wrote out was a LOW. Therefore this bogus value will remain on pin 7 until the unit is reset or a command is issued that causes the firmware to purposely modify pin 7's state. Placing the noisy lamp dimmer in either the OFF or the max bright position will cause this noise pulse to disappear. However, if the state of pin 7 has already been corrupted, the overheat will remain until AC power is removed or a X-10 signal is transmitted, even though the noise source is gone.
Preventing overheating Having found the problem, the next question was how to prevent it. Obviously the firmware could be rewritten to prevent this, but that option is not available to us. Because the spike is very high in frequency, it seemed that a capacitor from pin 7 to gnd would do the trick. Unfortunately, a capacitor here would not only remove the noise spike, but also remove the X-10 signal that was being transmitted. To keep the X-10 portion working, I added the capacitor, but also inserted a diode between pin 7 and the output circuitry to isolate the capacitor from the output circuit. (Cathode end toward pin 7.) When pin 7 goes into input mode, it is a very high impedance, therefore the capacitor quickly charges to the peak AC value of the X-10 signal and thereafter does not present a load. However, during the time when pin 7 is low, the diode is continually forward biased by the low impedance of pin 7 and narrow noise pulses get attenuated by the capacitor. Below is a screenshot of pin 7 after installing the diode and capacitor.
The peak of this attenuated pulse is now 0.584 volts. The maximum VIH input signal for the PIC is 0.8 volts. Therefore we are guaranteed that this input will always read as a low. Presently, the diode I am using is a 1N4148 and the value of the capacitor is 0.1uF. Do not increase the capacitance much higher than 0.2uF or X-10 communication will again suffer. If you want even better attenuation, place a small resistor in series with the diode, 100 ohms is a good value. Again, too large of an added resistance will keep pin 7 from fully turning OFF the transmitter stage.
So far I have only described one of my two units. The unit that overheats was built in 1999. The older unit built in 1997 is immune to the dimmer pulse problem. Scoping pin 7 of the PIC in the 1997 unit, I could find no noise pulse regardless of the position of the dimmer switch. Side-by-side tests revealed that one unit would fail and the other would continue to operate. The difference in the two units is the X-10 output transformer. From the component side of the PCB with the 470uF capacitor in the lower right corner, this transformer in located on the left side between the AC power transformer and a small isolation transformer. The output transformer has a tuneable ferrite core. The isolation transformer typically has yellow plastic shrink-wrap over its windings. I swapped these X-10 output transformers between the two units and the noise pulse then appears on pin 7 of the PIC in the 1997 unit. The older transformer is obviously from a different manufacturer. The older transformer has cuts in its metal can that support the ferrite core. These rectangular cuts resemble window shutters. The newer transformer that allow the noise pulse to pass through to the PIC have a different smooth metal can. Again, my sample size is way too small to draw an absolute conclusion. However, this very limited data suggests that older units are immune due to the frequency response of the X-10 output transformers. At some point in production, a different vendor for this transformer was used which may have caused this problem. If this is the case, then large quantities of these units could suffer from this problem. The ultimate fix would appear to be to replace this transformer with one from the vendor producing the ones for the 1997 production run. However, this is not economical since I do not know who the vendor is, what the part number is, or the procedure for properly tuning this transformer once it is replaced. Therefore I devised the modification that is detailed below.
Modifying the CM11A Take great care in performing these steps and remember that this information is used at your own risk. Parts:
Procedure:
|
|