NodeMCU-32S-內部DAC音頻輸出測試

NodeMCU-32S-內部DAC音頻輸出測試

前言

一直想玩玩ESP32的藍牙音頻功能,手上面有一個NodeMCU-32S,還沒有辦法直接測試音頻。最近在逛CDSN時發現一個將NodeMCU-32S作爲音樂電臺的小項目,點進去看了下,學到了一些內容,下面記錄一下。
其實在這裏我學到的僅僅是將音頻通過ESP32內部的DAC輸出,這樣剛好只用一個NodeMCU-32S和一個小喇叭就能夠測試啦。

注意:本次測試僅僅用於DAC輸出驗證,無它

硬件說明

ESP32內置的DAC對應的外部引腳是GPIO25和GPIO26,相應的在原理圖上的位置如下圖所示。
sch

爲了能夠進行快速測試驗證,筆者就直接將一個4歐姆的喇叭接到了ESP32的DAC輸出引腳上,其中喇叭一個引腳接GPIO25,另外一個引腳接地。
audiotest

軟件編譯

在 ESP-IDF 中已經爲我們提供了一個藍牙音頻的測試demo,項目名字是 a2dp_sink ,不過這個項目默認的音頻輸出是 External I2S Codec,我們在編譯之前,在 make menuconfig 中要將其修改爲 Internal DAC。如下所示。
menuconfig1menuconfig2menuconfig3
軟件編譯完成之後,執行 make flash monitor 進行測試。

測試

軟件運行起來之後,就可以使用手機藍牙連接ESP32了,在手機藍牙中搜索,會找到一個 ESP_SPEAKER 名稱的藍牙,配對之後,打開音樂播放器,放一首歌曲。就能在喇叭中聽到聲音了,然後再看串口的日誌輸出,能夠看到音頻數據包的序號,如下。

W (310372) BT_APPL: new conn_srvc id:19, app_id:0
I (310382) BT_AV: A2DP connection state: Connected, [38:a5:ed:94:5a:36]
I (310732) BT_LOG: bta_av_link_role_ok hndl:x41 role:1 conn_audio:x1 bits:1 features:x824b

I (310742) BT_AV: A2DP audio state: Started
E (310782) BT_APPL: bta_dm_pm_btm_status hci_status=26
I (310782) BT_AV: AVRC conn_state evt: state 1, [38:a5:ed:94:5a:36]
I (310782) BT_AV: AVRC remote features 4b
I (310822) BT_AV: A2DP audio state: Suspended
I (310842) BT_AV: AVRC metadata rsp: attribute id 0x1, 借我
I (310842) BT_AV: AVRC metadata rsp: attribute id 0x2, 謝春花
I (310852) BT_AV: AVRC metadata rsp: attribute id 0x4, 算雲煙
I (310852) BT_AV: AVRC metadata rsp: attribute id 0x20, 
I (311142) BT_LOG: bta_av_link_role_ok hndl:x41 role:1 conn_audio:x1 bits:1 features:x824b

E (311142) BT_APPL: bta_dm_pm_btm_status hci_status=31
I (311142) BT_AV: A2DP audio state: Started
I (312782) BT_AV: Audio packet count 100
I (314232) BT_AV: Audio packet count 200
I (315692) BT_AV: Audio packet count 300
I (317152) BT_AV: Audio packet count 400
I (318602) BT_AV: Audio packet count 500
I (320062) BT_AV: Audio packet count 600
I (321572) BT_AV: Audio packet count 700
I (323022) BT_AV: Audio packet count 800

額外補充一點,這個內部DAC是8位的,而且我這次測試使用的是杜邦線 + 排針,然後接到了一個4Ω的喇叭上,所以輸出的音頻基本是沒辦法聽的,噪音非常嚴重。該測試僅僅作爲一次內部DAC音頻的調試,如果要實現藍牙音頻輸出,還是推薦外接音頻輸出芯片。而不是直接使用內部DAC… :)

ESP32-DAC參考鏈接

用你的 ESP32 做一個音樂電臺

ESP32 學習筆記(五)DAC - Digital To Analog Converter

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章