CH32V307VCT6-EVT-R2开发板
以USBHS DEVICE MSC_U-Disk例程为基础,简单融入SDIO例程,将SD卡作为媒介,修改SW_UDISK.c和.h文件
#define STORAGE_MEDIUM MEDIUM_SD_FLASH
#elif (STORAGE_MEDIUM == MEDIUM_SD_FLASH)
#define DEF_CFG_DISK_SEC_SIZE 512 /* 磁盘扇区大小 */
#define DEF_FLASH_SECTOR_SIZE 512 /* 定义FLASH扇区大小 */
#define DEF_UDISK_SECTOR_SIZE DEF_CFG_DISK_SEC_SIZE /* 定义U盘扇区大小 */
#elif(STORAGE_MEDIUM == MEDIUM_SD_FLASH)
SD_ReadBlock();
#elif(STORAGE_MEDIUM == MEDIUM_SD_FLASH)
SD_WriteBlock();
可以实现基础SD卡模拟U盘功能。
遇到问题:
1 SD卡默认配置,开机识别U盘速度,格式化速度,读写速度非常慢,单个10MB文件写入350KB/s,读取1.4MB/s
2 将SD卡配置成DMA SD_SetDeviceMode( SD_DMA_MODE);不可运行
2.1 单独配置读取启动DMA,运行正常,但是速度没有变化
2.2 单独配置写入启动DMA,不可运行。
2.3 SD启动DMA,初始化后的测试例程正常,只有在作为U盘媒介时,写入启动DMA异常
for(i=0; i
if(SD_WriteDisk(buf,i,1)) printf("Wr %d sector fail\n", i);
if(SD_ReadDisk(Readbuf,i,1)) printf("Rd %d sector fail\n", i);
if(memcmp(buf, Readbuf, 512)){
printf(" %d sector Verify fail\n", i);
break;
}
}
3 在SW_UDISK.c中屏蔽写入代码,测试写入速度15MB/s。
请问如何提高模拟U盘的读写速度,包括格式化和USB识别速度?
CH565W开发板,EMMC媒介模拟U盘,USB2.0接口,读写速度35MB/s,USB3.0接口,读写44MB/s。307与565差距太大了。