<strike id="kiyse"></strike>
  • <tr id="kiyse"></tr>
  • <strike id="kiyse"></strike><samp id="kiyse"><tbody id="kiyse"></tbody></samp>
    <strike id="kiyse"><s id="kiyse"></s></strike>
    <tr id="kiyse"></tr>
    <noframes id="kiyse"><code id="kiyse"></code></noframes>
    <th id="kiyse"></th>
    <samp id="kiyse"></samp>
  • <th id="kiyse"><s id="kiyse"></s></th>
  • Windows 10 ARM工控主板連接I2S音頻芯片

     2025-1-9 17:01:16     作者:劉乾坤     聯系作者    


    在Windows工控主板應用中,音頻功能是一項基本的需求,USB聲卡在x86/x64 Windows系統上就可直接免驅使用,但這些USB聲卡通常不提供ARM上的Windows系統驅動。本文將介紹如何利用安裝在ARM上的Windows工控主板——ESM8400的I2S接口、連接WM8960音頻芯片,實現音頻的輸入與輸出。

    ESM8400是預裝正版Windows 10 IoT企業版操作系統的工控主板,具有名片尺寸、超低功率、無需散熱風扇、能在-40℃~80℃的環境溫度下穩定工作等諸多優點,ESM8400設計時已經預留了I2S接口,用于連接I2S音頻芯片。


    1. 硬件連接

    ESM8400總有32位GPIO,I2S接口與部分GPIO復用,對應關系如下:


    ESM8400 GPIO

    信號名稱

    信號說明

    GPIO0

    I2S_MCLK

    系統時鐘,由ESM8400對外提供

    GPIO3

    I2S_RXD

    ADC串行數據輸入

    GPIO4

    I2S_LRCLK

    (WS)幀同步信號,指示當前傳輸的是左聲道還是右聲道音頻

    GPIO5

    I2S_TXD

    DAC串行數據輸出

    GPIO14

    I2S_SCK

    (BCLK)同步音頻數據傳輸的位時鐘信號

    除I2S信號外,WM8960還需要一組I2C信號和兩個額外的IO信號用于配置:

    ESM8400引腳

    缺省功能

    系統支持音頻時的復用功能

    B12

    TSC_SCL

    WM8960 I2C接口

    B13

    TSC_SDA

    WM8960 I2C接口

    D3

    GPIO2

    AUD_INTn

    D16

    GPIO15

    AUD_PWR_EN

    ESM8400連接WM8960的原理圖如下:

    w1.png

    在ESM8400開發評估底板上連接WM8960音頻模塊:

    w2.png


    2. WM8960音頻芯片的自動識別

    為了滿足不同應用的需求,我們在系統UEFI中增加了WM8960芯片自動識別的功能,ESM8400的I2S接口缺省配置為GPIO,當在UEFI中通過I2C識別到WM8960芯片時,才切換為I2S功能。I2C的識別代碼特別簡單,通過I2C操作WM8960的復位寄存器,I2C操作成功即表示連接了WM8960芯片,然后將對應的GPIO切換為I2S狀態。WM8960自動識別代碼如下:

    RegAddr = (0xf << 1);
    Data = 0x01;
    Status =   iMXI2cWrite(&Wm8960I2cConfig, RegAddr, &Data, 1); 
    if(Status == RETURN_SUCCESS)
    {
        // Mux the SAI3 pins to wm8960 codec
        IOMUXC_SW_MUX_CTL_PAD_SAI3_TXFS =   IOMUXC_MUX_ALT0;
        IOMUXC_SW_MUX_CTL_PAD_SAI3_TXC  = IOMUXC_MUX_ALT0;
        IOMUXC_SW_MUX_CTL_PAD_SAI3_TXD  = IOMUXC_MUX_ALT0;
        IOMUXC_SW_MUX_CTL_PAD_SAI3_RXD  = IOMUXC_MUX_ALT0;
        IOMUXC_SW_MUX_CTL_PAD_SAI3_MCLK =   IOMUXC_MUX_ALT0;
     
        IOMUXC_SW_PAD_CTL_PAD_SAI3_TXFS =   SAI_PAD_CFG_OUT;
        IOMUXC_SW_PAD_CTL_PAD_SAI3_TXC  = SAI_PAD_CFG_OUT;
        IOMUXC_SW_PAD_CTL_PAD_SAI3_TXD  = SAI_PAD_CFG_OUT;
        IOMUXC_SW_PAD_CTL_PAD_SAI3_RXD  = SAI_PAD_CFG_IN;
        IOMUXC_SW_PAD_CTL_PAD_SAI3_MCLK =   SAI_PAD_CFG_OUT;
     
        IOMUXC_AUDIOMIX_SAI3_RXDATA_SELECT_INPUT_0 = IOMUXC_MUX_ALT1;
     
        DebugPrint(0xffffffff,  "Find the audio codec.\n" );
    }


    w3.png

    ESM8400 ARM Windows工控主板實現WM8960 I2S音頻輸入/輸出


    japanese乱人伦精品| 国产精品麻豆高清在线观看| 国产精品美女自在线观看免费| 人妻少妇精品中文字幕AV| 久久精品国产第一区二区| 国产精品无码av片在线观看播| 91精品国产免费入口| 国产a∨精品一区二区三区不卡| 亚洲午夜精品一级在线播放放 | 在线观看精品视频看看播放| 中日韩产精品1卡二卡三卡| 国产亚洲美女精品久久久久| 亚洲精品国产第一综合99久久| 99国产精品热久久久久久| 久久精品国产一区| CHINESE中国精品自拍| www.久久精品| 国产成人青青热久免费精品| 国产精品无码2021在线观看| 97久久精品人妻人人搡人人玩| 2022国产精品手机在线观看| 久久免费视频精品| 国产精品高清一区二区三区| 尹人久久久香蕉精品| 久久久久久一区国产精品| 亚洲第一区精品观看| 亚洲精品尤物yw在线影院| 日韩在线精品一二三区| 国产亚洲精品成人久久网站| 国产成人麻豆精品午夜福利在线| 麻豆国产精品入口免费观看| 国产精品一区二区毛卡片| 精品日产a一卡2卡三卡4卡乱| 国产成人午夜精品影院游乐网| 国产精品永久免费10000| 亚洲国产精品综合久久20| 国产精品嫩草视频永久网址| 国产精品bbwbbwbbw| 在线欧美精品一区二区三区| 日韩欧美亚洲国产精品字幕久久久| 五月天精品视频在线观看|