查看: 1653|回复: 0

SAMD20 Xplained Pro学习14:TF卡测试

[复制链接]
  • TA的每日心情
    擦汗
    2024-5-31 10:44
  • 签到天数: 1492 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2016-2-1 09:24:19 | 显示全部楼层 |阅读模式
    分享到:
    TF卡又称为Mini SD卡,由于其体积小巧,且有较大的存储容量,现在大量用作各种智能设备的存储介质。
          TF卡使用标准的3.3V电压供电,如果高于4V,则TF卡无法正常操作,本实验中的TF卡接口为SPI接口,SD卡模块连接到板卡的EXT1接口上。使用的是IO1_Xplained_PRO扩展板。
          TF卡有两种通信接口:SDO和SPI,前者一般用于高速设备的操作,后者更适用于嵌入式低速设备。TF通信过程一般分为初始化阶段和读写阶段,在初始化阶段SPI时钟频率不能高于400KHZ,进入读写阶段后SPI时钟频率可以在几十MHZ。所以在底层的初始化过程中需要配置SPI的时钟。
          在本实验中,将在SAMD20平台上实现对TF卡中文件的读写操作。
    TF卡接口定义,标准的东西

    SD卡的命令格式如下,6字节共48位,传输时最高位(MSB)先传输:

            SD卡的command(命令)占6 bit,一般叫CMDx或ACMDx,比如CMD1就是1,CMD13就是13,ACMD41就是41,依此类推。Command Argument(命令参数)占4 byte,并不是所有命令都有参数,没有参数的话该位一般就用置0。最后一个字节由7 bit CRC校验位和1 bit停止位组成。在SPI模式下,CRC是被忽略的,可以都置1或置0.但是发送CMD0时要记得加上CRC,即最后1字节为0x95(因为发送CMD0时还未进入SPI模式,PS:CMD8也要,但一般大家都把发送CMD8省略了)。
          每次发送完一次命令后,SD卡都会有回应。SD卡的回应有多种格式,1字节的R1,2字节的R2等,不过一般在SPI模式中我们只用到R1,下面介绍R1的格式:

          在众多的文件系统中,FatFs对于小型嵌入式应用是一个不错的选择,它占用代码和内存都相对较小,便于低端MCU管理。只要合理地一直底层接口,就可以将其应用到具体的应用中,一旦移植成功,用户层就可以方便地调用几个应用接口函数,对文件进行操作。
           在FatFs中,将存储介质中的空间从逻辑上分为4个部分:引导记录区(DBR)、文件分配表(FATx)、文件目录区(FDT)和数据区(DATA)。对于一般的应用而言,没有必要使用FatFs的全部功能,所以可以有选择地去除一些额外的功能,但基本的读写及查询功能必须保留。
          ASF自带的例程中有TF卡的操作例程,打开ASF创建工程,选择如下图的工程测试就可以了。

    主板的EXT1接口信号。

    扩展板上的SD卡接口信号

    主函数


    烧写程序,串口测试的信息,本实验是在TF卡上写了一个文件,可以用电脑打开查看下结果
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-18 10:39 , Processed in 0.121782 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.