for Airio-Base. SD card detect check and power on/off test program.

Dependencies:   mbed

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にアクセスできないことを確認して下さい。

このカード電源の制御機能は、バッテリー駆動用途などの消費電力を抑える必要がある場合に有効です。

Committer:
mbed_crane_elec
Date:
Sat Aug 11 19:21:50 2018 +0000
Revision:
0:e80122767958
1st release.

Who changed what in which revision?

UserRevisionLine numberNew 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 }