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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

i.MX RT600 BCLK受干擾影響WS頻率解決方案

恩智浦MCU加油站 ? 來(lái)源:周晶晶 ? 作者:周晶晶 ? 2023-09-14 08:55 ? 次閱讀
問(wèn)題描述最近遇到客戶發(fā)現(xiàn)一個(gè)很有意思的問(wèn)題,客戶使用i.MX RT600 I2S產(chǎn)生2通道的I2S波形,配置希望輸出I2S波形:

48Khz 采樣率,32bit, 2通道, BCLK輸出3.072Mhz。

測(cè)試發(fā)現(xiàn)現(xiàn)象很奇怪,如果BCLK連接的模塊阻抗改變,會(huì)導(dǎo)致正常應(yīng)該輸出48K的LRCK(WS)頻率會(huì)變動(dòng),有時(shí)候變成96Khz,客戶的模塊是專用的ASIC

wKgZomUCWxKAT6ItAACRwTXfyro267.png

客戶反應(yīng),這個(gè)問(wèn)題同樣可以在NXP MIMXRT685-AUD-EVK板子上復(fù)現(xiàn),因?yàn)锳UD-EVK FC2P0_14連接到了外部LED驅(qū)動(dòng)電路

wKgZomUCWxOAXoQaAAEwu61d490265.png

如果是官方的代碼配置,不會(huì)復(fù)現(xiàn)問(wèn)題,如果是使用客戶的代碼,能夠復(fù)現(xiàn)問(wèn)題。

wKgZomUCWxOADW4VAAEcfwe6omk844.png

如果斷開R397 1_2的電阻,問(wèn)題就不會(huì)復(fù)現(xiàn),連接之后就會(huì)復(fù)現(xiàn)。

所謂復(fù)現(xiàn):測(cè)試P0_15 LRCK采樣率從期望的48Khz變成了96Khz:

wKgZomUCWxSAKooWAAa8UOVqu8E212.png

所謂不復(fù)現(xiàn):測(cè)試P0_15 LRCK采樣率就是期望的48Khz:

wKgZomUCWxSAde7kAAb5PrW4iEM566.png

從I2S的構(gòu)架上講,不應(yīng)該出現(xiàn)具體I2S IP的配置因?yàn)橥獠康尿?qū)動(dòng)情況導(dǎo)致不同的輸出頻率,而且官方的代碼直接修改接口和引腳也不會(huì)出現(xiàn),那么問(wèn)題究竟出在哪里呢?

問(wèn)題分析與解決方案經(jīng)過(guò)查看官方SDK的配置和客戶提供的代碼,發(fā)現(xiàn)差別很簡(jiǎn)單,在于pinmux.c對(duì)于P0_14, P0_15的配置,客戶復(fù)現(xiàn)問(wèn)題的配置如下:
const uint32_t port0_pin14_config = (/* Pin is configured as FC2_SCK */
                                          IOPCTL_PIO_FUNC1 |
                                          /* Disable pull-up / pull-down function */
                                          IOPCTL_PIO_PUPD_DI |
                                          /* Enable pull-down function */
                                          IOPCTL_PIO_PULLDOWN_EN |
                                          /* Enables input buffer function */
                                          IOPCTL_PIO_INBUF_EN |
                                          /* Normal mode */
                                          IOPCTL_PIO_SLEW_RATE_NORMAL |
                                          /* Normal drive */
                                         IOPCTL_PIO_FULLDRIVE_DI |
                                          /* Analog mux is disabled */
                                          IOPCTL_PIO_ANAMUX_DI |
                                          /* Pseudo Output Drain is disabled */
                                          IOPCTL_PIO_PSEDRAIN_DI |
                                          /* Input function is not inverted */
                                          IOPCTL_PIO_INV_DI);
     /* PORT0 PIN14 (coords: A3) is configured as FC2_SCK */
     IOPCTL_PinMuxSet(IOPCTL, 0U, 14U, port0_pin14_config);


     const uint32_t port0_pin15_config = (/* Pin is configured as FC2_TXD_SCL_MISO_WS */
                                          IOPCTL_PIO_FUNC1 |
                                          /* Disable pull-up / pull-down function */
                                          IOPCTL_PIO_PUPD_DI |
                                          /* Enable pull-down function */
                                          IOPCTL_PIO_PULLDOWN_EN |
                                          /* Enables input buffer function */
                                          IOPCTL_PIO_INBUF_EN |
                                          /* Normal mode */
                                          IOPCTL_PIO_SLEW_RATE_NORMAL |
                                          /* Normal drive */
                                          IOPCTL_PIO_FULLDRIVE_DI |
                                          /* Analog mux is disabled */
                                          IOPCTL_PIO_ANAMUX_DI |
                                          /* Pseudo Output Drain is disabled */
                                          IOPCTL_PIO_PSEDRAIN_DI |
                                          /* Input function is not inverted */
                                          IOPCTL_PIO_INV_DI);
     /* PORT0 PIN15 (coords: A5) is configured as FC2_TXD_SCL_MISO_WS */
     IOPCTL_PinMuxSet(IOPCTL, 0U, 15U, port0_pin15_config);

官方不復(fù)現(xiàn)問(wèn)題的配置如下:

const uint32_t port0_pin14_config = (/* Pin is configured as FC2_SCK */
                                          IOPCTL_PIO_FUNC1 |
                                          /* Disable pull-up / pull-down function */
                                          IOPCTL_PIO_PUPD_DI |
                                          /* Enable pull-down function */
                                          IOPCTL_PIO_PULLDOWN_EN |
                                          /* Enables input buffer function */
                                          IOPCTL_PIO_INBUF_EN |
                                          /* Normal mode */
                                          IOPCTL_PIO_SLEW_RATE_NORMAL |
                                          /* Normal drive */
                IOPCTL_PIO_FULLDRIVE_EN  |
                                          /* Analog mux is disabled */
                                          IOPCTL_PIO_ANAMUX_DI |
                                          /* Pseudo Output Drain is disabled */
                                          IOPCTL_PIO_PSEDRAIN_DI |
                                          /* Input function is not inverted */
                                          IOPCTL_PIO_INV_DI);
     /* PORT0 PIN14 (coords: A3) is configured as FC2_SCK */
     IOPCTL_PinMuxSet(IOPCTL, 0U, 14U, port0_pin14_config);


     const uint32_t port0_pin15_config = (/* Pin is configured as FC2_TXD_SCL_MISO_WS */
                                          IOPCTL_PIO_FUNC1 |
                                          /* Disable pull-up / pull-down function */
                                          IOPCTL_PIO_PUPD_DI |
                                          /* Enable pull-down function */
                                          IOPCTL_PIO_PULLDOWN_EN |
                                          /* Enables input buffer function */
                                          IOPCTL_PIO_INBUF_EN |
                                          /* Normal mode */
                                          IOPCTL_PIO_SLEW_RATE_NORMAL |
                                          /* Normal drive */
                IOPCTL_PIO_FULLDRIVE_EN  |
                                          /* Analog mux is disabled */
                                          IOPCTL_PIO_ANAMUX_DI |
                                          /* Pseudo Output Drain is disabled */
                                          IOPCTL_PIO_PSEDRAIN_DI |
                                          /* Input function is not inverted */
                                          IOPCTL_PIO_INV_DI);
     /* PORT0 PIN15 (coords: A5) is configured as FC2_TXD_SCL_MISO_WS */
     IOPCTL_PinMuxSet(IOPCTL, 0U, 15U, port0_pin15_config);

實(shí)際上,只要BCLK P0_14的引腳配置為FULL drive即可。

wKgZomUCWxWAL0VtAACgGdH0OzA255.png

可以看到,如果配置為Full output driver,驅(qū)動(dòng)能力是normal輸出的兩倍。所以,問(wèn)題出在BCLK的引腳驅(qū)動(dòng)能力這塊。

然而,推薦客戶改變驅(qū)動(dòng)能力的方式,縱然可以輸出正確的48Khz采樣率波形,客戶并不接受,認(rèn)為高驅(qū)動(dòng)能力也代表著功耗的加大,而他們的產(chǎn)品是對(duì)功耗要求極高的,必須要在普通驅(qū)動(dòng)能力下解決問(wèn)題。所以進(jìn)一步分析波形,通過(guò)使用高采樣率的示波器20Gsa/s,2G探頭抓取出問(wèn)題時(shí)候的BCLK,可以發(fā)現(xiàn)有一些毛刺:

wKgZomUCWxWAKCmCAAF1yvlhwKQ128.png

過(guò)內(nèi)部的溝通,也認(rèn)為這個(gè)BCLK毛刺是導(dǎo)致問(wèn)題的原因。這里需要注意的是,有些示波器,如果采樣率低可能抓不到這個(gè)毛刺,還有些探頭,阻抗比較小,導(dǎo)致探頭加上到BCLK,直接問(wèn)題消失的情況,所以建議使用高阻抗探頭,比如1M歐,1G采樣率以上的探頭即可抓到。

由于客戶不接受驅(qū)動(dòng)能力的改變,所以這里還可以考慮改變斜率,讓上升下降變緩,濾掉毛刺區(qū)域,改變配置如下:

#define IOPCTL_PIO_SLEW_RATE_SLEW 0X80 
  const uint32_t port0_pin14_config = (/* Pin is configured as FC2_SCK */
                                           IOPCTL_PIO_FUNC1 |
                                           /* Disable pull-up / pull-down function */
                                           IOPCTL_PIO_PUPD_DI |
                                           /* Enable pull-down function */
                                           IOPCTL_PIO_PULLDOWN_EN |
                                           /* Enables input buffer function */
                                           IOPCTL_PIO_INBUF_EN |
                                           /* Normal mode */
                IOPCTL_PIO_SLEW_RATE_SLEW|//0X80|// IOPCTL_PIO_SLEW_RATE_NORMAL |
                                           /* Normal drive */
                                           IOPCTL_PIO_FULLDRIVE_DI |
                                           /* Analog mux is disabled */
                                           IOPCTL_PIO_ANAMUX_DI |
                                           /* Pseudo Output Drain is disabled */
                                           IOPCTL_PIO_PSEDRAIN_DI |
                                           /* Input function is not inverted */
                                           IOPCTL_PIO_INV_DI);
      /* PORT0 PIN14 (coords: A3) is configured as FC2_SCK */
      IOPCTL_PinMuxSet(IOPCTL, 0U, 14U, port0_pin14_config);


      const uint32_t port0_pin15_config = (/* Pin is configured as FC2_TXD_SCL_MISO_WS */
                                           IOPCTL_PIO_FUNC1 |
                                           /* Disable pull-up / pull-down function */
                                           IOPCTL_PIO_PUPD_DI |
                                           /* Enable pull-down function */
                                           IOPCTL_PIO_PULLDOWN_EN |
                                           /* Enables input buffer function */
                                           IOPCTL_PIO_INBUF_EN |
                                           /* Normal mode */
                                           IOPCTL_PIO_SLEW_RATE_NORMAL |
                                           /* Normal drive */
                                           IOPCTL_PIO_FULLDRIVE_DI |
                                           /* Analog mux is disabled */
                                           IOPCTL_PIO_ANAMUX_DI |
                                           /* Pseudo Output Drain is disabled */
                                           IOPCTL_PIO_PSEDRAIN_DI |
                                           /* Input function is not inverted */
                                           IOPCTL_PIO_INV_DI);
      /* PORT0 PIN15 (coords: A5) is configured as FC2_TXD_SCL_MISO_WS */
      IOPCTL_PinMuxSet(IOPCTL, 0U, 15U, port0_pin15_config);

wKgZomUCWxWAEwjIAAE1xlQVdgc471.png測(cè)試結(jié)果如下:

wKgZomUCWxWAexzrAATDXihEt_s682.png

可以看到波形很光滑,毛刺消失,輸出也是穩(wěn)定的48Khz,滿足客戶不改變驅(qū)動(dòng)能力的要求。

小結(jié)

在使用i.MX RT600 FC2做I2S的時(shí)候,為了BCLK不受外部電路影響,從而影響到WS的波形頻率,建議引腳配置以下二選一:

1.使用Full output drive,提高驅(qū)動(dòng)能力2.使用慢slewrate,濾掉BCLK上升下降小毛刺

最后,特別感謝NXP 蘇州SE團(tuán)隊(duì) James Fan 在該解決方案上提供的大力支持!作者:周晶晶

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17357

    瀏覽量

    352794
  • 恩智浦
    +關(guān)注

    關(guān)注

    14

    文章

    5884

    瀏覽量

    108471
  • WS
    WS
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    9958
  • i.MX
    +關(guān)注

    關(guān)注

    1

    文章

    49

    瀏覽量

    35707
  • I2S
    I2S
    +關(guān)注

    關(guān)注

    1

    文章

    66

    瀏覽量

    42094

原文標(biāo)題:i.MX RT600 BCLK受干擾影響WS頻率解決方案

文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NXP專為邊緣AI打造的i.MX RT700跨界MCU到底強(qiáng)在哪?

    500和i.MX RT600跨界MCU的成功基礎(chǔ)上,恩智浦宣布推出i.MX RT700,超低功耗、集成多核和eIQ Neutron神經(jīng)處理單元 (NPU)。 新一代
    發(fā)表于 11-08 09:40 ?1215次閱讀
    NXP專為邊緣AI打造的<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>700跨界MCU到底強(qiáng)在哪?

    NXP推出基于i.MX RT106F本地人臉識(shí)別解決方案

    NXP MCU級(jí)別的人臉識(shí)別解決方案利用i.MX RT106F來(lái)實(shí)現(xiàn),使開發(fā)者輕松便捷地將人臉識(shí)別功能添加到他們基于MCU的IoT產(chǎn)品中.
    發(fā)表于 03-01 10:07 ?5219次閱讀

    i.MX RT500/600應(yīng)用案例 串行NOR Flash雙程序可交替啟動(dòng)設(shè)計(jì)

    i.MX RTxxx 系列上(RT500/600)也有雙程序可交替啟動(dòng)特性,其主體設(shè)計(jì)邏輯基本上跟i.MX RT1170是差不多的,只是一些
    的頭像 發(fā)表于 05-05 14:24 ?2733次閱讀
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>500/<b class='flag-5'>600</b>應(yīng)用案例 串行NOR Flash雙程序可交替啟動(dòng)設(shè)計(jì)

    i.MX RT處理器系列

    我對(duì)i.MX RT處理器系列很感興趣,因?yàn)樗菣C(jī)器學(xué)習(xí)研究項(xiàng)目中有吸引力的解決方案。機(jī)器學(xué)習(xí)需要大量的計(jì)算能力,而且由于i.MX RT AR
    發(fā)表于 07-22 07:53

    i.MX RT600跨界處理器參考資料

    i.MX RT600跨界處理器宣傳手冊(cè)
    發(fā)表于 12-12 07:21

    01:i.MX RT的市場(chǎng)應(yīng)用和參考解決方案

    應(yīng)用,然后分享現(xiàn)有的硬件/軟件/工具/文檔,以便全面了解i.MX RT系列。最后,還將介紹i.MX RT的典型參考解決方案,以便更好地了解恩
    的頭像 發(fā)表于 01-21 07:13 ?3444次閱讀
    01:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的市場(chǎng)應(yīng)用和參考<b class='flag-5'>解決方案</b>

    恩智浦i.MX RT600跨界微控制器在功耗、性能和存儲(chǔ)器方面有顯著特點(diǎn)

    恩智浦半導(dǎo)體近日宣布i.MX RT600跨界微控制器 (MCU) 上市,這是一款面向音頻、語(yǔ)音和機(jī)器學(xué)習(xí)等超低功耗、安全邊緣應(yīng)用的理想解決方案
    的頭像 發(fā)表于 03-15 14:29 ?2796次閱讀

    i.MX RT開發(fā)筆記-08 | i.MX RT1062嵌套中斷向量控制器NVIC(按鍵中斷檢測(cè))

    系列文章目錄i.MX RT開發(fā)筆記-01 | 初識(shí) i.MX RT1062 跨界MCUi.MX RT
    發(fā)表于 12-01 13:51 ?2次下載
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>開發(fā)筆記-08 | <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1062嵌套中斷向量控制器NVIC(按鍵中斷檢測(cè))

    RT-Thread & NXP 發(fā)布 i.MX RT 系列 BSP 新框架

    前言i.MX RT 是 NXP 推出的跨界處理器系列。該系列下又包括 i.MX RT1020、i.MX
    發(fā)表于 12-07 13:06 ?2次下載
    <b class='flag-5'>RT</b>-Thread & NXP 發(fā)布 <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b> 系列 BSP 新框架

    基于i.MX RT單芯片實(shí)現(xiàn)的GUI圖形顯示和語(yǔ)音控制解決方案

    基于優(yōu)秀的性能指標(biāo),i.MX RT可以勝任許多輕量級(jí)的AI應(yīng)用,賦能越來(lái)越多的邊緣設(shè)備。今天這場(chǎng)視頻講座中,恩智浦的專家將向大家展示一款基于i.MX RT單芯片實(shí)現(xiàn)的GUI圖形顯示和語(yǔ)
    的頭像 發(fā)表于 12-31 09:48 ?7296次閱讀

    適用于i.MX RT500和i.MX RT600 MCU的Xtensa音頻框架介紹

    可編程方法,從而提供最大的靈活性,本篇將介紹適用于i.MX RT500和i.MX RT600 MCU的Xtensa音頻框架(XAF)。
    的頭像 發(fā)表于 11-10 09:39 ?2804次閱讀

    基于 NXP i.MX RT1050 的 3D 打印機(jī)方案

    MCU-Healer 是基于 NXP i.MX RT1050 做的 3D 打印機(jī)方案,該方案主控 MCU i.MX
    的頭像 發(fā)表于 04-06 15:06 ?1324次閱讀
    基于 NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1050 的 3D 打印機(jī)<b class='flag-5'>方案</b>

    i.MX RT的FlexRAM配置問(wèn)題

    i.MX RT的FlexRAM配置問(wèn)題
    的頭像 發(fā)表于 10-24 15:46 ?870次閱讀
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的FlexRAM配置問(wèn)題

    基于NXP i.MX RT117H智能人機(jī)界面方案

    基于NXP i.MX RT117H智能人機(jī)界面方案
    的頭像 發(fā)表于 10-30 18:22 ?722次閱讀
    基于NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>117H智能人機(jī)界面<b class='flag-5'>方案</b>

    i.MX RT500/600系列上串行NOR Flash雙程序可交替啟動(dòng)設(shè)計(jì)

    i.MX RT500/600系列上串行NOR Flash雙程序可交替啟動(dòng)設(shè)計(jì)
    的頭像 發(fā)表于 10-27 09:36 ?524次閱讀
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>500/<b class='flag-5'>600</b>系列上串行NOR Flash雙程序可交替啟動(dòng)設(shè)計(jì)
    主站蜘蛛池模板: 欧美色图亚洲综合 | 国产免费糟蹋美女视频 | 好紧好爽太大了h快穿 | 国产综合精品久久久久成人影 | 欧美视频一区二区三区在线观看 | 欧美黄色一级视频 | 黄色网址网站在线观看 | 亚洲国产福利精品一区二区 | 中文字幕人成不卡一区 | 中文在线资源链接天堂 | 黄色大片在线免费观看 | 激情开心婷婷 | 狠狠色狠狠色综合日日32 | 国产三级观看 | 一区二区三区视频免费观看 | hs网站免费 | 性刺激的欧美三级视频 | 91成人免费视频 | 丁香花在线电影小说观看 | 男人的天堂视频在线 | 国产午夜精品理论片 | 国产三级日产三级韩国三级 | 午夜精品久久久久久99热 | 毛片免费看网站 | 性夜影院爽黄a爽免费视 | 国产午夜亚洲精品 | 二十年等一人小说在线观看 | bt种子在线搜索 | 亚洲国产七七久久桃花 | 欧美日韩色综合网站 | www.操你啦| 日本不卡专区 | 日本特黄特色大片免费看 | 亚洲天天做夜夜做天天欢人人 | 欧美爆插 | 黄色18网站| 欧美色炮 | 六月婷婷色 | 日本高清视频色wwwwww色 | 男人的天堂一区二区视频在线观看 | 欧美女同网站 |