




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、MP3播放器制作心歷VS1003調(diào)試在調(diào)試vs1003之前就已經(jīng)翻閱過vs1003的datasheet(數(shù)據(jù)手冊(cè))基本上懂了其通訊原理,和一些基本設(shè)置。在調(diào)試的時(shí)候只是拿網(wǎng)上找的代碼,做了相應(yīng)的修改(接口改為我自己的,功能改為我自己想要的功能),這樣只是為了快速測試我的vs1003模塊能不能用,當(dāng)然這首先是要你能理解其代碼,要不然是第一次調(diào)試你也不知道是程序有錯(cuò)還是硬件有錯(cuò)。在確定程序沒錯(cuò)之后,我就可以確定如果沒有效果,那肯定是我的解碼模塊不行。測試通過之后我就可以放心的使用我自己的解碼模塊。接下來的程序我就可以根據(jù)自己想要的慢慢來寫。第一次寫程序進(jìn)去就聽到耳機(jī)里輸出了很高的鳴叫聲,這是因?yàn)槲?/p>
2、把正弦測試(vs1003自帶的一種測試,這樣就能很快確定你的vs1003是否能工作)頻率調(diào)的很高所以聲音很尖,被嚇了一次。第二次就把它改小了一點(diǎn),嘟的一聲,呵呵相當(dāng)激動(dòng),這說明我的vs1003可以用(s1003非常脆弱很容易壞又貴又不好買)正弦測試成功之后我就開始想給vs1003發(fā)送MP3音頻數(shù)據(jù)看能不能解碼放出聲音來頻數(shù)據(jù)我最初的想法是通過winhex軟件打開查看MP3我最初的想法是通過winhex軟件打開查看MP3代碼然后拷貝出來作為一個(gè)數(shù)組發(fā)給vs1003。這個(gè)數(shù)據(jù)要儲(chǔ)存在我的單片機(jī)的程序儲(chǔ)存區(qū)里,還好我的單片機(jī)程序儲(chǔ)存區(qū)夠大有64K。這樣多的MP3代碼也只能夠聽到一點(diǎn)點(diǎn)聲音,效果肯定是
3、無法體會(huì)的道。果然,在耳機(jī)里只聽到吱的一聲就沒了根本沒用之后我就想把sd卡加進(jìn)來,讓MCU一邊從sd里讀取MP3數(shù)據(jù),口一邊發(fā)送到vs1003里邊去解碼,這樣就可以一直把一首MP3的數(shù)據(jù)全部發(fā)送到vs1003進(jìn)行解碼。于是我先拷貝了一個(gè)碼率比較低的MP3,因?yàn)閱纹瑱C(jī)的速度畢竟很慢從sd卡里讀取數(shù)據(jù)然后又要發(fā)送給vs1003解碼先找一個(gè)碼率比較低的MP3做測試這是明智的選擇。開始組合程序,編寫相應(yīng)的主函數(shù),通電測試。沒有任何反應(yīng),串口調(diào)試(如果讀寫sd正??梢詮拇诮邮盏絪d卡的第0扇區(qū)數(shù)據(jù)(邏輯扇區(qū))這是我程序特意設(shè)定的,為了方便看出sd是否在工作)也接收不到任何數(shù)據(jù),確定sd卡未啟用。我以為
4、sd卡的讀寫又出問題了拿之前做好的sd測試程序重新測試,也沒有數(shù)據(jù)輸出,很暈。不經(jīng)意間我發(fā)現(xiàn)當(dāng)我拔掉解碼模塊sd卡讀寫正常,找到這一重要點(diǎn)之后,我開始分析問題。因?yàn)槲业膕d卡和vs1003因?yàn)槲业膕d卡和vs1003與MCU的通訊方式都是spi。而我的MCU只有一個(gè)硬件spi,所以都統(tǒng)一連接到一起了spi??上У氖沁@MCU為5V器口設(shè)置成為開漏形式,讓后加片機(jī)spi口最大電壓也只能是式讓它的驅(qū)動(dòng)能力變得很弱,無法同時(shí)接兩個(gè)而我的MCU只有一個(gè)硬件spi,所以都統(tǒng)一連接到一起了spi??上У氖沁@MCU為5V器口設(shè)置成為開漏形式,讓后加片機(jī)spi口最大電壓也只能是式讓它的驅(qū)動(dòng)能力變得很弱,無法同時(shí)
5、接兩個(gè)模塊于是我把sd卡的接口換到3.3v的上拉。這樣我的單3,3v了。不過同時(shí)開口形spi通訊P0口采用軟件模擬spi讀取數(shù)據(jù),這樣一來,呵呵串口可以看到接收到數(shù)據(jù)了隨之耳機(jī)里傳來了久違的音樂,不過聲音很亂,就像快進(jìn)一樣。還是很興奮,畢竟是能出聲音了。為什么聲音會(huì)亂掉,這個(gè)時(shí)候開始找問題,一直花了我兩天的時(shí)間,vs1003的datasheet看了一遍又一遍,敢肯定我的程序絕對(duì)是沒錯(cuò)。那就是硬件了。分析它的原理開始查問題,看看是那步錯(cuò)了。vs1003解碼MP3數(shù)據(jù),你只要把正確的MP3數(shù)據(jù)傳送給它,口就能自動(dòng)識(shí)別你的MP3是多少碼率的,然后通過一定的解碼速率進(jìn)行解碼。這個(gè)時(shí)候就有疑問了,既然解
6、碼的速率確定了,為了能流暢的播放出音樂來,你給vs1003發(fā)送MP3數(shù)據(jù)的速率必須跟它解碼的速率一vs1003樣,那怎么去保證這兩個(gè)速度一樣呢?如果送給的數(shù)據(jù)過快,那我們可以加延時(shí)讓它一樣,那這時(shí)候又vs1003出問題了,難道每一首不同碼率的歌都要去加個(gè)延時(shí)嗎(這里是按發(fā)送數(shù)據(jù)永遠(yuǎn)比解碼速率快的情況來分析),這樣肯定是不合理的。不用擔(dān)心,vs1003為用戶準(zhǔn)備了0.5k的數(shù)據(jù)緩沖區(qū)做為音頻數(shù)據(jù)的緩沖,這就好像一個(gè)漏斗一樣,0.5k空間就像漏斗的容量,你只要保證漏斗里邊始終有東西,那么漏斗底下就始終有東西流出,保持連續(xù)。你給漏斗加料的速度無所謂,只要你別讓漏斗里邊為空就行。vs1003是一樣的為
7、了解碼正常,播放流暢,你只要保證數(shù)據(jù)緩沖區(qū)里始終有數(shù)據(jù)作為待解碼對(duì)象,這樣就可以放出流暢的音樂來。這里又有問題了,我們?cè)趺创_定數(shù)據(jù)緩沖區(qū)里到低有沒有數(shù)據(jù),或者是還有多少,怎么控制發(fā)送數(shù)據(jù)。vs1003也幫你考慮到這一點(diǎn)了,所以他專門設(shè)定了一個(gè)中斷口DREQ,當(dāng)DREQ變高時(shí),外部可以至少為vs1003發(fā)送32字節(jié)的數(shù)據(jù)(這是SDI數(shù)據(jù),還有一種SCI數(shù)據(jù),這里不說了口,為了保證播放流暢。當(dāng)vs1003收到32字節(jié)的數(shù)據(jù)之后他的DREQ腳變?yōu)榈?,此時(shí)可以暫時(shí)不往里邊發(fā)送數(shù)據(jù),如果數(shù)據(jù)緩沖區(qū)內(nèi)少于32字節(jié)的有效數(shù)據(jù),那么vs1003將DREQ置為高電平,此時(shí)需要往里邊發(fā)送數(shù)據(jù)(對(duì)于DREQ腳的變化
8、,網(wǎng)上有異議,這是我個(gè)人的理解)。這里你會(huì)發(fā)現(xiàn),我之前不是說數(shù)據(jù)緩沖區(qū)是0.5k,為什么每次才32個(gè)數(shù)據(jù)就可以了。vs1003只是設(shè)置了一個(gè)32byte為標(biāo)準(zhǔn),當(dāng)然你可以當(dāng)在檢測到DREQ腳變高時(shí),往里邊一次性發(fā)送少于(這是必須的)0.5k的字節(jié),然后再去檢測DREQ的狀態(tài),當(dāng)再次變高時(shí)你就可以再往里邊發(fā)送那么多數(shù)據(jù),是可以的。32byte只是一個(gè)最低標(biāo)準(zhǔn)。個(gè)人理解按這個(gè)尋到問題的根源我的DREQ00000,0蔽了他播放跟本沒變,所以說,我的MCU無法判斷vs1003的數(shù)據(jù)區(qū)是否滿了是否需要新數(shù)據(jù),這里只是一股腦的往vs1003里灌數(shù)據(jù)所以導(dǎo)致我的音樂播放不正常,測量初始化之后的vs1003的DREQ腳,發(fā)現(xiàn)竟然出現(xiàn)1.8v,不高不低,處于模糊狀態(tài)。確定DREQ腳不能工作,網(wǎng)上尋求答案,對(duì)我的情況都沒用。之后又翻到pcb圖上去,發(fā)現(xiàn)一個(gè)很重要的地方未連接,就是當(dāng)用spi模式給vs1003發(fā)送數(shù)據(jù)的時(shí)候,其串口RX必須接到IOVDD.還有一個(gè)test0000IOV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林地區(qū)普通高中友好學(xué)校聯(lián)合體2024-2025學(xué)年高二下學(xué)期期中地理試卷(含答案)
- 財(cái)務(wù)會(huì)計(jì)實(shí)習(xí)個(gè)人工作總結(jié)
- 廣東省2024-2025學(xué)年八下英語期末模擬測試卷(二)(無答案)
- 幼兒園保育員培訓(xùn)課件2024鮮版
- 臨床低T3綜合征定義、流行病學(xué)、病理生理機(jī)制、治療策略等診治策略要點(diǎn)
- 日語語法題目解析及答案
- 日語動(dòng)詞變形題目及答案
- 2023-2024學(xué)年山東省東營市高二下學(xué)期期末質(zhì)量監(jiān)測數(shù)學(xué)試題(解析版)
- 環(huán)境系統(tǒng)工程課件
- 農(nóng)村發(fā)展方向問題研究
- 崗位練兵中藥專業(yè)前一百題測試(一)測試題
- 土地項(xiàng)目測算表_模板
- 中華傳統(tǒng)文化教育學(xué)生學(xué)習(xí)能力評(píng)價(jià)量化表
- 服裝色彩設(shè)計(jì)(PPT57頁)課件
- DLT 596-2021 電力設(shè)備預(yù)防性試驗(yàn)規(guī)程
- 內(nèi)分泌系統(tǒng)疾病病例分析
- 鋁箔軋制油過濾技術(shù)
- 專項(xiàng)審計(jì)報(bào)告模板(青島市高新技術(shù)企業(yè)認(rèn)定專用)
- 成都市所有的藥房.doc
- 基于BIM模型技術(shù)交底應(yīng)用
- 產(chǎn)品設(shè)計(jì)和開發(fā)控制程序
評(píng)論
0/150
提交評(píng)論