E203-SD-FatFs

适用于 hbird-sdk 的 SD 卡 SPI 模式驱动及 FatFs 文件系统移植。

可在蜂鸟 RISC-V 处理器 E203 上借助 SPI 外设实现对 FAT32 格式 SD 卡进行读写。

移植清单

格式支持

  • FAT32
  • exFAT

FatFs Application Interface

  • f_open
  • f_close
  • f_read
  • f_write
  • f_mount
  • f_close

FatFs Media Access Interface

  • disk_status
  • disk_initialize
  • disk_read
  • disk_write

SD Card Driver

  • sd_goIdleState
  • sd_init
  • sd_sendCmd
  • sd_readSingleBlock
  • sd_writeSingleBlock
  • sd_readMultiBlock
  • sd_writeMultiBlock
  • sd_stopTransmission
  • sd_readRes1 & sd_readRes1b & sd_readRes3_7

SPI Driver

  • spi_send8 & spi_send16 & spi_send32
  • spi_receive8

使用要求

  1. 不支持 SD v1.x 卡,只支持 SDHC、SDXC 卡
  2. (暂时)卡片格式需为 FAT32

如何使用

硬件连接

sd_schem

sd_schem image from http://rjhcoding.com
GPIO A [0:31] SD Card
VCC 3.3 VDD
GND GND
8 SCK
9 CS
10 MOSI
11 MISO

E203 GPIO 定义详见 SW or IOF Configuration

SD 卡引脚定义详见 SD MicroSD Card pinout

软件编写

可直接参考 src/demo.c

函数定义见:FatFs - Generic FAT Filesystem Module

  1. 将 src 目录下除 demo.c 外文件拷贝至你的工程目录,在 main.c 中书写以下代码:
  2. 挂载 SD 卡: f_mount
    • 注意:这里会将引脚配置为 SPI1,程序后续不可将 [8:11] 作为 IO 引脚配置使用,详见 e203 sdk 中 gpio_iof_config 源码
  3. 打开指定文件: f_open
  4. 读取文件数据: f_read
  5. 关闭文件:f_close
  6. 卸载 SD 卡:f_unmount

开发平台

ZedBoard + Vivado + NucleiStudio + hbird_sdk@0.1.4

参考资源