この記事では主に、組み込みシステムで一般的な 3 つの M.2 インターフェイスについて説明します。
Socket 1 - Key ESocket 2 - Key BSocket 3 - Key M
また、原文の記述は PCI Express M.2 仕様リビジョン 3.0、バージョン 1.2 に基づいています。
01 Socket 1 - Key E
Key E は、Wi-Fi/Bluetooth 拡張カードなどの接続モジュールでよく見られます。元の記事では、このタイプのカードは通常、PCIe および USB を介して接続されると述べました。 SDIO や I2S などの他のバスが使用できるかどうかは、COM がそれをサポートしているかどうかによって異なります。
Pinout Description
| 左 Pin | 左信号 | 右信号 | 右 Pin |
|---|---|---|---|
| 74 | 3.3V | GND | 75 |
| 72 | 3.3V | RESERVED/REFCLKn1 | 73 |
| 70 | UIM_POWER_SRC/GPIO_1/PEWAKE1# | RESERVED/REFCLKp1 | 71 |
| 68 | UIM_POWER_SNK/CLKREQ1# | GND | 69 |
| 66 | UIM_SWP/PERST1# | RESERVED/PERn1 | 67 |
| 64 | RESERVED | RESERVED/PERp1 | 65 |
| 62 | ALERT# (I)(0/1.8 V) | GND | 63 |
| 60 | I2C_CLK (O)(0/1.8 V) | RESERVED/PETn1 | 61 |
| 58 | I2C_DATA (I/O)(0/1.8 V) | RESERVED/PETp1 | 59 |
| 56 | W_DISABLE1# (O)(0/3.3V) | GND | 57 |
| 54 | W_DISABLE2# (O)(0/3.3V) | PEWAKE0# (I/O)(0/3.3V) | 55 |
| 52 | PERST0# (O)(0/3.3V) | CLKREQ0# (I/O)(0/3.3V) | 53 |
| 50 | SUSCLK(32kHz) (O)(0/3.3V) | GND | 51 |
| 48 | COEX_TXD (O)(0/1.8V) | REFCLKn0 | 49 |
| 46 | COEX_RXD (I)(0/1.8V) | REFCLKp0 | 47 |
| 44 | COEX3 (I/O)(0/1.8V) | GND | 45 |
| 42 | VENDOR DEFINED | PERn0 | 43 |
| 40 | VENDOR DEFINED | PERp0 | 41 |
| 38 | VENDOR DEFINED | GND | 39 |
| 36 | UART RTS (O)(0/1.8V) | PETn0 | 37 |
| 34 | UART CTS (I)(0/1.8V) | PETp0 | 35 |
| 32 | UART TXD (O)(0/1.8V) | GND | 33 |
| Key E | Key E | ||
| Key E | Key E | ||
| Key E | Key E | ||
| Key E | SDIO RESET#/TX_BLANKING (O)(0/1.8V) | 23 | |
| 22 | UART RXD (I)(0/1.8V) | SDIO WAKE# (I)(0/1.8V) | 21 |
| 20 | UART WAKE# (I)(0/3.3V) | SDIO DATA3(I/O)(0/1.8V) | 19 |
| 18 | GND | SDIO DATA2(I/O)(0/1.8V) | 17 |
| 16 | LED_2# (I)(OD) | SDIO DATA1(I/O)(0/1.8V) | 15 |
| 14 | PCM_OUT/I2S SD_OUT (O)(0/1.8V) | SDIO DATA0(I/O)(0/1.8V) | 13 |
| 12 | PCM_IN/I2S SD_IN (I)(0/1.8V) | SDIO CMD(I/O)(0/1.8V) | 11 |
| 10 | PCM_SYNC/I2S WS (I/O)(0/1.8V) | SDIO CLK/SYSCLK (O)(0/1.8V) | 9 |
| 8 | PCM_CLK/I2S SCK (I/O)(0/1.8V) | GND | 7 |
| 6 | LED_1# (I)(OD) | USB_D- | 5 |
| 4 | 3.3V | USB_D+ | 3 |
| 2 | 3.3V | GND | 1 |
追加情報
M.2 Socket 1 - Key Eは、Wi-Fi / Bluetooth モジュールなどの接続アプリケーションでよく使用されます。PCIe_TX+/-の AC カップリング コンデンサは COM 側に配置され、PCIe_RX+/-の AC カップリング コンデンサは M.2 拡張カード側に配置されるため、キャリア ボードでこれらの AC カップリング コンデンサを追加する必要はありません。CLKREQ#は、PCIe 基準クロックを有効にするために使用され、PCIe クロック バッファーの出力イネーブル ピンに接続する必要があります。CLKREQ#は M.2 拡張カードによって出力されるローアクティブのオープンドレイン信号であるため、キャリア ボードにプルアップ抵抗が必要です。
02 Socket 2 - Key B
Key B は、SATA、PCIe SSD、または一部の WWAN モジュールで一般的です。このソケットのセットは、CONFIG_0 から CONFIG_3 までの 4 つの構成ピンを特徴としており、これによりシステムはカードが使用することを想定しているホスト インターフェイスを識別できます。
Pinout Description
| 左 Pin | 左信号 | 右信号 | 右 Pin |
|---|---|---|---|
| 74 | 3.3 V/VBAT | CONFIG_2 | 75 |
| 72 | 3.3 V/VBAT | GND | 73 |
| 70 | 3.3 V/VBAT | GND | 71 |
| 68 | SUSCLK(32kHz) (O)(0/3.3V) | CONFIG_1 | 69 |
| 66 | SIM DETECT (O) | RESET# (O)(0/1.8V) | 67 |
| 64 | COEX_RXD (I)(0/1.8V) | ANTCTL3 (I)(0/1.8V) | 65 |
| 62 | COEX_TXD (O)(0/1.8V) | ANTCTL2 (I)(0/1.8V) | 63 |
| 60 | COEX3 (I/O)(0/1.8V) | ANTCTL1 (I)(0/1.8V) | 61 |
| 58 | NC | ANTCTL0 (I)(0/1.8V) | 59 |
| 56 | NC | GND | 57 |
| 54 | PEWAKE# (I/O)(0/3.3V) | REFCLKp | 55 |
| 52 | CLKREQ# (I/O)(0/3.3V) | REFCLKn | 53 |
| 50 | PERST# (O)(0/3.3V) | GND | 51 |
| 48 | GPIO_4 (I/O)(0/1.8V) | PETp0/SATA-A+ | 49 |
| 46 | GPIO_3 (I/O)(0/1.8V) | PETn0/SATA-A- | 47 |
| 44 | GPIO_2 (I/O)/ALERT# (I)/(0/1.8V) | GND | 45 |
| 42 | GPIO_1 (I/O)/SMB_DATA (I/O)/(0/1.8V) | PERp0/SATA-B- | 43 |
| 40 | GPIO_0 (I/O)/SMB_CLK (I/O)/(0/1.8V) | PERn0/SATA-B+ | 41 |
| 38 | DEVSLP (O) | GND | 39 |
| 36 | UIM-PWR (I) | PETp1/USB3.1-Tx+/SSIC-TxP | 37 |
| 34 | UIM-DATA (I/O) | PETn1/USB3.1-Tx-/SSIC-TxN | 35 |
| 32 | UIM-CLK (I) | GND | 33 |
| 30 | UIM-RESET (I) | PERp1/USB3.1-Rx+/SSIC-RxP | 31 |
| 28 | GPIO_8 (I/O) (0/1.8V) | PERn1/USB3.1-Rx-/SSIC-RxN | 29 |
| 26 | GPIO_10 (I/O) (0/1.8V) | GND | 27 |
| 24 | GPIO_7 (I/O) (0/1.8V) | DPR (O) (0/1.8V) | 25 |
| 22 | GPIO_6 (I/O)(0/1.8V) | GPIO_11 (I/O) (0/1.8V) | 23 |
| 20 | GPIO_5 (I/O)(0/1.8V) | CONFIG_0 | 21 |
| Key B | Key B | ||
| Key B | Key B | ||
| Key B | Key B | ||
| Key B | GND | 11 | |
| 10 | GPIO_9/DAS/DSS (I/O)/LED_1# (I)(0/3.3V) | USB_D- | 9 |
| 8 | W_DISABLE1# (O)(0/3.3V) | USB_D+ | 7 |
| 6 | FULL_CARD_POWER_OFF# (O)(0/1.8V or 3.3V) | GND | 5 |
| 4 | 3.3 V | GND | 3 |
| 2 | 3.3 V | CONFIG_3 | 1 |
Host Interface Configuration
元の記事では、システムは現在のカードで選択されているピン配置/ホスト インターフェイスを識別するために 4 つの CONFIG_X ピンを読み取る必要があると指摘しています。 M.2 カードの電源が入っていない場合でも、システムはこれらの設定ピンを適切な電源にプルアップして、ステータスを読み取ることができるようにする必要があります。
| 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 |
注: Port Configuration のさまざまな詳細については、元の記事で PCI Express M.2 仕様を確認することが推奨されています。
追加情報
Socket 2 - Key Bは、一般的に、PCIeまたはSATAタイプのストレージ デバイスの接続に使用されます。CONFIG_1を使用してホスト インターフェイスを切り替えることができます。CONFIG_1 = Lowの場合、SATAを有効にするCONFIG_1 = Highの場合、PCIeを有効にする- 2 番目の PCIe レーンは、Intel Optane などの
PCIe x2デバイスをサポートできます。実際にx2を実行するには、ホスト側の PCIe レーンもPCIe x2 linkとして構成する必要があります。 PCIeモードが有効な場合、CONFIG_1は M.2 拡張カードに接続されないため、キャリア ボードにプルアップ抵抗を追加する必要があります。- この M.2 ソケットが
SATAストレージ デバイスに接続されている場合は、Pin 43をSATA Rx差動ペアのマイナス端に接続する必要があります。 - この M.2 ソケットが
PCIeストレージ デバイスに接続されている場合は、Pin 43をPCIe Rx差動ペアの正端に接続する必要があります。
03 Socket 3 - Key M
Key M は、PCIe または SATA タイプのストレージ デバイス、特に高帯域幅 SSD の接続に非常に一般的に使用されます。 Key Bと同様にホストインターフェースを選択する信号もありますが、PEDETに変更されています。
Pinout Description
| 左 Pin | 左信号 | 右信号 | 右 Pin |
|---|---|---|---|
| 74 | 3.3 V | GND | 75 |
| 72 | 3.3 V | GND | 73 |
| 70 | 3.3 V | GND | 71 |
| 68 | SUSCLK (O)(0/3.3V) | PEDET | 69 |
| Key M | NC | 67 | |
| Key M | Key M | ||
| Key M | Key M | ||
| Key M | Key M | ||
| Key M | Key M | ||
| 58 | NC | GND | 57 |
| 56 | NC | REFCLKp | 55 |
| 54 | PEWAKE# (I/O)(0/3.3V) or NC | REFCLKn | 53 |
| 52 | CLKREQ# (I/O)(0/3.3V) or NC | GND | 51 |
| 50 | PERST# (O)(0/3.3V) or NC | PETp0/SATA-A+ | 49 |
| 48 | NC | PETn0/SATA-A- | 47 |
| 46 | NC | GND | 45 |
| 44 | ALERT# (I) (0/1.8V) | PERp0/SATA-B- | 43 |
| 42 | SMB_DATA (I/O) (0/1.8V) | PERn0/SATA-B+ | 41 |
| 40 | SMB_CLK (I/O)(0/1.8V) | GND | 39 |
| 38 | DEVSLP (O) | PETp1 | 37 |
| 36 | NC | PETn1 | 35 |
| 34 | NC | GND | 33 |
| 32 | NC | PERp1 | 31 |
| 30 | NC | PERn1 | 29 |
| 28 | NC | GND | 27 |
| 26 | NC | PETp2 | 25 |
| 24 | NC | PETn2 | 23 |
| 22 | NC | GND | 21 |
| 20 | NC | PERp2 | 19 |
| 18 | 3.3 V | PERn2 | 17 |
| 16 | 3.3 V | GND | 15 |
| 14 | 3.3 V | PETp3 | 13 |
| 12 | 3.3 V | PETn3 | 11 |
| 10 | DAS/DSS (I/O)/LED_1# (I)(0/3.3V) | GND | 9 |
| 8 | NC | PERp3 | 7 |
| 6 | NC | PERn3 | 5 |
| 4 | 3.3 V | GND | 3 |
| 2 | 3.3 V | GND | 1 |
追加情報
Socket 3 - Key Mは、一般的に、PCIeまたはSATAタイプのストレージ デバイスの接続に使用されます。PEDETはホスト インターフェイスの選択に使用され、M.2 カードはさまざまな接続方法を使用してモードを示します。PEDET = Lowは、SATAを有効にすることを意味します。つまり、M.2 カードはPEDETをGNDに接続します。PEDET = Highは、PCIeを有効にすることを意味します。つまり、PEDETは M.2 カードに接続されていません。- 帯域幅を最大にするには、4 つの PCIe レーンを
x4 linkとして構成する必要があります。 PCIeモードが有効な場合、M.2 拡張カードはPEDETに接続されないため、キャリア ボードにプルアップ抵抗を追加する必要があります。- このソケットが
SATAストレージ デバイスに接続されている場合は、Pin 43をSATA Rx差動ペアのマイナス端に接続する必要があります。 - このソケットが
PCIeストレージ デバイスに接続されている場合は、Pin 43をPCIe Rx差動ペアの正端に接続する必要があります。
04 素早い整理整頓
この記事の重要なポイントをすぐに覚えておきたい場合は、まず次の内容を理解してください。
Key Eは主に Wi-Fi/Bluetooth などの接続モジュールを好みます。Key Bは SATA / PCIe SSD で一般的であり、WWAN クラス モジュールにも表示される場合があります。Key Mは主に高帯域幅ストレージに使用され、PCIe SSD でよく見られます。Key Bは、CONFIG_0 ~ CONFIG_3を介してインターフェイス構成を識別します。Key Mは、PEDETによってSATAまたはPCIeを識別します。CLKREQ#、CONFIG_1、PEDETなどの信号では、キャリア ボードが一部のモードでプルアップを提供する必要があります。
将来的にキャリアボードやソケットのドッキング設計を行う場合は、この記事を元の情報および PCI Express M.2 仕様、特に Port Configuration、PCIe レーン構成、SATA/PCIe 共有ピンの部分と比較することをお勧めします。