2019年1月15日 星期二

DIY - ESP32:ESP32 藍牙(Bluetooth)A2DP Sink DAC 電路(七十一)

DIY - ESP32:ESP32 藍牙(Bluetooth)A2DP Sink DAC 電路(七十一):

在新的 Windows Toolchain 開發環境下,成功測試第一個藍牙(Bluetooth)程式後,筆者便有信心繼續使用這個開發環境。所以第二個程式是放在 esp_idf/examples/Bluetooth/a2dp_sink 的程式,這個程式是接收藍牙 A2DP 裝置,輸出音訊 Stream 的 Source(SRC),接受音訊 Stream 的 Sink (SNK),所以ESP32(Sink / SNR)掃描音源裝置(Source / SRC),配對成功,音源裝置發送音樂訊號,ESP32 接收音樂後,會在 ESP32 內的播放。ESP32 可以用 I2S(Inter-IC Sound) 的 PCM(Pulse Code Modulation) 方式或內置的 DAC(Digital to Analog Converter)輸出播放。

藍牙(Bluetooth)A2DP Sink Profile
藍牙立體聲音訊傳輸規範(Advance Audio Distribution Profile),規定了使用藍牙非同步傳輸信道方式,傳輸高品質音樂檔案資料的協定堆棧軟體和使用方法,基於該協定就能通過以藍牙方式傳輸高品質的立體聲音樂(相比用於 HSP 和 HFP 的單聲道加密,品質要好得多)。分為 1.1版和 1.2版,只要連接雙方支援 A2DP 協定都能以 CD 音質(16 bits,44.1 kHz)的品質傳輸聲音訊號。假如有一方沒有支援 A2DP 的話,這時音效就只能輸出 Handsfree Profile(8 bits,8 kHz),就算耳機是採用雙耳筒的設計,也只能有一般電話的單聲道音質,與真正的身歷聲相去甚遠。

ESP32 藍牙(Bluetooth)A2DP Sink DAC電路圖
ESP32 I2S 輸出連接:
I2S
Signal
Description
ESP32 Board
Board Signal
I/O Signal
1
LRCK
Left Right Clock
36
G22
GPIO22 (Output)
2
DATA
Data
9
G25
GPIO25 (Output)
3
BCK
Bit Clock
10
G26
GPIO26 (Output)

但筆者手上並沒有 I2S 編解碼器,如 PCM5102、PCM5102A 或 MAX98357A,但可以更改設定為使用內置 DAC (Digital-to-Analog Converter / 低質量 / 8-bit)或 PDM (Pulse Density Modulation / 高質量),便可以測試程式是否成功。

ESP32 內置 DAC 輸出連接:
DAC
Signal
Description
ESP32 Board
Board Signal
I/O Signal
1
DAC
Channel 1 (Left)
9
G25
GPIO25 (Output)
2
DAC
Channel 2 (Right)
10
G26
GPIO26 (Output)

2019年 1月 15日 天氣報告
氣溫:20.1@ 20:10
相對濕度:百分之 75%
天氣:大致多雲

沒有留言:

張貼留言