我想做个MP3,要怎么入手?
從我更新的頻率,大家應該猜出來了,最近有點忙。忙完了設備調試的工作,又來了個畫圖的活。本來改動不大,但怎料...哎,一言難盡。
今天回答一個粉絲的提問:
看完這個回復,我依然沒明白他到底想做哪部分。算了,隨便寫寫吧。
如果是想自己做解碼的部分的話,略微還是有些難度,簡單說下,歡迎補充。假設你是一個有單片機基礎,但是對MP3以及相關知識不太了解的人,那么首先,要明白一個MP3的結構由哪些部分組成,如下:
存儲部分
可以選擇優盤或者TF卡之類的,優盤的話驅動芯片可以選擇CH375,TF卡或者SD卡的話,一般是SPI接口就能驅動。但無論這兩種之間的哪一種,你都要了解文件系統,因為你要查找存儲器中的MP3格式的文件,文件系統個人建議FATFS,網上資料很多,百度去吧。
解碼芯片
解碼芯片這里有兩個選擇,一個是VS1003B,一個是單片機自身。
VS1003B
先說VS1003B,這個芯片出現很多年了,某寶一搜一大堆,網上的相關資料也很多。這是個具有DSP內核的編解碼芯片,不光能播放MP3,還能錄音,貌似還可以用它做VOIP。如下:
價格從20到40都有,隨意。
單片機自身
像STM32F103系列里,有的型號是自帶IIS接口的,這樣的話可以把解碼工作在單片機內部進行處理:
MP3解碼,建議使用helix庫(別的我也不知道),網上資料很多,放心用。比較占資源,據說編譯后要用40K左右的RAM。
IIS接口是這樣的:
有的時候是三條線,有的時候是四條線,取決于后面的音頻DAC芯片是否需要MCLK。
然后外接的音頻DAC我知道的有兩種,一種是CS4344:
這個芯片工作時必須提供一個MCLK,而且必須要和SCLK同步,也就是說MCLK不能是外部晶體提供的,必須是處理器同時提供MCLK和SCLK。
我在數碼之家論壇上,看到過有人用STM32F103的IIS外接CS4344,做了一個MP3,因為4344需要的時鐘頻率比較奇葩,所以作者把STM32小小的超頻到了80MHZ,然后輸出了一個頻率接近的MCLK。
另一個芯片是WM8978,這個芯片也是比較強大的:
雖然標的是MP3模塊,它也確實是MP3模塊,不過送的例程里,是對WAV文件進行的解碼,這種文件格式比較簡單,不需要使用helix庫。想要用它解碼MP3文件的話,多上網搜搜吧。
對了,它雖然也需要MCLK信號,但是不必和SCLK信號同步。也就是說可以外接一個晶振給它提供時鐘信號,同時芯片內部還有PLL電路,可以對輸入的時鐘進行倍頻、分頻,比較靈活。
處理器
如果用的是VS1003B的話,增強型51,或者STM32就可以了。因為數據量比較大,該芯片是SPI接口的,所以盡量使用硬件SPI。如果是WM8978這種,需要IIS接口的,那就選帶有IIS接口的處理器,例如STM32F103VET或者STM32F407都可以。
功放
TDA2003?
網上很多,不解釋
供電
如果用的是鋰電池,盡量帶一個充電電路吧,也不復雜。TP4056,TP4057?
基本就這些了吧。當然,如果你做到一半,發現有心無力,買個現成的MP3模塊吧。這東西現在很成熟,沒多少錢:
開心就好~~~
推薦閱讀:
專輯|Linux文章匯總
專輯|程序人生
專輯|C語言
我的知識小密圈
關注公眾號,后臺回復「1024」獲取學習資料網盤鏈接。
歡迎點贊,關注,轉發,在看,您的每一次鼓勵,我都將銘記于心~
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的我想做个MP3,要怎么入手?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql 常用命令
- 下一篇: 伍德里奇计量经济学第四章计算机答案,计量