for Airio-Base. SD card detect check and power on/off test program.
Code URL
https://os.mbed.com/users/mbed_crane_elec/code/Airio-Base_SD_detect_power/
Airio-Baseで SDカード検出とカード電源のON/OFF制御をするサンプルコードです。
準備
- FlashAirをSDカードソケットへ接続
SWスイッチ動作
SDカードが装着された状態でSWを押すと、LED2が点灯し、カードへの電源供給を開始(ON)します。
ISPスイッチ動作
LED2が消灯し、カードへの電源供給を停止(OFF)します。
コードについて
Airio-Baseのポート番号P1_19は、SDカードソケットのカード検出ピンに接続されています。 これはサンプルコード
DigitalIn sd_cd(P1_19, PullUp);//SD card detect port. must set to pullup
で定義されており、入力デジタルポートとなります。 入力ピンのプルアップ処理はMbedプログラム側のソフトウェアプルアップを用いて行います。( ",Pullup" 部)
FlashAirの電源確認
LED2点灯時に、スマートフォンなどからFlashAirにアクセスできることを確認して下さい。 また、LED2消灯時は、FlashAirにアクセスできないことを確認して下さい。
このカード電源の制御機能は、バッテリー駆動用途などの消費電力を抑える必要がある場合に有効です。
main.cpp@0:e80122767958, 2018-08-11 (annotated)
- Committer:
- mbed_crane_elec
- Date:
- Sat Aug 11 19:21:50 2018 +0000
- Revision:
- 0:e80122767958
1st release.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_crane_elec | 0:e80122767958 | 1 | #include "mbed.h" |
mbed_crane_elec | 0:e80122767958 | 2 | //------------------------------------------------------------------------------- |
mbed_crane_elec | 0:e80122767958 | 3 | //Port Settings |
mbed_crane_elec | 0:e80122767958 | 4 | DigitalOut led1(P0_7,1); |
mbed_crane_elec | 0:e80122767958 | 5 | DigitalOut led2(P1_13,1); |
mbed_crane_elec | 0:e80122767958 | 6 | |
mbed_crane_elec | 0:e80122767958 | 7 | DigitalOut sd_en(P1_16, 0);//SD card power on/off control port. and OFF default. |
mbed_crane_elec | 0:e80122767958 | 8 | DigitalIn sd_cd(P1_19, PullUp);//SD card detect port. must set to pullup |
mbed_crane_elec | 0:e80122767958 | 9 | //DigitalIn sd_dat3(P0_17); // 0x10 |
mbed_crane_elec | 0:e80122767958 | 10 | //DigitalIn sd_dat2(P1_22); // 0x08 |
mbed_crane_elec | 0:e80122767958 | 11 | //DigitalIn sd_dat1(P1_14); // 0x04 |
mbed_crane_elec | 0:e80122767958 | 12 | //DigitalIn sd_dat0(P0_22); // 0x02 |
mbed_crane_elec | 0:e80122767958 | 13 | //DigitalIn sd_cmd(P0_21); // 0x01 |
mbed_crane_elec | 0:e80122767958 | 14 | |
mbed_crane_elec | 0:e80122767958 | 15 | DigitalIn sw(P1_20); |
mbed_crane_elec | 0:e80122767958 | 16 | DigitalIn isp(P0_1); |
mbed_crane_elec | 0:e80122767958 | 17 | |
mbed_crane_elec | 0:e80122767958 | 18 | //------------------------------------------------------------------------------- |
mbed_crane_elec | 0:e80122767958 | 19 | //Program |
mbed_crane_elec | 0:e80122767958 | 20 | int main() |
mbed_crane_elec | 0:e80122767958 | 21 | { |
mbed_crane_elec | 0:e80122767958 | 22 | |
mbed_crane_elec | 0:e80122767958 | 23 | while(1) |
mbed_crane_elec | 0:e80122767958 | 24 | { |
mbed_crane_elec | 0:e80122767958 | 25 | // Button "SW" function |
mbed_crane_elec | 0:e80122767958 | 26 | if(sw == 0 && sd_cd == 0) |
mbed_crane_elec | 0:e80122767958 | 27 | { |
mbed_crane_elec | 0:e80122767958 | 28 | sd_en = 1;//SD card power turn ON |
mbed_crane_elec | 0:e80122767958 | 29 | led2 = 0;//LED2 turn ON |
mbed_crane_elec | 0:e80122767958 | 30 | } |
mbed_crane_elec | 0:e80122767958 | 31 | |
mbed_crane_elec | 0:e80122767958 | 32 | // Button "ISP" function |
mbed_crane_elec | 0:e80122767958 | 33 | if(isp == 0) |
mbed_crane_elec | 0:e80122767958 | 34 | { |
mbed_crane_elec | 0:e80122767958 | 35 | sd_en = 0;//SD card power turn OFF |
mbed_crane_elec | 0:e80122767958 | 36 | led2 = 1;//LED2 turn OFF |
mbed_crane_elec | 0:e80122767958 | 37 | } |
mbed_crane_elec | 0:e80122767958 | 38 | |
mbed_crane_elec | 0:e80122767958 | 39 | // SD Card detect port check |
mbed_crane_elec | 0:e80122767958 | 40 | if(sd_cd == 0) |
mbed_crane_elec | 0:e80122767958 | 41 | { |
mbed_crane_elec | 0:e80122767958 | 42 | led1 = 0;// card detect! |
mbed_crane_elec | 0:e80122767958 | 43 | } |
mbed_crane_elec | 0:e80122767958 | 44 | else |
mbed_crane_elec | 0:e80122767958 | 45 | { |
mbed_crane_elec | 0:e80122767958 | 46 | led1 = 1;// no card |
mbed_crane_elec | 0:e80122767958 | 47 | } |
mbed_crane_elec | 0:e80122767958 | 48 | |
mbed_crane_elec | 0:e80122767958 | 49 | } |
mbed_crane_elec | 0:e80122767958 | 50 | } |