总结一下这2个月来用FATFS写TF卡的一些注意点,还有一些问题请大家指点
从我学习FATFS到现在已经2个月了,大概能操作TF卡后就开始往里写数据,还一直在改写写卡的逻辑,下面是我在写卡时总结的(可能并不适应与你)。1、硬件:lpc2132 硬件SPI操作 22M主频
2、文件系统:FATFS R0.09
3、卡:2G、4G、16G(有的是国内产的,有的是台湾产的。目前2G的卡有国内和台湾产的,发现国内的这个没台湾的好,写卡时电流不稳定,而台湾的那个很 稳)
4、数据:AD采样进来的音频数据,短的几秒钟,长得几个小时
5、方式:录完一个系统进入掉电模式,有录音需要时再起来录(每次单片机起来这里就会建立一个txt文件)
6、AD:pcm1870(谁用过这个东东呢,它老是丢数,我问ti在线支持了,他们没给我个好的解决方法,不知你们发现没有丢数这个现象)
7、采样率:8K
注意点:1、在TF卡中写时不要直接在根目录下写文件,最好先建立一个文件夹,在文件夹里写,这样工作电流就会小很多,而且电流也很稳定(主要原因)
2、一个文件夹里的txt文件数目不能太多,否则单片机从掉电模式起来到写卡时有点慢,会造成前面的数据丢失(我的2G的卡里,每个文件夹里的文件不能超过50个,超过后唤醒单片机到写卡时间过长,造成一些数据丢失)
3、小容量卡写电流小,大容量卡写电流大(2G:40mA,4G:50mA,16G:100mA,)
4、写小的文件(写几秒就要关闭的)用f_sync(&file);写大文件(就是连续写n个小时)用f_close(&file);
还在郁闷的问题:
1、第一次单片机从掉电模式起来的比较慢(大概2秒),但从第二次后起来就非常快了
注:程序到while(1)前面就进入掉电模式了,每次从掉电模式起来就到while(1)里了,执行的语句都是一模一样的啊,怎么会这样呢
2、由于第一点的迷惑,我怀疑单片机从掉电模式起来后是不是从while(1)哪里执行呢?不是说:从哪里掉电,起来时就从那里执行的吗??
3、2G的卡写电流很稳定,但4G和16G的就不怎么稳定了,尤其是16G的,写卡时电流摆动很大,即使寻址范围大也不至于电流摆动那么大吧
我的16G卡写电流摆动范围:50mA-100mA啊,天哪,手机里或别的电子产品里可不是这样啊,难道这是fatfs的原因,或是我写卡的逻辑不对????????????????????
这是我写卡的程序:SD_Write_Flag是定时器里的一个变量,如果SPI数据寄存器满了(AD给的数据),他就为1,定时器每个500us去看一次,
if(SD_Write_Flag)
{
SD_Write_Flag=0;
if(buffer_number)
{
res1 = f_write(&file, buffer1, 512, &br); //写入
f_sync(&file);
IO0SET |=1<<15; //P0.15输出高,关闭LED
}
else
{
res1 = f_write(&file, buffer0, 512, &br); //写入
f_sync(&file);
IO0CLR |=(1<<15); //P0.15输出低,点亮LED
}
} mark,沙发,以后在看 mark 顶 我来学习一下 顶一下。顶顶更健康 学习了,MARK一下 mark
以后再看 LZ请教一个问题:如何通过程序来检测TF卡的插入和拔出?
就是程序已经在运行了,现在插入TF卡,程序如何来检测TF卡的插入从而初始化TF卡?(SD卡好象是有一引脚可以判断卡的插入)
一直在往TF卡中保存数据,现在拔出TF卡,程序如何检测到TF卡的拔出从而停止向TF卡里写数据? 付新辉 发表于 2013-2-21 11:53 static/image/common/back.gif
LZ请教一个问题:如何通过程序来检测TF卡的插入和拔出?
就是程序已经在运行了,现在插入TF卡,程序如何来 ...
用带卡检测的卡座即可 mark 一下 guxingganyue 发表于 2013-2-23 14:28 static/image/common/back.gif
用带卡检测的卡座即可
恩。翻盖的卡槽只有8引脚,无法检测卡的插入、拔出情况。弹出式的有9个引脚,有一引脚可以用来判断卡的插入还是拔出。卡插入时,用来检测的引脚会变成低电平。 经验之谈,努力学习 mark……
顶一个… 学习了,有用的东西啊! 楼主的2132跑操作系统不? 有用的东西 sinc_mark 发表于 2013-8-14 16:52 static/image/common/back.gif
楼主的2132跑操作系统不?
裸跑的,没有系统 谢谢楼主分享咯。 MARK{:smile:}{:smile:}{:smile:}{:smile:}{:smile:} 总结的挺全面的,学习了,不过自己还得练习啊 付新辉 发表于 2013-2-21 11:53
LZ请教一个问题:如何通过程序来检测TF卡的插入和拔出?
就是程序已经在运行了,现在插入TF卡,程序如何来 ...
用带检测的插座
可以实现热插拔SD卡
页:
[1]