首頁(yè) > 評(píng)測(cè) > 追趕風(fēng)潮-DIY一款智能音箱之一:硬件設(shè)計(jì)篇

追趕風(fēng)潮-DIY一款智能音箱之一:硬件設(shè)計(jì)篇

  • 作者:zhanzr&紹楠
  • 來(lái)源:21ic
  • [導(dǎo)讀]
  • 筆者受限于緊張繁重的工作,一直沒(méi)有更新專欄,不過(guò)也不是全無(wú)成績(jī)。通過(guò)前幾期的活動(dòng)與紹楠結(jié)識(shí)并合作搞了一個(gè)有趣的音頻處理板出來(lái),主控采用STM32F4,歡迎拍磚!

前言

因?yàn)榇钌狭巳斯ぶ悄艿能? 近一段時(shí)間來(lái)智能音箱很火. 最著名的當(dāng)屬亞馬遜的Echo,國(guó)內(nèi)的后起之秀有靈動(dòng)等等. 類似的還有小米收音機(jī),優(yōu)聽音箱之類. 主要功能都是網(wǎng)絡(luò)播放,大多數(shù)帶有麥克風(fēng)+語(yǔ)音識(shí)別. 與AI結(jié)合緊密的就是語(yǔ)音助手了, 比如某些智能音箱能夠聽從用戶這樣的命令: 播放Beatles樂(lè)隊(duì)的Let it be! 上述例子中小米音箱的麥克風(fēng)目前沒(méi)有在固件支持,但是潮流與趨勢(shì)大致如此. 作者本人也與另外一個(gè)21ic的網(wǎng)友合作DIY了一款. 此篇講述硬件的設(shè)計(jì)思路以及詳情. 設(shè)計(jì)的過(guò)程中用到了STM32CubeMX, 感覺(jué)很好用, 治理也介紹一下子這個(gè)工具如何輔助作者本人的硬件與軟件設(shè)計(jì)過(guò)程, 希望對(duì)感興趣的網(wǎng)友一點(diǎn)啟發(fā). 后續(xù)的軟件上的例子另外進(jìn)行寫作.

 

功能框圖.jpg

 

圖 功能框圖

考慮到要語(yǔ)音識(shí)別和音頻軟解碼的需要, 核心要進(jìn)行復(fù)雜的數(shù)字信號(hào)處理. 這樣核心可選DSP, 高頻通用處理器或者FPGA。因?yàn)槭亲约焊鉊IY, 其實(shí)這里也沒(méi)有很大的講究。無(wú)非是用好的處理器就做復(fù)雜點(diǎn), 反之就搞簡(jiǎn)單一點(diǎn). 考慮到購(gòu)買容易,價(jià)格也較低的因素,選定STM32F4系列。小米收音機(jī)我也拆過(guò), 用的是MTK的MT7688KN(MIPS24KEc內(nèi)核). 這種片我們既難買,也不好搞編程, 算是可望不可求吧.

image2.jpg

圖 小米收音機(jī)主板

考慮到有大量數(shù)據(jù)存儲(chǔ)(永久或暫時(shí))的可能,外擴(kuò)了RAM和Flash,外擴(kuò)RAM選用SRAM,外擴(kuò)Flah選擇SD卡和SPI Flash。注:小米音箱上只有SPI Flash沒(méi)有SD卡.

顯然有播放音樂(lè)的需要,對(duì)音質(zhì)還是比較在意,這里并不使用MCU內(nèi)建的DAC,而是選擇外置的I2S DAC。而語(yǔ)音輸入就相對(duì)簡(jiǎn)單,內(nèi)置ADC加外部MIC即可。通信方面,支持TCP/IP和USB是必不可少。

人機(jī)界面本來(lái)打算使用12864這樣的液晶屏,后來(lái)覺(jué)得不是核心功能就能省就省,使用按鈕和LED的組合即可(也考慮到還要做語(yǔ)音指令功能)。這樣外觀也比較好處理,例如這樣擺放在桌面上的感覺(jué)(機(jī)頂盒):

image3.jpg

圖 設(shè)想圖之一

但實(shí)際效果,可能更像這樣,可以便攜使用(耳放):

image4.jpg

圖 設(shè)想圖之二

最終選定的主要芯片型號(hào):

型號(hào)封裝廠商功能主要規(guī)格

 

bom.jpg

 

表 主要芯片一覽

使用CubeMX輔助硬件設(shè)計(jì)

這里假定讀者有一定的軟硬件開發(fā)經(jīng)驗(yàn),順便講一下子使用工具來(lái)輔助STM32的軟硬件設(shè)計(jì)過(guò)程。這要是按以前,有從8051轉(zhuǎn)到AVR,然后從AVR轉(zhuǎn)到富士通,又從富士通轉(zhuǎn)到STM8的切身體會(huì)的話,估計(jì)得急死人。筆者買過(guò)一塊STM32F103的開發(fā)板來(lái)自學(xué),用過(guò)STD庫(kù)后,感覺(jué)太方便了。STD庫(kù)是極大方面軟件開發(fā),而STM32CubeMX + HAL庫(kù)則是把硬件開發(fā)和軟硬件兼容都考慮進(jìn)去了。在硬件都是從零開始設(shè)計(jì)的情況下,我們看看STM32CubeMX,是如何協(xié)助我們更好更快地完成任務(wù)。

STM32CubeMX的安裝過(guò)程非常簡(jiǎn)單,這里就省略了。啟動(dòng)界面如下:

image5.png

圖 開始界面

點(diǎn)擊新建工程,軟件會(huì)聯(lián)網(wǎng)檢查更新,之后選擇我們的407ZE,然后雙擊這一行:

image6.png

圖 選芯片具體型號(hào)

這樣就進(jìn)入芯片配置界面:

image7.png

圖 從功能出發(fā)配置引腳

我們?cè)谧筮叺拇翱谶x擇使能I2S3,這樣相應(yīng)的管腳就會(huì)被配置:

image8.png

圖 配置了I2S后相應(yīng)引腳自動(dòng)進(jìn)行鎖定

實(shí)際在PCB布線的時(shí)候,I2S3_SD和I2S3_CK走線不理想,這時(shí)候可以看看這兩個(gè)管腳可不可以Remap,按住Ctrl,點(diǎn)擊這兩個(gè)管腳,可以看到Remap管腳在PB5:

image9.png

圖 引腳Remap需要手工完成

點(diǎn)擊PB5,選擇I2S3_SD,完成這個(gè)管腳的配置:

image10.png

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評(píng)論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開放投稿

熱門標(biāo)簽
項(xiàng)目外包 more+