找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1788|回復(fù): 2
收起左側(cè)

51 開(kāi)源 180MHz-PWM-播放立體聲音樂(lè)@STC32G12K128, USB-CDC實(shí)時(shí)傳輸音頻

[復(fù)制鏈接]
ID:1085085 發(fā)表于 2023-11-20 17:14 | 顯示全部樓層 |閱讀模式
51 開(kāi)源 180MHz-PWMA-播放立體聲音樂(lè)@STC32G12K128, USB-CDC實(shí)時(shí)傳輸音頻
WAV播放程序使用說(shuō)明
1、簡(jiǎn)介
建議用戶直接下載"Objects"里的"audio-play.hex"測(cè)試. 下載時(shí)選擇主頻30MHz
WAV播放器使用STC32G12K128運(yùn)行,MCU內(nèi)部HIRC工作于30MHzPLL180MHzPWM時(shí)鐘,6分頻30MHzCPU-系統(tǒng)時(shí)鐘。
兩路HS-PWM工作時(shí)鐘為180MHz,PWM周期為4097,輸出PWM頻率大約為44KHz(CD采樣率44.1KHz相近),占空比為12位。
本播放程序支持以下WAV文件的播放,由【STC-ISP | 調(diào)試接口 |播放WAVE】界面通過(guò) USB-CDC 虛擬串口/就是串口下傳音頻數(shù)據(jù):
支持PCMADPCM、A-Law
支持16位無(wú)壓縮(CD音軌)WINDOWS PCM格式,單聲道或雙聲道采樣率最高支持44.1KHz
支持IMA-ADPCM格式,單通道或雙通道采樣率最高支持44.1KHz
支持A-law(A)格式,單通道或雙通道采樣率最高支持44.1KHz
語(yǔ)音解碼算法可能看似跟網(wǎng)上的有差異,但算法實(shí)際是一樣的,我只是將其簡(jiǎn)化操作而已。各種算法可以網(wǎng)搜相關(guān)知識(shí),但不在本文討論之列。
2、輸出濾波電路
輸出PWM要經(jīng)過(guò)低通濾波器獲得光滑的模擬信號(hào)輸出,請(qǐng)參考下圖的電路:3階巴特沃斯低通濾波器。
1.jpg
PWMA1P--P1.0左聲道,    PWMA3P--P1.4右聲道。
左右聲道完全一致,以左聲道為例,PWM信號(hào)經(jīng)過(guò)R1、R2分壓適當(dāng)衰減后與C1組成第一階RC低通濾波,將變化陡峭的PWM的高頻諧波濾除,再送到運(yùn)放組成的二階低通濾波電路濾波輸出,就得到模擬信號(hào),經(jīng)過(guò)C4隔直后得到交流信號(hào),從3.5mm的立體聲插座輸出。用戶可以用SPWM輸出一個(gè)1000Hz正弦波來(lái)評(píng)估其性能。
上圖參數(shù)為對(duì)應(yīng)16KHz采樣的輸出,轉(zhuǎn)折頻率為不超過(guò)采樣頻率的一半即可。
要改成別的采樣頻率,則按比例改變電容即可,電阻不變。
注意:圖中零件不是隨便取的,是經(jīng)過(guò)精心計(jì)算的,無(wú)源一階低通、有源二階低通的截止頻率和Q值都不同,兩者串聯(lián)才能得到最終的輸出響應(yīng)。
模擬濾波器相關(guān)的知識(shí)不在本文討論范疇,用戶可以自行復(fù)習(xí)模擬電子技術(shù)基礎(chǔ)的相關(guān)章節(jié)。

3、使用“屠龍刀三”核心板驗(yàn)證
本程序使用STC公司的“屠龍刀三”核心板驗(yàn)證,用戶可以自行修改到自己的系統(tǒng)上。
與“屠龍刀三”核心板的連接:
將上述的P1.0P1.4、VCCGND連接到核心板的對(duì)應(yīng)焊盤(pán)即可,最好斷開(kāi)板上R107、R108兩個(gè)0歐姆電阻,避免其電路影響PWM信號(hào)。
板上的P3.2按鍵為播放鍵,P3.3按鍵為停止鍵。
P2.7為每個(gè)采樣解碼時(shí)間指示(高電平時(shí)間),用示波器觀察。
P2.0為播放指示燈,正在播放時(shí)輸出低驅(qū)動(dòng)LED亮。
P2.1CDC接收數(shù)據(jù)包指示,每收到一包(64字節(jié))就取反一次,下傳數(shù)據(jù)一塊為1024字節(jié),分16個(gè)包傳輸。
P2.4MCU請(qǐng)求PC傳輸數(shù)據(jù)的提示,從請(qǐng)求開(kāi)始P2.4輸出高電平,之后收到第一包數(shù)據(jù)(64字節(jié))輸出低電平,用示波器觀察。
4、下載程序
下載程序和CDC通信均使用板上TYPE-C接口實(shí)現(xiàn)。打開(kāi)STC-ISP V6.92G或更高版本。
打開(kāi)程序文件,即打開(kāi)"Objects"里的"audio-play.hex"文件。

USB TYPE-C延長(zhǎng)線將“屠龍刀三”核心板與PC連接,持續(xù)按下P3.2按鍵,短按OFF鍵釋放,1秒后釋放P3.2按鍵,STC ISP就能自動(dòng)識(shí)別到設(shè)備:
2.jpg
點(diǎn)擊下載按鈕,將程序下載到MCU中。

5、播放設(shè)置

此時(shí)STC ISP已能自動(dòng)識(shí)別播放程序的CDC通信口,下圖的“掃描”里顯示的就是CDC串口。
3.jpg
點(diǎn)擊“STC調(diào)試接口”,選擇“播放Wave(P)”,見(jiàn)下圖:
4.jpg
點(diǎn)擊“打開(kāi)Wave”,選擇要播放的Wave文件。
Wave文件信息里會(huì)顯示文件的重要信息:
    文件格式,目前只支持:1-PCM,6-A law,17-IMA ADPCM3種類型。
    通道數(shù):1表示單聲道,2表示立體聲。
    采樣率:不用解釋。
    采樣位數(shù):就是一個(gè)采樣點(diǎn)的位數(shù),用戶不用關(guān)心。
    數(shù)據(jù)大。杭绰曇舻淖止(jié)數(shù)。
設(shè)置數(shù)據(jù)發(fā)送模式里的“每個(gè)數(shù)據(jù)包的大小(字節(jié))”為1024。
勾選“第一包數(shù)據(jù)發(fā)送WAVE文件信息”
選擇“應(yīng)答式發(fā)送”。
點(diǎn)擊“發(fā)送Wave數(shù)據(jù)”。

之后,按一下板上的P3.2鍵開(kāi)始播放,MCU請(qǐng)求的第一個(gè)數(shù)據(jù)包為14字節(jié)的上述文件信息,大端模式。
   Byte0、Byte1WAV類型,0x0001-->PCM,0x0006-->A Law0x0011-->IMA ADPCM。
   Byte2:聲道數(shù),1(單聲道)或2(立體聲)。
   Byte3:采樣位數(shù),用戶不用理會(huì)。
   Byte4~Byte7:采樣率,Hz。
   Byte8~Byte11:數(shù)據(jù)長(zhǎng)度(字節(jié)數(shù))。
   Byte12~Byte13BLOCK長(zhǎng)度(ADPCM使用)。
后面請(qǐng)求發(fā)送的都是音頻數(shù)據(jù)包,程序根據(jù)文件格式進(jìn)行處理后送去PWM播放出聲音。
輸出的聲音要接功放和音箱才能聽(tīng)到傳真度不錯(cuò)的音樂(lè),使用32KHz44.1KHz的采樣格式,普通音響將難以分辨其與320Kbps碼率的MP3的音質(zhì)有啥差別。

6、通信查詢速度適配
文件格式不同,采樣率不同,就有不同的數(shù)據(jù)率,數(shù)據(jù)率越高,對(duì)通信的速度要求就越高。但是通信速度高,PCCPU占用率就高,這必須要平衡一下。

點(diǎn)擊串口助手“更多設(shè)設(shè)置”,在“響應(yīng)接收時(shí)間(查詢周期)”的輸入框中,根據(jù)數(shù)據(jù)率輸入合適的值,時(shí)間短通信速度快,但電腦PC占用率會(huì)加大。
5.jpg
下面為參考的時(shí)間設(shè)置:
PCM  采樣率    響應(yīng)接收時(shí)間     數(shù)據(jù)率
    44.1KHz       0ms        176.4KB/S
     32KHz     1ms2ms     128KB/S
     16KHz     4ms5ms      64KB/S

ADPCM 采樣率    響應(yīng)接收時(shí)間     數(shù)據(jù)率
    44.1KHz       5ms           44.1KB/S
      32KHz      10ms            32KB/S
     16KHz       10ms            16KB/S

A law 采樣率    響應(yīng)接收時(shí)間     數(shù)據(jù)率
    44.1KHz    2ms3ms        88.2KB/S
     32KHz     4ms5ms         64KB/S
     16KHz       10ms            32KB/S


最后,將HIFI功放打開(kāi),8寸迷宮式二單元書(shū)架箱安排上,將重低音開(kāi)最大,聽(tīng)著圓潤(rùn)的歌聲和直拍心口的重低音鼓,等待隔壁鄰居來(lái)敲門(mén)!
6.jpg
7.jpg
30A-HSPWMA-播放立體聲音樂(lè)-CDC實(shí)時(shí)傳輸音頻流-180MHz.rar (663.52 KB, 下載次數(shù): 21)





回復(fù)

使用道具 舉報(bào)

ID:1064915 發(fā)表于 2023-12-29 08:29 | 顯示全部樓層
單片機(jī)實(shí)現(xiàn)重低音鼓,實(shí)在是高
回復(fù)

使用道具 舉報(bào)

ID:433219 發(fā)表于 2023-12-29 10:12 | 顯示全部樓層
注意:圖中零件不是隨便取的,是經(jīng)過(guò)精心計(jì)算的,無(wú)源一階低通、有源二階低通的截止頻率和Q值都不同,兩者串聯(lián)才能得到最終的輸出響應(yīng)。
最難折騰的就算這部分了吧?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表