The Wisp1_RevA boards arrived on Friday. After some preliminary tests of a bare board to assure that VCC and Ground didn't seem to have any obvious shorts, and the ground pads all seemed to be interconnected, I went ahead and stuffed the board.
Weights and measures
|Board, no components||6.1g|
|Board, with components||7.9g|
Cleanup and VCC test
Some initial continuity tests indicated a short between VCC and GND. After some fiddling, I found a hairline bridge on one of the processor legs, and cleaned it up. Once power was applied, I found VCC at 2.06 volts. Oops, I forgot to adjust resistor values in the voltage divider for 2.5 volts. I had worked out the math, but I hadn't adjusted the values in the schematic. I adjusted my schematics, BoM and swapped the resistors.
Current Measurement - Uh oh
Then the trouble began. I did a current measurement, and found the board to be drawing 42 mA. That's very high for a board with no code loaded, and nothing running. It took an hour or so of removing parts by process of elimination before I found the problem was related to the 1.8v voltage regulator. Once removed, the current draw dropped to almost nothing.
This regulator feeds the TCXO. It should be feeding 1.8v into both Pad 6 (VCC) and Pad 2 (Enable). Poking around, it appears that pad 2 was isolated, and pad 6 was shorted to ground. This turns out to be a direct result of a problem I had in the schematic earlier.
The Source of the Problem
Note the +1V8 net connecting to the Enable line. When I initially set things up, I inadvertently failed to connect the net to Pad 2. It all appeared correct, but if you look carefully, you'll see that Pad 2 is NOT lit up in blue. The ends are touching, but the software didn't link Pad 2 to the +1V8 net.
This glitch manifested when I tried to do the board layout, and found Pad 2 isolated. I manually fixed it, but the next time I synchronized the schematic to the board layout, the connections went away again.
I fixed it a second time in the board layout (not realizing the underlying issue in the schematic) and generated the gerbers. Unfortunately, the gerbers had the issue in them, as seen above. I didn't realize it.
This is what the gerbers should have looked like:
Unfortunately, the schematic problem was detected at the 11th hour, just before I sent the Gerbers out to OSH Park. I fixed the issue in the schematic, but I suspect I did not regenerate gerbers, since my board layout looked OK (with manual edits) when I had done it previously. Either that, or I simply had a clerical error, and didn't copy the latest gerbers into the Zip file for OSHPark before sending them off. Doh!
The drill file had vias, but there was no trace from Pad 2 to the via, nor between the vias. The via beside Pad 2 just connects the ground planes of the top and bottom layer. Unfortunately, the via between the regulator and pad 6 pierces the +1V8 trace on the upper surface, and the ground plane on the lower service. That's the short.
I drilled out the via on the trace to Pad 6. By doing so, it un-shorted VCC from ground.
Then, I used some 40ga magnet wire to interconnect Pads 2,6 and the +1V8 source from the regulator. Note, there is some exposed ground plane near Pad 2, but there is no short there.
I reinstalled the oscillator and checked for shorts as best I could. Seeing no problems, I reinstalled the regulator. Voila! The board now drew 1.04ma. This makes sense. The Oscillator is rated at 1.5ma at 1.8v. We would expect to see less from the 4.2v source voltage.
Having fixed the problem from the gerbers, the next problem to solve was that I botched the design, and should have had a pull-down resistor on the Enable line for the 1.8v regulator. I kluged this by installing a 10k ohm 0402 resistor between the GND and ENABLE pins on the regulator. You can see it on the bottom right below.
Having made that correction, the board was now drawing 0.08ma.
I reinstalled the CPU and GPS chips. Measurements are listed below.
|Resistance: J1. Board fully built.||670k ohm|
|Resistance: J2. Board fully built.||73k ohm|
|Current Draw (4.2v in). No CPU, no GPS, 1v8 regulator off.||0.08 ma|
|Current Draw (4.2v in). No CPU, no GPS, 1v8 regulator on.||1.04 ma|
|Current Draw (4.2v in). CPU, no GPS, 1v8 regulator off.||0.40 ma|
|Current Draw (4.2v in). CPU, GPS, 1v8 regulator off.||0.43 ma|
It's time to write some code!!