小飛哥2020年大概是10月份開始做技術方面的公眾號分享,非常感謝小夥伴們的支持,在未來的日子裡,小飛哥會繼續陪伴大家,和大家一起變得更加優秀,同時也更加努力地分享有價值、有意義的文章,也希望能夠得到更多志同道合的朋友的支持!
寒暄過後,來,幹!
-
硬體資源:
STM32f103ZET6最小系統板
TDA2030音頻功放模塊
小音箱或者小喇叭
按鍵
軟體資源:
定時器模塊
DAC模塊
音頻文件生成軟體:
朗讀女:生成簡短的WAV文件
WavToC:把WAV文件轉化為二進位文件
實現目標:
通過按鍵控制,DAC輸出短提示語音頻
硬體連接:
默認是有兩種發音聲音,大家可以在網上下載自己喜歡的聲音,http://www.443w.com/tts/?post=2,打開此網址或者直接點擊紅框中的下載發音人,只需要在輸入框輸入我們想要的語音就可以了。
點擊生成聲音文件,選擇我們要保存的路徑,可以隨意選,自己要記住哈。
選擇WAV文件格式,點擊開始生成,等待提示完成之後,我們的語音就生成啦,軟體默認生成的是16bit、16K採樣率的語音
2、WavToC的使用
打開WavToC軟體,導進來我們剛才生成的WAV文件,有幾個音頻的關鍵參數需要注意,採樣速率、輸出採樣率、輸出壓縮級別,採樣率、採樣位寬是從WAV生成軟體設置而來的,輸出採樣率跟採樣速率有關係,一般滿足奈奎斯特採樣定律
奈奎斯特採樣定理:奈奎斯特採樣定理解釋了採樣率和所測信號頻率之間的關係,闡述了採樣率fs必須大於被測信號感興趣最高頻率分量的兩倍。該頻率通常被稱為奈奎斯特頻率fN。
fs>2*fN
WAV文件的採樣頻率為16K理論上,輸出採樣頻率應該<8000,所以可以選擇6400或者8000,大家可以試試不同的採樣率下聲音的還原效果,我選擇的是6400的輸出採樣率,還原度還是挺高的。
接下來點擊生成代碼,右邊轉換輸出框裡面已經出現我們需要的代碼,只需要把代碼拷貝過去到我們已經有的工程文件,或者保存為.h文件,直接包含進我們的工程。
下面對生成的代碼進行一點簡要的分析:下面幾點也是我們程序設計需要關注的幾點,採樣率6400,那麼如何來實現呢,軟體代碼生成的時候也給我們進行了說明,只需要配置我們的定時器周期為156us,開啟定時器中斷,156us中斷一次。f = 1/156us = 6410HZ,大約是6400,還給出了函數原型,我們只需要按照這個說明編寫函數就可以啦。
二、軟體實現
明白了原理之後,軟體實現就比較簡單了,我們只需要配置DAC和定時器就可以啦。
1、我這裡使用的是定時器3,關於定時器的配置如下,分頻係數,周期有參數傳入確定,向上計數模式。2、STM32 DAC輸出配置
STM32F103ZET6 的 DAC 通道 1 在 PA4 上,所以,我們先要使能 PORTA 的時鐘, 然後設置 PA4 為模擬輸入。DAC 本身是輸出,但是為什麼埠要設置為模擬輸入模式呢?因為一但使能 DACx 通道之後,相應的 GPIO 引腳(PA4 或者 PA5)會自動與 DAC 的模擬輸出相連,設置為輸入,是為了避免額外的幹擾。
STM32 的 DAC 模塊(數字/模擬轉換模塊)是 12 位數字輸入,電壓輸出型的 DAC。DAC 可以配置為 8 位或 12 位模式,也可以與 DMA 控制器配合使用。DAC 工作在 12 位模式時,數據可以設置成左對齊或右對齊。DAC 模塊有 2 個輸出通道,每個通道都有單獨的轉換器。在雙DAC 模式下, 2 個通道可以獨立地進行轉換,也可以同時進行轉換並同步地更新 2 個通道的輸出。DAC 可以通過引腳輸入參考電壓 VREF+以獲得更精確的轉換結果。STM32 的 DAC 模塊主要特點有:
① 2 個 DAC 轉換器:每個轉換器對應 1 個輸出通道
② 8 位或者 12 位單調輸出
③ 12 位模式下數據左對齊或者右對齊
④ 同步更新功能
⑤ 噪聲波形生成
⑥ 三角波形生成
⑦ 雙 DAC 通道同時或者分別轉換
⑧ 每個通道都有 DMA 功能
代碼配置如下:
為什麼是選擇8bit對齊模式,而不是12位呢,這就和我們生成的語音文件數據格式有關係啦,生成的是8bit模式的文件,所以這裡選擇8bit對齊模式。
3、定時器,DAC輸出已經配置完成了,接下來編寫我們的語音播放功能函數,只需要在定時器中斷中調用即可,功能函數如下,只需要將函數放到中斷裡面調用,功能函數中,我們只需要把語音文件數組輸出到DAC中,就可以了,播放完成之後關閉中斷,關閉DAC輸出,避免幹擾雜音出現。
三、音頻功率放大器TDA2030介紹
僅僅依靠DAC輸出的電壓驅動能力是很弱的,需要功放來對信號進行功率放大,才能夠驅動喇叭,要是手頭沒有功放模塊的話,耳朵湊近喇叭,要很近很近哦,說不定能夠聽到微弱的聲音,哈哈,小飛哥第一次就是沒有功放,開始怎麼調都沒輸出聲音,最後恍然大悟般想到了驅動能力問題。。。。。。
1、模塊圖片:
模塊參數:
1)、單聲道18W功放電路設計
2)、板載喇叭接線座
3)、板載10K可調電阻,可以調節放大的音量
4)、板載電源指示燈
5)、晶片主要的引腳已經引出,可以直接輸入音頻信號
6)、工作電壓:6~12V
2、TDA2030音頻功放晶片介紹
資料連結:https://www.chip37.com/scp/TDA2030#catalog10
TDA2030A音頻功放電路,常採用V型5腳單列直插式塑料封裝結構。如圖所示,按引腳的形狀引可分為H型和V型。該集成電路廣泛應用於汽車立體聲收錄音機、中功率音響設備,具有體積小、輸出功率大、失真小等特點。並具有內部保護電路。義大利SGS公司、美國RCA公司、日本日立公司、NEC公司等均有同類產品生產,雖然其內部電路略有差異,但引出腳位置及功能均相同,可以互換。
引腳說明:
典型應用電路(單電源):
歡迎大家關注 Embeded小飛哥 ,我是小飛哥,讓我快點遇到優秀的你,然後一起變得更加優秀,加油!!!
小飛哥微信號:w974762670,加好友進群一起交流呀!資料連結地址:
連結:https://pan.baidu.com/s/1VyglPMiofhvl8Qa3VhSMZw
提取碼:m6a4