Hallo, ich hab da eine Frage bezüglich Layout. Ich möchte ein ARM-System bauen. Als Controller habe ich mir den LPC1788 im QFP208 ausgesucht. Das Board soll Ethernet und CAN besitzen, sowie SDRAM und einen kleinen FPGA. Des weiteren führe ich dann die Pins vom FPGA sowie einige bestimmte IOs des LPC auf Stecker, ich plane nämlich das Board huckepack auf eine andere Platine zu montieren. Soweit so gut. Ich habe sowas ähnliches mit dem LPC2468 schonmal gemacht; das war auf einer Europakarte mit 6 Layern. Nun möchte ich es wenn möglich auf eine halbe Europakarte zusammenpacken. Ansich ginge es wohl; denn die Bauteile haben locker Platz! nur: ich hab gestern den halben Tag dran rumgedoktert, wie ich die Bauteile am besten platziere, und bin einfach auf keinen grünen Zweig gekommen :-) ich denke mal: Ethernet und der externe Datenbus sowie das FPGA sind am kritischsten; daher so kurze Leitungen wie nur irgend möglich. Aber wie gehe ich sonst am geschicktesten vor? wie wird das bei PC Mainboards gemacht? die sind ja noch viel dichter gepackt, und ich denke aus Preisgründen werden die wohl kaum mehr als 6 Layer haben... Also, habt ihr gute Tips zum Platzieren? ich kann sonst heute Abend noch nen Screenshot vom aktuellen Stand hochladen.
Moin Tobias, > nur: ich hab gestern den > halben Tag dran rumgedoktert, wie ich die Bauteile am besten platziere, > und bin einfach auf keinen grünen Zweig gekommen :-) Nur den halben Tag? ;) Nimm dir die nötige Zeit - eine gute Platzierung braucht diese. Auch wenn es mehrere Tage dauert, die richtige zu finden, das Layout wird es dir danken. Ist ein Stückweit auch Erfahrungssache. > Ethernet und der externe Datenbus sowie das FPGA sind am kritischsten; > daher so kurze Leitungen wie nur irgend möglich. Ich gehe mal von einem Multilayer aus, hier lassen sich Impedanzen realisieren. Damit können die Leitungen wieder etwas länger werden und die Signalintegrität leidet weniger. Leider haben Impedanzen den Nachteil, das sich sowas meist im Pool nicht fertigen lässt (es sei denn, auf dem vom LP-Fertiger verwendete Bautyp lassen sich Impedanzen nutzen, was meist leider nicht geht wg. der grossen Lagenabstände und der daraus resultierenden breiten LBs). Wieviel Lagen dürfen es sein ? Beidseitige Bestückung (manuell/ automatisch) Ein Bildchen vom Schematic und Board könnte hilfreich sein. Gruss Uwe P.S. > wie wird das bei PC Mainboards gemacht? die sind > ja noch viel dichter gepackt, und ich denke aus Preisgründen werden die > wohl kaum mehr als 6 Layer haben... Die meisten Consumer PC-Mainboards dürften 4 Lagen haben ...
Hallo, also ich wollte das im PCB-Pool machen lassen. Dort kann ich glaube ich nicht über 6 Lagen, und das sollte auch reichen, sonst wird es wirklich zu teuer ;-) Beidseitige Bestückung erfolgt von Hand, ist also keine Sache. Das erwähnte Board, welches ich mit dem LPC2468er realisiert habe, hatte ich auch im PCB-Pool fertigen lassen. Dort hab ich ein paar einzelne Leitungen, die ich versucht habe, impedanzkontrolliert zu layouten, und das hat auch Funktioniert. Auf jenem Board hab ich den Clock fürs SDRAM ca. 70mm lang, aber wenn ich da mit dem Oszi rangehe, sieht der immer noch schön sauber aus, fast wie im Bilderbuch ;-) von daher denke ich dass das schon funktioniert hat, oder? und der PCB Pool publiziert ja den Lagenaufbau auch - der ist also bekannt. Dann sind da noch ein paar Kleinigkeiten: - der PHY fürs Ethernet braucht einen 50 MHz Referenzclock (da er über RMII angebunden ist). Den Clock erzeuge ich mit einem Quarzoszi, und der ist dann per Y-Leitung einerseits mit dem MAC und andererseits mit dem PHY verbunden. Auf meinem 1. Board hab ich extra dafür gesorgt, dass beide Zweige gleich lang sind; ich frage mich jetzt allerdings, wie wichtig das denn ist? - der Adressbus wird wohl extrem gruselig werden zum Layouten. Ich hab da bei meinem 1. Versuch solche "Stichleitungen" realisiert. Aber eigentlich sollte man das ja vermeiden, oder? - Selbes mit dem Datenbus; dort hab ich über dies auch das Problem, dass D0..D15 sowohl zum FPGA als auch zum SDRAM müssen, während D16..D31 nur zum SDRAM gehen. Ob das ein Problem darstellt? - Ich frage mich auch, wie kritisch die Leiterbahnlängen vom PHY zum Ethernet-Stecker sind. Ich meine, schlussendlich ist das Zeug dann ja eh mit einem Kabel verbunden, dessen Länge ich nicht kenne... Also, musss ich den PHY in der Nähe vom Stecker haben, oder kann der irgendwo sitzen, wo es halt grad Platz hat?
Tobias Plüss schrieb: > Dort hab ich ein paar einzelne > Leitungen, die ich versucht habe, impedanzkontrolliert zu layouten, und > das hat auch Funktioniert. Versucht, impedanzkontrolliert zu routen ?? :) Man definiert im Layout die Breite, Dicke der LB + Abstand zur nächsten Referenzlage (meist GND) als Impedanz (achja, und das Dielektrikum der verwendeten Materialien (Prepregs/ Cores)). Hast du diese berechnet ? > - der Adressbus wird wohl extrem gruselig werden zum Layouten. Ich hab > da bei meinem 1. Versuch solche "Stichleitungen" realisiert. Aber > eigentlich sollte man das ja vermeiden, oder? Kommt drauf an wie lang die sind. AFAIK (man mag mich berichtigen) sind die Stich-LBs länger als 1/4 Lambda, dann sollte man dies vermeiden. Du hast dir das CLK-Signal vom SDRAM angesehen, wie sehen die anderen, insbesondere die Stichleitungen, aus ? > Selbes mit dem Datenbus; dort hab ich über dies auch das Problem, dass > D0..D15 sowohl zum FPGA als auch zum SDRAM müssen, während D16..D31 nur > zum SDRAM gehen. Ob das ein Problem darstellt? Gab es diese Konstellation auch im Vorgängerboard ? Wenn die Signale i.O. aussehen, dann bleib dabei. Ich habe sowas ähnliches auch auf einem Kundenboard machen müssen (hier waren 3 ICs am Bus, allerdings keine Stichleitungen), das hat sehr gut funktioniert (naja, alles Impedanzen). Der gesamte Bus war ich glaub so um die 18cm lang. > Ich frage mich auch, wie kritisch die Leiterbahnlängen vom PHY zum > Ethernet-Stecker sind. Ich meine, schlussendlich ist das Zeug dann ja eh > mit einem Kabel verbunden, dessen Länge ich nicht kenne... Also, musss > ich den PHY in der Nähe vom Stecker haben, oder kann der irgendwo > sitzen, wo es halt grad Platz hat? Du meinst die Differentiellen Signale ? Ja, hier ist es prinzipiell egal wie lang diese sind (@ definierter Impedanz, das Kabel hat diese ja auch - mehr oder weniger). Innerhalb des Paares sollte der Unterschied allerdings möglichst gering sein. Gruss Uwe
Hi Uwe, naja versucht deswegen, weils ja nicht 100%ig garantiert ist, dass der PCB-Pool sich auch wirklich ganz exakt an den angegebenen Lagenaufbau hält ;-) Aber berechnet hab ich die Leiterbahnbreiten und -abstände schon, ja. Altium Designer hat mir eine Leiterbahnbreite von 5.9 mils vorgeschlagen, ich hab das dann auf 6 aufgerundet und gemäss Application Note von meinem PHY auch einen Abstand von 6 mils eingehalten. Differentiele Signale immer schön parallel. An das hab ich mich streng gehalten, und es funktioniert - trotz PCB Pool. Der SDRAM-Clock ist auch 6 mils breit. Vom LPC geht es zuerst zu einem PLL-Clocktreiber, anschliessend von dort aus zum FPGA und zu den beiden SDRAMs. Die Clockleitungen hab ich so gemacht, dass sie gleich lang sind wie die längste Adressleitung. Ist das so in Ordnung? Die Signale am Datenbus etc. sehen auch sehr gut aus, wenn auch nicht ganz so toll wie der Clock, da der Datenbus ja nicht einen extra Treiber hat. Nur ein einziges Signal (CKE war das glaub ich, fürs SDRAM) ist nicht so toll, aber es hält sich eigentlich alles sehr in Grenzen und das Board funktioniert zuverlässig. Das Problem ist dann halt jetzt, dass ich, wenn ich alles auf die halbe grösse zusammenquetsche, sowieso nicht mehr alles genau gleich routen kann, denn ich hab ja weniger Platz ;-) Dann noch die Frage, inwiefern es legitim ist, die Abblockkondensatoren auf die Unterseite der LP zu verschieben. Bisher hab ichs wie folgt gemacht: VCC -> Via -> Abblockkondensator -> Pin sodass der Abblockkondensator näher beim Pin ist als das Via, der Strom also "am Abblockkondensator vorbei fliessen MUSS" :-) und GND hab ich immer direkt auf die GND-Plane genagelt. Wenn die Abblock-Cs ja nun auf der Unterseite sind, dann ist zwischen Kondi und Pin noch das Via... stört das nicht, insbesondere beim FPGA, welcher ja einigermassen schnelle Signale hat und daher auf eine gute VCC- und Masseanbindung angewiesen ist?
> naja versucht deswegen, weils ja nicht 100%ig garantiert ist, dass der > PCB-Pool sich auch wirklich ganz exakt an den angegebenen Lagenaufbau > hält ;-) Aber berechnet hab ich die Leiterbahnbreiten und -abstände > schon, ja. Im Anhang ist der Standard-Lagenaufbau für 6 Lagen. Ist das der für dein Projekt verwendete ? Wenn ja, kann ich bei nächster Gelegenheit die Impedanzen mal gegenrechnen (POLAR). > Altium Designer hat mir eine Leiterbahnbreite von 5.9 mils > vorgeschlagen, ich hab das dann auf 6 aufgerundet und gemäss Application > Note von meinem PHY auch einen Abstand von 6 mils eingehalten. Wenn der AD den Lagenaufbau kennt, dann sollte der Vorschlag eigentlich passen. > Die Clockleitungen hab ich so gemacht, dass sie gleich lang sind > wie die längste Adressleitung. Ist das so in Ordnung? Ist o.k. > Dann noch die Frage, inwiefern es legitim ist, die Abblockkondensatoren > auf die Unterseite der LP zu verschieben. Absolut i.O.. Geht teiweise auch gar nicht anders mehr, man denke an die hochpoligen FPGAs im BGA Gehäuse. > VCC -> Via -> Abblockkondensator -> Pin Ja, klingt gut :) > Wenn die Abblock-Cs ja nun auf der Unterseite sind, dann ist zwischen > Kondi und Pin noch das Via... stört das nicht, insbesondere beim FPGA, > welcher ja einigermassen schnelle Signale hat und daher auf eine gute > VCC- und Masseanbindung angewiesen ist? Du hast auch bei Platzierung auf TOP ein Via im Pfad, da du den "Saft" ja aus den Powerplanes holst. Ist o.k. Lass dich nicht durch die teilweise harschen AppNotes der IC Hersteller verrückt machen - die halten sich selber kaum daran. Mein Lieblingsbeispiel ist mein S3E Starterkit - das Layout ist furchtbar und hat mit den Xilinxs'chen AppNotes nichts zu tun (z.B. Stichleitungen, mieses Abblock Layout)
Hi Uwe, jau, exakt so ist der Lagenaufbau. Genau nach diesem habe ich die Impedanz auch berechnet. Und AD hat mir was um die 5 komma irgendwas mils gesagt. Kann das nicht stimmen?
Hallo Tobias, hab mal das Polar-Tool rechnen lassen - wenn ich alle Parameter korrekt eingesetzt habe, dann komme ich bei ca. 70-72 Ohm raus. Ich vermute, du wolltest eigentlich 50 Ohm und für die Diff.Signale 100 Ohm (das reiche ich nach). Naja, nicht ganz korrekt, ... Die jeweils erste (Layer 2) und letzte (Layer 5) Innenlage ist hoffentlich GND ?
By the Way: Wie sieht deine Geometrie für die Diff. Signale aus ? (LB Breite und Abstand der beid.Diff.Signale zueinander)
Von oben nach unten habe ich den folgenden Lagenaufbau: Signale GND Signale Signale VCC Signale Was müsste ich denn für 100 Ohm für eine Breite wählen? :-/ meinst du also, das passt alles irgendwie doch nicht? Wie können denn meine Signale so gut ausschauen? Ich poste dann heute Abend mal ein Photo von der LP sowie ein Bild vom Layout. OK?
VCC als Referenz ist o.k. > meinst du also, das passt alles irgendwie doch nicht? naja, vielleicht nicht ganz korrekt, aber wenn es funktioniert ist doch alles i.O. ;) AFAIK haben die meisten LP-Fertiger eine Toleranz von +/- 10% auf Impedanzen (wg. Fertigungs- und Materialtoleranzen). Deine Diff. Impedanz ist soweit ok. (siehe Anhang), wenn du es genauer brauchst, dann verbreitere die LBs auf 180-190µm bei gleichem Abstand wie vorher (152µm). Näher zusammen geht auch, aber da könntest du den Mindest Abstand der Poolfertigung unterschreiten. > Ich poste dann heute Abend mal ein > Photo von der LP sowie ein Bild vom Layout. OK? Ja, und bitte ein Bild vom Oszi (hüstel, ... den Signalen) Gruss Uwe
Das heisst also, wenn die differentiellen Signale ungefähr passen, dann ist es eigentlich nicht so wichtig, dass der PHY direkt beim Stecker hockt, ist das richtig? Ach ja, mein Oszi, das hat 600 MHz Bandbreite. Sollte doch bei einer Prozessorfrequenz von 72 MHz passen, oder? Die Oszibilder lade ich dann auch heute Abend hoch.
Einen noch: Das einzig unschöne an deinem Lagenaufbau ist, das Vcc nicht direkt ein GND sieht. Aber auch das ist egal, solange kein EMV-Test ansteht (scheint ein sehr ambitioniertes Hobbyprojekt zu sein - sehr schön !) - der könnte hier u.U. Sorgen bereiten. Wenn du mit 3 Signallagen auskommst hier noch ein Vorschlag: 1. Signal 1 2. GND 3. VCC 4. Signal 2 5. GND 6. Signal 3 Vorteil: jede Signal/ Power sieht ein GND -> gut für die Rückströme/ Impedanz/ EMV. Gruss Uwe EDIT: > Das heisst also, wenn die differentiellen Signale ungefähr passen, dann > ist es eigentlich nicht so wichtig, dass der PHY direkt beim Stecker > hockt, ist das richtig? Sollte akzeptabel sein, ja.
Tobias Plüss schrieb: > Von oben nach unten habe ich den folgenden Lagenaufbau: > > Signale > GND > Signale > Signale > VCC > Signale > > Was müsste ich denn für 100 Ohm für eine Breite wählen? :-/ > > meinst du also, das passt alles irgendwie doch nicht? Wie können denn > meine Signale so gut ausschauen? Ich poste dann heute Abend mal ein > Photo von der LP sowie ein Bild vom Layout. OK? Der Aufbau ist aus mehreren Gründen sehr ungeschickt. Auf I2 und I3 beeinflussen sich die Signale gegenseitig. Die Signalintegrität ist schlecht. Du musst also Leiterbahnen auf I2 bspw. nur waagerecht, auf I3 nur senkrecht routen, um die Gegeninduktivität und damit die gegenseitige Kopplung zwischen Signalen in I2 und I3 so gering wie möglich zu halten. Bei Durchkontaktierung von Top bzw. I2 nach Bottom bzw. I3 wird das Bezugspotential der Signale geändert (von GND auf VCC). Hier musst du für hochfrequente Signale entweder einen Kondensator dem Via parallel schalten oder den Lagenaufbau ändern, sonst kriegst du EMV-Probleme.
Hi Uwe, anbei die versprochenen Dateien. Das Layout zeigt die Layer in der Reihenfolge Top GND Inner 1 Inner 2 VCC Bottom Gruss Tobias
Moin Tobias, na, das sieht doch alles gar nicht schlecht aus ! :) Das Schematic sieht sehr gut aus, so wie ich es als Layouter gerne seh: übersichtlich und nicht geizig an Seiten :) Zum Board: Richtig grobe Schnitzer sind mir erstmal nicht aufgefallen, vielleicht 2 Punkte: D10: dessen CLK Out geht an D2 und D9 und ist Längenabgeglichen - das erscheint mir hier eigentlich unnötig. Ist aber kein Fehler. N1: hier würde ich versuchen, die Diode V3 direkt in den Pfad zu L2 zu legen (aber etwas breiter). C1 kann man denke ich ruhig auf LS platzieren, bringt etwas Platz (die etwas dickere LB ist aber gar nicht verkehrt an dieser Stelle). Was ich gar nicht gesehen (oder übersehen) habe sind Testpunkte. Das würd ich im Nachfolger noch einbauen (und im Klartext in den Best.druck setzen). Ein allg. Tip noch: versuch Vias nicht zu dicht zueinander zu bringen, das erzeugt in den Powerplanes Schlitze. Das kann unbeabsichtig Engstellen erzeugen, wo sich der Strom nur mühsam durchquetschen muss ;) Auch aus EMV Sicht kann das Nachteilig sein (weil Rückströme dann einen ungünstigeren Weg nehmen müssen, dies kann zu stärkeren Abstrahlungen führen). Schau mal hier vorbei: (zum Lesen musst du dich registrieren) http://www.emv.biz/downloads/fachartikel/ Das Thema EMV scheint dir nicht ganz wurst zu sein, im Design sind ja recht viele Drosseln verbaut. Gruss Uwe P.S. Wolltest du nicht per Hand bestücken ? Ich seh hier grad ein paar Passermarken ... ;)
Was für ein Elko ist der C2? Denn da soll laut Webbench ein 10u Kondensator dran mit einem ESR von max. 3mOhm!!! Ich kenne das nur als Kerko...
moin Lothar, es handelt sich um einen super low ESR Elko von Nippon; der passt da offenbar, war bei Webench jedenfalls in der Liste von empfohlenen Kondis. Uwe, danke für deinen ausführlichen Beitrag. Testpunkte fehlen tatsächlich ;-) beim neuen Boarrd hab ich ja viel weniger Platz, d.h. ich kann nicht alles so ideal platzieren. Aber offenbar sind meine Sorgen tatsächlich unbegründet?
Tobias Plüss schrieb: > super low ESR Elko von Nippon Hast du da den Typ? Bei Elkos (auch SMD) würde ich schon die Anschlussdrähte als "hochohimger" bezeichnen...
Typ kann ich dir heute Abend raussuchen, sitze grad inner Vorlesung an der FH und hab keinen Zugriff auf die Daten, die liegen zu Hause aufm Pc ;-) Gruss
Ich sehe da einige Koppelkondensatoren, die nicht ordentlich eingebunden sind, z.B. C30, C32, C33, C34, C39. Die Kondensatoren an VCCAPLL1/2 des FPGA sind so nutzlos. Versuche mal, den Stack von Uwe umzusetzen, der ist aus EMV-Sicht wirklich deutlich besser. Optimal wäre sowas hier: Signal GND VCC VCC GND Signal Bei höherlagigen Boards dann immer abwechselnd eine GND-Plane und ein Signallayer.
Hier noch eine kleine Inspiration für 6Lagen, die Konstellation ist hier ähnlich deiner (aber ohne SDRAM) ;) http://www.unitel.at/publikationen/lp2010/LP-2010_Teil-8.pdf Gibt es eigendlich einen besonderen Grund, das du dein bisheriges funktionierendes Design nochmal anpacken/ schrumpfen möchtest ? @ Frank: Dein Stackup ist gut (entspricht dem Bautyp der obigen Meltemi-Platine). Wollt ich auch vorschlagen, aber ich fürchte, 2 Signal-Lagen sind in Tobias' Fall wirklich etwas eng ;) Gruss Uwe
Hi Uwe, Der Grund ist, dass ich einerseits nen anderen Prozessor habe, und ausserdem möchte ichs kompakter :-) zudem fehlt CAN auf dem jetzigen Board...
> Der Grund ist, dass ich einerseits nen anderen Prozessor habe, ... Achja, ich vergass :) > ... zudem fehlt CAN auf dem jetzigen Board... Das mit "ohne CAN" ist neu ;) Wie auch immer, Chancen zu Miniaturisierung sehe ich (fast) nur in der Änderungen einiger Gehäuse, Stichwort BGA - Passermarken hast du ja schon mal ;) - das verkompliziert natürlich die Handbestückung etwas. Eine weitere wäre, X9 als miniSD Card zu realisieren. Der Platz unterhalb X9 (LS) hat auch noch freie Stellen zu vergeben. Oder halt ein Sandwich: 2 Platinen huckepack, auf der einen Stromversorgung und etwas Periperie (sollte auf ein doppelseitiges Board passen), auf dem anderen die eigentliche Steuerung in 6 Lagen. Gruss Uwe
Also, den Speicherkartensockel hab ich bereits als microSD vorgesehen. Dann werd ich den Schaltregler weglassen und einen kleinen Linearregler einsetzen, die Betriebsspannung wird dann halt 5 Volt sein, das wär grade gut und würde auch reichen um den CAN Treiber zu versorgen. Jemand hier im Forum hat mal gesagt, es lässt sich alles routen, solange die Pads auf der LP platz haben. Das stimmt dann wohl nicht ganz? ;-)
> Jemand hier im Forum hat mal gesagt, es lässt sich alles routen, solange > die Pads auf der LP platz haben. Das stimmt dann wohl nicht ganz? ;-) Da gebe ich ihm zu 100% Recht ! Aber nur, weil er die Anzahl der Lagen dabei nicht limitierte ! ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.