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

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

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

3天內不再提示

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

武漢萬象奧科 ? 2024-05-17 14:28 ? 次閱讀


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

1.環境準備

平臺: HD6ULL-IOT開發板

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

2.原理圖及相關資料

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

wKgZomZG-DSAKRqdAAjRCBkk3aU742.png

wKgaomZG-DqAbwvIAAJ6uvihqJE756.pngwKgaomZG-D-AYL6yAADkuEgY_CI313.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)

wKgaomZG-FeASHr5AAA78hptay4872.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.9\aplay 這個目錄下會生成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)

至此,我們完成移植、測試的全部工作。如您在開發過程中遇到問題,歡迎技術交流

?


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

    關注

    455

    文章

    50816

    瀏覽量

    423615
  • NXP
    NXP
    +關注

    關注

    60

    文章

    1278

    瀏覽量

    184227
  • Linux
    +關注

    關注

    87

    文章

    11304

    瀏覽量

    209499
  • 音頻芯片
    +關注

    關注

    3

    文章

    130

    瀏覽量

    17950
  • IMX6ULL
    +關注

    關注

    3

    文章

    16

    瀏覽量

    4042
收藏 人收藏

    評論

    相關推薦

    請問音頻芯片WM8978和VS1053B的有什么區別?

    音頻芯片:WM8978和VS1053B的區別???求問大神:音頻芯片:WM8978和VS1053B的有什么區別???先謝過
    發表于 01-22 06:36

    手機電池直接連接哪些芯片,是電源管理芯片音頻芯片嗎?

    手機電池直接連接哪些芯片,是電源管理芯片音頻芯片嗎?新人求教
    發表于 07-01 14:22

    基于Study210開發板點亮LED燈的相關資料推薦

    Linux 嵌入式系列】點亮LED燈實戰記錄--基于Study210開發板【Linux 嵌入式系列】點亮LED燈實戰記錄--基于Study210開發板
    發表于 12-16 07:36

    基于Study210開發板的刷機實戰記錄

    Linux 嵌入式系列】開發板刷機實戰記錄--基于Study210開發板【1】基于串口的控制臺搭建【1.1】安裝USB轉串口驅動未安裝USB轉串口驅動時設備管理器圖示成功安裝USB轉串口驅動
    發表于 12-21 07:08

    開發一個嵌入式BLE藍牙音頻芯片

    如何快速上手新的嵌入式BLE藍牙音頻芯片(記錄KT1025A開發經歷)最新要開發一個藍牙的氛圍燈,網上找了好久,都沒找到合適的芯片。要么是TI或者nordic的純BLE,不帶播放音樂。要么是帶
    發表于 12-23 06:08

    I2C3掛載wm8960音頻芯片

    OKMX8MM-C開發板預留了I2C3和SAI引腳接口,分別位于P18和P7插針引腳上,板載音頻芯片掛載到了I2C2和SAI2。今天小編為大家列舉并說明如何在I2C3掛載wm8960音頻芯片并通過
    發表于 08-17 11:41

    通過I2S連接一個音頻芯片,ESP32如何連接這個音頻芯片

    我們要通過I2S連接一個音頻芯片,但改音頻芯片的設定為I2S slave 模式,但卻提供MCLK出來。 麻煩可以告知在ESP32 該如何配置去連接此芯片呢?謝謝!
    發表于 03-14 07:36

    飛利浦1380音頻芯片

    飛利浦1380音頻芯片:The UDA1380 is a stereo audio coder-decoder, availablein TSSOP32 (UDA1380TT
    發表于 12-28 10:52 ?53次下載

    dac33音頻芯片

    dac33音頻芯片
    發表于 12-28 11:25 ?82次下載

    2.4GHz無線數字音頻芯片nRF24Z1及其應用

    2.4GHz無線數字音頻芯片nRF24Z1及其應用:nRF24Z1是挪威Nordic半導體公司于2005年推出的單片式CD(Compact Disc,光盤)音質無線數字音頻芯片,其能以24位48kHz的速度處理數字音頻流。
    發表于 10-27 14:13 ?136次下載

    Realtek ALC HD Audio音頻芯片驅動包1.4

    Realtek ALC HD Audio音頻芯片驅動包1.47版.zip
    發表于 01-26 14:28 ?6次下載

    Linux-kernel-3 0的移植記錄

    Linux-kernel-3 0的移植記錄
    發表于 10-31 11:33 ?7次下載
    <b class='flag-5'>Linux</b>-kernel-3 0的<b class='flag-5'>移植</b><b class='flag-5'>記錄</b>

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

    音頻芯片并通過SAI1連接傳輸音頻數據。設備樹和設備樹頭文件路徑如下:OK8MM-linux-sdk/OK8MM-linux-kernel/arch/arm64/bo
    的頭像 發表于 08-12 14:20 ?1548次閱讀
    I2C3掛載wm8960<b class='flag-5'>音頻芯片</b> | 飛凌干貨筆記

    高通Qualcomm-QCC30xx系列音頻芯片

    高通Qualcomm-QCC30xx系列音頻芯片LEAUDIO芯片QCC3071,QCC30712,QCC3081,QCC3083,QCC3084等●支持LEaudioAptxLosslessAuracast,TWS,ANC,AptxAdaptive,ApxtVoice
    發表于 01-09 16:59 ?13次下載

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

    本文詳細記錄在NXP I.MX6ULL+Linux平臺下進行WM8960音頻芯片移植的過程,其他平臺
    的頭像 發表于 05-17 11:33 ?1291次閱讀
    淺析在NXP I.MX6ULL+<b class='flag-5'>Linux</b><b class='flag-5'>平臺</b>下進行WM8960<b class='flag-5'>音頻芯片</b><b class='flag-5'>移植</b>的過程
    主站蜘蛛池模板: 黄 色美 女人| 天天曰| 九九精品国产兔费观看久久| 亚洲欧美色一区二区三区| 色天使色婷婷在线影院亚洲| 日本68xxxxxxxxx59| 在线播放一区二区精品产| 免费的两性视频网站| 天天干视频在线| 亚洲欧美一区二区三区四区 | 人人艹人人干| 天天色成人网| 欧美97色| 久久网免费视频| 一级女人毛片人一女人| 国产综合色在线视频区色吧图片| 国产一级大片免费看| 亚洲国产精品综合久久2007| 丁香花成人另类小说| 成人最新午夜免费视频| 日日噜噜夜夜狠狠tv视频免费| 夜夜天天| 九九re| 国产精品主播在线观看| 欧美色淫| 欧美瑟瑟| 狠狠操天天干| 四虎影院色| 天堂在线www天堂中文在线| 国内精品99| 国产二区三区毛片| 123成人网| 美女被羞羞产奶视频网站| 国产狂喷冒白浆免费视频| 手机在线观看a| 特污兔午夜影院| 亚洲都市激情| 天天躁夜夜躁狠狠躁| 一品毛片| 天天天天做夜夜夜夜| 一区二区三区电影|