M.2 pour les pirates
La dernière fois, j'ai expliqué tout ce que vous voudriez savoir si vous vouliez mettre une prise M.2 sur votre carte. Aujourd'hui, construisons des cartes M.2 ! Il existe une myriade de prises M.2 qui demandent simplement qu'une carte spéciale y soit insérée, et peut-être que ce sera votre création qui conviendra.
Les ordinateurs portables et autres cartes mères x86 sont souvent équipés d'emplacements M.2. Avez-vous un emplacement libre pour la clé B ? Vous pouvez mettre un RP2040 et un tas de capteurs sur un PCB B-key en tant que plate-forme expérimentale transportée en toute sécurité à l'intérieur de votre ordinateur portable. Aimeriez-vous faire des expériences FPGA plus avancées ? Voici une minuscule carte FPGA qui s'intègre dans votre ordinateur portable et vous permet de jouer avec PCIe sur ce même ordinateur portable - l'ensemble de la configuration ayant un encombrement extrêmement faible. Vous recherchez une liaison PCIe supplémentaire car vous réutilisez votre ordinateur portable comme serveur domestique ? Encore une fois, votre emplacement WiFi vous fournira cela. Vous voulez sortir du PCIe d'un SteamDeck ? Construire une carte M-key 2230 semble être votre seul espoir !
Il y a aussi beaucoup d'espace pour des appareils plus simples et moins actifs. Avez-vous seulement un emplacement de clé M de rechange, peut-être un emplacement de clé A ou E ? Vous pouvez remplacer votre adaptateur WiFi par un SSD supplémentaire pour un stockage supplémentaire, ou peut-être, à l'inverse, mettre une deuxième carte WiFi dans votre deuxième emplacement SSD pour tous vos besoins de gardiennage ! Vous venez de trouver des traces de ports SATA inutilisés sur votre carte mère ? Vous pouvez faire ce que j'ai fait et créer une carte M.2 à double port qui sépare une autre prise SSD de votre rail d'alimentation, sur laquelle vous pouvez câbler ce port SATA supplémentaire et y insérer un SSD SATA M.2. découvrez que votre chipset peut vous fournir quatre ports SATA entiers sur le slot SSD M-key ? Vous pouvez faire ce que mon ami a fait et construire une carte qui brise ces ports SATA !
Même en dehors de x86, un certain nombre de SBC ARM auront les mêmes problèmes - ils ont une prise M.2 avec une clé spécifique, disons, B, qui ne convient pas à une extension M.2 que vous venez d'acheter - eh bien, il s'avère que vous pouvez simplement faire un adaptateur par vous-même. Et si vous alliez au-delà de la norme ? Bien sûr, il y a l'écosystème SparkFun MicroMod que j'ai mentionné précédemment. Souhaitez-vous développer une carte CPU MicroMod qui fonctionne avec une myriade d'autres appareils, ou peut-être votre propre capteur MicroMod ? C'est une carte M.2 juste là ; et si vous avez besoin de créer votre propre écosystème en utilisant M.2, personne ne vous arrête non plus.
Bien sûr, vous pouvez concevoir des cartes avec des types de valeur ajoutée totalement différents. Par exemple, vous pourriez extraire de l'argent des audiophiles en concevant des SSD "de qualité audio" hors de prix avec des condensateurs électrolytiques sophistiqués - ne voudriez-vous pas laisser tout ce placage à l'or sous-estimé, n'est-ce pas ? Et, si vous êtes un fabricant de SBC utilisant une prise M.2 pour votre emplacement d'extension, lorsque les acheteurs disent qu'ils veulent utiliser votre SBC comme routeur, personne ne peut vous empêcher de concevoir une carte absolument farfelue et gigantesque avec quatre prises Ethernet sur il.
Les cartes M.2 sont de tailles standardisées - 3042 pour 30 mm de large et 42 mm de haut, 2260 pour 22 mm de large et 60 mm de haut ; chose pratique, ce seront les dimensions exactes de votre PCB. L'encoche de vis est centrée contrairement aux cartes mPCIe, et est généralement une seule vis M.2. Vous verrez des gens dire que la vis est responsable d'avoir une connexion à la terre - ce n'est pas le cas, même si cela peut y ressembler, les broches de terre sur la prise elle-même suffisent, bien que les chemins de terre supplémentaires aient tendance à être agréables. En fait, il n'est pas non plus nécessaire que la zone de l'encoche expose le cuivre, il peut s'agir simplement d'une découpe de circuit imprimé.
Si vous concevez une carte pour un appareil existant, elle aura une longueur de 42 mm ou 80 mm. 30 mm est rare en dehors du SteamDeck et d'autres appareils à faible encombrement, et 60 mm est super obscur. 22 mm est une largeur pour tout sauf pour les emplacements WWAN, ceux-ci sont généralement conçus avec une largeur de carte de 30 mm à l'esprit. Il n'est pas nécessaire de placer tous les composants sur un seul côté de la carte, même si, bien sûr, cela vous facilitera l'assemblage. Gardez à l'esprit, cependant, que certains appareils utilisent une prise plate ou à montage intermédiaire, et que les composants hauts en bas peuvent devenir un problème auquel vous ne vous attendiez pas.
M.2 nécessite un PCB de 0,8 mm. Vous n'avez pas besoin de l'ENIG, mais je le recommande. Je crois comprendre que le revêtement de soudure réalisé avec HASL s'oxyderait plus rapidement et aggraverait le contact avec les prises de carte - cela dit, je n'ai jamais essayé d'utiliser HASL. Je suis certain que HASL fonctionnerait assez bien pour les prototypes à court terme, cependant ! Vous pourriez penser que le traitement des doigts d'or est un must, que ce soit avec de l'or plus épais sur les coussinets ou un bord biseauté de la carte - d'après mon expérience, aucun des deux n'est nécessaire, mais un or plus épais augmentera les cycles de branchement et de débranchement et un bord biseauté fera de la carte un peu plus facile à insérer. Personnellement, je suis toujours allé avec ENIG régulier non biseauté et j'ai eu une excellente expérience.
Bien sûr, vous voudrez une empreinte de bord de carte dans KiCad. J'ai personnellement utilisé un plugin générateur d'empreinte de carte KiCad M.2, initialement créé par @STOP-Pi sur GitHub et refactorisé par moi. Cependant, l'auteur a supprimé son compte GitHub à un moment donné, et le plugin ne se charge plus sur KiCad6 - toutes les empreintes générées ont été réalisées dans KiCad5. Le pire, c'est qu'entre mes modifications et le moment de la suppression, ils ont même mis à jour le code du plug-in - et il se peut que j'ai raté leurs engagements de compatibilité KiCad 6 avant la suppression. Welp, les demandes de tirage sont les bienvenues ! En attendant, voici les bords de carte A, B, E, M, A+E et B+M pré-générés que vous pouvez déjà utiliser, et [timonsku] a également créé une bibliothèque Eagle que vous devriez pouvoir facilement convertir en KiCad.
Vous vous demandez peut-être si vous auriez besoin d'un PCB à quatre couches, surtout si vous voulez faire du PCIe - avec quatre couches, une adaptation d'impédance de 90 ohms est réellement réalisable, tandis qu'une distance de 0,8 mm à la terre sur deux couches la rend irréaliste. Voici mon expérience - je fais de petits adaptateurs PCIe depuis un certain temps maintenant, et ils ont assez bien fonctionné sur 2 couches, ce qui est une exigence pour mon flux de travail de prototypage spécifique. En règle générale, les cartes M.2 représentent une distance très courte proportionnellement à la longueur de l'ensemble de la liaison PCIe que vous aurez, et les déviations n'empêcheront probablement pas la liaison PCIe de fonctionner - ce sont des distances plus longues qui pourraient vous poser des problèmes jusqu'à ce que vous améliorez votre câblage. Je ne serais pas surpris de voir un taux d'erreur plus élevé ou que le lien soit rétrogradé à une génération inférieure pendant la formation, mais je parie que votre PCIe fonctionnera.
Besoin de coller avec deux couches? Faites autant d'adaptation d'impédance que vous pouvez gérer, traitez vos paires différentielles avec respect et vos prototypes fonctionneront bien - après tout, il a été dit que PCIe fonctionne sur une chaîne humide, et nous avons été témoins de confirmations les unes après les autres. Mes diffpairs sont généralement de 0,35 mm / 0,15 mm, ce qui se situe dans les limites du processus bon marché à 2 couches et se traduit par une impédance d'environ 130 ohms, ce qui est imparfait mais mieux que rien. Pour des choses comme PCIe et SATA, M.2 conserve généralement tous les diffpairs à haute vitesse sur le dessus de la carte, et cela seul aide beaucoup avec des aspects comme une couche de masse ininterrompue sous vos paires. Si votre flux de travail et votre budget permettent quatre couches, allez-y !
Ajoutez un plan d'interdiction de plan de remplissage au sol sur la zone où vont les doigts dorés - sinon, vous risquez de court-circuiter un tas de broches importantes côté hôte lors de l'insertion de la carte. La norme suggère également un plan d'exclusion sur les couches internes sous les doigts, alors gardez cela à l'esprit si vous passez à quatre couches ou au-delà.
Lors du pochoir, assurez-vous que la pâte à souder ne pénètre pas sur les doigts de la carte M.2 - nettoyez-les bien avant la refusion si c'est le cas, car il est beaucoup plus pénible de les obtenir sans soudure après. Les circuits imprimés de 0,8 mm sont minces, et si vous décidez de les aérer à chaud, fixez-les de manière à ne pas les stresser - j'ai eu quelques cartes M.2 conçues par moi-même lorsqu'elles sont maintenues dans un étau et sablées avec un pistolet à air chaud qui, peut-être, était un peu en dehors de son calibrage.
En termes de puissance, vous n'obtenez que 3,3 V, à un ampli ou deux. C'est à la fois une bénédiction et une malédiction - c'est beaucoup de puissance, et vous n'avez généralement pas besoin de régulation supplémentaire car la majorité des puces sont d'accord avec 3,3 V, mais il y a encore de bonnes utilisations pour 5 V. Les fabricants qui ont besoin d'obtenir 5 V sur une carte M.2, ont tendance à recourir à des solutions maudites - voici l'histoire d'un adaptateur Dell créant une prise HDD 2,5 "à partir de M.2, qui redéfinit l'une des broches GND en tant que broche de détection de carte propriétaire et envoie 5 V à un groupe de broches autrement réservées si cette broche n'est pas connectée à GND.
Vous concevez une carte pour un appareil existant et vous attendez une certaine interface ? Assurez-vous qu'il est bien là - comme je l'ai mentionné, vous pouvez vous attendre à PCIe sur les prises A, E et M, et à l'USB 2.0 sur les prises A, E et B, tout le reste n'est pas acquis. si Internet ne vous aide pas ici, la recherche de traces provenant de la prise peut fonctionner, mais n'est pas toujours infaillible car les signaux peuvent passer par des vias sous la prise. Cela dit, si vous pouvez repérer des traces ou des condensateurs en série diffpair, ce sera une bonne indication - ou peut-être utiliser un multimètre pour un test de diode interne IC sur USB2 ou des signaux asymétriques comme PREST / PEWAKE / CLKREQ serait dans l'ordre. Après tout, de nombreux ordinateurs portables ont des emplacements pour clé B qui n'ont que l'USB 3.0 (ThinkPad T460s), ou même uniquement l'USB 2.0 (ThinkPad T470S), bien que SATA et PCIe soient généralement disponibles.
Ceci conclut la série "M.2 For Hackers". Certaines choses à propos de M.2 peuvent sembler étranges lorsque vous le voyez pour la première fois, mais j'espère pouvoir clarifier ce qui se passe et comment vous pouvez participer à l'action. L'écosystème M.2 ne va pas disparaître de sitôt, et cela aide si nous savons comment le plier à notre volonté là où c'est nécessaire !