0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C3掛載wm8960音頻芯片 | 飛凌干貨筆記

飛凌嵌入式 ? 2022-08-12 14:20 ? 次閱讀

飛凌嵌入式的OKMX8MM-C開發(fā)板預(yù)留了I2C3和SAI引腳接口,分別位于P18和P7插針引腳上,板載音頻芯片掛載到了I2C2和SAI2。今天小編為大家列舉并說明如何在I2C3掛載wm8960音頻芯片并通過SAI1連接傳輸音頻數(shù)據(jù)。

設(shè)備樹和設(shè)備樹頭文件路徑如下:

OK8MM-linux-sdk/OK8MM-linux-kernel/arch/arm64/boot/dts/freescale/ok8mm-evk.dts

OK8MM-linux-sdk/OK8MM-linux-kernel/arch/arm64/boot/dts/freescale/fsl-imx8mm.dtsi

1、修改結(jié)果

1、打開設(shè)備樹修改sound節(jié)點(diǎn),驅(qū)動從這里獲取設(shè)備信息。

(1)修改sound節(jié)點(diǎn)cpu-dai =<&sai2>,改為cpu-dai= <&sai1>

將wm8960掛載到sai1實(shí)現(xiàn)音頻數(shù)據(jù)流的收發(fā),同理也可掛載到sai3,修改硬件連接即可。

(2)修改 hp-det-gpios= <&gpio4 22 0 >, 改為 hp-det-gpios= <&gpio4 22 1 >。

默認(rèn)使用耳機(jī)輸出,使插拔檢測失效。

31a9a42af0bb4727a8770a21b6a79281~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=WIWa5bnfOWT6gyqXhOlrFCY5%2Bmo%3D

2、注釋I2C2下的wm8960節(jié)點(diǎn),因?yàn)樵谠O(shè)備樹中不能存在一模一樣的設(shè)備節(jié)點(diǎn),所以要注釋掉原來的wm8960節(jié)點(diǎn)。

40bcbb2fffe4464098d9b8c14b566aef~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=LsP63K51eZquOTBFJJay0DtAelw%3D

在I2C3下添加wm8960節(jié)點(diǎn),掛載到哪個I2C就把設(shè)備節(jié)點(diǎn)放到對應(yīng)I2C下,修改clocks= <&clk IMX8MM_CLK_SAI1_ROOT>,在I2C3下有了設(shè)備節(jié)點(diǎn),但是時鐘需要改成sai1的。

11753cbdf1fb47de89a96c1c367fb913~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=f2GcBMz2eCCWPnBYUGwh%2FaYVc3g%3D

3、修改pinctrl_sai1并注釋pinctrl_sai1_dsd,i.MX8MM的默認(rèn)設(shè)備樹已經(jīng)寫好了sai1的pinctrl。

b6e47da85e004b5193a9f1498716f20d~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=Wh%2BY4QYY7spxE2r1xED44vjtwm8%3D

4、修改SAI1節(jié)點(diǎn),如下圖所示,復(fù)制SAI2節(jié)點(diǎn)替換SAI1,修改成SAI1的參數(shù)。

c7aa910806684afcba14e05bcf6d6c4e~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=RD6dJV5JfkA%2B1%2BDCky0Tniej3vI%3D

2、修改思路

我們在修改音頻芯片掛載路徑時的思路是這樣的:

1. 屏蔽默認(rèn)的掛載路徑;

2. 將音頻設(shè)備的節(jié)點(diǎn)添加到要掛載的I2C和SAI下;

3. 修改pinctrl引腳復(fù)用;

4. 屏蔽默認(rèn)wm8960的引腳配置。

本文介紹的wm8960掛載方式與板載默認(rèn)音頻芯片屬于同一型號,如果需要掛載其他型號音頻芯片,則需要在sound節(jié)點(diǎn)指定驅(qū)動路徑。

cpu-dai 表示要使用的SAI通道,默認(rèn)為SAI2本文使用SAI1就修改成SAI1即可; audio-codec 屬性就是I2C3下的wm8960節(jié)點(diǎn)。

設(shè)備樹sound節(jié)點(diǎn):

1496434bf84f420d89b0345bf30cd2ab~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=0xBBzerLjrAiXoEPSZ8hYSAJ3J4%3D

imx-wm8960.c驅(qū)動文件的.compatible屬性:

404b58604a9341c69c33ae72041b8e29~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=5p40Jtj2FKpZxNqq5A4%2Bqe0cWQs%3D

3、總結(jié)

設(shè)備樹sound節(jié)點(diǎn)下compatible屬性對應(yīng)音頻驅(qū)動文件imx-wm8960.c里的.compatible,由此設(shè)備與驅(qū)動便有了聯(lián)系,驅(qū)動就可以在設(shè)備節(jié)點(diǎn)獲取關(guān)鍵字model,cpu-dai等信息。

當(dāng)換成其他音頻芯片時,修改設(shè)備樹compatible屬性值即可修改音頻設(shè)備的配置也變得簡單起來,這也是Linux分離出設(shè)備樹的主要原因。

本文提供的方法是在屏蔽默認(rèn)音頻設(shè)備的前提下進(jìn)行的,想要實(shí)現(xiàn)雙路音頻輸出還需要在其他環(huán)節(jié)進(jìn)行配置。以上就是在OKMX8MM-C開發(fā)板的I2C3掛載wm8960音頻芯片并通過SAI1連接傳輸音頻數(shù)據(jù)的操作過程,希望能夠?qū)ζ聊磺暗母魑?a target="_blank">工程師小伙伴有所幫助。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9098

    瀏覽量

    367708
  • 嵌入式
    +關(guān)注

    關(guān)注

    5083

    文章

    19131

    瀏覽量

    305551
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11310

    瀏覽量

    209626
收藏 人收藏

    評論

    相關(guān)推薦

    有QFP封裝64腳的音頻Codec芯片嗎?

    我需要帶mcasp口的64腳音頻芯片最好能和c6745DSP搭配有歷程的Codec芯片
    發(fā)表于 12-30 08:25

    炬芯科技發(fā)布ATS323X系列端側(cè)AI音頻芯片

    剛過去不久,炬芯科技宣布全新一代基于模數(shù)混合SRAM存內(nèi)計算(Mixed-mode SRAM based CIM,簡稱“MMSCIM”)技術(shù)的端側(cè)AI音頻芯片正式發(fā)布,緊接著,炬芯科技正式發(fā)布其中
    的頭像 發(fā)表于 12-12 14:58 ?216次閱讀

    詳解I2S時序

    01 整體概括 最近調(diào)試了一款音頻采集芯片wm8731,包含兩路音頻輸入(ADC)和一路音頻輸出(DAC),
    的頭像 發(fā)表于 11-26 17:16 ?795次閱讀
    詳解<b class='flag-5'>I2</b>S時序

    TLV320AIC3106音頻芯片怎么發(fā)送、接收浮點(diǎn)數(shù)呢?

    TLV320AIC3106 音頻芯片怎么發(fā)送、接收浮點(diǎn)數(shù)呢?是把浮點(diǎn)數(shù)轉(zhuǎn)成整數(shù)嗎?如果是該怎么轉(zhuǎn)呢? 經(jīng)AD采樣后得到的是整數(shù),又該怎么轉(zhuǎn)換成原始的浮點(diǎn)數(shù)呢?
    發(fā)表于 11-05 07:13

    tlv320aic3007音頻芯片無法錄音是什么原因?qū)е碌??怎么解決?

    我采用的是tlv320aic3007音頻芯片,omap4460的處理器,現(xiàn)在已經(jīng)調(diào)通了播放,音質(zhì)也很好,但是在調(diào)試錄音的時候發(fā)現(xiàn)無法錄音,我想請教有么有關(guān)于錄音的寄存器配置,我參考一下,可以從LINE1L/LINE1R或者M(jìn)IC3R/MIC
    發(fā)表于 11-04 07:14

    嵌入式ElfBoard EL 1板卡-i2c與從設(shè)備通訊編程示例之i2c-tools工具使用

    介紹i2c-tools是一個專門調(diào)試i2c接口的開源工具,可以獲取掛載的設(shè)備及設(shè)備地址,具有在對應(yīng)的設(shè)備上讀取和設(shè)置寄存器值等功能。在ELF 1的資料包當(dāng)中,已經(jīng)放置了下載好的源碼,路徑為:ELF
    發(fā)表于 11-01 09:33

    嵌入式ElfBoard ELF 1板卡-i2c與從設(shè)備通訊編程示例之i2c-tools工具使用

    注意:學(xué)習(xí)資料可在ElfBoard官方網(wǎng)站“資料”專區(qū)獲取。介紹i2c-tools是一個專門調(diào)試i2c接口的開源工具,可以獲取掛載的設(shè)備及設(shè)備地址,具有在對應(yīng)的設(shè)備上讀取和設(shè)置寄存器值等功能。在
    發(fā)表于 10-29 16:27

    如何使用TLV320AIC3268音頻芯片的miniDSP?

    小弟最近在研究如何使用TLV320AIC3268音頻芯片的miniDSP,不清楚如何編程以及下載到板子運(yùn)行。我在TI上申請下載了PURE PATH STUDIO開發(fā)工具,但在
    發(fā)表于 10-25 07:26

    PA3113D2在系統(tǒng)啟動過程中會出現(xiàn)一個POP聲,請問是什么原因造成的?

    請教各位高手,我現(xiàn)在CODEC芯片用的是WOLFSON WM8960,OPA用的是TI PA3113D2,上電瞬間的POP聲已經(jīng)解決,但是在系統(tǒng)啟動過程中(快啟動完成時)還會出現(xiàn)一個POP聲,請問是什么原因造成的?
    發(fā)表于 10-18 06:39

    我想選一款音頻芯片,性能類似TAS2505-Q1的,帶有音頻處理和D類功放功能二合一的

    TI工程師你好!我想選一款音頻芯片,性能類似TAS2505-Q1的,帶有音頻處理和D類功放功能二合一的,輸出功率是20~30W單路雙路輸出都可以,是否有這樣的芯片可選。謝謝!
    發(fā)表于 10-09 07:32

    優(yōu)秀實(shí)踐:I3C共享總線上的I2C器件

    電子發(fā)燒友網(wǎng)站提供《優(yōu)秀實(shí)踐:I3C共享總線上的I2C器件.pdf》資料免費(fèi)下載
    發(fā)表于 09-06 09:49 ?0次下載
    優(yōu)秀實(shí)踐:<b class='flag-5'>I3C</b>共享總線上的<b class='flag-5'>I2C</b>器件

    stm32mp135 i2c3無法正常probe怎么解決?

    /board/stmicroelectronics/stm32mp1/linux-dts/stm32mp135f-dk-mx.dts)。 我一共使用了3i2c,i21,i2c3
    發(fā)表于 07-05 07:30

    Linux平臺移植音頻芯片實(shí)戰(zhàn)記錄

    本文詳細(xì)記錄在NXP I.MX6ULL+Linux平臺下進(jìn)行WM8960音頻芯片移植的過程,其他平臺操作方法類似,希望為大家提供幫助。
    的頭像 發(fā)表于 05-17 14:28 ?1089次閱讀
    Linux平臺移植<b class='flag-5'>音頻芯片</b>實(shí)戰(zhàn)記錄

    淺析在NXP I.MX6ULL+Linux平臺下進(jìn)行WM8960音頻芯片移植的過程

    本文詳細(xì)記錄在NXP I.MX6ULL+Linux平臺下進(jìn)行WM8960音頻芯片移植的過程,其他平臺操作方法類似,希望為大家提供幫助。
    的頭像 發(fā)表于 05-17 11:33 ?1317次閱讀
    淺析在NXP <b class='flag-5'>I</b>.MX6ULL+Linux平臺下進(jìn)行<b class='flag-5'>WM8960</b><b class='flag-5'>音頻芯片</b>移植的過程

    stm32f2系列芯片I2C1和I2C3,為什么I2C3總是顯示總線繁忙?

    使用I2C1和I2C3分別讀兩個傳感器,其中I2C1可以正常讀傳感器,但是I2C3總是顯示總線繁忙,請問這是什么原因?該怎么解決?
    發(fā)表于 04-11 06:32