SDcard + FATFS のテスト on nRF52840


「nRF52840 を Segger Embedded Studio 開発環境で First Try」からの続きです。
https://qiita.com/nanbuwks/items/dd20dc4619af1d994f2c

ターゲットの開発ボードは前回と同様に、Raytac の MDBT50Q–DB、開発環境は SEGGER Embeded Studio です。

MDBT50Q-DBにmicroSDスロットとUSBシリアルモジュールを配線しておきます。

今回の実験の後に使う、加速度センサモジュールやJ-linkとあわせてこんな感じのテストベッドを作りました。

microSDカードのアダプタは、このようなものを加工して使っています。

裏側にピンを立てて、ジャンパーケーブルを接続します。

開発ボードへの配線。

CS  (緑)0.23に配線
MOSI (茶)0.14に配線
CLK (白) 0.22に配線
MISO (紫) 0.25に配線

橙と黒はそれぞれ 3V3 (VCC) と GNDに接続しています。

サンプルプログラム

peripheral/fatfs/pca10056/blank/ses
を開きます。


#define SDC_SCK_PIN     ARDUINO_13_PIN  ///< SDC serial clock (SCK) pin.
#define SDC_MOSI_PIN    ARDUINO_11_PIN  ///< SDC serial data in (DI) pin.
#define SDC_MISO_PIN    ARDUINO_12_PIN  ///< SDC serial data out (DO) pin.
#define SDC_CS_PIN      ARDUINO_10_PIN  ///< SDC chip select (CS) pin.

となっているのを


#define SDC_SCK_PIN     22  ///< SDC serial clock (SCK) pin.
#define SDC_MOSI_PIN    14  ///< SDC serial data in (DI) pin.
#define SDC_MISO_PIN    25  ///< SDC serial data out (DO) pin.
#define SDC_CS_PIN      23  ///< SDC chip select (CS) pin.

と変更します。

ちなみに、元々の
ARDUINO_10_PINなどは、components/boards/pca10056.h
を見ると


#define ARDUINO_13_PIN              NRF_GPIO_PIN_MAP(1, 15)  // Digital pin 13
#define ARDUINO_12_PIN              NRF_GPIO_PIN_MAP(1, 14)  // Digital pin 12
#define ARDUINO_11_PIN              NRF_GPIO_PIN_MAP(1, 13)  // Digital pin 11
#define ARDUINO_10_PIN              NRF_GPIO_PIN_MAP(1, 12)  // Digital pin 10

ということらしいです。

USBシリアルアダプタをつなぎ、動作させてみると


<info> app: FATFS example started.
<info> app: Initializing disk 0 (SDC)...
<info> app: Capacity: 7695 MB
<info> app: Mounting volume...
<info> app: 
 Listing directory: /
   <DIR>   ______~1        0  ______~2       16  NORDIC.TXT        0  TEST.TXT<info> app: Writing to file NORDIC.TXT...
<info> app: 16 bytes written.

というメッセージが出てきました。
microSDカードをPCに繋ぎ直して中身を見てみます。


$ ls -alh /media/nanbuwks/B179-FEBB/
合計 16K
drwxr-xr-x  3 nanbuwks nanbuwks 4.0K  1月  1  1970 .
drwxr-x---+ 4 root     root     4.0K 11月 26 01:46 ..
-rw-r--r--  1 nanbuwks nanbuwks   32  1月  1  2016 NORDIC.TXT
-rw-r--r--  1 nanbuwks nanbuwks    0 11月 25 23:11 test.txt
-rw-r--r--  1 nanbuwks nanbuwks    0 11月 25 23:11 無題のドキュメント
drwxr-xr-x  2 nanbuwks nanbuwks 4.0K 11月 25 23:11 無題のフォルダー

「test.txt」「無題のドキュメント」「無題のフォルダー」は元々書き込んでいたものです。


$ cat /media/nanbuwks/B179-FEBB/NORDIC.TXT 
SD card example.SD card example.

同じ文章が2つ出ています。これは同じmicroSDカードに2回プログラムを実行したのでこのようになりました。
サンプルプログラム中では、ファイルハンドラを開くときに以下のようになっていて、APPENDモードとしているためです。


    ff_result = f_open(&file, FILE_NAME, FA_READ | FA_WRITE | FA_OPEN_APPEND);