banner
Heim / Blog / M.2 Für Hacker
Blog

M.2 Für Hacker

Jul 25, 2023Jul 25, 2023

Im ersten M.2-Artikel habe ich reale Typen und Anwendungsfälle von M.2-Geräten beschrieben, damit Sie beim Umgang mit den verschiedenen verfügbaren Karten und Ports nicht verwirrt werden. Ich habe auch selbst einige M.2-Karten und kartenakzeptierende Adapter entwickelt. Und heute möchte ich Ihnen alles erzählen, was Sie wissen müssen, um M.2-Technologie selbst zu entwickeln.

Das Bauen mit M.2 hat zwei Aspekte: das Hinzufügen von M.2-Sockeln zu Ihren Leiterplatten und der Aufbau der Leiterplatten, die M.2-Karten sind. Ich werde beides behandeln, beginnend mit Ersterem, und zu wissen, wie man mit M.2-Sockeln umgeht, ist vielleicht das Einzige, was Sie jemals brauchen. Abgesehen von dem, was ich beschreibe, gibt es einige gute Anleitungen, aus denen Sie Kleinigkeiten lernen können, wie zum Beispiel die Sparkfun MicroMod-Designanleitung, die größtenteils MicroMod-spezifisch ist, aber auch einige M.2-Tipps und Tricks enthält.

Was könnten Sie mit einem M.2-Sockel auf Ihrer Leiterplatte machen? Zunächst einmal verfügen viele leckere, für Bastler geeignete SoMs und CPUs jetzt über eine PCIe-Schnittstelle. Wenn Sie ein Entwicklungsboard oder einen einfachen Breakout bauen, können Sie über einen M.2-Sockel eine NVMe-SSD für alle Ihre High-End-Geräte anschließen. Geschwindigkeit, geringer Stromverbrauch, Speicherbedarf – viele Raspberry Pi Compute Module-Mainboards verfügen speziell dafür über M.2-M-Key-Sockel, und darüber hinaus gibt es NVMe-Unterstützung in der RPi-Firmware. Außerdem können Sie jederzeit einen vollwertigen PCIe-Adapter oder einen Extender in einen solchen Sockel stecken und eine PCIe-Netzwerkkarte oder ein anderes dringend benötigtes Gerät anschließen – vielleicht sogar eine externe GPU! Doch so lecker PCIe-ausgestattete SoMs auch sind, sie sind bei weitem nicht der einzige Grund, M.2-Sockel zu verwenden.

PCIe selbst ist eine Schnittstelle, die immer beliebter und zugänglicher wird. Wir haben berichtet, dass jemand einen Adapter für Digitalkameras herstellt, mit dem Sie NVMe-SSDs anstelle von CFExpress-Karten verwenden können – beide Schnittstellen mit PCIe als Rückgrat. Mit einem anderen Adapter, den wir gesehen haben, können Sie eine PCIe-WLAN-Karte in ein Pinebook einbauen und so die WLAN-Geschwindigkeit deutlich erhöhen. Und natürlich ist es nicht nur PCIe, auch nicht in Verbindung mit SATA oder USB. Möchten Sie einen RISC-V Linux-fähigen SBC in Ihr Board integrieren? Nun, Sipeed stellt eines der wenigen derzeit verfügbaren RISC-V-SoMs mit dem Namen LicheeRV her, und es handelt sich um ein 20-Dollar-SOM mit zwei M.2-B-Key-Anschlüssen und einer vollständig benutzerdefinierten Pinbelegung.

Es stellt sich heraus, dass man mit einer Gruppe von 67 Pins mit geringem Platzbedarf viel erreichen kann. Sparkfun MicroMod ist beispielsweise ein Mikrocontroller-Ökosystem, das M.2-Hardware mit einer benutzerdefinierten Pinbelegung nutzt – im Fall von MicroMod handelt es sich um E-Key-Hardware mit benutzerdefinierter Kartenlänge und verschobener Position der Halteschraube, sodass WiFi-Karten dies nicht können angeschlossen werden. Für Bastler sind sie ein nettes und cooles Ökosystem mit unzähligen verschiedenen CPUs und Sensoren, mit denen man spielen kann – im geschäftlichen Sinne ermöglichen sie uns die Evaluierung einer Vielzahl unterschiedlicher Prozessoren für unsere Anwendungen. Tatsächlich war der letztjährige Remoticon-Abzeichen-Spin von [Thomas Flummer] für MicroMod-CPUs konzipiert, und erst kürzlich erzählte uns [tzarc] auf Hackaday Discord, dass sie viel Spaß beim Bau einer MicroMod-basierten Tastatur hatten!

Bei meiner eigenen Arbeit mit M.2 geht es hauptsächlich darum, Laptops zu verbessern und alter Hardware neues Leben einzuhauchen. Ich habe zum Beispiel eine ganze Reihe von Adaptern gebaut, um alte Laptops wiederzubeleben – z. B. mPCIe-zu-M.2-M-Key-NVMe-Adapter mit geringem Platzbedarf, mit denen ich und meine Freunde schnelle und günstige NVMe-SSDs in alte, aber immer noch brauchbare Maschinen einbauen . Ich habe auch eine Fülle von M.2-Key-to-Key-Adaptern für die Anwendungsfälle meiner Freunde gebaut, beispielsweise einen, mit dem Sie eine A/E-WLAN-Karte durch eine M-Key-SSD oder umgekehrt ersetzen können, und einen Adapter für Apple Xserve-Boards zur Verwendung von M.2-SATA-SSDs in seinem proprietären SATA-Boot-Laufwerksanschluss.

M.2-Buchsen machen viel Spaß. Nun wie?

Was ist erforderlich, um einen M.2-Sockel hinzuzufügen? Mechanisch, seine Stellfläche sowie etwas freier Platz auf der Platine. Lassen Sie uns zunächst über den Platz auf der Platine sprechen. Natürlich können Sie die Karte auch von der Platine hängen lassen und so das Problem vom „PCB-Platz“ auf den „Platz im Inneren Ihres Gehäuses“ verlagern, aber Sie müssen trotzdem die Größe berücksichtigen. Die M.2-Kartengröße wird mit vier Ziffern im WWHH-Format beschrieben, die Breite und Höhe in Millimetern angeben – eine 3042-WWAN-Karte ist 30 mm breit und 42 mm hoch (einschließlich Kartenkante), und eine 2280-SSD ist 22 mm breit und 80 mm hoch. Wenn Sie einen Footprint auf einer Leiterplatte anbringen, wird die genaue Position der Kartenkante in Bezug auf den Footprint entweder explizit im Datenblatt angezeigt oder kann aus dem Querschnittsbild abgeleitet werden.

Es gibt verschiedene M.2-Buchsen, die Sie bekommen können – ich unterscheide sie in Mid-Mount-, Flat- und Angled-Insert-Buchsen, und ihr wichtigster Unterschied ist die Höhe über Ihrer Leiterplatte. Die Abstände zwischen Platine und Karte des M.2-Sockels sind tatsächlich standardisiert, Mid-Mount- und Flat-Mount-Sockel sind jedoch ein weniger standardisierter Bereich – dennoch sind sie äußerst nützlich, um Ihre Projekte klein und dünn zu machen. Ich bin ein großer Fan der Verwendung von flachen Sockeln, weil sie Ihre Karte nur an Ort und Stelle halten und kein Abstandshalter erforderlich ist. Allerdings funktionieren sie wahrscheinlich nicht gut mit doppelseitigen Karten wie einigen schickeren SSDs, und das würde ich auch nicht sagen Komponenten unter der Karte.

Die meisten M.2-Sockel verwenden unabhängig von der Höhe genau denselben PCB-Footprint, da dieser ebenfalls standardisiert ist – mit Ausnahme der Mid-Mount-Sockel, die sehr nützlich sind, wenn Sie vertikalen Platz sparen müssen, deren Footprints jedoch stark variieren ein bisschen mehr. Dieser Platzbedarf ist tatsächlich in der Spezifikation standardisiert und wird für die überwiegende Mehrheit der Steckdosen, denen Sie begegnen, gleich sein. Ein Freund hat mir jedoch kürzlich gezeigt, dass dies nicht immer der Fall ist – LOTES APCI0162 ist ein Beispiel für einen abgewinkelten Einsteckverbinder, der einen geringeren Abstand zwischen den Pads hat als die üblichen Footprint-Buchsen. Überprüfen Sie daher vorsichtshalber beim Kauf eines neuen Teils noch einmal den Platzbedarf!

Richtige Anbieter wie Digikey und Mouser verfügen über M.2-Anschlüsse, die übersichtlich nach Schlüssel, Höhe und Montagetyp sortiert sind. Für den Fall, dass Sie, wie ich, beim Einkaufen bei LCSC den Preis über die Bequemlichkeit legen, habe ich vor etwa einem Monat eine kleine Datenbank mit den damals auf Lager befindlichen M.2-Sockeln bei LCSC zusammengestellt, da LCSC so schlecht darin ist, tatsächlich den Überblick zu behalten die wichtigen Parameter. Es gibt sogar einige G-Key-Buchsen für den Fall, dass Ihre Geräte zu verrückt sind, um in die spezifikationsgemäßen Pinbelegungen zu passen!

Ich konnte in der KiCad-Standardbibliothek keine M.2-Sockel-Footprints finden – wenn es Ihnen nichts ausmacht, Footprints auszuleihen, habe ich einige zur Wiederverwendung für Sie. Hier sind Grundrisse für M-, B- und E-Key-Buchsen und hier ist ein Grundriss für „alle M.2-Sockelpads“ – wenn Sie einen G-Key oder einen anderen Sockel-Grundriss benötigen, nehmen Sie diesen und entfernen Sie die Stifte, die Sie nicht benötigen . Dies ist wiederum die standardisierte Grundfläche, auf die die meisten abgewinkelten und flachen Steckdosen passen. Überprüfen Sie jedoch, ob Ihre spezifische Fassung passt.

Bei Karten mit abgewinkeltem Einschub benötigen Sie einen Abstandshalter – andernfalls ist es unwahrscheinlich, dass die Karte mechanisch einrastet, bis Sie sie richtig gedrückt halten. M2-Hardware funktioniert am besten und M2.5 funktioniert zur Not. Wenn die Karte in Ihrem Gehäuse befestigt werden soll, schnappen Sie sich wahrscheinlich ein paar Gewindeeinsätze und sind damit fertig. Wenn Sie Ihre SSD jedoch auf Ihrer Leiterplatte befestigen müssen, benötigen Sie lötbare Abstandshalter – und beim Einkaufen bei LCSC erinnert uns s-ol auf Twitter daran, dass wir sie mit dem Schlüsselwort „smtso“ finden können.

Wie sieht es mit der Montage aus? Ich habe die Erfahrung gemacht, dass Sie unbedingt eine Schablone mit Lötpaste benötigen, da es sich um ziemlich dichte Teile mit einem Abstand von 0,5 mm handelt und eine Heißluftpistole/Heizplatte/Reflow-Ofen am besten funktioniert. Das heißt, mit einer ausreichend dünnen Spitze und vielleicht Vorwärmen können Sie Ihre Platine schablonieren und dann zur Not auch einen Lötkolben verwenden, oder vielleicht dünnes Lötzinn mit einer dünnen Eisenspitze – aber es wird mühsam sein, wenn Sie mehr zusammenbauen möchten zwei oder drei Bretter.

Nach dem Löten kann es immer noch zu Lötbrücken zwischen den Pins kommen. Meiner Erfahrung nach kann man diese Brücken wunderbar entfernen, indem man den Brückenbereich durch eine schmale Heißluftpistolendüse von unten erhitzt, nach dem Schmelzen der Brücke Flussmittel hinzufügt und dann eine scharfe Pinzette verwendet oder eine Nadel, um die Stifte mechanisch zu trennen. Wenn sich der Kurzschluss direkt nach der Trennung verbindet, weil Sie zu viel Lötpaste auf die Pads aufgetragen haben, sollte auch die vorherige Verwendung eines guten alten Lötdochts hilfreich sein.

Für PCIe empfehle ich die Verwendung von M-Key für SSDs, B-Key für WWAN-kompatible Karten und E-Key für WiFi-kompatible Steckplätze. Diese drei Steckplätze können jeweils bis zu 4x, 2x und 1x breite PCIe-Links verarbeiten, aber selbst wenn Sie nur 1x PCIe auf Ihrer CPU haben, können Sie einen dieser drei verwenden und nur die ersten Lane-Pins verbinden – lesen Sie dazu unseren PCIe-Hacking-Artikel Sie möchten mehr wissen. Wenn Sie stattdessen SATA wünschen, ist es auch ziemlich einfach, nur zwei Diffpairs. Dabei können Sie entweder B-Key oder M-Key verwenden, da die überwiegende Mehrheit der SATA-SSDs B+M sind – hier ist eine Platine, auf der ich M-Key für SATA verwendet habe, einfach weil ich mich zu diesem Zeitpunkt mit einigen schönen M eingedeckt hatte -Schlüsselsteckdosen.

Woher bekommt man Pinbelegungen und Symbole? Zunächst einmal gibt es Symbole in der KiCad-Standardbibliothek, zumindest in KiCad 6. Ansonsten können Sie wieder Symbole aus meinem Repo abrufen – ich habe einige für M-Taste, B-Taste, B+M-Taste , A+E-Taste und E-Taste; Diese funktionieren sowohl mit Sockeln als auch mit Karten, da die Grundflächen für Karten das Fehlen der auf den Sockeln vorhandenen Montagepads einfach ignorieren. Wenn diese einschränkend sind und Sie spezifischere benötigen, gibt es immer die zwielichtigen Websites und die im Umlauf befindlichen Spezifikationen, die ich am Ende des letzten Artikels erwähnt habe.

M.2-Karten benötigen nur 3,3 V, verbrauchen aber möglicherweise recht viel Strom. Wenn Sie benutzerdefinierte Karten erstellen, stellt dies kein Problem dar, da Sie wissen, wie viel Ihr Gerät möglicherweise verbraucht. Bei der Wiederverwendung vorhandener SSDs, WLAN- und WWAN-Karten in Ihren Designs kann es allerdings etwas komplexer werden. Der einfachste Weg ist es, aus Laptop-Schaltplänen zu lernen – zusammenfassend lässt sich sagen, dass die Bereitstellung von 1 A – 2 A für WiFi-Karten und 1 A – 3 A für WWAN- und SSD-Karten wahrscheinlich eine gute Idee ist. Außerdem wird in der M.2-Spezifikation erwähnt, dass einige WWAN-Karten möglicherweise für eine Eingangsspannung im Einzelzellen-LiIon-Bereich (3 V–4,2 V) anstelle von 3,3 V ausgelegt sind. Sie werden wahrscheinlich nicht auf solche Karten stoßen und es ist wahrscheinlich, dass darauf geschrieben ist das Etikett oder die erste Seite des Datenblattes, aber es ist trotzdem gut, das zu wissen.

PCIe-Karten erfordern PEST-, CLKREQ- und PEWAKE-Signale. Allerdings wird CLKREQ zum Gating des Takts für Energieverwaltungszwecke verwendet und kann auf der PCIe-Hostseite mit GND verbunden werden – als Beweis dafür leiten die stets reichlich vorhandenen PCIe 1x-Riser, die USB 3-Kabel missbrauchen, nur PEWAKE und weiter PREST. Für W_DISABLE-Signale auf WWAN- und WiFi-Karten möchten Sie möglicherweise Pullups zu VCC hinzufügen – ich glaube, sie sind aktiv niedrig, aber überprüfen Sie es bitte noch einmal. Das DAA/DSS-Signal auf SATA und NVMe ist ein schönes Open-Drain-Signal „Laufwerksaktivität“, das Sie zum Ansteuern einer LED verwenden können. SUSCLK ist ein 32-kHz-Takt, der zum Energiesparen der Karte nützlich, aber in der Praxis nicht erforderlich ist, und DEVSLP ist ein Nur-SATA-Signal im Energiesparmodus. I2C-Signale werden wahrscheinlich nicht nützlich sein, aber es wird nicht schaden, wenn Sie sie an Ihr Ziel anschließen – für alle Fälle über 0R-Widerstände.

Bauen Sie eine höher aktuelle Karte oder eine Karte+Host-Kombination auf? Technisch gesehen sind M.2-Anschlüsse für 0,5 A pro Pin ausgelegt, sodass der M-Key mit seinen neun 3,3-V-Pins maximal 4,5 A ergeben würde – die Empfehlung für M-Key lautet jedoch, 2,5 A nicht zu überschreiten, und das ist es woran Sie sich halten möchten. Falls beide Seiten der Gleichung unter Ihrer Kontrolle stehen und Sie Ihre eigene Pinbelegung erstellen (vorzugsweise mit etwas wie der G-Taste), können Sie sich austoben und so viele Pins mit so vielen unterschiedlichen Spannungen verwenden, wie Sie möchten. Ich wünschte nur, dass Sipeed das bei der Entwicklung von LicheeRV gewusst hätte – anscheinend verwenden sie nur einen M.2-Buchsenstift für die Einspeisung von 5 V in das Baseboard. Ich weiß nicht, ob es ein tatsächliches Problem ist, aber es sieht auf jeden Fall suboptimal aus!

Stehen Sie vor einem ungerechtfertigterweise leeren M.2-Sockel auf dem Mainboard Ihres Laptops? Die Suche nach einer Steckdose wird dank der Standardisierung der Grundrisse kein Problem sein – vor allem, wenn Sie über die Schaltpläne verfügen, in denen oft die Teilenummer des Steckers aufgeführt ist. Das Anlöten des Steckers wäre allerdings kniffliger, da man ihn auf einem bestückten Mainboard nicht exakt schablonieren kann. Ich empfehle Ihnen, zuerst das werkseitig aufgetragene Lot abzuleiten, damit der Stecker bündig auf der Platine aufliegt, dann den Stecker aufzusetzen und mit einem Lötkolben mit dünner Spitze und dünnem Lot die Pads nacheinander anzubringen. Von da an kann es sein, dass einige Energieverwaltungsteile und Signalpassiva, beispielsweise Kondensatoren, unbestückt sind. Ein guter Wert für Kondensatoren der PCIe- oder SATA-Serie liegt bei etwa 220 nF; USB-Signale und Dinge wie PEWAKE/CLKREQ/PERST können mit etwa 0R oder 22 R gebrückt werden, die Energieverwaltung kann normalerweise nur auf 3,3 V gebrückt werden und viele andere Signale sind optional.

Jetzt sind Sie gut gerüstet, um M.2-kompatible Dinge zu erstellen und zu hacken, und kennen einige Orte, an denen es nützlich ist. Das nächste Mal möchte ich Ihnen zeigen, wie man M.2-Karten baut – auch dafür gibt es jede Menge coole Anwendungen!