基於STM32的DAC音頻輸出實驗

2021-01-18 Embeded小飛哥

新年新跡象,辭舊迎新,小飛哥先跟大家拜個年!經過了2020年的各種不順,迎來了2021年,首先祝大家否極泰來,新的一年事事順心,工作順意,都能健健康康的!

      小飛哥2020年大概是10月份開始做技術方面的公眾號分享,非常感謝小夥伴們的支持,在未來的日子裡,小飛哥會繼續陪伴大家,和大家一起變得更加優秀,同時也更加努力地分享有價值、有意義的文章,也希望能夠得到更多志同道合的朋友的支持!

    寒暄過後,來,幹!

-

硬體資源:

STM32f103ZET6最小系統板

TDA2030音頻功放模塊

小音箱或者小喇叭

按鍵

軟體資源:

定時器模塊

DAC模塊

音頻文件生成軟體:

朗讀女:生成簡短的WAV文件

WavToC:把WAV文件轉化為二進位文件

實現目標:

通過按鍵控制,DAC輸出短提示語音頻

硬體連接:

核心板
TDA2030模塊

TDA2030模塊喇叭(不分)
VCC5V
VCC

GND
接線1
GND
GND

OUT
接線2
PA4(DAC)
IN




一、音頻二進位文件生成
1、朗讀女的使用
    這裡只做簡要的使用說明,更多的我也沒有使用太多,夥伴們可以百度哈。大家可以網上下載或者在後面我留的地址裡面下載,直接點擊安裝即可,安裝完成後打開軟體,界面如下圖所示。

    默認是有兩種發音聲音,大家可以在網上下載自己喜歡的聲音,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公司等均有同類產品生產,雖然其內部電路略有差異,但引出腳位置及功能均相同,可以互換。

引腳說明:

典型應用電路(單電源):

      通過調節滑動變阻器分壓實現輸入電壓幅值調整,進而調整輸出聲音的大小,放大倍數為Au=R1/R2。

如果你覺得對自己有幫助的話,給個贊,點個關注,點個在看,感謝前進的道路上有你的陪伴!

歡迎大家關注 Embeded小飛哥  ,我是小飛哥,讓我快點遇到優秀的你,然後一起變得更加優秀,加油!!!

小飛哥微信號:w974762670,加好友進群一起交流呀!
演示視頻:

資料連結地址:
連結:https://pan.baidu.com/s/1VyglPMiofhvl8Qa3VhSMZw
提取碼:m6a4



相關焦點

  • HiFi音頻,隨身攜帶:iFi/悅爾法 Hip-Dac
    2020年,像iFi/悅爾法這樣的音頻公司也正式推出了1180人民幣的可攜式平衡解碼耳放(4.4mm平衡) -hip-dac,以保持領先。會變換顏色以顯示正在處理的5種音頻格式中的是哪一種。音頻格式的LED燈條之間是好看的的黃銅音量旋鈕,該旋鈕是電源開關,也是音量旋鈕。我知道這似乎是一件小事,但是黃銅的觸感會增加舒適度並完美地搭配深孔雀藍色機身。④ 音頻輸出現在我們進入音頻輸出。第一個是4.4mm平衡耳機輸出。是!你沒看錯,這是說4.4mm平衡便攜。
  • 適於一邊散步一邊聽,iFi Hip-dac可攜式平衡DAC/耳機放大器
    · 高解析度音頻 - 從網易雲、QQ音樂到Tidal MQA再到MP3以及更高版本,都可以通過本機數模轉換播放任何高清的音頻格式,因此您可以收聽任何歌曲的原音。· 強大的功放 - 符合您的風格,可從耳機放大器級輸出400 mW的最大功率,兼容入耳式耳塞或頭戴式耳機。
  • STM32——PWM輸出總結
    學習後發現stm32的定時器功能確實很強大,小總結一下方便以後使用的時候做參考。今天我主要是用定時器做pwm輸出,所以總結也主要是針對pwm方面的。 先大致說下通用和高級定時器的區別。通用的可以輸出四路pwm信號互不影響。高級定時器可以輸出三對互補pwm信號外加ch4通道,也就是一共七路。所以這樣算下來stm32一共可以生成4*5+7*2=30路pwm信號。
  • 7個基於STM32單片機的精彩設計實例,附原理圖、代碼等相關資料
    尤其對於新手,是一個學習stm32單片機的「活生生」的範例。本文引用地址:http://www.eepw.com.cn/article/201706/348110.htm1、STM32與FPGA強強聯合,實現完整版信號發生器話說之前看過作者的另外一個作品,是STM32和FPGA實現的示波器,當然感覺不做。現在作者又推出了信號發生器。
  • 基於python將音頻文件轉化為文本輸出
    實驗目的:學習利用python進行音頻轉文本文件實驗環境:已正確安裝python3.51、需要安裝的第三方庫(1)安裝speechrecognition2、「wav」音頻音頻文件轉化為文本文件輸出註:由於我的有些庫安裝在了D:\Anaconda\Lib\site-packages下所以需要在開始添加其路徑,下同完整代碼:# -*- coding: utf-8 -*-
  • 小酒配音壺(iFi Hi-dac),聽說喝酒後聽音樂更嗨喲!
    iFi/悅爾法最近一直在致力於為用戶帶來更便攜的音頻產品,縮小尺寸,同時在尺寸和重量上的縮減又不會導致功能上的損失 – 而是為其不斷添加新功能。作為新產品系列中的第一個,推出了一款高價值,高性能的可攜式音頻解碼器/耳機放大器,它被稱為「hip-dac」,解碼部分為32Bit/384kHz,耳放放大部分的單端輸出為280 mW,平衡輸出為400 mW。
  • 適合你的聽覺,原音重現 - hip-dac解碼耳放一體機
    而現在說的這個東西DAC/amp(數字/模擬轉換器和音頻放大器),雖然談不上夢想,也可能有很多人都不知道:這是一種追求高品質生活而誕生的其中一種產物 - 更好的聲音,演唱會現場感的原音重現,簡而言之,就是類似於一種外置音效卡的東西,而我們就在追求著的DAC就是其中一種。
  • 拓展手機音質的千元級產品,簡評iFi hip-dac輕薄型解碼耳放一體機
    而iFi hip-dac的出現,一定意義上替代了我個人使用場景的雙重需求,臺式和隨身使用皆可,並且多功能的音頻開關和平衡輸出,保證了後端的配搭和驅動能力問題。除了硬碟輸出口,hip-dac的輸入接口有點特殊性的,特別是用於音頻連接的USB Type-A是公口,因此無論和PC或者手機otg連接等場景,都能使用hip-dac配件附送的3條線來相連,但對於PC用戶而言,由於配件的線材並不算太長,因此個人認為加上延長線後使用上會更方便一點。
  • 基於STM32的OV7670攝像頭總結
    圖2:帶FIFO  下面就講解這兩種方式的適用範圍:  不帶FIFO:這種方法最簡單,最直接,但是最不好實現的方法,原因是多數的CMOS晶片(如OV7670)的時鐘速度可以高達24M,一般單片機的IO口速度根本達不到(stm32
  • 索尼耳機MDR-1A vs MDR-1ADAC 購買選擇指南
    (一) 原理上的區別眾所周知的是,音頻文件都是以數字形式進行存放的,而播放器的作用即是將以數字形式存放的音頻文件通過某些方式轉換為模擬信號,然後再通過數據線與耳機連接,使得音樂得以呈現。1a就是一款傳統的耳機,即接入模擬信號直觀地呈現。
  • 13個基於STM32的經典項目設計實例,全套資料~
    尤其對於新手,是一個學習stm32單片機的&ldquo;活生生&rdquo;的範例。本文引用地址:http://www.eepw.com.cn/article/201706/346863.htm1.開源硬體-基於STM32的自動剎車燈設計自動剎車燈由電池供電並內置加速度傳感器,因此無需額外連接其他線纜。
  • 讓手機更HiFi,iFi 可攜式發燒一體機「hip-dac」來了
    iFi,這一在影音界屢獲殊榮的品牌,近期在他們的隨身便攜產品系列中又新添了一位成員:USB解碼耳放一體機:hip-dac上周在紐約舉辦的2020年首場CanJam展會上,英國品牌iFi正式發布了其最新的隨身便攜產品:hip-dac.
  • 壺中之音-hip-dac解碼耳放
    hip-dac的頂部:從左邊依次是PowerMatch開關(高低增益);XBass開關(「增加」丟失的低音);金色開關兩側是LED燈,不同顏色代表不同的音頻編碼格式,默認是綠色;中間最大的旋鈕是電源和模擬音量控制,它轉一圈大概370度左右,所以剛上手小心音量不要轉過頭,慢慢調;右面,金色的是平衡4.4mm耳機輸出,黑色的是單端
  • iFi 推出可攜式USB解碼耳放一體機——Hip-Dac
    上周在紐約舉辦的2020年首場CanJam展會上,iFi正式發布了其最新的隨身便攜產品:hip-dac.模擬部分hip-dac的放大電路採用平衡(差分)設計,同價位上幾乎很少有產品能夠做到這一點。hip-dac耳機放大器的額定功率為400mW,根據連接的耳機的阻抗,能夠從平衡輸出提供700mW以上的功率,這使得它能輕鬆驅動各種類型的耳塞/耳機。
  • 分享 | STM32MP157A-DK1開發板評測
    這一章節我們先利用已有的Linux鏡像上玩玩, 做幾個實驗.1. 播放網絡音頻保證你的開發板可以訪問要播放的網絡資源.這個實驗使用系統內置的GPIO控制程序來做流水燈實驗. 控制板子上的LD5, LD6, LD7這幾個LED. 其中LD5, LD6是低邏輯點亮, LD7是高邏輯點亮.LD8是Linux本身已經使用了, 用戶程序不能控制.
  • 兩臺一體機簡評:RME ADI-2 DAC & Lavry DA11
    盒子的背面印有dac的輸入輸出接口。和aes數字輸出。dac的背板從左到右分別是電源接口,USB、coax、光纖數字輸入各一組,XLR模擬輸出一組,單端模擬輸出則由pro的trs換成了rca,更適合民用。電源插口依然維持了pro那個特殊的接口,插進去轉一下可以鎖死,拔出來需要先向反方向擰才能拔出,有效防止電源意外脫落,提高可靠性。
  • stm32屬於arm嗎_arm和stm32的區別
    打開APP stm32屬於arm嗎_arm和stm32的區別 發表於 2017-10-10 11:34:35        stm32
  • STM32單片機學習(6) PWM輸出實驗
    /** * 軟體功能: PWM輸出實驗* */#include "stm32f10x.hGPIO_InitTypeDef GPIO_InitStructure; //定義GPIO初始化結構體GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//復用輸出
  • 讓高品質音樂伴你行走,可攜式解碼耳放 - 悅爾法 hip-dac
    hip-dac是悅爾法對自家最新的可攜式平衡解碼耳放一體機的名稱。簡單直接,很容易地理解設備的性質與功能。沒錯,這是一個極簡的音頻解碼器,沒有多餘的東西,極簡設計的產品造型、簡單易用的功能以及精益求精的性能。在繁忙的現代生活中偷得一刻閒暇用以淨化心靈,細細品味音樂,寧靜而不繁瑣。
  • 關於iFi全新hip-dac便攜解碼耳放硬體解析&聽感搭配
    AMR主要從事萬元美金級別的高端音頻設備開發,且幾乎每個產品上市都能在國際上獲得一系列大獎。AMR為了應對全球的HIFI市場,在2012年推出了iFI品牌,而總設計師正是大名鼎鼎的託斯頓,被譽為當今世界十大音響設計師之一。