3
4

More than 3 years have passed since last update.

M5StickCでSDカードに書き込む

Last updated at Posted at 2019-12-16

はじめに

M5StickCにはマイクロSDスロットがありません。
スロットがあるM5StackかM5StickVを使った方が簡単ですが、
M5StickCでマイクロSDカードの読み書きをやってみました。

M5StickCにマイクロSDを接続する

SDカードはSPI接続でアクセスできるのでM5StickCのGPIOピンをSDカードに接続できるようにします。
マイクロSD変換アダプターを改造するとかでも作れると思いますが、
秋月のDIP化キットが¥300とかなので、そういうのを使った方が簡単です。

基本はこちらのサイトのを参考にしています。
https://lang-ship.com/blog/?p=721

SDカードの2~7のPINがSPIモードでの通信に使われるので、
それらをM5StickCのピンに割り当てればSDカードの読み書きができます。
HATポートにくわえ、Groveポートのピンまで使えば全て割り振ることもできますが、
GroveポートはI2CかUARTとして使いたいところですので、
SDの2番がCSで、常にこれを選択する状態にして構わないので10kΩとかの適当な抵抗でGNDにつなげます。
(ジャンパーでGND直結でもよいと思います)

SPIはMISOとMISO、MOSIとMOSIみたいな感じで
同じ名前のを接続すればいいので、普通は簡単なんですが、
SDカードのピンアサインを見るとCMDとかDAT0とかで
SPIの名称と異なるので、こちらのサイトを見ながらやってみました。
http://maicommon.ciao.jp/ss/Arduino_g/SDcard/index.htm

SDカードの2番(CD)をCS(実際はGND)
SDカードの3番(CMD)をMOSI
SDカードの4番のVDDは3V3
SDカードの5番のCLKはCLK
SDカードの6番のVSSはGND
SDカードの7番(DAT0)をMISO
と接続すればよいです。

SDカードの読み書きの方法

ArduinoライブラリのSD.hをincludeするだけです。
ただし、CSは接続してないので、-1を指定します。

#include "SD.h"
SPI.begin(0, 36, 26, -1);

以上の様に初期化すれば、M5Stack等と同様の方法でSDカードの読み書きができます。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4