Since I decided to take apart the other USB Charger Doctor unit to determine how it worked, my curiosity could only be satisfied if I took apart this unit as well.
Out of the two units, this was the pricier, more sophisticated and featureful unit. As I only had one of these in my possession, I really didn’t want to take it apart first. But after gaining a little more confidence in my “homegrown” hot-air rework technique, I decided I’ll take this one apart even if it kills it. It’s only a loss of ~AU$7 if I destroyed it, and I was willing to bet that I could take it apart without killing it.
De-Populating the Board
One nice feature is that the upstream USB connector cable is terminated in a socket and plug, and easily detaches from the board. Because of the design of the board with two USB connectors, and two displays, there’s a sizable amount of desoldering to do.
One positive is that the holes themselves are fairly big, so desoldering the through-hole components with braid alone is possible. The flux residue from the “no clean” desoldering braid burns to a charred colour, which looks bad, but is perfectly fine. When removing the 7-segment displays, it seems I may have slightly pulled the through-hole via plating because the solder didn’t completely remove, but it wasn’t a major issue since the majority of the plating is still there (and when filled with solder, it should be just fine).
It didn’t help that the pins on the 7-segment displays were cut very irregularly and bent to fit the holes at the factory. This only added to the de-population challenge.
While the braid was satisfactory, there were a few stubborn holes with solder that liked to stick. I decided to do the “re-solder” and de-solder trick, which eventually worked, but you can see the frosty appearance of the pad where lead-free and leaded 60/40 solder mixed. It’s interesting the silk screening shows which way the 7-segment displays go, despite them being only mountable in one direction due to the odd pins.
But even then, I realized through a preliminary attempt to trace the board, that this board is confusing!
I was constantly being flummoxed by vias, some of which are very thin, some of which were “supposed to be there” but then wasn’t actually manufactured, and planes which seemed to be islands without any source driving them. I reasoned this could only be because of obscuration by the remaining components, so I got out a tweezer and my hot air gun and took off the last few big chips, leaving only resistors and capacitors. This means only one thing – time to trace!
Tracing Out the Design and Features
After about an hour, and three redraws (to produce something that’s easier to follow), I’ve managed to produce a schematic. I’ve actually eliminated the un-populated pads from this drawing as it makes it easier to follow. As usual, I’ve colour coded certain nodes to make the schematic easier to follow – I actually like this myself, as it’s much easier to digest at a glance.
From looking at the design, it’s possible to see these interesting design choices and features:
- This unit uses a 0.01 ohm surface mount resistor as a shunt, and it is inline with the ground line to measure the current consumed by both the pass-through USB port and the charge-only USB port.
- The charge only USB port has its D+ and D- lines routed to a set of 10 pads for surface mount resistors, which allows for combinations of pull-up and pull-down on each line and resistance between lines. This arrangement allows for configuration to most charging protocols. In this unit, a 0-ohm surface mount resistor is mounted between D+ and D- meaning it’s configured for USB Dedicated Charger.
- A 3-terminal 3V regulator (marked 78U30) is used to supply the voltage to the ICs, thus it’s capable of running at a wide range of voltages. A protection “clamp” diode is provided in the case the ground is higher than the output voltage.
- Voltage sensing seems to be done via a voltage divider, with the measured voltage over the 2kohm resistor also being “held up” by a capacitor to reduce the reading varying due to noise/ripple.
- The current sensing relies on an external SGM8551XN precision rail-to-rail opamp amplifier set for 48x non-inverting amplification (as expected, due to the small burden resistor value). This is then fed into the main IC.
- The 7-segment displays are 3-digit type with 11-connections. These are common-cathode type. The IC uses them in multiplexed mode, with each segment data line connected between the two displays, but the segment cathodes connected to separate pins. This results in the chip drawing only one character at a time across the two displays, and cycling quickly enough to allow persistence-of-vision to appear as a solid display.
Unfortunately, as every pin has been consumed by a function, it doesn’t seem likely that there is any potential to hack or modify the unit. It’s a very efficient utilization of the footprint – 18 pins to drive two 3-digit displays, and two analog inputs. It could be a microcontroller or an ASIC, we can’t easily tell.
The chip itself is obviously a display driver, with internal current limiting for the LED segments, and probably a multiplexer and ADC to handle the two analog inputs. It seems pretty similar to the other USB charger doctor, with the exception of a different display configuration and different division/voltages expected for the current and voltage sensing.
Observing its Outputs
In order to check what the circuit’s outputs look like, I had to reassemble the unit. A few more blasts of hot air, and resoldering the through-hole components left me with a once-again functioning board. It is very very dirty with burnt and regular amber coloured flux residue, but that doesn’t affect its functionality so I didn’t bother to try cleaning it. I decided to give the unit a little helping hand by adding some tin to the tinned traces to reduce the resistance marginally. This should improve its performance.
Hooking up Channel A to the DP drive on one display, and Channel B to the Cathode 1 on the same display, it’s possible to observe the voltage on the decimal point output which lights up once per cycle. As the Picoscope is run off USB, and shares the ground with the device, we have to rely on math to determine the voltage on the actual DP diode (by A-B).
It seems this is classic multiplexed 7-segment display in action. At the beginning of the display cycle, the decimal point drive goes positive, and the corresponding cathode goes negative to result in a positive voltage across the diode causing it to light. Then for the next three segments, the decimal point drive stays low, as it isn’t lit, and the cathode remains high as the particular digit isn’t being addressed.
Then, the decimal point drive goes positive again, as it’s trying to light the decimal point for the other (current) display, but since the cathode remains high, the diode still doesn’t see forward bias and remains off. Similarly, three more digits are pumped out, before the cycle repeats.
This happens at a very fast 362.5Hz rate. The resultant voltage can be seen in the purple trace – going positive for one digit, then negative/near zero for the rest. It is notable that it seems the outputs themselves possess enough resistance that they can be used to drive the LEDs directly when the Vcc is 3V without burning them out. The resistance is visible in the way that when the cathode is driven low, the voltage isn’t exactly zero, and when the segment is driven high, it doesn’t exactly hit 3v either.
Curiosity gets the better of me, so I decided to take it apart and study how it’s connected and how it works. It looks to be a purpose-driven chip, without any additional outputs or debug terminals to look at, so that’s a little disappointing, but it’s nice to be reminded of the design principles which it follows in terms of 7-segment display driving. This one uses a few more components than the others – notably requiring an op-amp to provide a strong enough current sense signal for the display driver chip. It also doesn’t utilize an external precision shunt voltage regulator, instead opting for a three-terminal regulator, although the chip itself may have its own internal reference.
In all, another good experience, and definitely handy for gaining some confidence in SMD “rework” (for disassembly and reassembly). It seems that if you have a proper PCB, it’s not so hard after all.