[牛人杂谈]

使用U盘例程、Nano130板做U盘和读卡器

[复制链接]
楼主: 与时俱进
手机看帖
扫描二维码
随时随地手机跟帖
zxf0168| | 2014-4-14 21:11 | 显示全部楼层
与时俱进 发表于 2014-3-28 22:08
先要做SPI读SD卡的实验,准备用SPI例程改一下。

坐等分享喜悦

使用特权

评论回复
与时俱进|  楼主 | 2014-4-19 10:46 | 显示全部楼层
  之前的程序,没考虑到HC型SD卡的不同之处--对扇区的读写操作,给的地址应该是扇区地址,而V1卡和SC型SD卡则是字节地址,两者相差512倍;造成经常出错。
  现在把地址右移9位后传给扇区读写子程序,做一个4G盘,一切正常了,只是速度很慢,还须优化。另外还要对地址计算做全面修改(目前只改最终的读写扇区程序),以支持4G以上容量,32位所能表达的最大数就是4G。

使用特权

评论回复
与时俱进|  楼主 | 2014-4-19 12:24 | 显示全部楼层
拷贝1.4G大小影片《让子弹飞》,播放时偶尔卡。

使用特权

评论回复
从小木丁丁| | 2014-4-19 14:57 | 显示全部楼层
与时俱进 发表于 2014-4-19 12:24
拷贝1.4G大小影片《让子弹飞》,播放时偶尔卡。

厉害啊,确实厉害

使用特权

评论回复
与时俱进|  楼主 | 2014-4-19 20:33 | 显示全部楼层
修改了十几个地方,可以支持大于4G容量了,读写速度也提高了些。上图
16G.JPG

使用特权

评论回复
与时俱进|  楼主 | 2014-4-20 10:57 | 显示全部楼层
本帖最后由 与时俱进 于 2014-4-20 11:05 编辑

读写速度测试:
列目录时间(从插入USB到“我的电脑”出现可移动磁盘):38秒
写盘速度:186kB/S。   从硬盘拷贝一个130MB文件到SD卡,费时11分57秒
读盘速度:283kB/S。   同一个文件,从SD卡拷贝到硬盘费时7分51秒
以上不计硬盘读写时间,SPI时钟是12M。

使用特权

评论回复
dong_abc| | 2014-4-20 15:00 | 显示全部楼层

使用特权

评论回复
haolaishi| | 2014-4-20 15:57 | 显示全部楼层
厉害。。。

使用特权

评论回复
通宵敲代码| | 2014-4-20 20:09 | 显示全部楼层
牛人啊!

使用特权

评论回复
与时俱进|  楼主 | 2014-4-20 21:27 | 显示全部楼层
本帖最后由 与时俱进 于 2014-4-20 22:07 编辑
通宵敲代码 发表于 2014-4-20 20:09
牛人啊!

其实不会复杂,移植SD读卡程序并修改USB_UDC原例程的一些地方。

使用特权

评论回复
通宵敲代码| | 2014-4-20 22:16 | 显示全部楼层
与时俱进 发表于 2014-4-20 21:27
其实不会复杂,移植SD读卡程序并修改USB_UDC原例程的一些地方。

移植简单点, 我就是感觉USB通信复杂点,一直都吃不透!

使用特权

评论回复
elecintop| | 2014-4-21 10:13 | 显示全部楼层
楼主还厉害,可以可以放源代码看看。。。一直不知道如何下手

使用特权

评论回复
从小木丁丁| | 2014-4-21 10:46 | 显示全部楼层
通宵敲代码 发表于 2014-4-20 22:16
移植简单点, 我就是感觉USB通信复杂点,一直都吃不透!

那是必须的啊,你要是吃透了USB工作就不愁了

使用特权

评论回复
从小木丁丁| | 2014-4-21 10:46 | 显示全部楼层
通宵敲代码 发表于 2014-4-20 22:16
移植简单点, 我就是感觉USB通信复杂点,一直都吃不透!

那是必须的啊,你要是吃透了USB工作就不愁了

使用特权

评论回复
从小木丁丁| | 2014-4-21 10:47 | 显示全部楼层
通宵敲代码 发表于 2014-4-20 22:16
移植简单点, 我就是感觉USB通信复杂点,一直都吃不透!

那是必须的啊,你要是吃透了USB工作就不愁了

使用特权

评论回复
从小木丁丁| | 2014-4-21 10:47 | 显示全部楼层
通宵敲代码 发表于 2014-4-20 22:16
移植简单点, 我就是感觉USB通信复杂点,一直都吃不透!

那是必须的啊,你要是吃透了USB工作就不愁了

使用特权

评论回复
从小木丁丁| | 2014-4-21 10:48 | 显示全部楼层
elecintop 发表于 2014-4-21 10:13
楼主还厉害,可以可以放源代码看看。。。一直不知道如何下手

我也坐等楼主放源码呢,哈哈

使用特权

评论回复
通宵敲代码| | 2014-4-21 12:05 | 显示全部楼层
从小木丁丁 发表于 2014-4-21 10:47
那是必须的啊,你要是吃透了USB工作就不愁了

哈哈哈,是啊,USB是个主流而且是块硬骨头。

使用特权

评论回复
与时俱进|  楼主 | 2014-4-21 12:52 | 显示全部楼层
本帖最后由 与时俱进 于 2014-4-21 12:54 编辑

再啰嗦一次,USB程序是新唐的UDC例程,修改一些地方而已。当然要懂得USB的原理,可以买一本圈圈的书看(不是广告哈)。
然后就是SD卡程序的移植,这个大家都会。

使用特权

评论回复
与时俱进|  楼主 | 2014-4-21 13:08 | 显示全部楼层
虽然在本读卡器上格式化SD卡、读写文件都没问题,但是突然发现把SD卡直接装到电脑,不能读取。
用winhex查看SD卡扇区数据,发现有趣现象----每4个字节是倒序的,本来是00 00 55 aa的数据,变成aa 55 00 00。
原来,因为读写速度慢,想办法改进,就把SPI向SD卡传送512字节数据,从8位模式改成32位模式,存在字节顺序问题,被绕进去了,还好Nano130有SPI 32位模式字节重排功能,改成低字节先传,就可以了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则