STC单片机控制读写SD卡设计
一、选择的芯片:
单片机:STC12LE5620AD,采用的单片机中需要有大于512的数据区,扩展数据区亦可;
晶振 :24M晶振;
SD卡 :可以格式化为FAT32格式的SD卡。
二、采用的方法:
(1)SD卡以FAT32格式储存
(2)单片机采用通用口模拟SPI端口
(3)每次读写都是以块为单位,每块512字节
三、设计流程:
注:设计中采用的是单片机开电源开始写,关电源停止写,故采用以下流程
(0)SD初始化;
(1)读取FAT表,查询未用簇号cu1;
(2)向查出的未用簇号对应于FAT表中的位置的四个字节写入0XFFFFFFFF;
(3)读取FDT表,并向其对应的位置写进文件名,文件的大小,首次写进文件的大小为0 ;注:文件名是以由"1"递增;
(4)采集数据,按程序中函数的参数的要求,计算出数据区对应于cu1的地址,向计算出的地址写进数据,每调用一次函数写进512字节,采用的是单块写;注:写进512字节时,等待写成功返回数据0x05后,不可立即退出写函数,需等待SD卡整理数据,在此期间SPI的读数据线上为ff;
(5)写FDT表,向其中写进当前文件的大小;
(6)查询FAT,查找新簇cu2,把cu2的值写进cu1在FAT表中对应的位置,并向cu2在FAT表中对应的位置写进FFFFFFFF;
(7)转到步骤4,循环;
注:SD卡的第0扇区中的数据,可以计算出FAT表和FDT表的首位置,FAT表有两个,写FAT1必须写FAT2,以便能正确的读写;
具体实现细节可见程序,程序可与我联系。
[解决办法]
在展示成果吗?
[解决办法]
这块单片机不是有硬件SPI么、还模拟个什么、
[解决办法]
在展示成果吗?
[解决办法]
能给我发一份吗,我现在在做这个方面的毕业设计,文件系统是FAT格式