在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

2132110287 ? 來源:萬象奧科 ? 2024-05-17 11:33 ? 次閱讀

本文詳細記錄在NXP I.MX6ULL+Linux平臺下進行WM8960音頻芯片移植的過程,其他平臺操作方法類似,希望為大家提供幫助。

1.環境準備

平臺: HD6ULL-IOT開發板

要求:外接一個WM8960模塊。要求能正常播放音頻文件。

2.原理圖及相關資料

將模塊飛線到底板J17上,接法如下;且模塊1腳接了J17的1腳(3.3V);然后模塊的3腳(GND)接的J17的29腳地。

9fa6efbe-13fc-11ef-b74b-92fbcf53809c.png

9fc9e726-13fc-11ef-b74b-92fbcf53809c.png

9fdeab2a-13fc-11ef-b74b-92fbcf53809c.png

WM8960資料:

https://www.waveshare.net/wiki/WM8960_Audio_Board

3.內核以及設備樹調試

內核需要勾選WM8960相關配置,可以make menuconfig后/搜索8960然后勾上就行。

設備樹注意三點:

①. 客戶飛線WM8960是掛載到i2c1上的。

sound {


compatible = "fsl,imx6ul-evk-wm8960",


"fsl,imx-audio-wm8960";


model = "wm8960-audio";


cpu-dai = <&sai2>;


audio-codec = <&codec>;


asrc-controller = <&asrc>;


codec-master;


gpr = <&gpr>;


/*not support


* hp-det = ;


* hp-det-pin: JD1 JD2  or JD3


* hp-det-polarity = 0: hp detect high for headphone


* hp-det-polarity = 1: hp detect high for speaker


hp-det = <3 0>;


hp-det-gpios = <&gpio5 4 0>;


mic-det-gpios = <&gpio5 4 0>;


*/


audio-routing =


"Headphone Jack", "HP_L",


"Headphone Jack", "HP_R",


"Ext Spk", "SPK_LP",


"Ext Spk", "SPK_LN",


"Ext Spk", "SPK_RP",


"Ext Spk", "SPK_RN",


"LINPUT2", "Mic Jack",


"LINPUT3", "Mic Jack",


"RINPUT1", "Main MIC",


"RINPUT2", "Main MIC",


"Mic Jack", "MICB",


"Main MIC", "MICB",


"CPU-Playback", "ASRC-Playback",


"Playback", "CPU-Playback",


"ASRC-Capture", "CPU-Capture",


"CPU-Capture", "Capture";


};


};


&sai2 {


pinctrl-names = "default";


pinctrl-0 = <&pinctrl_sai2>;


assigned-clocks = <&clks IMX6UL_CLK_SAI2_SEL>,


<&clks IMX6UL_CLK_SAI2>;


assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;


assigned-clock-rates = <0>, <12288000>;


status = "okay";


};


pinctrl_sai2: sai2grp {


fsl,pins = <


MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK0x17088


MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC0x17088


MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA0x11088


MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA0x11088


MX6UL_PAD_JTAG_TMS__SAI2_MCLK0x17088


MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO040x17059


>;


};


&i2c1 {


clock-frequency = <100000>;


pinctrl-names = "default";


pinctrl-0 = <&pinctrl_i2c1>;


status = "okay";


codec: wm8960@1a {


compatible = "wlf,wm8960";


reg = <0x1a>;


clocks = <&clks IMX6UL_CLK_SAI2>;


clock-names = "mclk";


wlf,shared-lrclk;


};


};


pinctrl_i2c1: i2c1grp {


fsl,pins = <


MX6UL_PAD_CSI_PIXCLK__I2C1_SCL 0x4001b8b0


MX6UL_PAD_CSI_MCLK__I2C1_SDA 0x4001b8b0


>;


};

②. 時鐘線(SCL)和數據線(SDA)是飛線到J17的3,4腳(UART6_TXD,UART6_RXD),對應的CSI_MCLK與CSI_PIXCLK,我們需要將其復用成I2C1_SCL,I2C1_SDA功能。(需要查詢對應的引腳功能列表和datasheet)

9fecadec-13fc-11ef-b74b-92fbcf53809c.png

pinctrl_i2c1: i2c1grp {


fsl,pins = <


MX6UL_PAD_CSI_PIXCLK__I2C1_SCL 0x4001b8b0


MX6UL_PAD_CSI_MCLK__I2C1_SDA 0x4001b8b0


>;


};

③. 由于底板上有一個耳機接口是從核心板直接引出的,我們需要禁掉他。

sound-mqs {


compatible = "fsl,imx-audio-mqs";


model = "mqs-audio";


cpu-dai = <&sai1>;


asrc-controller = <&asrc>;


audio-codec = <&mqs>;


status = "disabled";


};


&sai1 {


assigned-clocks = <&clks IMX6UL_CLK_SAI1_SEL>,


<&clks IMX6UL_CLK_SAI1>;


assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;


assigned-clock-rates = <0>, <24576000>;


status = "disabled";


};


&mqs {


pinctrl-names = "default";


pinctrl-0 = <&pinctrl_mqs>;


clocks = <&clks IMX6UL_CLK_SAI1>;


clock-names = "mclk";


status = "disabled";


};

重新編譯后替換設備樹,然后cd /home/audio ./aplay 1.wav。插上耳機或者揚聲器即有聲音。

在調試過程中,可通過i2cdetect -y -a 0(此處wm8960掛載在i2c1)檢查音頻設備是否掛載到i2c1上,或者dmesg | grep wm8960檢查驅動是否加載成功。

4.錄音測試

首先需要有arecord這個工具;

源碼下載網址:https://www.alsa-project.org/wiki/Download#alsa-lib

編譯參考網址:https://blog.csdn.net/gjy938815/article/details/11809269

編譯好后:alsa-utils-1.2.9aplay 這個目錄下會生成aplay(145M),然后改名為arecord即可。

錄音播放測試:

將arecord拷貝到U盤內,依次執行以下指令:


cp /mnt/sda1/arecord /home/demo/


chmod a+x /home/demo/arecord


cd /home/audio/


./amixer cset numid=1 60 錄音功能需設置錄音控件的參數


./amixer cset numid=36 240 錄音功能需設置錄音控件的參數


./amixer cset numid=41 1 將麥克風輸出信號同時記錄在左右聲道


cd /home/demo


執行下面這個指令時需要對著WM8960說話,會錄音到/tmp/t.wav文件中。 錄音時間為10s


./arecord -f cd -d 10 /tmp/t.wav


播放錄音文件 (最好用耳機聽聲音)


cd /home/audio/


./aplay /tmp/t.wav

5.音量調節

控制耳機音量大小:


numid=11,iface=MIXER,name='Headphone Playback Volume'


./amixer cset numid=11 80 (范圍0~127, 80合適)


控制喇叭音量大小:


numid=13,iface=MIXER,name='Speaker Playback Volume' 這個配置


./amixer cset numid=13 100 (范圍0~127,但一般100聲音就合適了)


錄音時配置:


numid=36,iface=MIXER,name='ADC PCM Capture Volume'


./amixer cset numid=36 190 (錄音范圍0~255,一般190左右合適,值過大雜聲會有點大)


numid=1,iface=MIXER,name='Capture Volume' (設置捕獲的音量)


./amixer cset numid=1 30     (范圍0~63 ,可以選擇30)

至此,我們完成移植、測試的全部工作。

審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PCM
    PCM
    +關注

    關注

    1

    文章

    200

    瀏覽量

    54025
  • SDA
    SDA
    +關注

    關注

    0

    文章

    125

    瀏覽量

    28716
  • 音頻芯片
    +關注

    關注

    3

    文章

    145

    瀏覽量

    18360
  • GND
    GND
    +關注

    關注

    2

    文章

    544

    瀏覽量

    39527
  • 時鐘線
    +關注

    關注

    0

    文章

    7

    瀏覽量

    3685

原文標題:Linux平臺移植音頻芯片實戰記錄

文章出處:【微信號:萬象奧科,微信公眾號:萬象奧科】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    移植NXP官方linux 5.4內核到i.MX6ULL開發板

    本文描述移植NXP官方 linux 5.4 內核到i.MX6ULL開發板。
    發表于 12-19 11:10 ?2337次閱讀

    Linux平臺移植音頻芯片實戰記錄

    本文詳細記錄在NXP I.MX6ULL+Linux平臺下進行WM8960音頻芯片
    的頭像 發表于 05-17 14:28 ?1655次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>平臺</b><b class='flag-5'>移植</b><b class='flag-5'>音頻芯片</b>實戰記錄

    請問m8960 wm8974 wm8978 wm8994 一系列音頻接口芯片在錄放音的音質上有提升嗎?

    wm8960 wm8974 wm8978 wm8994,這一系列音頻接口芯片
    發表于 02-19 06:02

    請問在哪里把CODEC_PWR_EN引腳拉高給音頻芯片供電呢

    您好,我調AM5718的開發板,發現硬件上有一個CODEC_PWR_EN引腳是給音頻芯片wm8960供電的??墒俏铱戳嗽O備樹文件和相關的驅動,沒有發現對此引腳的操作。請問在哪里把這個引腳拉高,從而給
    發表于 01-06 07:05

    為什么wm8960中的probe移植中未執行呢

    我的內核是3.0.35版,將IMX6wm8960i2c0移植i2c2的過程中,
    發表于 01-07 06:52

    wm8960掛載I2C2上匹配不了驅動這是為什么

    我用的是IMX6Q+linux4.1.15內核版本,設備樹文件imx6qdl-sabresd.dtsi 中做修改, wm8960掛載
    發表于 01-07 06:56

    開發板上掛載的wm8960錄音失敗怎么解決

    開發板上掛載wm8960成功,輸入 arecord [-Dplughw:0,0] -r 44100 -f S16_LE -c 2 -d 2 record.wav 測試錄音時,一直卡在這,也沒有
    發表于 01-13 08:15

    I2C3掛載wm8960音頻芯片

    就是OKMX8MM-C開發板的I2C3掛載wm8960音頻芯片并通過SAI1連接傳輸音頻數據的操作過程
    發表于 08-17 11:41

    請問wm8960聲卡驅動是否支持音頻輸入動態選擇?

    你好,我們基于OK4418開發板進行項目開發時,需要基于WM8960做些擴展,WM8960聲卡芯片支持三路語音輸入,但是貴公司開發板目前只
    發表于 11-23 07:14

    請問WM8960有驅動源碼嗎?

    硬件環境 OKMX6DL-S3Linux 版本linux-4.1.15內核代碼包中沒有找到WM8960源代碼,只有一個二進制文件imx-wm8960.mod請問是故意不開放源代碼嗎?
    發表于 11-25 07:27

    如何通過tinyalsa命令音頻正在通過wm8960播放?

    我能夠 imx8mp phytec pollux 板上檢測到 android 11 中的 wm8960 編解碼器 問題是:我能夠通過命令行方式播放音頻,通過 tinyalsa 命令音頻
    發表于 05-12 06:33

    Android11中通過GUI的wm8960模塊播放音頻找不到是為什么?

    1. 命令提示符下使用 Tinyplay 命令,我們驗證了模塊是否正常工作。默認 wm8960 模塊正在播放,音頻播放。 2.我們通過報警默認歌曲播放,也可以自定義報警歌曲,可以
    發表于 05-17 10:00

    微雪電子樹莓派音頻編解碼擴展板|WM8960 Audio HAT介紹

    WM8960 樹莓派音頻解碼擴展板 I2S接口 低功耗 支持播放和錄音、立體聲編解碼;板載耳機和麥克風 型號 WM8960 Audio HAT
    的頭像 發表于 11-13 15:39 ?5719次閱讀
    微雪電子樹莓派<b class='flag-5'>音頻</b>編解碼擴展板|<b class='flag-5'>WM8960</b> Audio HAT介紹

    微雪電子WM8960立體聲編解碼模塊簡介

    WM8960 立體聲編解碼模塊 I2S/I2C接口 低功耗 基于WM8960芯片音頻模塊
    的頭像 發表于 01-02 14:51 ?1.2w次閱讀
    微雪電子<b class='flag-5'>WM8960</b>立體聲編解碼模塊簡介

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

    飛凌嵌入式的OKMX8MM-C開發板預留了I2C3和SAI引腳接口,分別位于P18和P7插針引腳上,板載音頻芯片掛載到了I2C2和SAI2。今天小編為大家列舉并說明如何在I2C3掛載
    的頭像 發表于 08-12 14:20 ?2050次閱讀
    <b class='flag-5'>I</b>2C3掛載<b class='flag-5'>wm8960</b><b class='flag-5'>音頻芯片</b> | 飛凌干貨筆記
    主站蜘蛛池模板: 视频在线观看免费视频 | 成年1314在线观看 | 国产成人在线播放视频 | 5g影院欧美成人免费 | 欧美大全| 午夜亚洲 | 看黄网站在线观看 | 国产成人精品1024在线 | 宅男在线看片 | 一起射综合网 | 51影院在线观看成人免费 | 婷婷丁香久久 | 中国一级做a爰片久久毛片 中韩日欧美电影免费看 | 六月激情婷婷 | 天天综合天天做天天综合 | 中文字幕色网站 | 99色视频在线 | 国产亚洲卡二卡3卡4卡乱码 | 性欧美性 | 午夜宅男视频 | 97色在线视频观看香蕉 | 男男h文小说阅 | 免费国产一区二区三区 | 中文字幕一二三区乱码老 | 女人被男人免费播放网站 | 午夜免费网址 | 午夜插| 男男污肉高h坐便器调教 | 国产逼逼视频 | 天天干天天草 | 一级特黄视频 | 生活片一级性 | 伊人精品视频在线 | 久久久久女人精品毛片九一 | 户外露出精品视频国产 | 欧美xxxxxxxxx| 日本最顶级丰满的aⅴ艳星 日本最好的免费影院 | 午夜毛片在线观看 | 夜夜夜夜夜夜夜猛噜噜噜噜噜噜 | 思思久99久女女精品 | 狠狠干狠狠搞 |