ch375寫U盤的速度怎么這么低

我在做U盤錄音時,用的是CH375,怎么寫一個扇區(qū)要20幾毫秒啊,項目根本就不能做下去了,怎么辦啊

CH375用庫操作U盤的話,如果以扇區(qū)方式,大數(shù)據(jù)塊(30K)讀寫的話速度可以達(dá)到100K--200K字節(jié)/S. 如果速度達(dá)不到要求的話,可以將375換成374芯片,兩者功能相同,只是CH374是去掉了一些內(nèi)置固件的純接口芯片,因此速度比375要快。


按2樓的做法,CH375一般能調(diào)到200K到300K左右吧,1樓的速度低可參考CH375評估板資料中的一些速度說明


我在寫數(shù)據(jù)時,要寫FAT表,特別是跨扇區(qū)的,數(shù)據(jù)要快,數(shù)據(jù)采集要一定的程序時間,數(shù)據(jù)還要適時.再說我用的是IC的RAM空間只有2K,只能一個扇區(qū)一個扇區(qū)的寫,比較的麻煩


按照你說的,你采集一個扇區(qū)的數(shù)據(jù)需要多長時間呢?現(xiàn)在要分析是我們寫U盤的速度慢還是你程序別的地方出了問題,你可以單獨(dú)的測下我們U盤寫扇區(qū)的速度,你可以創(chuàng)建一個文件,往里面寫一個大的數(shù)據(jù),然后你計算下寫的速度是多少?應(yīng)該沒那么慢,除非你的單片機(jī)速度很慢。


我的讀寫子程序:  寫一個扇區(qū)的時間:28mS(512Bytes),讀一個扇區(qū)的速度:2.2mS,電腦的速度速度是300K?。拢簦澹螅?,是一個大文件,341M,里面有目錄等各種文件,主要是圖片,用了16分中, U盤是清華同創(chuàng)(型號TC508),另外測了朗科(型號U218?。担保玻懀毡P的速度是32mS一個扇區(qū);這些都是主

測試方法: WHILE{   ?。蹋牛模撸校桑危剑?;    CH375_RD_PAGE(XXX);XXX=0X02   ?。蹋牛模撸校桑危剑?;   ?。茫龋常罚担撸祝遥撸校粒牵牛ǎ兀兀兀?; } 測試LED_PIN的方波的速度. unsigned char Ch375_RD_Page(unsigned long page_address) { idata volatile char Rd_nop; data char i,j; data int buff_counter=0x00; //000----512 data char rd_status; Ch375_Command(0x54); Ch375_WR_Data(page_address); Ch375_WR_Data(page_address>>8); Ch375_WR_Data(page_address>>16); Ch375_WR_Data(page_address>>24); Ch375_WR_Data(0x01);

for(i=0;i<8;i++) { while(J2a_INT==0) J2a_Encode_Loop(); rd_status=Ch375_Status(); if(rd_status != 0x1d) break; Ch375_Command(0x28); j=Ch375_RD_Data(); //過渡

P1MDOUT=0x00; P1=0xff; Ch375_CE=0; for(j=0;j<64;j++) { Ch375_RE=0; Rd_nop++; Rd_nop++; Fat_Data[buff_counter]=P1; Ch375_RE=1; for(Rd_nop=0;Rd_nop<2;Rd_nop) Rd_nop++; buff_counter++; } Ch375_CE=1; Ch375_Command(0x55); } if(i<8) //提前推出,出錯 return(0x1f);

rd_status=Ch375_Status(); return(rd_status); } unsigned char Ch375_WR_Page(unsigned long page_address) { idata volatile char WR_nop; data char i,j; data int wr_pointer=0x00; //00---512 data char wr_status;

Ch375_Command(0x56); Ch375_WR_Data(page_address); Ch375_WR_Data(page_address>>8); Ch375_WR_Data(page_address>>16); Ch375_WR_Data(page_address>>24); Ch375_WR_Data(0x01); for(i=0;i<8;i++) { while(J2a_INT==0) J2a_Encode_Loop(); wr_status=Ch375_Status(); if(wr_status != 0x1e) break;

Ch375_Command(0x2b); Ch375_WR_Data(0x40);

P1MDOUT=0xff; Ch375_CE=0; for(j=0;j<64;j++) { P1=Fat_Data[wr_pointer]; Ch375_WE=0; WR_nop++; WR_nop++; Ch375_WE=1; for(WR_nop=0;WR_nop<2;WR_nop) WR_nop++;

wr_pointer++; } Ch375_CE=1; Ch375_Command(0x57); } if(i<8) return(0x1f);

wr_status=Ch375_Status(); return(wr_status); }

unsigned char Ch375_Status(void) { char int_status; while(Ch375_INT); Ch375_Command(0x22); int_status=Ch375_RD_Data(); if(int_status==0x16) Ch375_Mode=0x00;

return(int_status); }

void Ch375_Command(command) { idata volatile char nop_nop;

P1MDOUT=0xff; Ch375_A0=1; P1=command; Ch375_CE=0; Ch375_WE=0; nop_nop++; nop_nop++; nop_nop++; Ch375_WE=1; Ch375_CE=1; Ch375_A0=0;

for(nop_nop=0;nop_nop<5;nop_nop) nop_nop++; }

void Ch375_WR_Data(value) { idata volatile char nop_nop; P1MDOUT=0xff; P1=value; Ch375_CE=0; Ch375_WE=0; nop_nop++; nop_nop++; nop_nop++; Ch375_WE=1; Ch375_CE=1; for(nop_nop=0;nop_nop<2;nop_nop) nop_nop++; }

char Ch375_RD_Data(void) { idata volatile char nop_nop; unsigned char para;

P1MDOUT=0x00; P1=0xff; Ch375_CE=0; Ch375_RE=0; nop_nop++; nop_nop++; nop_nop++; para=P1; Ch375_RE=1; Ch375_CE=1; for(nop_nop=0;nop_nop<2;nop_nop) nop_nop++; return(para); }


讀的速度可以達(dá)到230K字節(jié)/S,這個應(yīng)該是正常的速度,而寫的話和U盤本身的特性有關(guān)系,你可以換一個U盤試下看。 但是速度也不會這么慢啊,估計還有問題


經(jīng)過測試發(fā)現(xiàn),一次寫一個扇區(qū)和一次寫4個扇區(qū)所花的時間差不多,多2mS的時間,但我的MCU的RAM太小,看來的找個RAM比較大的MCU,但成本增加很多,沒有辦法,等著挨罵,


不知怎么搞的,我按照 公司提供的電路,可是不能讀取,如果有成功讀寫的,請發(fā)個人信息保護(hù),已隱藏 先謝謝你了


以前我也是不能讀,后來根據(jù)南京公司提供的初始程序,就可以讀了,你要先讀 U盤的初始化,容量,是否準(zhǔn)備好等過程,必須這樣,才能讀


以扇區(qū)為單位進(jìn)行文件讀寫(寫比讀慢),并口連接方式的最高速度可達(dá)100K 到200K 字節(jié); 這是ch375的幫助文檔,關(guān)于怎么提高速度的: 1:如果將CH375 芯片換成CH374 芯片,并且提高單片機(jī)的時鐘頻率,那么速度還可以提高1 倍。 2:為了提高處理效率和速度,建議對USB 閃存盤使用FAT12 或者FAT16 文件系統(tǒng)


并口的話可以用個絕對地址定義,那樣或許好些


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频