11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【自作基板 / JLCPCB】SPI / SDIO両対応 microSDカードピッチ変換基板の製作

電子工作の定番アイテム、SDカードモジュール。
ログの保存や設定ファイルの読み込みなど、ちょっとしたデータを扱う場面では欠かせない存在ですよね。

私もいくつか手元に持っているのですが、市販されているSDカードモジュールの多くは、ArduinoやESP32といったマイコンで手軽に使えるよう「SPI接続」を前提に設計されているものがほとんどです。

安価に入手できるこれらのモジュールは、5V系マイコンでも扱えるように3.3Vレギュレータやレベル変換回路、プルアップ抵抗などが内蔵されており、そのまま使える手軽さはとても便利です!

多くの市販モジュールは、SDIO接続に必要なデータ線(DAT1, DAT2)が基板上で引き出されておらず、回路自体がSPI専用に固定されているものが多いようです。

SPIでも読み書き自体はできますが、例えばサンプリング速度を上げた音楽や動画データの再生、またSDカードコントローラーへの接続といったSDIO接続用途では使えません!

SDIO接続に対応したピッチ変換基板は、市販品ではあまり無いようですね!

秋月電子でシンプルな構成のものが安価で販売されているのを見かけましたが・・・

今後使うことを考えると、端子ラベルが見やすくSPIだけでなくSDIOモードにも対応できる、シンプルで汎用性の高いピッチ変換基板を自作してみることにしました。

SPI / SDIOモードに対応したmicroSDピッチ変換基板の製作

SDカードのSPIモードとSDIOモードについて!

microSDカードには、大きく分けて2つの通信方式(インターフェース)が存在します。

①SPIモード(Serial Peripheral Interface)

Arduinoをはじめとする多くのマイコンで標準的に使われるモードです。

信号線が少なく(MOSI, MISO, SCK, CS)、汎用的なSPIポートがあれば動作するため、導入のハードルが低いのが特徴です。

市販されている多くのSDカードモジュールはこの方式に対応しており、5V環境でも扱えるようにレベル変換ICやレギュレータが搭載されたものが多いと思います。

一方で、通信は1bitずつのシリアル転送となるため、速度面ではやや制限があります。

②SDIOモード(Secure Digital Input Output)

SDカード本来のネイティブな通信モードです。

最大4本のデータ線(DAT0~DAT3)を使ったパラレル転送に対応しており、SPIモードと比べてより高速な通信が可能です。

このSDIOを直接扱うためのハードウェア(SDMMCコントローラ)を内蔵したマイコンでは、CPUの負荷を抑えつつ効率よくデータの読み書きが行えるというメリットもあります。

ただ、使用できるマイコンが限られることや、配線本数が増えることから、SPIに比べるとやや扱いにくい面もあります。

通信モードによるピンの役割の違い

microSDカードには、電源端子を含めて合計8本の接続端子がありますが(UHS-I)、同じ端子でも使用する通信モードによって役割が大きく変わります。

ピン番号SDIOモードSPIモード
Pin1DAT2(データ2)(※未使用)
Pin2DAT3(データ3)CS(チップセレクト)
Pin3CMD(コマンド)MOSI(データ入力)
Pin4VDD(電源3.3V)VDD(電源3.3V)
Pin5CLK(クロック)SCK(クロック)
Pin6VSS(GND)VSS(GND)
Pin7DAT0(データ0)MISO(データ出力)
Pin8DAT1(データ1)(※未使用)

ご覧の通り、SPIモードでは一部の信号線のみを使ってシリアル通信を行うのに対し、SDIOモードでは複数のデータ線を使ったパラレル通信が行われます。

特にPin2やPin3のように、同じ端子がまったく別の役割(CSやMOSI)として使われる点は、配線時に注意が必要なポイントです。

また、SPIモードで未使用となるDAT1・DAT2についても、SDIOモードでは重要なデータ線となるため、将来的にSDIOでの利用を考える場合はこれらの配線も引き出しておく必要があります!

基板設計

今回製作したmicroSDピッチ変換基板の概要です。

SPIまたはSDIOモードでの接続では、物理的なピンは同じでも役割が大きく異なるのは先述の通りです。

どちらのモードで接続する場合でも迷わず配線できるよう、基板上の各ピンにはSPI/SDIO両方の名称を見やすくシルクプリントしました。

SDIOで使いたいのにSPIのピン名しかなくて、ピン配置図を何度も見直す…といった、開発中のちょっとしたストレスを減らすことが出来そうです。

回路構成は、microSDの各ピンをそのままDIPピンへ引き出しただけの、極めてシンプルなものにしました。

SDIOモードの規格上、CMDおよびDAT0~DAT3の各信号線にはプルアップ抵抗を入れることが推奨されていますが(SPIモードのモジュールでも実装されていることが多い部分です)、今回製作した基板では、プルアップ抵抗や市販モジュールによく見られるレベル変換IC、3.3Vレギュレータなどはあえて実装していません。

接続先のマイコンやSDコントローラーチップなどによっては内蔵プルアップで十分な場合や、逆に特定の抵抗値が指定されている場合があるため、あえてこれらを排除し汎用ボードとし、使用環境に応じてブレッドボード上でプルアップ抵抗を追加したり、外付け回路で調整することを前提で考えています。

また、microSDカードソケットには、カードが奥まで挿入されると筐体と接触してGNDに落ちる「検出スイッチ」が内蔵されています。

基板上のDETピンをマイコンのGPIOに接続し、プルアップ(R1)しておくことで、カードが入ると信号が「High → Low」へと変化し、挿入を検知できる仕組みです。

本基板では、V-DETという独立したプルアップ用電源ピンを設け、抵抗R1を介してプルアップする設計にしました。

SDIOの高速モード使用など定電圧ロジック(1.8V)で扱いたい場合、このV-DETに1.8Vを供給すればカード電源(VCC)が3.3Vであっても、検出信号(DET)をマイコン側のロジック電圧でそのまま扱うことが出来ます。

MEMO
R1には用途に合わせて、10kΩ〜100kΩ程度のプルアップ抵抗を実装します。

以上が本ボードの構成となります。

JLCPCBに基板を発注

基板の製造は、今回もJLCPCBを利用しました。

今回製作したmicroSDピッチ変換基板については、ガーバーファイルをダウンロードできるようにしておきます。
何かの参考になれば幸いです。

シンプルなボードということもあり、発注時の設定については特記すべきポイントもなく、一般的な設定で問題ありません。

手はんだでも十分対応可能な構成ですが、今回はステンシルもあわせて発注しました。

JLCPCBのステンシル発注では、サイズを指定しないと結構大きなサイズで届いてしまいます。
そのため作業しやすいように、50mm×50mmでサイズ指定を行い発注しました。

サイズ指定を行うとステンシル料金および送料もお安くなるのでお得です!

microSDカードソケットはピンピッチが細かく端子も密集しているため、手はんだでフラックスを多用すると、構造上どうしても内部に流れ込みやすくなります。

その結果、カード挿入時にベタつきが出たり、接触不良の原因になることもあるため、あまり気持ちの良いものではありません!

ステンシルを使ってあらかじめ適量のはんだペーストを塗布し、リフローで一気に実装してしまうことで、こういったトラブルを避けつつ仕上がりも綺麗にまとめることができます。(経験談です)

JLCPCBへの基本的な基板発注方法については、以前の記事で詳しくまとめています。
あわせて見て頂ければと思います。

【電子工作 / 基板製作】これから始める自作基板。JLCPCBでの基板発注ガイド(2025年版)

パーツの実装

配送方法にOCS Expressを選択し、発注から8日で手元に基板が届きました。

実装するパーツ点数は少なく、それほど難しいものではないのでサクッと完成させます!

ステンシルも一緒に発注していたので、はんだペーストを塗布してミニリフロー装置MHP50を使って実装しました。

【電子工作 / PCB】ミニリフロー装置『Miniware MHP50』を使ってみる!加熱性能や安全設計はMHP30から全て引き継がれ使い勝手がさらに向上した便利なリフロー装置です

最後にピンヘッダーを取り付けます。

基板が少し長細いので、ブレッドボードに差し込み、さらにダミーピンを入れて基板を水平に保った状態ではんだ付けするとやりやすいと思います。

ブレッドボードへの固定でガタつき等が気になる場合は、ダミーピン自体もはんだ付けして使用するのもいいかと思います。

以上、ボードの完成です!

フラッシュカードリーダー用コントローラチップとSDIO接続して動作確認を行ってみました。
問題ないようですね!

使用パーツ

本ボードに使用したパーツの一覧です。

パーツ定数入手先
コンデンサ
(0603)
C1 10μF
C2 100nF
AliExpress
抵抗
(0603)
R1 10kΩAliExpress
microSDスロットJ1 THD-2528-11SD-GFAliExpress
その他ピンヘッダーーーー

【追記】自作SDカードリーダーを製作してみました

SDIO接続で使えるピッチ変換基板を今回製作したので、カードリーダーコントローラーと組み合わせてブレッドボードでテストしていたものを、自作SDカードリーダーとして基板化してみました。(後日別記事で詳しくまとめたいと思います)

【追記】microSD変換アダプタを使う方法も!

SNSでコメントを頂きましたが、手軽な方法としてmicroSD変換アダプタに直接ピンヘッダーを取り付けるという方法も面白いですね!

このような変換アダプタは、カードに付属しているものなど手元にあることが多いと思います。

microSDとSDでは若干ピンアウトが異なってきますが…

ピン番号SDmicroSD
1DAT3DAT2
2CMDDAT3
3VSS1CMD
4VDDVDD
5CLKCLK
6VSS2VSS
7DAT0DAT0
8DAT1DAT1
9DAT2ーーー

直接ピンヘッダーをはんだ付けすることで、今回製作したようなブレークアウトボード的な使い方ができますね。

今後利用することを考えると、ちゃんとしたボードを製作または購入しておくのがいいと思いますが、簡易的に使う方法としては面白いです!

最後に!

今回製作したmicroSDカード用ピッチ変換基板は、SPI/SDIOのどちらにも対応できるようにしたシンプルな変換基板です。

あえて余計な回路を載せず、microSDの信号をそのまま引き出す構成とすることで、接続先に応じて柔軟に使える構成としました。

市販のSPI専用モジュールは手軽で便利ですが、SDIOでの高速通信を試したい場合やマイコン内蔵のSDMMC機能を活かしたい場面では、今回のようなシンプルな基板があると重宝します。

用途に合わせて必要な回路を外付けできる自由度の高さも、この手の変換基板ならではのメリットですね!

コメントを残す

メールアドレスが公開されることはありません。