I'm back... it's been a while since my last post so I figured I'd write something. I spent most of the summer working on my PhD research and don't have anything ready to publish on that, but I'm now starting design work on a new development board that will tentatively use an Artix-7 FPGA in FGG484 package.
The chip is going to be quite expensive and will be on a six-layer board (also not cheap) so I decided to do some research to characterize my BGA process a bit better as well as improving yields once failure sources can be identified.
I began by designing two mating PCBs in FT[G]256 form factor (pictured below) and buying a jar of 250,000 SAC305 solder balls. The contact-chain pattern was structured such that every ball was electrically isolated from the ones immediately up, down, left, and right, and connected to those diagonally opposite via a leapfrog-zigzag pattern. The end result is two chains of 128 balls in series, so that any open circuit can be detected, which should be electrically isolated. All possible horizontal or vertical shorts would be detectable as a short between the two chains.
|
Dummy FTG256 component |
|
|
|
Dummy FTG256 carrier board (probe pads at top and bottom cropped) |
|
|
The next step once the boards came back from fab was to take one of the dummy components and ball it.
I began by smearing the board with sticky flux using a microfiber swab. I need to come up with a good way of depositing thin films of sticky flux (a stencil of some sort maybe? thin and spin coating) uniformly over a board... the amount pictured turned out to be too much.
|
Fluxing the board |
The next step was to begin placing solder balls. Lacking a stencil I just used tweezers to place them one at a time. It took a while but as long as I won't be doing this very often I can't justify the cost.
|
Beginning to place solder balls |
|
Close-up of placed solder balls before reflow |
Since this was just a test I decided to reflow the first half of the board to see how it turned out.
A minute or so into the reflow profile it was obvious something was wrong - the solder balls were moving all over the place.
|
Drifting solder balls |
|
Close-up of drifting solder balls |
It appeared that as the gel-based flux liquified, thickness variations caused it to flow and take solder balls with it. Surface tension resulted in balls trying to cling to one another.
I removed some of the excess flux, repositioned the misaligned balls, and reflowed, then repeated for the rest of the balls. A few of the balls moved again and bridged together so I removed them with solder braid, re-fluxed, and reflowed again with new balls.
|
Another defect visible post-reflow. For some reason this ball never quite made contact with the pad. It seemed to be fine after reflow. |
|
The entire dummy component after reflow (whitish residue was left by flux after cleaning) |
After reflow I took a quick look at the board and everything seemed fine, there was a ball on each pad and nothing was shorting.
I then treated the resulting board as an FTG256 component and reflowed it to the carrier board using my standard profile.
The resulting assembly passed the "no shorts" test and the "continuity of chain 1" test but the other chain showed an open circuit. After sanding the soldermask off the back of the dummy component (in retrospect I should have left the vias open for easy probing) a binary search quickly determined that pads F8 and F10, which should have been connected, were not. At this point it wasn't known which of the two connections was open.
I then cross-sectioned the board several rows back from the F row to get a general look at how the reflow had gone. I made the cut slightly off parallel so that I could get a slice through some of the balls as well as seeing the dog-bones and vias.
After making the cut I de-fluxed with a high-pressure stream of 50% v/v acetone/IPA from a syringe.
|
Close-up of two balls showing saw marks (very quickly polished). The apparent void on the left-hand ball is actually diamond abrasive paste on top of the ball, not a solder defect. |
|
Cross section of the board. Note that the cut is slightly off parallel to the balls; each ball is cut slightly higher than the one to its left and the right-hand two are not cut at all. |
Everything looked good - the balls had clearly flowed around the sides of the NSMD pads and were showing good adhesion, none of them were distorted or anywhere near shorting, and there were no visible cracks or other defects.
I then made another cut just before the F row in hopes of locating the actual defect. I didn't even need to use the microscope to see something was wrong - there was no ball in the F10 position whatsoever!
|
Missing solder ball! |
At this point I was quite confused because I knew that I had put a ball on every pad. I decided to polish a tiny bit closer and get some more images.
|
The pad on the carrier board (bottom) can be observed to still have the gold plating on it. There is no evidence of tinning whatsoever. |
After seeing that the pad on the board was completely un-tinned and gold plated, it seemed that the ball had not adhered to the pad at all.
I then went back and looked at the post-balling picture of the board. What had originally escaped my notice was that ball F10 (origin at lower right, up six, left ten) was a lot smaller than the others. It's not clear what happened but I'm guessing that while removing shorted balls with braid I accidentally sucked some of the solder off that pad.
I'm not certain that this is the correct explanation yet but it fits the data well and is simple. I'll be doing several more dummy BGAs over the coming weeks to see how things turn out.