色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    195

    瀏覽量

    53203
  • SDA
    SDA
    +關注

    關注

    0

    文章

    124

    瀏覽量

    28127
  • 音頻芯片
    +關注

    關注

    3

    文章

    130

    瀏覽量

    17939
  • GND
    GND
    +關注

    關注

    2

    文章

    539

    瀏覽量

    38696
  • 時鐘線
    +關注

    關注

    0

    文章

    6

    瀏覽量

    3613

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

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

收藏 人收藏

    評論

    相關推薦

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

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

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

    本文詳細記錄在NXP I.MX6ULL+Linux平臺下進行WM8960音頻芯片
    的頭像 發表于 05-17 14:28 ?1068次閱讀
    <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供電的。可是我看了設備樹文件和相關的驅動,沒有發現對此引腳的操作。請問在哪里把這個引腳拉高,從而給
    發表于 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 ?5139次閱讀
    微雪電子樹莓派<b class='flag-5'>音頻</b>編解碼擴展板|<b class='flag-5'>WM8960</b> Audio HAT介紹

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

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

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

    飛凌嵌入式的OKMX8MM-C開發板預留了I2C3和SAI引腳接口,分別位于P18和P7插針引腳上,板載音頻芯片掛載到了I2C2和SAI2。今天小編為大家列舉并說明如何在I2C3掛載
    的頭像 發表于 08-12 14:20 ?1540次閱讀
    <b class='flag-5'>I</b>2C3掛載<b class='flag-5'>wm8960</b><b class='flag-5'>音頻芯片</b> | 飛凌干貨筆記
    主站蜘蛛池模板: 久久精品国产亚洲AV麻豆欧美玲| videossex性暴力| 69亞洲亂人倫AV精品發布| 69人体阴展网| xxx在线播放| 国产成人拍精品视频网| 国产日韩精品一区二区三区在线| 狠狠色丁香婷婷久久综合| 老板揉搓秘书丰满大乳| 欧美丰满熟妇BBB久久久| 色婷婷综合久久久中文字幕| 亚洲AV蜜桃永久无码精品红樱桃| 伊人久久大香线蕉综合亚洲| 97人妻无码AV碰碰视频| 俄罗斯大肥BBXX| 精品久久久久中文字幕日本| 美女胸禁止18以下看| 天天影视色欲 影视| 一本之道高清视频在线观看| wwwwxxxxx中国| 国产在线精彩亚洲| 免费国产成人| 甜性涩爱在线播放| 曰曰夜夜在线影院视| xlxx美女| 极品少妇伦理一区二区| 欧美激情精品久久久久| 午夜看片a福利在线观看| 26uuu老色哥| 国产精品内射久久久久欢欢 | 女王黄金vk| 午夜福利08550| 90后美女乳沟| 国产热久久精| 欧美另类老女人| 亚洲欧美中文在线一区| xxx军人3p大gay| 久久精品一本到东京热| 善良的小峓子2在钱免费中文字| 在线播放性xxx欧美| 国产精品99久久久久久WWW|