M.2 Key E, Key B, and Key M Pinout Notes

A concise summary of M.2 pinout documentation, preserving the Pinout Description tables for Key E, Key B, and Key M sockets, with English notes added.

This article mainly covers three M.2 interfaces that are very common in embedded systems:

  • Socket 1 - Key E
  • Socket 2 - Key B
  • Socket 3 - Key M

The original document is based on PCI Express M.2 Specification Revision 3.0, Version 1.2.

01 Socket 1 - Key E

Key E is commonly used for connectivity modules such as Wi-Fi / Bluetooth expansion cards. The original text notes that these cards usually connect over PCIe and USB, while support for other buses such as SDIO and I2S depends on whether the COM supports them.

Pinout Description

Left Pin Left Signal Right Signal Right Pin
743.3VGND75
723.3VRESERVED/REFCLKn173
70UIM_POWER_SRC/GPIO_1/PEWAKE1#RESERVED/REFCLKp171
68UIM_POWER_SNK/CLKREQ1#GND69
66UIM_SWP/PERST1#RESERVED/PERn167
64RESERVEDRESERVED/PERp165
62ALERT# (I)(0/1.8 V)GND63
60I2C_CLK (O)(0/1.8 V)RESERVED/PETn161
58I2C_DATA (I/O)(0/1.8 V)RESERVED/PETp159
56W_DISABLE1# (O)(0/3.3V)GND57
54W_DISABLE2# (O)(0/3.3V)PEWAKE0# (I/O)(0/3.3V)55
52PERST0# (O)(0/3.3V)CLKREQ0# (I/O)(0/3.3V)53
50SUSCLK(32kHz) (O)(0/3.3V)GND51
48COEX_TXD (O)(0/1.8V)REFCLKn049
46COEX_RXD (I)(0/1.8V)REFCLKp047
44COEX3 (I/O)(0/1.8V)GND45
42VENDOR DEFINEDPERn043
40VENDOR DEFINEDPERp041
38VENDOR DEFINEDGND39
36UART RTS (O)(0/1.8V)PETn037
34UART CTS (I)(0/1.8V)PETp035
32UART TXD (O)(0/1.8V)GND33
Key EKey E
Key EKey E
Key EKey E
Key ESDIO RESET#/TX_BLANKING (O)(0/1.8V)23
22UART RXD (I)(0/1.8V)SDIO WAKE# (I)(0/1.8V)21
20UART WAKE# (I)(0/3.3V)SDIO DATA3(I/O)(0/1.8V)19
18GNDSDIO DATA2(I/O)(0/1.8V)17
16LED_2# (I)(OD)SDIO DATA1(I/O)(0/1.8V)15
14PCM_OUT/I2S SD_OUT (O)(0/1.8V)SDIO DATA0(I/O)(0/1.8V)13
12PCM_IN/I2S SD_IN (I)(0/1.8V)SDIO CMD(I/O)(0/1.8V)11
10PCM_SYNC/I2S WS (I/O)(0/1.8V)SDIO CLK/SYSCLK (O)(0/1.8V)9
8PCM_CLK/I2S SCK (I/O)(0/1.8V)GND7
6LED_1# (I)(OD)USB_D-5
43.3VUSB_D+3
23.3VGND1

Notes

  • M.2 Socket 1 - Key E is commonly used for connectivity applications such as Wi-Fi / Bluetooth modules.
  • The AC coupling capacitors for PCIe_TX+/- are placed on the COM side, while the AC coupling capacitors for PCIe_RX+/- are placed on the M.2 add-in card side, so the carrier board does not need to add those AC coupling capacitors again.
  • CLKREQ# is used to enable the PCIe reference clock and should be connected to the output enable pin of the PCIe clock buffer.
  • Since CLKREQ# is an active-low open-drain signal driven by the M.2 add-in card, the carrier board side needs a pull-up resistor.

02 Socket 2 - Key B

Key B is common on SATA and PCIe SSDs, as well as some WWAN modules. One key feature of this socket is the set of four configuration pins, CONFIG_0 through CONFIG_3, which let the system identify which host interface the card expects to use.

Pinout Description

Left Pin Left Signal Right Signal Right Pin
743.3 V/VBATCONFIG_275
723.3 V/VBATGND73
703.3 V/VBATGND71
68SUSCLK(32kHz) (O)(0/3.3V)CONFIG_169
66SIM DETECT (O)RESET# (O)(0/1.8V)67
64COEX_RXD (I)(0/1.8V)ANTCTL3 (I)(0/1.8V)65
62COEX_TXD (O)(0/1.8V)ANTCTL2 (I)(0/1.8V)63
60COEX3 (I/O)(0/1.8V)ANTCTL1 (I)(0/1.8V)61
58NCANTCTL0 (I)(0/1.8V)59
56NCGND57
54PEWAKE# (I/O)(0/3.3V)REFCLKp55
52CLKREQ# (I/O)(0/3.3V)REFCLKn53
50PERST# (O)(0/3.3V)GND51
48GPIO_4 (I/O)(0/1.8V)PETp0/SATA-A+49
46GPIO_3 (I/O)(0/1.8V)PETn0/SATA-A-47
44GPIO_2 (I/O)/ALERT# (I)/(0/1.8V)GND45
42GPIO_1 (I/O)/SMB_DATA (I/O)/(0/1.8V)PERp0/SATA-B-43
40GPIO_0 (I/O)/SMB_CLK (I/O)/(0/1.8V)PERn0/SATA-B+41
38DEVSLP (O)GND39
36UIM-PWR (I)PETp1/USB3.1-Tx+/SSIC-TxP37
34UIM-DATA (I/O)PETn1/USB3.1-Tx-/SSIC-TxN35
32UIM-CLK (I)GND33
30UIM-RESET (I)PERp1/USB3.1-Rx+/SSIC-RxP31
28GPIO_8 (I/O) (0/1.8V)PERn1/USB3.1-Rx-/SSIC-RxN29
26GPIO_10 (I/O) (0/1.8V)GND27
24GPIO_7 (I/O) (0/1.8V)DPR (O) (0/1.8V)25
22GPIO_6 (I/O)(0/1.8V)GPIO_11 (I/O) (0/1.8V)23
20GPIO_5 (I/O)(0/1.8V)CONFIG_021
Key BKey B
Key BKey B
Key BKey B
Key BGND11
10GPIO_9/DAS/DSS (I/O)/LED_1# (I)(0/3.3V)USB_D-9
8W_DISABLE1# (O)(0/3.3V)USB_D+7
6FULL_CARD_POWER_OFF# (O)(0/1.8V or 3.3V)GND5
43.3 VGND3
23.3 VCONFIG_31

Host Interface Configuration

The original text explains that the system should read the four CONFIG_X pins to determine the selected pinout / host interface for the installed card. Even when the M.2 card is not powered yet, the system should still pull these configuration pins up to the appropriate rail so their state can be read.

CONFIG_0 (Pin 21) CONFIG_1 (Pin 69) CONFIG_2 (Pin 75) CONFIG_3 (Pin 1) Host Interface
0 0 0 0 SSD - SATA
0 1 0 0 SSD - PCIe
0 0 1 0 WWAN - PCIe (Port Configuration 0*)
0 1 1 0 WWAN - PCIe (Port Configuration 1*)
0 0 0 1 WWAN - PCIe, USB3.1 Gen1 (Port Configuration 0*)
0 1 0 1 WWAN - PCIe, USB3.1 Gen1 (Port Configuration 1*)
0 0 1 1 WWAN - PCIe, USB3.1 Gen1 (Port Configuration 2*)
0 1 1 1 WWAN - PCIe, USB3.1 Gen1 (Port Configuration 3*)
1 0 0 0 WWAN - SSIC (Port Configuration 0*)
1 1 0 0 WWAN - SSIC (Port Configuration 1*)
1 0 1 0 WWAN - SSIC (Port Configuration 2*)
1 1 1 0 WWAN - SSIC (Port Configuration 3*)
1 0 0 1 WWAN - PCIe (Port Configuration 2*)
1 1 0 1 WWAN - PCIe (Port Configuration 3*)
1 0 1 1 WWAN - PCIe, USB3.1 Gen1 (vendor defined)
1 1 1 1 No Add-in Card Present

Note: for the details of each Port Configuration, the original text suggests referring back to the PCI Express M.2 Specification.

Notes

  • Socket 2 - Key B is commonly used for PCIe or SATA storage devices.
  • CONFIG_1 can be used to switch the host interface:
  • CONFIG_1 = Low enables SATA
  • CONFIG_1 = High enables PCIe
  • The second PCIe lane can support PCIe x2 devices such as Intel Optane. To actually run at x2, the host PCIe lanes must also be configured as a PCIe x2 link.
  • When PCIe mode is enabled, the M.2 add-in card does not connect CONFIG_1, so the carrier board side needs a pull-up resistor.
  • If this M.2 socket is used with a SATA storage device, Pin 43 should connect to the negative side of the SATA Rx differential pair.
  • If this M.2 socket is used with a PCIe storage device, Pin 43 should connect to the positive side of the PCIe Rx differential pair.

03 Socket 3 - Key M

Key M is commonly used for PCIe or SATA storage devices, especially higher-bandwidth SSDs. Similar to Key B, it also has a signal used to select the host interface, but here that signal is PEDET.

Pinout Description

Left Pin Left Signal Right Signal Right Pin
743.3 VGND75
723.3 VGND73
703.3 VGND71
68SUSCLK (O)(0/3.3V)PEDET69
Key MNC67
Key MKey M
Key MKey M
Key MKey M
Key MKey M
58NCGND57
56NCREFCLKp55
54PEWAKE# (I/O)(0/3.3V) or NCREFCLKn53
52CLKREQ# (I/O)(0/3.3V) or NCGND51
50PERST# (O)(0/3.3V) or NCPETp0/SATA-A+49
48NCPETn0/SATA-A-47
46NCGND45
44ALERT# (I) (0/1.8V)PERp0/SATA-B-43
42SMB_DATA (I/O) (0/1.8V)PERn0/SATA-B+41
40SMB_CLK (I/O)(0/1.8V)GND39
38DEVSLP (O)PETp137
36NCPETn135
34NCGND33
32NCPERp131
30NCPERn129
28NCGND27
26NCPETp225
24NCPETn223
22NCGND21
20NCPERp219
183.3 VPERn217
163.3 VGND15
143.3 VPETp313
123.3 VPETn311
10DAS/DSS (I/O)/LED_1# (I)(0/3.3V)GND9
8NCPERp37
6NCPERn35
43.3 VGND3
23.3 VGND1

Notes

  • Socket 3 - Key M is commonly used for PCIe or SATA storage devices.
  • PEDET is used to select the host interface, and the M.2 card indicates the mode by how it is wired:
  • PEDET = Low means SATA is enabled, which is done by connecting PEDET to GND on the M.2 card
  • PEDET = High means PCIe is enabled, which is done by leaving PEDET unconnected on the M.2 card
  • For maximum bandwidth, all four PCIe lanes should be configured as an x4 link.
  • When PCIe mode is enabled, the M.2 add-in card does not connect PEDET, so the carrier board side needs a pull-up resistor.
  • If this socket is used with a SATA storage device, Pin 43 should connect to the negative side of the SATA Rx differential pair.
  • If this socket is used with a PCIe storage device, Pin 43 should connect to the positive side of the PCIe Rx differential pair.

04 Quick Summary

If you only want the quickest takeaways from this article, these are the main points:

  • Key E is mainly aimed at connectivity modules such as Wi-Fi / Bluetooth.
  • Key B is common on SATA / PCIe SSDs and can also appear on WWAN modules.
  • Key M is mainly used for higher-bandwidth storage, especially PCIe SSDs.
  • Key B uses CONFIG_0 ~ CONFIG_3 to identify the interface configuration.
  • Key M uses PEDET to distinguish between SATA and PCIe.
  • Signals such as CLKREQ#, CONFIG_1, and PEDET need pull-ups on the carrier board in some modes.

If you plan to design a carrier board or a socket interface around these definitions, it is still a good idea to compare this summary with the original source and the PCI Express M.2 specification, especially for Port Configuration, PCIe lane mapping, and pins shared between SATA and PCIe.

References

记录并分享
Built with Hugo
Theme Stack designed by Jimmy