ESP8266 (気圧計で使用したユニバーサル基板: I2Cを4.7kでプルアップ)
SDモジュール: MSC-MOD20
気圧計 (以下のものをベースにI2Cを4.7kプルアップしている)。
http://qiita.com/7of9/items/09272fcfb56bd479c679
背景
MSC-MOD20というSDカードモジュールを使ってみる。
MSC-MOD20の取説
取説には2.2kでプルアップと記載があるが、今回は4.7kプルアップとしている。
MSC-MOD20の価格は4500円。
http://www.microtechnica-shop.jp/shopdetail/000000000026/
ESP8266の場合は、microSDスロット(600円)さえあればmicroSDに保存できる。
http://qiita.com/7of9/items/280758359f3d2c0c7fe8
MSC-MOD20をESP8266で試す目的は、MSC-MOD20の癖を把握すること。変な癖がないか把握し、あれば対応を検討する。
将来的には把握した情報をもとに、別のマイコンで使う。
その前準備として、実装が簡単なESP8266を使った。
実装
MSC-MOD20のパッケージ。RTC用の水晶振動子があり基板上に実装する。水晶振動子を使わないという場合もある。取説参照。
こちらでは水晶振動子を実装して使用した。
配線
MSC-MOD20とESP8266の配線は以下とした。
I2Cでの使用としている。
MSC-MOD20 | ESP8266 | 備考 |
---|---|---|
1: UART TX | NC | |
2: UART RX | NC | I2C BUSY / 今回未使用 |
3: I2C SCL | 5: I2C SCL | |
4: I2C SDA | 4: I2C SDA | |
5: MODE 1 | GND | I2C用 |
6: UART BUSY | NC | |
7: NC | NC | |
8: MODE 2 | VCC | I2C用 |
9: RESET(負論理) | VCC | |
10: GND | GND | |
11: VCC | VCC | |
12: WAKE | NC | 今回は未使用 |
13: Vbat | VCC | 外部RTC用バッテリーを接続してもいい |
配線状況
@hotchpotch さんが紹介されていたスルーホール用テストワイヤーを使った。4500円するモジュールをテスト使用ではんだ付けすると、実使用時に苦労する。こういうツールは便利だ。
全体の接続状況
code v0.2
朝飯前の結果、以下のコードとなった。
# include <Wire.h>
# define DEVICE_ADDRESS (0xA4 >> 1)
void setup() {
Serial.begin(115200);
Serial.println("");
Wire.begin();
Wire.setClock(100000L); // 100kHz
}
void loop() {
helloWorld();
delay(3000); // msec
}
void readData() {
Wire.requestFrom(DEVICE_ADDRESS, /* length= */1);
char code = Wire.read();
delayMicroseconds(30);
Serial.println(code);
}
void helloWorld()
{
Wire.beginTransmission(DEVICE_ADDRESS);
Wire.write(0x0A);
Wire.endTransmission();
delayMicroseconds(30);
for(int loop=0; loop<3; loop++) {
readData();
}
}
GHI Electronics, LLC
----------------------
ALFAT SoC Processor
!00
!00
!00
!00
!00
!00
!00
!00
!00
!00
!00
ほぼ読めたので、今後はSD読書きなどの詳細作業に移行する。