打印
[牛人杂谈]

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

[复制链接]
楼主: 与时俱进
手机看帖
扫描二维码
随时随地手机跟帖
61
与时俱进|  楼主 | 2014-4-23 21:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
虽然SPI字节重排序仅在 TX_BIT_LEN 被定义为 16 位,24 位和 32 位时有效,但是重新切换回8位模式时,还是必须把REORDER置为0,否则不能正常工作,具体原因没去跟踪。

使用特权

评论回复
62
1471225546| | 2014-4-26 17:13 | 只看该作者
求代码

使用特权

评论回复
63
从小木丁丁| | 2014-4-26 17:21 | 只看该作者
通宵敲代码 发表于 2014-4-22 23:00

使用特权

评论回复
64
从小木丁丁| | 2014-4-26 17:22 | 只看该作者
通宵敲代码 发表于 2014-4-22 23:00
啃了几下,牙掉了!

你竟然也没有搞定,服了

使用特权

评论回复
65
骗子的片子| | 2014-4-26 18:53 | 只看该作者
通宵敲代码 发表于 2014-4-22 15:49
加油!

恩,咱们一起加油

使用特权

评论回复
66
骗子的片子| | 2014-4-26 18:53 | 只看该作者
1471225546 发表于 2014-4-26 17:13
求代码

我也在求代码

使用特权

评论回复
67
骗子的片子| | 2014-4-26 18:54 | 只看该作者
从小木丁丁 发表于 2014-4-22 20:42
入门,求大神指点啊,你竟然会USB

会一点点不能算是会

使用特权

评论回复
68
骗子的片子| | 2014-4-26 18:54 | 只看该作者
从小木丁丁 发表于 2014-4-22 20:42
恩,努力使必须的

静候佳音

使用特权

评论回复
69
通宵敲代码| | 2014-4-26 20:22 | 只看该作者
骗子的片子 发表于 2014-4-26 18:53
恩,咱们一起加油

使用特权

评论回复
70
通宵敲代码| | 2014-4-26 20:23 | 只看该作者
从小木丁丁 发表于 2014-4-26 17:22
你竟然也没有搞定,服了

使用特权

评论回复
71
与时俱进|  楼主 | 2014-4-26 20:35 | 只看该作者
本来数据缓冲区是512字节,只能用上单扇区读、写程序,速度较慢;
今天修改一下程序,缓冲区增加到4096字节,用上多扇区读写程序,速度有较大提高。
测试结果:
列目录时间(从插入USB到“我的电脑”出现可移动磁盘):31秒
写盘速度:350kB/S。   从硬盘拷贝一个130MB文件到SD卡,费时6分21秒
读盘速度:340kB/S。    同一个文件,从SD卡拷贝到硬盘费时6分33秒

使用特权

评论回复
72
与时俱进|  楼主 | 2014-4-26 20:39 | 只看该作者
写盘速度提高了将近一倍(186—>350),读盘速度只是稍有改善(283—>340)。
有点奇怪,写盘速度竟然超过读盘速度。

使用特权

评论回复
73
与时俱进|  楼主 | 2014-4-26 20:52 | 只看该作者
本帖最后由 与时俱进 于 2014-4-26 20:53 编辑

DataFlashProg.c文件修改成只剩下面两个子程序:
void DataFlashRead(uint32_t addr, uint32_t size, uint32_t buffer)
{
    /* This is low level read function of USB Mass Storage */
                if(size >FLASH_PAGE_SIZE)
            read_nSECTOR(addr,size,(uint32_t *)buffer);
                else
                        readSECTOR(addr, (uint32_t *)buffer);
}


void DataFlashWrite(uint32_t addr, uint32_t size, uint32_t buffer)
{
    /* This is low level write function of USB Mass Storage */
                if(size > FLASH_PAGE_SIZE)
                        write_nSECTOR(addr, size,(uint32_t *) buffer);
                else       
                        writeSECTOR(addr, (uint32_t *) buffer);
}

使用特权

评论回复
74
与时俱进|  楼主 | 2014-5-3 21:28 | 只看该作者
进一步把SPI改成fifo传输模式,性能又提高了一些。
测试结果:
列目录时间(从插入USB到“我的电脑”出现可移动磁盘):27秒
写盘速度:427kB/S。   从硬盘拷贝一个130MB文件到SD卡,费时5分12秒
读盘速度:407kB/S。    同一个文件,从SD卡拷贝到硬盘费时5分28秒



使用特权

评论回复
75
骗子的片子| | 2014-5-30 22:42 | 只看该作者
通宵敲代码 发表于 2014-4-26 20:22

:hug:努力呢亲

使用特权

评论回复
76
骗子的片子| | 2014-5-30 22:42 | 只看该作者
与时俱进 发表于 2014-5-3 21:28
进一步把SPI改成fifo传输模式,性能又提高了一些。
测试结果:
列目录时间(从插入USB到“我的电脑”出现可 ...

一步一步看你成功,真开心

使用特权

评论回复
77
骗子的片子| | 2014-5-30 22:43 | 只看该作者
与时俱进 发表于 2014-4-26 20:52
DataFlashProg.c文件修改成只剩下面两个子程序:

if(size > FLASH_PAGE_SIZE)
                        write_nSECTOR(addr, size,(uint32_t *) buffer);
                else      
                        writeSECTOR(addr, (uint32_t *) buffer);

使用特权

评论回复
78
骗子的片子| | 2014-5-30 22:43 | 只看该作者
与时俱进 发表于 2014-4-26 20:39
写盘速度提高了将近一倍(186—>350),读盘速度只是稍有改善(283—>340)。
有点奇怪,写盘速度竟然超过读 ...

是不是读盘程序有问题啊

使用特权

评论回复
79
骗子的片子| | 2014-5-30 22:43 | 只看该作者
与时俱进 发表于 2014-4-26 20:35
本来数据缓冲区是512字节,只能用上单扇区读、写程序,速度较慢;
今天修改一下程序,缓冲区增加到4096字节 ...

写盘速度:350kB/S。   从硬盘拷贝一个130MB文件到SD卡,费时6分21秒
读盘速度:340kB/S。    同一个文件,从SD卡拷贝到硬盘费时6分33秒

使用特权

评论回复
80
通宵敲代码| | 2014-5-30 23:01 | 只看该作者
骗子的片子 发表于 2014-5-30 22:42
努力呢亲

必须的!

使用特权

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

本版积分规则