• 検索結果がありません。

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

N/A
N/A
Protected

Academic year: 2021

シェア "SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C"

Copied!
23
0
0

読み込み中.... (全文を見る)

全文

(1)

1 SDC_SDIO_STM32F4 の説明 2013/09/17

SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです。

FAT でファイルアクセスするために FatFs(汎用 FAT ファイルシステム・モジュール)を使用しています。

VCP(USB 仮想 COM ポート : 非同期シリアル通信)を使用して、SD カードのアクセスを試験することができます。

目次

1. 概要 ... 2 2. SD カードの接続 ... 2 3. STM32F4 Discovery 基板と PC との接続 ... 3 4. SDC_SDIO_STM32F4 プログラムの書き込み ... 4 5. SD カードアクセス試験 ... 5 5.1. SD カードの書き込み ... 5 5.2. SD カードの読み込み ... 5 5.3. SD カードアクセス試験のためのモジュール ... 6 6. 「飛石伝ひアプリケーション」 の使い方... 10 6.1. RTC への時刻の設定 ... 10 6.2. RTC の時刻の読み込み ... 12 6.3. SD カードの容量の取得 ... 14 6.4. フォルダ一覧 ... 16 6.5. ファイル一覧 ... 18 6.6. ファイル読み込み ... 20 7. 試験用の受信コマンド処理をビルドからはずす ... 23

(2)

2 1. 概要

SDC_SDIO_STM32F4 は STM32F4 Discovery 基板用の SDIO インターフェースで SD カードをアクセスするプログラムの プロジェクトサンプルです。

VCP(USB 仮想 COM ポート : 非同期シリアル通信)を使用して、SD カードのアクセスを試験することができます。 「飛石伝ひアプリケーション」を使用します。

なお、本プロジェクトは、プログラムサイズが大きいため、Build Setting が Debug では制限の 32Kbyte を超えてしまうため ビルドできません。Build Setting を Release で使用してください。

2. SD カードの接続

STM32F4 Discovery 基板と SD カードとの信号の接続は以下の通りです。 Micro SD カードのソケットの一例です。

Pin SD カード信号名 CPU 信号名 CPU 機能名 基板コネクタピン番号 備考

1 DAT2 PC10 SDIO_D2 P2-37 2 DAT3 PC11 SDIO_D3 P2-38 3 CMD PD2 SDIO_CMD P2-34 4 VDD --- +3.3V 5 CLK PC12 SDIO_CK P2-35 6 VSS --- GND 7 DAT0 PC8 SDIO_D0 P2-46 8 DAT1 PC9 SDIO_D1 P2-47

9 B(ソケットの信号) PE14 I/O P1-32 カード検出(Detect SDC)

10 A(ソケットの信号) GND カード検出(GND)

基板のコネクタと SD カードとの配線はできる限り短くしてください。また、直列にダンピング抵抗 22Ωを入れるとより安定して 動作します。

(3)

3 3. STM32F4 Discovery 基板と PC との接続 STM32F4 Discovery 基板と PC とは USB ケーブルで以下のように接続します。 PC A A Mini B Micro B USB ケーブル : 電源供給 または プログラム書き込みのため USB ケーブル : VCP(仮想 COM ポート : 非同期シリアル通信)のため 図3. USB ポート STM32F4 Discovery SD カード

(4)

4 4. SDC_SDIO_STM32F4 プログラムの書き込み

Work space に Work_SDC_SDIO_STM32F4 を選択してプロジェクトを開くと以下の画面になります。 Build Setting が Release であることを確認してください。

プロジェクトの開き方や設定については、ホームページの

「 Atollic TrueSTUDIO for ARM Lite のプロジェクトサンプルの利用方法 」 の中の 「 4. プロジェクトサンプルを開く方法 」 をご覧ください。

PC と STM32F4 Discovery の Mini USB コネクタ CN1 を USB ケーブルで接続した状態で、この虫のアイコンをクリックします。 マウスポインタをアイコンの上に重ねると 「Debug SDC_SDIO_STM32F4.elf」 と表示されます。

書き込みが終了すると、以下の画面になります。Build Setting が Release なので、デバッグ情報がないため、 No source available…と表示されています。

(5)

5 No source available…と書かれた画面が残ったままになっているので、タブの x をクリックして閉じておきましょう。 プログラムが動作していれば、基板上の LED LD5(緑)が 1 秒点灯、 2 秒消灯を繰り返し点滅します。 5. SD カードアクセス試験 5.1. SD カードの書き込み User スイッチを一回押すと、CPU の RTC に設定された時刻が、ファイルに書き込まれます。 「 TRI_S 」 という名称のディレクトリが作成されて、そのディレクトリの中に 「 RTC 」 という名前のディレクトリを 作成して、その中にファイル 「 RTC_D.TXT 」 が作成されます。 パスは TRI_S\RTC\RTC_D.TXT となります。 時刻データはファイルに追加書き込みされます。 RTC の時刻の設定は 「飛石伝ひアプリケーション」 で行うことができます。 5.2. SD カードの読み込み 「飛石伝ひアプリケーション」 を使用して、SD カードの読み込みを行うことができます。 容量の取得、 フォルダの参照、 ファイル名の参照、 ファイルデータの読み込み を行うことができます。 「飛石伝ひアプリケーション」の使い方については [ 6. 「飛石伝ひアプリケーション」 の使い方 ] で説明します。

(6)

6 5.3. SD カードアクセス試験のためのモジュール SD カードアクセス試験のために作成したモジュールについて説明します。作成したモジュールは全て、内部で、 FatFs のモジュールを呼び出して、SD カードにアクセスしています。 1) 容量取得 SD カードの全容量と空き容量を取得します。 //---//SD Card容量取得 //---//引数 //uint32_t *ulngTotal : SDカードの全容量をセットする変数のポインタ //uint32_t *ulngFree : SDカードの空き容量をセットする変数のポインタ //戻り値: // 0 : OK // 1 : NG

//---int16_t GetSpaceSDC(uint32_t *ulngTotal, uint32_t *ulngFree);

2) ディレクトリ Open

指定したパスのディレクトリを Open して内部のディレクトリ名またはファイル名を取得します。

//---//Read Directory First SD Card

//---//ディレクトリをOPENして、最初のファイル名またはディレクトリ名を読み込む。

//---//引数 :

//char *chrPath : パス名がセットされているBufferのポインタ

//char *chrFileName : 読み込んだファイル名またはディレクトリ名をセットするBufferのポインタ

// 読み込んだものがディレクトリ名の場合 D.ディレクトリ名

// ファイル名の場合 F.ファイル名 をセットします。

//戻り値: ファイルのサイズ

(7)

7 3) ディレクトリ内部の項目取得

ディレクトリ内部の項目(ディレクトリ名 または ファイル名)を順次取得します。

//---//Read Directory Next SD Card : ディレクトリ内の項目を順次読みだす

//---//引数 :

//char *chrFileName : 項目名を返すBufferのポインタ //戻り値 : ファイルサイズ

uint32_t ReadDirectoryNextSDC(char *chrFileName);

4) ディレクトリ内部の項目取得の終了

f_mount(0, defNULL); を呼び出して Workエリアの削除を行います。

//---//Read Directory End SD Card : ディレクトリ読み込み処理終了

//---//引数 : なし //戻り値 : 0固定 int16_t ReadDirectoryEndSDC(void); 5) File Open データを読み込むファイルを Open します。 //---//Open File SD Card : ファイルのOPEN

//---//引数 :

//char *chrPath : パス名が入っているBufferのポインタ //戻り値 :

// 0 : OK

// 1 : NG

(8)

8 6) ファイルデータの読み込み

Open したファイルのデータを読み込みます。

//---//Read File SD Card : ファイルのデータ読み込み

//---//引数 :

//char *chrBuffer : ファイルから読み込んだデータをセットするBufferのポインタ //unsigned int uintLength : 読み込むbyte数

//unsigned long ulngPosition : ファイルの読み込み位置 //戻り値 :

// NGのとき : -1

// OKのとき : 読み込みbyte数

int16_t ReadFileSDC(char *chrBuffer, unsigned int uintLength, unsigned long ulngPosition);

7) ファイルの Close

ファイルの Close を行い、使用していた Work エリアの削除を行います。

//---//Close File SD Card

//---//引数 : なし //戻り値 : // -1 : NG // 0 : OK int16_t CloseFileSDC(void); 8) ファイルのポインタの移動 ファイルのポインタを指定の位置にする。 //---//seek : ファイルのポインタを指定した位置にする。 //---//引数 : //uint32_t ulngPosition : ファイルの指定位置 //戻り値 : // -1 : NG // 0 : OK

(9)

9 9) ディレクトリ作成 指定したパスにディレクトリを作成する。 //---//ディレクトリ作成 //---//引数 :

//uint8_t *uchrDirectory : パス名が入ったBufferのポインタ //戻り値 :

// 0 : OK

// 1 : NG

int16_t MakeDirectorySDC(uint8_t *uchrDirectory)

10) ファイル削除 指定したファイルを削除する。 //---//Delete File in SDC : 指定したパス名のファイルまたはディレクトリを削除する。 //---//引数 :

//char *chrPath : パス名が入ったBufferのポインタ //戻り値 :

// 0 : OK

// 1 : NG

int16_t DeleteFileSDC(char *chrPath);

11) ファイル書き込み試験 User スイッチが押されたときファイルに時刻データを追加書き込みする。 //SDカード書き込み試験 : Userスイッチが押されたときファイルに時刻データを書き込む。 //引数 : なし //戻り値 : // -1 : 処理なし // 0 : OK // 1 : NG int16_t DebugWriteSDC(void);

(10)

10 6. 「飛石伝ひアプリケーション」 の使い方

「飛石伝ひアプリケーション」 のインストールについては、「飛石伝ひ」のホームページの 「 インストール 」 のページを ご覧ください。

STM32F4 Discovery 基板に電源が供給されている状態で、基板の Micro USB コネクタ CN5 と PC とを USB ケーブルで 接続して、「飛石伝ひアプリケーション」を使用します。 COM ポートの選択についてはホームページ上の 「 STM32F4 Discovery 基板と PC との接続方法 」 をご覧ください。 6.1. RTC への時刻の設定 SD カードにファイルを書き込むとき、CPU の RTC の時刻を参照してファイルのタイムスタンプを付けます。 そのため RTC に時刻を設定する必要があります。 ここでは、「飛石伝いアプリケーション」を利用して、RTC の時刻設定を行います。時刻設定を実行すると PC の時刻が RTC に設定されます。 SDC_SDIO_STM32F4 のプログラムでは、CPU の内部 RTC クロックを使用して RTC を動作させています。 電源投入時、時刻は 「 2000/01/01 00:00:00 」 に設定されます。 時刻設定 メニューの {基板} -> {時刻} -> {時刻設定} をクリックすると、次のメッセージが表示されます。

(11)

11

[はい(Y)] ボタンをクリックすると CPU の RTC に PC の時刻が設定されます。

(12)

12 6.2. RTC の時刻の読み込み

(13)

13 「 日付時刻 : 2013/08/27 13:27:38 」 が表示されています。

(14)

14 6.3. SD カードの容量の取得

(15)

15 SD カードの容量が取得されて表示されます。

(16)

16 6.4. フォルダ一覧

(17)

17 フォルダがある場合、フォルダ名が表示されます。

「飛石伝ひアプリケーション」では、ルートディレクトリにある 「 TRI_S 」 という名前のディレクトリの中身を参照するように なっています。

(18)

18 6.5. ファイル一覧

(19)

19 ファイルが存在する場合、ファイル名が表示されます。

(20)

20 6.6. ファイル読み込み

ファイルを一個選択した状態で、メニューの {基板} -> {SD カード} -> {ファイルデータ読み込み} -> {開始}を クリックします。

(21)

21 ファイルから読み込んだデータをセーブするフォルダの選択画面が表示されます。フォルダを選択して、[OK] ボタンを クリックします。 ファイルデータの読み込みが開始され、読み込みが終了すると次のメッセージが表示されます。 [OK] ボタンをクリックします。 次ページに続く

(22)

22

選択したフォルダを見てみると、選択したファイル名の後ろに読み込みを実行した時刻を付加したファイルができています。 このファイルに読み込んだファイルデータがセーブされています。

(23)

23 7. 試験用の受信コマンド処理をビルドからはずす 以下は、ソースフォルダ src の中の stm32f4xx_conf.h を表示した画面です。 //SDカード読み書き試験 : VCP(USB仮想COMポート)を使用して、SDカードにアクセスします。 // また、Userスイッチを押したとき、RTCの時刻をファイルに書き込みます。 //コメントアウトしてビルドすると VCPの受信コマンド処理 と Userスイッチの処理部分はなくなります。 //---#define defDebugSDC 試験用の受信コマンド処理が必要ない場合は、上記の #define defDebugSDC の部分を //#define defDebugSDC のようにコメントアウトしてビルドしてください。

参照

関連したドキュメント

2Tは、、王人公のイメージをより鮮明にするため、視点をそこ C木の棒を杖にして、とぼと

SD カードが装置に挿入されている場合に表示され ます。 SD カードを取り出す場合はこの項目を選択 します。「 SD

本節では本研究で実際にスレッドのトレースを行うた めに用いた Linux ftrace 及び ftrace を利用する Android Systrace について説明する.. 2.1

本装置は OS のブート方法として、Secure Boot をサポートしています。 Secure Boot とは、UEFI Boot

(採択) 」と「先生が励ましの声をかけてくれなかった(削除) 」 )と判断した項目を削除すること で計 83

タップします。 6通知設定が「ON」になっ ているのを確認して「た めしに実行する」ボタン をタップします。.

えて リア 会を設 したのです そして、 リア で 会を開 して、そこに 者を 込 ような仕 けをしました そして 会を必 開 して、オブザーバーにも必 の けをし ます

すべての Web ページで HTTPS でのアクセスを提供することが必要である。サーバー証 明書を使った HTTPS