MP3方案為: Atmega16l+Sta013+Ch375A+Cs4334 終于可以播放歌曲了?。?!體會(huì)到Mcu處理速度的重要了?。。。?/p>
恭喜! 可以公布出來,讓大家學(xué)習(xí)嗎?
談?wù)勎易鯩P3的一些經(jīng)驗(yàn)吧。 1.首先把Fat16/Fat32文件系統(tǒng)弄清楚(網(wǎng)上這方面資料很多),知道文件是怎樣存儲(chǔ),這樣才能在U盤找到MP3歌曲。 2.Sta013看其Datasheet很難使其正常工作,主要是要把起官方的配置文件加載進(jìn)去,后面的就很好控制了。 3.讀U盤數(shù)據(jù)和發(fā)數(shù)據(jù)給Sta013要求速度很快,否則你聽到的就是噪音了!
羨慕啊, 詳細(xì)的給大家介紹一下好么
開講座,不錯(cuò)!! 贊?。?!
本來要說,在xQueryInterrupt子程序也要送MP3數(shù)據(jù)提高速度的,看你已經(jīng)解決了,就不多說了
引用回復(fù):MP3方案為: Atmega16l+Sta013+Ch375A+Cs4334 終于可以播放歌曲了?。?!體會(huì)到Mcu處理速度的重要了?。。?!
哦,可以介紹一下你用的MCU嗎?
用的MCU是Atmel公司的AVR單片機(jī),Atmegal16l Fos:8M 處理速度可達(dá)8MIPS.
本人也有用單片機(jī)在做一個(gè)MP3的方案,(STA013)我用的是8051,現(xiàn)在聲音是出的來了,就是斷斷斷續(xù)續(xù),頭大啊,讀取文件數(shù)據(jù)的速度不夠快,兄臺(tái)可否分享一下你的經(jīng)驗(yàn)呀,CH375讀出一個(gè)扇區(qū)大致要多少時(shí)間呀(12MHZ)
12M的速度太慢了,緩沖區(qū)開兩個(gè),,你得開大一點(diǎn)了,
雙緩沖.一進(jìn)一出.要保證STA013要數(shù)據(jù)就給它.
to CAESATZAR { M } 這樣解決: 1.你改用24M晶體試試。 2.在程序中精簡(jiǎn)指令,提高速度. 3.我用AVR單片機(jī)只開了一個(gè)512字節(jié)緩存,AVR速度夠快,你也可以考慮。
24M 51,最少你也得要兩個(gè)1.5KRAM,AVR的確實(shí)快.
a
goodys,店小二兄,我用的晶振是24M的,雙緩沖區(qū)。問題應(yīng)該出在像STA013下載數(shù)據(jù),請(qǐng)店小二講解一下xQueryInterrupt子程序送數(shù)據(jù),可以麼。
void xQueryInterrupt( void ) /* 查詢CH375中斷并更新中斷狀態(tài) */ { unsigned char i; do{ /*這里首先響應(yīng)013的數(shù)據(jù)請(qǐng)求*/ if(F_DEC){ //如果有數(shù)據(jù)則下傳 do{ if(!DataStrBit())goto XCC; /*啟動(dòng)下傳數(shù)據(jù)*/ /*返回為0,STA013緩沖區(qū)滿則跳出*/ }while(--DATACOUNT.mDataCount8[0]); /*外循環(huán)*/ F_DEC=0; /*數(shù)據(jù)發(fā)送完畢設(shè)置標(biāo)志*/ } XCC: i=0; /*無意義*/ }while(CH375_INT_WIRE); /*如果CH375的中斷沒到來則繼續(xù)*/
/*以下為操作CH375*/ CH375_CMD_PORT = CMD_GET_STATUS; /* 獲取當(dāng)前中斷狀態(tài) */ CH375IntStatus &= 0x80; if ( CH375IntStatus ) CH375IntStatus = 0; /* 操作無意義,用于至少延時(shí)2uS */ CH375IntStatus = CH375_DAT_PORT; /* 獲取中斷狀態(tài) */ if ( CH375IntStatus == USB_INT_DISCONNECT ) CH375DiskStatus = DISK_DISCONNECT; /* 檢測(cè)到USB設(shè)備斷開事件 */ else if ( CH375IntStatus == USB_INT_CONNECT ) CH375DiskStatus = DISK_CONNECT; /* 檢測(cè)到USB設(shè)備連接事件 */
}
這里要求當(dāng)013有數(shù)據(jù)請(qǐng)求時(shí)首先響應(yīng)013而不去關(guān)心375的中斷請(qǐng)求,當(dāng)響應(yīng)375的請(qǐng)求時(shí)不要關(guān)心013的數(shù)據(jù)請(qǐng)求.做到分而致之.