| INDEX... |
|
|
|
|
|
|
|
|
Und dann gibt es da noch die BGAs (Ball Grid Arrays). Die haben ihre Anschlüsse in einer quadratischen Matrix auf der Unterseite in Form von winzigen Lötzinnkügelchen (eben die Balls).
Und da verliessen sie ihn... Wie soll man diese Dinger einlöten? Mit dem Lötkolben kommt man ja nicht hin und professionelle BGA-Lötstationen sind schweineteuer. Also doch lieber PQFP nehmen. Aber wenn man mehr als 240Pins braucht, gibt es ausser BGAs nichts mehr. Professionelle Einlötdienste sind auch nicht billig und wenn es dann nicht geht, ist man sowieso selber schuld...
Auf genau dieses Problem bin ich gestossen, da ich für eine Schaltung FPGAs von Xilinx (Spartan2 X2S200) hernehmen wollte. Leider haben die soviele GND/VCC-Pins, dass ein PQFP208 mir zuwenig nutzbare IOs geboten hätte. Bleibt also nur noch die Variante im FG256-Gehäuse... FG heisst hier "Fine-Pitch"-BGA, das hat im Gegensatz zum normalen BGA mit dem Raster 1.27mm ein noch feineres Raster von 1.00mm. Schluck...
Heisst also: Man muss den professionellen Einlötvorgang irgendwie nachmachen. Nach einer Menge Lektüre im Web und der Tatsache, dass sowas ja auch die popeligsten Klitschen in China hinbekommen, bin ich zum Entschluss gekommen, so eine Lötstation selbst zu bauen.
Sehr hilfreich war da z.B. eine Application Note von Motorola zum Thema BGA.
Motorola zeigt als typisches Profil sowas:

Also:
1. Innerhalb von 4 Minuten langsam von Umgebungstemperatur auf 160° und kurz warten.
2. Dann in 30s bis 60s auf 220-230°.
3. Diese Temperatur ca. 20-30s beibehalten.
4. Innerhalb von einer Minute wieder runter auf 140°.
5. Dann langsam weiter abkühlen lassen.
Punkt 3 ist der eigentlich kritische. Die Temperatur muss wirklich auf Platine und Chip so hoch sein, sonst löten sich die Balls nicht gleichmässig und zuverlässig ein. Andererseits darf sie nicht zu hoch sein, irgendwann geht der Chip auch kaputt...
Das Problem ist jetzt also, wie man so einen Verlauf halbwegs reproduzierbar hinbekommt.
Reine IR-Strahlung (d.h. Heizwendeln) sind noch weniger kontrollierbar und die Dampfphasenlötung (Vapour Phase, Beispiel) kann man sich als Bastler sowieso abschminken...
Meine Idee ist jetzt folgende: Die Platine wird hauptsächlich über einen Kontakt in der Gegend des BGAs erhitzt, damit ist die Temperaturverteilung gleichmässiger und die Differenz zwischen Heizkörper und Objekt nicht so gross, Überhitzung wird also unwahrscheinlich. Um Abkühlung durch Abstrahlung nach oben zu vermeiden, und das BGA auch gleichmässig zu erhitzen (sonst müsste die Wärme ausschliesslich über die Balls ins Gehäuse kommen), erfolgt von oben noch eine Erwärmung über ein sanftes (max. 200°) Heissluftgebläse.
Nachteil des Systems: Auf der Platinenunterseite darf auf dem BGA-Platz nichts bestückt sein. Etwaige Abblockkondensatoren oder sonstiger Kram kann erst nach dem BGA-Löten drauf, fürs BGA-Entlöten (geht auch mit der Maschine) muss er vorher weg.
Die Platine muss übrigens nur verzinnt (+Lötstopplack) sein, Lötzinnpaste ist nicht erforderlich, schliesslich bringen die Balls ihr Zinn selbst mit. Die Qualität, die zB. PCB-Pool liefert, reicht da aus.
Den Gesamtaufbau sieht man in folgendem Bild:
Als Heizkörper für die "Unterhitze" habe ich die Platte eines Bügeleisens genommen. Darauf ist eine Kontaktplatte aus zwei Alu-Blechen mit Wärmeleitpaste geklebt, die etwas grösser als das BGA sind. Darauf liegt noch eine passend zugeschnittene Silikonwärmeleitmatte zur optimalen Wärmeübertragung auf die Platine. Der ganze Aufbau ist ca. 2.5mm hoch, damit hat die Platine auch nur dort Kontakt. Spätere Messungen haben ergeben, dass die Platine an anderen Stellen nicht über 100-120° heiss wird, d.h. es lötet sich sonst nichts aus.
Nochmal das Detail der Kontaktplatte:
Das schwenkbare Heissluftgebläse oben besteht aus einem Alu-Rohr mit einer Innenlage aus gefalteter und schwarz angesprühter Alu-Folie. Als Heizelement verwende ich zwei 12V/50W-Halogenlampen mit einem elektronischen 100W-Trafo und als Gebläse einen kleinen CPU-Lüfter. Die Alufolie dient also als zusätzlicher Licht->Wärmetauscher. Die damit erreichbare Luftemperatur liegt bei ca. 150-200° je nach Lüfterdrehzahl.
Unter dem Bügeleisen sind zwei grosse 12V-Lüfter angebracht, die nach der Lötphase dafür sorgen, dass das Bügeleisen schnell wieder abgekühlt werden kann:
Seitlich sieht man noch einen "Arm" mit einem Thermoelement für ein Digitalvoltmeter mit PC-Ausgang. Darüber erfolgt später die Überwachung der ungefähren Platinentemperatur in BGA-Umgebung. Da der Kontakt des Sensors nicht immer reprodzierbar ist, erfolgt darüber keine Temperaturregelung! Stattdessen wird ein festes Programm durchfahren, das vorher in Probelötungen ohne BGA erstellt wurde.
Das Bügeleisen wird im langsamen PWM-Betrieb an/abgeschaltet, d.h. die An/Auszeiten liegen im Sekundenbereich. Ich habe zuerst einige grobe Kalibrierungen durchgeführt, um herauszufinden, wie gross der Temperaturanstieg bei welchem Tastverhältnis ist. Mein Bügeleisen ist da recht flott, die Aufwärmphase geht nie über ein Verhältnis 1:10 hinaus (siehe Werte am Ende des Steuerungsprogrammes).
Die Temperatur der Heissluft wird über die Lüfterdrehzahl reguliert. Auch hier mache ich PWM per SW, allerdings etwas schneller (0.5s/0.5s). Je langsamer der Lüfter, um so heisser. Stehenbleiben darf er aber auch nicht, sonst steigt die Wärme nach oben und er schmilzt weg...
Um das Temperaturprofil nachzubilden, gibt es verschiedene Stufen, die über ein festes Bügeleisentastverhältnis (ausgehend von Raumtemperatur) angefahren werden:
1. 100°
2. 130°
3. 150°
Anschliessend kommt die schnelle Aufheizperiode mit dauerhaft angeknipstem Bügeleisen, die über einen Trick noch steiler wird: In den ersten 20s werden die unteren Lüfter angeschaltet. Damit ist der Temperaturanstieg trotz voller Leistung zunächst langsam, wird aber nach dem Abschalten der Lüfter dann sehr steil. Zusätzlich wird die Heissluftgebläsedrehzahl verringert, die Oberhitze steigt damit auch an.
Nach 30s ist die maximale Temperatur erreicht, das Bügeleisen wird auf ein Erhaltungstastverhältnis gestellt und die Heissluft von oben wird ganz abgeschaltet um ein zu starkes Abkühlen zu verhindern.
Nach weiteren 30s wird das Bügeleisen ganz abgeschaltet und die unteren Gebläse gehen an. Der obere Lüfter bläst langsam ohne Lampen, da das Rohr noch ziemlich warm ist, gibt es keinen Temperaturschock.
Das obere Gebläse wird nach weiteren 30s abgeschaltet (ca. 140°), die unteren Lüfter nach ca. 3Minuten. Dann ist alles unter 70° abgekühlt.
Wen es interessiert, hier das Programm für BGA-Lötsteuerung. Beschwerden über fehlende Kommentare und schlechten Prgrammierstil bitte an mich.
Nach der ersten Kalibrierung habe ich die endgültige mit der Originalplatine (4fach-Multilayer) ohne BGA gemacht. Die Unterschiede waren trotz der zwei inneren Masselagen relativ gering.
Mein erster echter Lötversuch ging allerdings etwas daneben, weil ich zu vorsichtig war und nur mit 210° gelötet habe. Über die Schutzdioden der Pins war auszumessen, dass einige Balls keinen stabilen Kontakt hatten. Ich habe den ganzen Chip nochmal mit Flussmittel umspült, etwas trocknen lassen und dann nochmal mit 230° gebraten. Dann war alles kontaktiert. Also: Lieber 15° mehr und 10s länger als zu wenig und zu kurz. Die Chips müssen es aushalten....
Die Temperatur wird während des Lötvorgangs grafisch dargestellt (Tool hierzu).
Ein typisches Temperaturprofil sieht dann so aus:
Die Ausrichtung des BGAs auf den Lötpunkten sieht zunächst kompliziert aus, da man ja nicht durch den Chip durchsehen kann. Die Xilinx-BGAs bieten aber eine Möglichkeit, das mit etwas Vorbereitung im Platinenlayout sehr einfach zu schaffen. Bei anderen Gehäusen kann man sicher mit einer Nagelfeile etwas nachhelfen. Die BGA-Gehäuse von Xilinx haben nämlich an allen vier Ecken Einkerbungen:
Wie man sieht, kann man diese Einkerbungen gut den Balls auf der Unterseite zuordnen. Einige liegen direkt auf einer Linie mit den Balls, andere etwas seitlich. Damit kann man beim Blick "von oben" anhand der Kerben die Lage der Balls bestimmen. Gehen die Leiterbahnen auf der Platine senkrecht zum BGA-Eck bzw. den Balls weg (evtl. Dummyleiterbahnen im Layout vorsehen), kann man den Chip folgendermassen ausrichten:
1.) Zuerst das BGA links (bei Linkhändern rechts ;-) vom Padfeld auflegen
und als unteren Anschlag ein Lineal/Schiene etc. benutzen. Das Lineal
muss fest aufliegen, sodass es nicht verrutschen kann (evtl. ganz dünn
Silikonkautschuk auf die Unterseite als Anti-Rutschschicht auftragen).
2.) Mit dem Lineal die rechte Kante des BGAs auf die linke Spalte der
Pads ausrichten. Da muss man auf den vertikalen Versatz achten und
dass die Kerben die richtige PAD-Zeile berühren.
3.) Das BGA am Lineal nach rechts schieben. Vor der letzten Pad-Spalte
nochmal überprüfen, ob die Kerben immer noch die richtigen Pads
treffen, evtl. nochmal nach links schieben und auf den Versatz
achten. Damit ist das BGA jetzt schon mal in Y-Richtung ausgerichtet.
4.) Anhand der oberen/unteren Kerben und Leiterbahnen das BGA in
x-Richtung genau ausrichten.
5.) Mit einer kleinen Lupe (oder diesen Uhrmacherlupen) schräg von allen vier Seiten "unter" das BGA schauen und überprüfen, ob alle Leiterbahnen direkt auf die Balls zulaufen. Wenn das bei allen vier Seiten der Fall ist, kann eigentlich nichts schiefgegangen sein ;-)
Zum Üben der Ausrichtung habe ich das Layout auf Overheadfolie gedruckt und die Folie auf eine Glasplatte geklebt. Nach dem Ausrichten kann man dann von unten kontrollieren, wie gut es geklappt hat. Nach einigen Versuchen (und den passenden Hilfslinien im Layout) bekommt man das sehr gut und exakt hin.
Da sich das BGA durch die Oberflächenspannung des Lötzinns bei leichtem Versatz gegen die Pads (bis zu 30%) selbst ausrichten kann, ist das Ausrichten gar nicht so kritisch. Das in der Literatur oft beschriebene "Einschwimmen" bei der Selbstausrichtung war bei mir nicht sichtbar, die Ausrichtung war wohl schon gut genug.
Ansonsten konnte ich den korrekten Kontakt nur über Messungen der Durchflussspannung der Schutzdioden der IOs auf der Platine gegen Masse feststellen. Diese haben bei "falscher" Polung des Messgeräts einen relativ konstanten Spannungsabfall. Ist der auf einem Signal anders kann das entweder ein Spezialpin sein oder es ist wirklich ein Problem vorhanden. Bei mir zB. gab es mangelhaften Kontakt einiger Pins bei leichten Biegungen der Platine. Nochmaliges Durchspülen mit Flussmittel und Erhöhung der Löttemperatur beim zweiten Einlöten haben das dann beseitigt.
Die BGAs sollten erst kurz vor dem Einlöten aus der verschweissten Verpackung (mit dem Trockenmittel drin) genommen werden. Luftfeuchtigkeit kann nämlich sonst in das Plastik einziehen und bei der Erhitzung plötzlich das Gehäuse zum Platzen bringen. Das nennt man dann Popcorn-Effekt... Also muss das BGA getrocknet werden. Xilinx schreibt für das "Backen" 24 Stunden bei 125° vor!
Zum Platinenlayout:
"Rausführen" der Signale beim XC2S200 ("Designstudie" mit Eagle):
Platine mit Hilfslinien (rechts):
Mit Layoutregeln von 0.15mm/0.15mm (Track/Space) und einer minimalen Bohrung von 0.3mm (PCB-Pool-Regeln bei 4fach Multilayer) lässt sich das fast hinbekommen. Es gibt nur eine Verletzung beim Durchführen der Signale zwischen zwei Vias auf der Unterseite (ca. 0.13mm), das scheint aber problemlos zu gehen. Und selbst wenn es da zu Lücken kommen sollte, ist es immer noch zu reparieren.
Das Board mit den zwei XC2S200-FPGAs ist übrigens ein COFDM-Modulator für max. 16384 Einzelträger für DAB und DVB-T und macht eine komplexe 32768-Punkt FFT mit 18Bit Auflösung in ca. 2.2ms.
Loctite Info zum Popcorn-Effekt.
| Georg Acher |
Last Update: 2002-05-26
|