vs1003播放MP3卡的問題
這次用到的模塊和上一次一樣,也是STM32F103RBT6最小系統(tǒng)板,VS1003模塊,SD卡模塊,還有一個按鍵模塊就這些。SD卡模塊和stm32通信采用的是SPI接口,這里使用的是SPI1,vs1003和stm32通信也是SPI,這里使用是SPI2,sd卡模塊的引腳加上電源和地也就6根,vs1003的引腳相對較多,電源地2根+SPI的4根+ XDCS和XCS+DREQ共9根。在這里我們使用了15根杜邦線將他們連接到一起 。
本文引用地址:http://m.butianyuan.cn/article/201611/322279.htm我在調試中有點著急,眉毛胡子一把抓,以為連接好硬件后,下載軟件聚會OK的,結果沒有好的情況的下依然處在這種泥潭下,毫無頭緒的找毛病,改改這,動動那,在沒有搞懂狀況的情況下。既浪費時間又會讓人惱火,仍無濟于事。建議,把兩者區(qū)分開,先把vs1003線拔下來,直接調試sd卡模塊,這樣線少,不會產生凌亂的感覺。sd卡模塊是采用的SPI1,對照原理圖,將mosi,miso,sck,cs一對一的重新接好,在初始化處設置斷點,觀察返回值是否為零。進一步調試fat初始化是否成功,按照這樣的思想,同樣調試vs1003.我就是這樣終于vs1003正弦測試成功。
但是,兩者都能正常初始化沒問題的情況下,依舊有一個讓人頭疼的問題,就是播放卡帶的問題,就像老家使用VCD播放電影時有卡帶并且還有機關槍“突突”的聲音,雖然能播放出來,但突突的斷續(xù)卻感覺不到成功的喜悅。然后參考別人的代碼,翻閱手冊,SPI——setspeed()改大改小,屁變化沒有。那問題就出在SPI的問題上,或者是SPI1或者是SPI2,說不定兩者在設置速率上都存在問題。搜索資料發(fā)現(xiàn)DREQ也容易出問題,我改變DREQ的引腳定義,最后還是改成懸空輸入,在DREQ外加上拉電阻,還是不行,拔掉DREQ這跟線竟然播放沒有變化,那肯定跟SPI的速率有關了。懷疑SPI初始化配置有問題,檢查一下沒問題,之前的好多例子都是用這個的。沒法了,我就將MMC_SD.C的文件里所有的SPI1和設置速率跟SPI1有關的都檢查一下,見過發(fā)現(xiàn)還真有SPI1和SPI2傻傻分不清楚的。有檢查vs10xx.c文件里的SPI2的使用,結果也發(fā)現(xiàn)速率配置不對的問題。改完后,重新編譯下載。問題竟然解決了,vs1003的解碼音質真不比買來的mp3音質差。
總結,調試多模塊的設備,分開調試,節(jié)省時間,vs1003能播放出音樂,但比較慢或者卡,那基本上出現(xiàn)在SPI的速率上,仔細檢查吧
激動之余,寫此分享!
評論