[RaspberryPi] I2S audio

之前在樹莓派3上順利用Android Things調(diào)通了I2S Audio輸出跟匆,享受于高信噪比的音樂之余罩抗,不禁想起來了我那能聽瞎耳朵的樹莓派2還被我流放在遍布破爛零件的荒蠻之地。其實(shí)樹莓派2應(yīng)該還能再搶救一下吧?這次我們就在搗鼓安裝Raspbian的樹莓派2B+


非戰(zhàn)斗人員立即撤離

經(jīng)過了3天不懈努力地踩坑,我終于成功了!


0. 硬軟件環(huán)境

  • 硬件平臺(tái):
    樹莓派2B+

  • 操作系統(tǒng):
    Raspbian stretch with desktop
    version: September 2017
    release date: 2017.09.07
    kernel version: 4.9
    debian version: stretch

  • I2S方案:
    PCM5102A

    我自己是基于上面的環(huán)境來嘗試的跌榔,所以本文里提及的方法也基于此,如果你使用其他的硬軟件或其他的版本捶障,本文介紹的方法不保證能成功僧须。

1. 確認(rèn)I2S解碼芯片

Raspbian內(nèi)置了很多硬件支持,但對于I2S DAC/ADC的支持貌似也不會(huì)太多项炼,所以大家購買I2S解碼器時(shí)盡量購買主流一點(diǎn)的方案担平。Raspbian的支持的硬件可以在/boot/overlays/README里查閱,在[RaspberryPI] Raspbian內(nèi)建硬件驅(qū)動(dòng)中也會(huì)詳細(xì)介紹Raspbian現(xiàn)在支持的硬件锭部。

現(xiàn)在我大概確認(rèn)了一下暂论,至少能夠支持的I2S DAC有PCM5102, PCM512x, WM8731, WM8741這幾個(gè)系列。

2. 連接硬件

樹莓派2/3的GPIO口的排布是一樣的拌禾,可以相互兼容取胎,見下圖:


樹莓派2/3的GPIO

I2S音頻總線的詳細(xì)說明可以參閱[Android Things] I2S

I2S音頻總線要連接的線有下面幾條:

  • BCLK - Pin12,位時(shí)鐘(Bit Clock)湃窍,由I2S Master Device(I2S主設(shè)備)產(chǎn)生闻蛀,也稱為SCLK,對應(yīng)數(shù)字音頻的每一位數(shù)據(jù)您市,SCLK都有1個(gè)脈沖觉痛,BCLK的頻率 = 2 × 采樣頻率 × 采樣位數(shù)
  • LRCLK - Pin35,左右聲道選擇時(shí)鐘茵休,LRCK的頻率等于采樣頻率薪棒,它輸出低電平時(shí)手蝎,SDOUT和SDIN的數(shù)據(jù)都為左聲道數(shù)據(jù),它輸出高電平時(shí)盗尸,SDIN和SDIN的數(shù)據(jù)都為右聲道數(shù)據(jù)柑船,也稱為FS(Frame Select)或WS(Word Select)
  • SDIN - Pin38帽撑,為PCM數(shù)據(jù)輸入泼各,外部從設(shè)備的PCM信號輸入到主設(shè)備上錄制或處理等
  • SDOUT - Pin40,為PCM數(shù)據(jù)輸出亏拉,把主設(shè)備的音頻信號輸出到外部從設(shè)備去播放或錄制等
  • GND - Pin6/9/14/20/25/30/34/39扣蜻,公共接地,為主從設(shè)備提供低電平參考及塘,隨便接哪一個(gè)都行

3. 配置Raspbian

1. 禁用板載音頻輸出(3.5mm耳機(jī)輸出)
  • 打開/boot/config.txt
    sudo nano /boot/config.txt
    
  • 找到dtparam=audio=on莽使,并修改為
    dtparam=audio=off
    
  • 保存修改后退出:Ctrl + o -> <enter> -> Ctrl + x
2. 加載PCM5102A設(shè)備驅(qū)動(dòng)
  • 打開/boot/config.txt

    sudo nano /boot/config.txt
    
  • 在末尾添加一行

    dtoverlay=hifiberry-dac
    

    (其他音頻設(shè)備請查閱添加對應(yīng)的驅(qū)動(dòng), PCM512x系列的DAC可以加載dtoverlay=hifiberry-dacplus

  • 保存修改后退出:Ctrl + o -> <enter> -> Ctrl + x

3. 掛載I2S DAC設(shè)備到ALSA
  • 打開/boot/config.txt

    sudo nano /boot/config.txt
    
  • 在末尾添加一行

    dtoverlay=i2s-mmap
    
  • 保存修改后退出:Ctrl + o -> <enter> -> Ctrl + x

  • 打開/etc/asound.conf

    sudo nano /etc/asound.conf
    
  • 添加下面配置

    pcm.i2s_dac {
        type hw
        card 0
    }
    pcm.!default {
        type plug
        slave.pcm "dmixer"
    }
    pcm.dmixer {
        type dmix
        ipc_key 1024
        slave {
            pcm "i2s_dac"
            channels 2
        }
    }
    ctl.dmixer {
       type hw
       card 0
    }
    
  • 保存修改后退出:Ctrl + o -> <enter> -> Ctrl + x

4. 重啟Raspbian

直接在菜單中選擇重啟也可以,在命令行中重啟也可以

sodo reboot

重啟后你就可以通過I2S DAC來播放音頻了

4. 問題點(diǎn)

目前這樣配置后笙僚,還不能通過系統(tǒng)的音量調(diào)節(jié)來調(diào)整I2S DAC輸出的音量芳肌。系統(tǒng)會(huì)提示No ALSA audio devices were detected.,后續(xù)我找到解決方法后再繼續(xù)更新到本文了肋层。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亿笤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子栋猖,更是在濱河造成了極大的恐慌净薛,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒲拉,死亡現(xiàn)場離奇詭異肃拜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)雌团,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門燃领,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锦援,你說我怎么就攤上這事猛蔽。” “怎么了雨涛?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵枢舶,是天一觀的道長。 經(jīng)常有香客問我替久,道長凉泄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任蚯根,我火速辦了婚禮后众,結(jié)果婚禮上胀糜,老公的妹妹穿的比我還像新娘。我一直安慰自己蒂誉,他們只是感情好教藻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著右锨,像睡著了一般括堤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绍移,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天悄窃,我揣著相機(jī)與錄音,去河邊找鬼蹂窖。 笑死轧抗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瞬测。 我是一名探鬼主播横媚,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼月趟!你這毒婦竟也來了灯蝴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤狮斗,失蹤者是張志新(化名)和其女友劉穎绽乔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碳褒,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡折砸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沙峻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片睦授。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖摔寨,靈堂內(nèi)的尸體忽然破棺而出去枷,到底是詐尸還是另有隱情,我是刑警寧澤是复,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布删顶,位于F島的核電站,受9級特大地震影響淑廊,放射性物質(zhì)發(fā)生泄漏逗余。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一季惩、第九天 我趴在偏房一處隱蔽的房頂上張望录粱。 院中可真熱鬧腻格,春花似錦、人聲如沸啥繁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旗闽。三九已至酬核,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宪睹,已是汗流浹背愁茁。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工蚕钦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亭病,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓嘶居,卻偏偏與公主長得像罪帖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子邮屁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348