TECO东元电机-东元变频器-teco东元电机股份有限公司官网

產(chǎn)品分類

當(dāng)前位置: 首頁(yè) > 工業(yè)電子產(chǎn)品 > 集成電路(ICs) > 編解碼器

類型分類:
科普知識(shí)
數(shù)據(jù)分類:
編解碼器

iMX6音頻編解碼器SGTL5000 擴(kuò)展

發(fā)布日期:2022-10-09 點(diǎn)擊率:285

  • 關(guān)鍵詞: ARM Linux Audio
  • 摘要:嵌入式ARM設(shè)備在需要音頻解決方案的時(shí)候有時(shí)候需要通過I2S總線擴(kuò)展外部Codec或者DSP,本文就基于NXP iMX6 ARM平臺(tái)演示通過I2S擴(kuò)展NXP SGTL5000音頻Codec。

1). 簡(jiǎn)介

嵌入式ARM設(shè)備在需要音頻解決方案的時(shí)候有時(shí)候需要通過I2S總線擴(kuò)展外部Codec或者DSP,本文就基于NXP iMX6 ARM平臺(tái)演示通過I2S擴(kuò)展NXP SGTL5000音頻Codec。


本文所實(shí)際使用的演示平臺(tái)來自于Toradex ApalisiMX6 ARM嵌入式平臺(tái),Apalis iMX6 模塊上面已經(jīng)集成了一路SGTL5000擴(kuò)展的模擬音頻接口,同時(shí)也提供了多個(gè)數(shù)字音頻接口,這些數(shù)字接口可以連接音頻編解碼器擴(kuò)展多路音頻,也可以將數(shù)字音頻信號(hào)直接傳輸給 DSP 等其他處理器做進(jìn)一步處理。


2. 準(zhǔn)備

a). i.MX6 處理器內(nèi)部具有三個(gè)同步串行接口(synchronous serial interfaces,SSI)。以 Apalis iMX6 模塊為例,三個(gè) SSI 和 digital audio multiplexer  (AUDMUX) 相連接。AUDMUX 還有 4 個(gè)外部接口,其被引出至 Apalis iMX6 金手指接口上。這些接口相互獨(dú)立,并具有同樣的功能。AUDMUX 可以連接任意一對(duì)外部和內(nèi)部接口。例如 AUD1AUD3、AUD1AUD5 或者 AUD2AUD5 等。


其中AUD4 已經(jīng)用于連接模塊上的 SGTL5000,如果用戶使用模塊集成的模擬音頻,那么就無法使用 AUD4 的外部接口。因?yàn)?AUD6 并沒有引出到金手指接口,所以 Apalis iMX6 能最多支持 3 路音頻,包括模塊集成的 SGTL5000。


b). 使用 I2S 擴(kuò)展音頻編解碼器,還需要使用 I2C 接口。DAP1_MCLK 能提供部分編解碼器所需的外部時(shí)鐘信號(hào)。DAP1_MCLK  使用 CCM_CLKO1 作為時(shí)鐘源,這信號(hào)也用于模塊集成的 SGTL5000。如果需要同時(shí)使用外部的音頻編解碼器和模塊集成的 SGTL5000,就需要給外部的音頻編解碼器提供不同的時(shí)鐘信號(hào)。


3). SGTL5000 音頻Codec擴(kuò)展實(shí)例

下面以在 Apalis iMX6 上通過AUD5接口外部擴(kuò)展一路 SGTL5000進(jìn)行說明。


a). SGTL5000 和 Apalis iMX6 引腳連接

AUD5_RXD(MXM-202)-> I2S_DOUT

AUD5_TXFS(MXM-204)-> I2S_LRCLK

AUD5_TXC(MXM-200)-> I2S_SCLK

AUD5_TXD(MXM-196)-> I2S_DIN

I2C3_SDA(MXM-201)-> CTRL_DATA

I2C3_SCL(MXM-203)-> CTRL_CLK


b). 修改 device tree文件

./ imx6qdl-apalis.dtsi

------------------------------------------------

sound2 {

compatible = "fsl,imx6q-apalis-sgtl5000",

        "fsl,imx-audio-sgtl5000";

model = "imx6q-external-sgtl5000";

cpu-dai = <&ssi1>;

audio-codec = <&codec_external>;

audio-routing =

"LINE_IN", "LineIn Jack",

"MIC_IN", "MicJack",

"Mic Jack", "MicBias",

"Headphone Jack","HP_OUT";

mux-int-port =;

mux-ext-port =;

};


&ssi2{

        fsl,mode= "i2s-slave";

        status= "okay";

};


pinctrl_audmux:audmuxgrp {

fsl,pins = << p="">

                                    MX6QDL_PAD_DISP0_DAT20__AUD4_TXC  0x130b0           MX6QDL_PAD_DISP0_DAT21__AUD4_TXD  0x130b0

        MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS0x130b0

        MX6QDL_PAD_DISP0_DAT23__AUD4_RXD  0x130b0

                                     /*AUD5 for external sgtl5000*/             MX6QDL_PAD_DISP0_DAT19__AUD5_RXD  0x130b0          MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS0x130b0              MX6QDL_PAD_DISP0_DAT16__AUD5_TXC  0x130b0           MX6QDL_PAD_DISP0_DAT17__AUD5_TXD0x130b0

        >;

        };


pinctrl_audmux_mclk:audmux_mclk {

        fsl,pins= <                            MX6QDL_PAD_GPIO_5__CCM_CLKO1       0x000b0                   /* SGTL5000 sys_mclk */

                                    MX6QDL_PAD_GPIO_19__CCM_CLKO1     0x000b0           /*external SGTL5000 sys_mclk   */

        >;

};

------------------------------------------------


./ imx6qdl-apalis-eval.dtsi

------------------------------------------------

&i2c3{

        status= "okay";

codec_external: sgtl5000@0a {

        compatible= "fsl,sgtl5000";

        reg=;

        clocks= <&clks 201="">;

        VDDA-supply= <?_2p5v>;

        VDDIO-supply= <?_3p3v>;

};

------------------------------------------------


4). 部署針對(duì)Linux 3.14.52內(nèi)核版本的補(bǔ)丁,用于支持兩路SGTL5000音頻Codec

如果是只是使用一個(gè)外部 SGTL5000,或者直接輸出數(shù)字音頻信號(hào),而不使用模塊集成的SGTL5000,那么就無需使用該補(bǔ)丁,正確配置 AUDMUX 即可。如果是需要使用三個(gè)SGTL5000,那么需要在補(bǔ)丁中添加第三組配置。


sgtl5000_2nd.patch下載地址:

------------------------------------------------

ftp://ftp.toradex.cn

DocumentsApplication_Note esource

------------------------------------------------


5). 重新編譯內(nèi)核。將新生成的 dtb 和 uImage 重新部署到 Apalis iMX6 上。然后重新啟動(dòng)。


6). 使用 apaly 能發(fā)現(xiàn)兩個(gè)聲卡設(shè)備

------------------------------------------------

aplay -L


card 0:imx6qexternalsg [imx6q-external-sgtl5000], device 0: HiFi sgtl5000-0 []

 Subdevices: 1/1

 Subdevice #0: subdevice #0

card 1:imx6qapalissgtl [imx6q-apalis-sgtl5000], device 0: HiFi sgtl5000-0 []

 Subdevices: 1/1

 Subdevice #0: subdevice #0

card 2:imxspdif [imx-spdif], device 0: S/PDIF PCM snd-soc-dummy-dai-0 []

------------------------------------------------


4). 總結(jié)

以上配置適用于 Linux 3.14.52 內(nèi)核,即 Toradex 發(fā)布的 V2.6 和 V2.6.1 Linux Image。V2.7 Linux Image 使用了新內(nèi)核 Linux 4.1 ,SGTL5000 的驅(qū)動(dòng)也發(fā)生了變化,需要重新調(diào)整。另外Toradex Colibri iMX6 和 Apalis iMX6 具有類似的音頻控制器,上述方法也應(yīng)用 Colibri iMX6。

下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產(chǎn)品

更多
主站蜘蛛池模板: 亚洲av无码乱码在线观看 | 一级黄色免费片 | 成人在线视频观看 | a级做爰视频免费观看 | 精品99日产一卡2卡三卡4 | 日韩中文字幕视频在线 | 久久久久久夜精品精品免费 | 国产精品乱码一区二区三区 | 一级做a爰片久久毛片免费 一级做a爰片久久毛片欧美 | 又爽又高潮的bb视频免费看 | 99热这里只有精品久久免费 | 欧美日韩国产高清视频 | 大香伊人久久精品一区二区 | 午夜电影在线免费观看 | 欧美色小说 | 国产做爰免费视频观看 | 国产成a人片在线观看视频99 | 丝袜美腿一区二区三区 | 九色在线视频观看 | 国产又色又爽又刺激在线观看 | 国产美女牲交视频 | 久久久噜噜噜久久熟女 | 女上位在线观看 | 色播视频在线观看 | 欧美日韩精品在线观看 | 国产成人黄色在线观看 | 青青草久热精品视频在线观看 | 中文字幕一区二区三区四区五区 | 一级特黄aaa大片在线观看 | 欧美影院一区二区三区 | 成人自拍视频在线观看 | 99久久99精品久久久久久 | 国99久9在线 | 免费 | 蜜桃臀在线成人亚洲 | 青青久久国产成人免费网站 | 亚洲精品短视频 | 樱桃福利视频 | 亚洲av无码无线在线观看 | 很黄很刺激很爽的免费视频 | 91九色成人 | 久久精品免费一区二区视 |