banner

Blog

Aug 09, 2023

M.2 Für Hacker

Letztes Mal habe ich alles erklärt, was Sie wissen möchten, wenn Sie einen M.2-Sockel auf Ihrem Board installieren möchten. Lasst uns heute M.2-Karten bauen! Es gibt unzählige M.2-Sockel, in die nur eine spezielle Karte eingesteckt werden muss, und vielleicht ist es Ihre Kreation, die passt.

Laptops und andere x86-Mainboards sind häufig mit M.2-Steckplätzen ausgestattet. Haben Sie einen freien B-Key-Steckplatz? Sie können einen RP2040 und eine Reihe von Sensoren auf einer B-Tasten-Platine als experimentelle Plattform anbringen, die Sie sicher in Ihrem Laptop transportieren können. Möchten Sie einige fortgeschrittenere FPGA-Experimente durchführen? Hier ist eine winzige FPGA-Karte, die in Ihren Laptop passt und es Ihnen ermöglicht, mit PCIe auf demselben Laptop zu spielen – das gesamte Setup benötigt nur einen äußerst geringen Platzbedarf. Suchen Sie nach einer zusätzlichen PCIe-Verbindung, weil Sie Ihren Laptop als Heimserver weiterverwenden? Auch dies wird Ihnen Ihr WLAN-Steckplatz ermöglichen. Möchten Sie PCIe aus einem SteamDeck herausholen? Der Bau einer M-Key 2230-Karte scheint Ihre einzige Hoffnung zu sein!

Es gibt auch viel Platz für einfachere, weniger aktive Geräte. Haben Sie nur einen freien M-Key-Steckplatz, vielleicht einen A- oder E-Key-Steckplatz? Sie können Ihren WLAN-Adapter durch eine zusätzliche SSD für zusätzlichen Speicher ersetzen oder umgekehrt eine zweite WLAN-Karte in Ihren zweiten SSD-Steckplatz stecken, um alle Ihre Wardriving-Anforderungen zu erfüllen! Haben Sie gerade einige ungenutzte SATA-Anschlussspuren auf Ihrem Mainboard entdeckt? Sie können das tun, was ich getan habe, und eine Dual-Port-M.2-Karte erstellen, die einen weiteren SSD-Sockel von Ihrer Stromschiene trennt, an den Sie diesen zusätzlichen SATA-Port anschließen und eine SATA-M.2-SSD einsetzen können. Haben Sie gerade Finden Sie heraus, dass Ihr Chipsatz Ihnen ganze vier SATA-Anschlüsse am M-Key-SSD-Steckplatz bieten kann? Sie können das tun, was mein Freund getan hat, und eine Karte bauen, die diese SATA-Anschlüsse ausschaltet!

Sogar außerhalb von x86 werden einige ARM-SBCs die gleichen Probleme haben – sie haben einen M.2-Sockel mit einem bestimmten Schlüssel, sagen wir B, der nicht zu einem M.2-Extender passt, den Sie gerade gekauft haben – nun, das stellt sich heraus Sie können einfach selbst einen Adapter herstellen. Wie wäre es, über den Standard hinauszugehen? Natürlich gibt es das SparkFun MicroMod-Ökosystem, das ich bereits erwähnt habe. Möchten Sie ein MicroMod-CPU-Board entwickeln, das mit einer Vielzahl anderer Geräte funktioniert, oder vielleicht Ihren eigenen MicroMod-Sensor? Das ist genau dort eine M.2-Karte; Und wenn Sie mit M.2 Ihr eigenes Ökosystem erstellen müssen, hält Sie auch niemand auf.

Natürlich können Sie auch Karten mit ganz unterschiedlichem Mehrwert gestalten. Sie könnten zum Beispiel Audiophilen Geld abpressen, indem Sie überteuerte SSDs in „Audioqualität“ mit schicken Elektrolytkondensatoren darauf entwickeln – Sie möchten doch nicht zulassen, dass die ganze Vergoldung unterschätzt wird, oder? Und wenn Sie als SBC-Hersteller einen M.2-Sockel für Ihren Erweiterungssteckplatz verwenden und Käufer sagen, dass sie Ihren SBC als Router verwenden möchten, kann Sie niemand davon abhalten, eine absolut verrückte und riesige Karte mit vier Ethernet-Sockeln zu entwerfen Es.

M.2-Karten haben standardisierte Größen – 3042 für 30 mm Breite und 42 mm Höhe, 2260 für 22 mm Breite und 60 mm Höhe; Praktisch ist, dass dies die genauen Abmessungen Ihrer Leiterplatte sind. Die Schraubenkerbe ist im Gegensatz zu mPCIe-Karten zentriert und besteht normalerweise aus einer einzelnen M.2-Schraube. Sie werden Leute sagen sehen, dass die Schraube für die Erdungsverbindung verantwortlich ist – das ist nicht der Fall, auch wenn es so aussehen mag, die Erdungsstifte an der Steckdose selbst reichen aus, obwohl zusätzliche Erdungspfade in der Regel nett sind. Tatsächlich ist es auch nicht erforderlich, dass der Kerbenbereich Kupfer freilegt, es kann sich lediglich um einen PCB-Ausschnitt handeln.

Wenn Sie eine Karte für ein vorhandenes Gerät entwerfen, ist diese entweder 42 mm oder 80 mm lang. 30 mm sind außerhalb des SteamDeck und anderer Geräte mit geringem Platzbedarf selten und 60 mm sind äußerst unauffällig. 22 mm ist die Breite für alles außer WWAN-Steckplätzen, diese sind normalerweise für eine Kartenbreite von 30 mm ausgelegt. Es ist nicht erforderlich, alle Komponenten auf einer Seite der Karte zu platzieren, erleichtert Ihnen aber natürlich den Zusammenbau. Beachten Sie jedoch, dass einige Geräte einen flachen oder mittelmontierten Sockel verwenden und hohe Komponenten an der Unterseite zu einem Problem werden könnten, mit dem Sie nicht gerechnet hätten.

M.2 erfordert eine 0,8-mm-Leiterplatte. Sie müssen es nicht ENIG haben, aber ich empfehle es. Meinem Verständnis nach würde die mit HASL durchgeführte Lötmittelbeschichtung schneller oxidieren und den Kontakt mit den Kartensockeln verschlechtern – allerdings habe ich nie versucht, mit HASL zu arbeiten. Ich bin jedoch sicher, dass HASL für Prototypen für den kurzfristigen Einsatz gut funktionieren würde! Man könnte denken, dass eine Goldfingerbehandlung ein Muss ist, sei es mit dickerem Gold auf den Pads oder einer abgeschrägten Kante der Karte – meiner Erfahrung nach ist beides nicht erforderlich, aber dickeres Gold erhöht die Steck- und Absteckzyklen und eine abgeschrägte Kante macht die Karte zu einem etwas einfacher einzuführen. Ich persönlich habe mich immer für die nicht abgeschrägte normale ENIG entschieden und hatte eine tolle Erfahrung.

Natürlich benötigen Sie in KiCad einen Kartenrand-Footprint. Ich persönlich habe ein KiCad M.2-Card-Edge-Footprint-Generator-Plugin verwendet, das ursprünglich von @STOP-Pi auf GitHub erstellt und von mir überarbeitet wurde. Allerdings hat der Autor irgendwann seinen GitHub-Account gelöscht und das Plugin lädt nicht mehr auf KiCad6 – alle generierten Footprints wurden in KiCad5 erstellt. Was noch schlimmer ist, ist, dass sie zwischen meinen Änderungen und dem Moment des Löschens sogar den Plugin-Code aktualisiert haben – und es könnte sein, dass ich ihre KiCad 6-Kompatibilitäts-Commits vor dem Löschen verpasst habe. Welp, Pull-Anfragen sind herzlich willkommen! In der Zwischenzeit finden Sie hier die vorgenerierten A-, B-, E-, M-, A+E- und B+M-Kartenkanten, die Sie bereits verwenden können, und [timonsku] hat auch eine Eagle-Bibliothek erstellt, die Sie problemlos verwenden können sollten in KiCad konvertieren.

Sie fragen sich vielleicht, ob Sie eine vierlagige Leiterplatte benötigen, insbesondere wenn Sie PCIe nutzen möchten – mit vier Lagen ist tatsächlich eine Impedanzanpassung von 90 Ohm erreichbar, während ein Abstand von 0,8 mm zur Erde bei zwei Lagen dies unrealistisch macht. Hier ist meine Erfahrung: Ich arbeite jetzt schon seit einiger Zeit mit kleinen PCIe-Adaptern, und sie funktionieren ganz gut auf 2-Layer, was eine Voraussetzung für meinen spezifischen Prototyping-Workflow ist. Typischerweise beanspruchen M.2-Karten eine sehr kurze Distanz im Verhältnis zur Länge der gesamten PCIe-Verbindung, die Sie haben, und Abweichungen werden die PCIe-Verbindung wahrscheinlich nicht daran hindern, zu funktionieren – es sind längere Distanzen, die zu Problemen führen können, bis Sie sie haben Rüsten Sie Ihre Verkabelung auf. Es würde mich nicht überraschen, wenn während des Trainings eine höhere Fehlerrate oder ein Downgrade der Verbindung auf eine niedrigere Generation sähe, aber ich wette, dass Ihr PCIe funktionieren wird.

Müssen Sie bei zwei Schichten bleiben? Nehmen Sie so viel Impedanzanpassung wie möglich vor, behandeln Sie Ihre Differentialpaare mit Respekt, und Ihre Prototypen werden einwandfrei funktionieren – schließlich wurde gesagt, dass PCIe über nassen Saiten funktioniert, und wir haben eine nach der anderen Bestätigung gesehen. Meine Differenzpaare betragen typischerweise 0,35 mm/0,15 mm, was innerhalb der Grenzen des billigen 2-Schicht-Prozesses liegt und zu einer Impedanz von etwa 130 Ohm führt, was unvollkommen, aber besser als nichts ist. Bei Dingen wie PCIe und SATA behält M.2 normalerweise alle Hochgeschwindigkeits-Diffpairs auf der Oberseite der Karte, und dies allein hilft einer Reihe von Aspekten wie einer ununterbrochenen Erdungsschicht unter Ihren Paaren. Wenn Ihr Arbeitsablauf und Ihr Budget vier Ebenen zulassen, dann legen Sie los!

Fügen Sie an der Stelle, an der sich die Goldfinger befinden, eine Schutzebene für die Massefüllung an – andernfalls kann es beim Einsetzen der Karte zu einem Kurzschluss einiger wichtiger Host-Pins kommen. Der Standard schlägt außerdem eine Sperrebene auf den Innenschichten unter den Fingern vor. Denken Sie also daran, wenn Sie vier Schichten oder mehr verwenden.

Achten Sie beim Schablonieren darauf, dass keine Lötpaste auf die Finger der M.2-Karte gelangt. Reinigen Sie diese vor dem Reflow gründlich, da es viel mühsamer ist, sie danach vom Lötmittel zu befreien. 0,8-mm-Leiterplatten sind dünn, und wenn Sie sie mit Heißluft auslüften möchten, befestigen Sie sie so, dass sie nicht beansprucht werden – ich habe schon ein paar selbst entworfene M.2-Karten erlebt, die sich verbogen haben, wenn sie in einem Schraubstock gehalten und mit einem gestrahlt wurden Heißluftpistole, die vielleicht etwas außerhalb ihrer Kalibrierung lag.

In Bezug auf die Leistung erhalten Sie nur 3,3 V bei ein oder zwei Ampere. Das ist sowohl ein Segen als auch ein Fluch – es bietet jede Menge Strom, und normalerweise ist keine zusätzliche Regulierung erforderlich, da die meisten Chips mit 3,3 V auskommen, aber es gibt immer noch einige gute Einsatzmöglichkeiten für 5 V. Hersteller, die 5 V benötigen B. auf einer M.2-Karte, neigen dazu, auf verfluchte Lösungen zurückzugreifen – hier ist die Geschichte eines Dell-Adapters, der aus M.2 einen 2,5-Zoll-HDD-Sockel erstellt, der einen der GND-Pins als proprietären Kartenerkennungspin umdefiniert und 5 V sendet an eine Gruppe ansonsten reservierter Pins, wenn dieser Pin nicht mit GND verbunden ist.

Entwerfen Sie eine Karte für ein vorhandenes Gerät und erwarten Sie eine bestimmte Schnittstelle? Stellen Sie sicher, dass es tatsächlich vorhanden ist – wie bereits erwähnt, können Sie PCIe auf den A-, E- und M-Buchsen und USB 2.0 auf den A-, E- und B-Buchsen erwarten, alles andere ist keine Selbstverständlichkeit. Wenn Ihnen das Internet hier nicht weiterhilft, könnte die Suche nach Spuren, die vom Sockel kommen, funktionieren, ist aber nicht immer narrensicher, da Signale möglicherweise durch Durchkontaktierungen unter dem Sockel geleitet werden. Das heißt, wenn Sie Spuren oder Diffpair-Serienkondensatoren erkennen können, ist das ein guter Hinweis – oder vielleicht wäre die Verwendung eines Multimeters für einen IC-internen Diodentest an USB2 oder Single-Ended-Signalen wie PEST / PEWAKE / CLKREQ angebracht. Schließlich verfügen viele Laptops über B-Key-Steckplätze, die nur über USB 3.0 (ThinkPad T460s) oder sogar nur USB 2.0 (ThinkPad T470S) verfügen, obwohl SATA und PCIe normalerweise verfügbar sind.

Damit ist die Reihe „M.2 For Hackers“ abgeschlossen. Manche Dinge an M.2 wirken vielleicht fremdartig, wenn man sie zum ersten Mal sieht, aber ich hoffe, ich konnte erklären, was los ist und wie man ins Geschehen einsteigen kann. Das M.2-Ökosystem wird nicht so schnell verschwinden, und es hilft, wenn wir wissen, wie wir es bei Bedarf unserem Willen anpassen können!

AKTIE