Raspberry Pi 3 Model BにSDIO接続のSDカードアダプタを追加


概要

Raspberry Pi 3 Model BにSDIO接続でSDカードアダプタを追加する。
SDIOで接続できるSDカードアダプタを手に入れたので改めてSDカードアダプタの追加をリベンジ。
前の記事は以下。
https://qiita.com/tetsuoMikami/items/4d1876a0f6ba1e92a258

使用したのはサンハヤトのCK-35

準備

接続

Raspberry Piのピンアサインは以下で調べた。
https://pinout.xyz/pinout/sdio

SDカードのピンアサインは以下で調べた。
http://nc30mtd.oops.jp/blog/2015/04/sd.html

SDモードの機能 Raspberry Piのピン番号
DATA3 1 13
CMD 2 16
Ground 3 39
VDD 4 1
CLK 5 15
Ground 6 39
DATA0 7 18
DATA1 8 22
DATA2 9 37

接続後の様子

設定の変更

ここを参考にした
https://tshell.hatenablog.com/entry/2019/09/04/200850

設定をオーバーライドするdtsをここから入手

設定を追加

sudo dtc -@ -I dts -O dtb -o sdio22.dtbo sdio22-overlay.dts
sudo mv sdio22.dtbo /boot/overlays/

/boot/config.txtの最終行に以下を追加する。

dtoverlay=sdio22,poll_once=off,bus_width=1,sdio_overclock=50

その後、再起動する。

認識されているか確認

デバイスが検出されているか

pi@raspberrypi:~ $ sudo dmesg | grep mmc2
[    3.717449] mmc2: host does not support reading read-only switch, assuming write-enable
[    3.719378] mmc2: new high speed SDXC card at address 59b4
[    3.720505] mmcblk2: mmc2:59b4 SPCC  58.9 GiB

速度確認

pi@raspberrypi:~ $ time dd if=/dev/random of=/media/pi/9C33-6BBD/out bs=4k count=23040 conv=fdatasync
23040+0 レコード入力
23040+0 レコード出力
94371840 bytes (94 MB, 90 MiB) copied, 20.5605 s, 4.6 MB/s

real    0m20.576s
user    0m0.002s
sys     0m4.087s

遅い・・・

バス幅を4bitに変更(2022/01/23追記)

あまりにも遅いので原因を調べたら、その1つとしてバス幅が1bitになっていた。つまりDATA0しか使っていない状態だった。
そこで以下の対策を行う。

/boot/config.txtの最終行に追加した設定を変更し、「bus_width=1,」を削除する。つまり以下の状態。

dtoverlay=sdio22,poll_once=off,sdio_overclock=50

速度確認

2倍近くになったけど、まだ遅い。

pi@raspberrypi:~ $ time sudo dd if=/dev/random of=/media/pi/9C33-6BBD/out1 bs=4k count=23040 conv=fdatasync
23040+0 レコード入力
23040+0 レコード出力
94371840 bytes (94 MB, 90 MiB) copied, 10.947 s, 8.6 MB/s

real    0m11.001s
user    0m0.065s
sys 0m4.091s

追加で行いたいこと

UHSでの接続を見たいと思っている。但し、ハードウェアが対応しているのかは未確認。

参考