最近调试了一下GD32F450Z 的SDIO接口,读写micro SD卡并移植了FATFS调试过程记录如下,调试时使用的是16GB Kingston TF 卡。
说一下思路:分3步实现
1、从资料中首先学习一下SDIO接口的相关内容;
2、根据例程调通SD card的读写驱动程序;
3、最后移植FATFS文件系统,文件系统来操作SD卡。
1、GD32F4xx SDIO接口
SDIO接口的介绍参考《GD32F4xx_用户手册》文档,SDIO是安全的数字输入/输出接口。GD32F4xx 的SDIO接口可与以下几种设备进行通信。
- MMC:多媒体卡,系统规格书V4.2及之前的版本兼容。3种不同的数据总线模式:1bit、4bit、8bit。
- SD卡:SD存储卡规格版本2.0全兼容。
- SD I/O: 与 SD I/O 卡规格版本 2.0 全兼容,有两种不同的数据总线模式: 1 位(默认)和 4位;(使用SD总线以及SD指令的IO设备,不只是存储功能,还能实现其他如蓝牙、wifi、GPS等等。
- CE-ATA: 与 CE-ATA 数字协议版本 1.1 全兼容。
《GD32F4xx_用户手册》中SDIO的相关内容比较多,需要详细的学习理解。
2、GD32F4xx SDIO驱动
从GD32450Z_EVAL_Demo_Suites\Projects\16_SDIO_SDCardTest\Soft_Drive 中将sdcard.c 和 sdcard.h文件复制过来添加到自己的工程中。编写一个sdio_test()函数,将例程中的main函数复制过来稍作修改即可进行测试