LoginSignup
2
1

More than 5 years have passed since last update.

SDcard + FATFS のテスト on nRF52840

Last updated at Posted at 2018-11-25

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

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

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

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

IMG_20181115_081432.jpg

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

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

IMG_20181115_081300.jpg

開発ボードへの配線。
IMG_20181115_081342.jpg

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);
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1