CH32V307VCT6-EVT-R2開發(fā)板
以USBHS?DEVICE MSC_U-Disk例程為基礎(chǔ),簡(jiǎn)單融入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? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* 磁盤扇區(qū)大小 */
? ? #define DEF_FLASH_SECTOR_SIZE? ? ? 512? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* 定義FLASH扇區(qū)大小 */
? ? #define DEF_UDISK_SECTOR_SIZE? ? ? DEF_CFG_DISK_SEC_SIZE? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* 定義U盤扇區(qū)大小 */
#elif(STORAGE_MEDIUM == MEDIUM_SD_FLASH)
????SD_ReadBlock();
#elif(STORAGE_MEDIUM ==?MEDIUM_SD_FLASH)
????SD_WriteBlock();
可以實(shí)現(xiàn)基礎(chǔ)SD卡模擬U盤功能。
遇到問題:
1 SD卡默認(rèn)配置,開機(jī)識(shí)別U盤速度,格式化速度,讀寫速度非常慢,單個(gè)10MB文件寫入350KB/s,讀取1.4MB/s
2 將SD卡配置成DMA SD_SetDeviceMode( SD_DMA_MODE);不可運(yùn)行
2.1 單獨(dú)配置讀取啟動(dòng)DMA,運(yùn)行正常,但是速度沒有變化
2.2 單獨(dú)配置寫入啟動(dòng)DMA,不可運(yùn)行。
2.3 SD啟動(dòng)DMA,初始化后的測(cè)試?yán)陶?,只有在作為U盤媒介時(shí),寫入啟動(dòng)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中屏蔽寫入代碼,測(cè)試寫入速度15MB/s。
請(qǐng)問如何提高模擬U盤的讀寫速度,包括格式化和USB識(shí)別速度?
CH565W開發(fā)板,EMMC媒介模擬U盤,USB2.0接口,讀寫速度35MB/s,USB3.0接口,讀寫44MB/s。307與565差距太大了。