chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

ESP32 I2S音頻總線學(xué)習(xí)筆記(二):I2S讀取INMP441音頻數(shù)據(jù)

jf_88434166 ? 來(lái)源:jf_88434166 ? 作者:jf_88434166 ? 2025-10-23 19:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡(jiǎn)介

在這個(gè)系列的上一篇文章中,我們介紹了ESP32 I2S音頻總線的相關(guān)知識(shí),簡(jiǎn)要了解了什么是I2S總線、它的通信格式,以及相關(guān)的底層API函數(shù)。沒有看過上篇文章的可以點(diǎn)擊文章進(jìn)行回顧:

[ESP32 I2S音頻總線學(xué)習(xí)筆記(一):初識(shí)I2S通信與配置基礎(chǔ)]

這篇文章將介紹一個(gè)小案例——ESP32驅(qū)動(dòng)INMP441讀取音頻數(shù)據(jù),它是關(guān)于如何使用I2S讀取數(shù)據(jù)的一個(gè)應(yīng)用,主要是將ESP32讀取到的音頻數(shù)據(jù)發(fā)送到串口上并實(shí)時(shí)顯示波形,這個(gè)我們可以通過串口繪圖儀來(lái)實(shí)現(xiàn)。在這之前先來(lái)看一下INMP441這個(gè)模塊吧

INMP441全向麥克風(fēng)模塊

在這里插入圖片描述

NMP441是一款高性能、低功耗、數(shù)字輸出,帶底部端口的全向MEMS麥克風(fēng)。該完整的INMP441解決方案由一個(gè)MEMS傳感器、信號(hào)調(diào)節(jié)模塊、數(shù)字混合濾波器、電源管理和行業(yè)標(biāo)準(zhǔn)的24位I2S接口組成。I2S接口允許INMP441直接連接到數(shù)字處理器,如DSP微控制器,無(wú)需額外的音頻解碼器。NMP441具有高信噪比,是一種適用于近場(chǎng)應(yīng)用的理想選擇。

產(chǎn)品特性:

具有高精度24位數(shù)據(jù)的數(shù)字I2S接口
高信噪比為61 dBA
高靈敏度-26 dBFS
從60 Hz到15 kHz的穩(wěn)定頻率響應(yīng)
低功耗:低電流消耗1.4 mA
高PSR:-75 dBFS

功能框圖

INMP441模塊使用到的芯片內(nèi)置ADC,用于將采集到的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),上面還有濾波器和硬件控制、電源相關(guān)的引腳。
在這里插入圖片描述

引腳定義

VDD輸入電源,1.8V至3.3V
GND電源地
SCKI2S接口的串行數(shù)據(jù)時(shí)鐘
WS用于I2S接口的串行數(shù)據(jù)字選擇
SDI2S接口的串行數(shù)據(jù)輸出
L/R左/右聲道選擇

其中L/R是 左/右聲道選擇。設(shè)置為低電平時(shí),麥克風(fēng)在I2S幀的左聲道輸出信號(hào)。設(shè)置為高電平時(shí),麥克風(fēng)在右聲道輸出信號(hào)。

安裝I2S驅(qū)動(dòng)

上篇文章我們?cè)诮榻BI2S底層API函數(shù)提到,在使用I2S通信時(shí)需要加載I2S驅(qū)動(dòng),不知道小伙伴們還記不記得。這個(gè)加載I2S驅(qū)動(dòng)的函數(shù)就是:esp_err_t i2s_driver_install(i2s_port_t i2s_num, const i2s_config_t *i2s_config, int queue_size, void *i2s_queue),里面有4個(gè)參數(shù)需要配置,在上次都有提到每個(gè)參數(shù)的意義。 其中比較復(fù)雜的是i2s_config這個(gè)結(jié)構(gòu)體變量,我們需要對(duì)結(jié)構(gòu)體的每個(gè)參數(shù)進(jìn)行配置,如下:

除了后面幾個(gè)整型變量,每個(gè)結(jié)構(gòu)體成員其實(shí)是一個(gè)枚舉類型

I2S工作模式mode

音頻采樣率bits_per_sample

通道格式channel_format

通信傳輸格式communication_format

知道了每個(gè)參數(shù)的含義以及知道它可以配置哪些參數(shù),就可以調(diào)用i2s_driver_install這個(gè)函數(shù)了。 這里我們舉一個(gè)安裝I2S驅(qū)動(dòng)的例子,就比較容易理解了。同時(shí)配置的時(shí)候,我們把它放在一個(gè)函數(shù)里面,起名為i2s_install( )。

配置I2S引腳

I2S通信最重要的三個(gè)信號(hào)是位時(shí)鐘BCK、字時(shí)鐘WS、數(shù)據(jù)引腳SD,因此我們需要對(duì)其引腳進(jìn)行配置,設(shè)置I2S引腳的函數(shù)是esp_err_t i2s_set_pin(i2s_port_t i2s_num, const i2s_pin_config_t *pin),第一個(gè)參數(shù)傳入I2S端口,填I(lǐng)2S_NUM_0或I2S_NUM_1, 第二個(gè)參數(shù)是結(jié)構(gòu)體如下:

其中mck_io_num; bck_io_num,ws_io_num等都是整型變量,data_out_num如果我們沒有用到就傳入-1,在driver/i2s.h頭文件定義了

假設(shè)我們要配置的引腳位時(shí)鐘BCK、字時(shí)鐘WS、數(shù)據(jù)引腳SD分別是D13, D12, D14,同樣把要配置的參數(shù)寫入一個(gè)函數(shù)i2s_setpin()里面,配置I2S引腳示例如下:

安裝完I2S驅(qū)動(dòng)和配置好I2S引腳后,我們只要在setup()函數(shù)里面調(diào)用這兩個(gè)函數(shù)就可以了。

讀取I2S數(shù)據(jù)

上面只是對(duì)I2S進(jìn)行了一下初始化,要通過INMP441讀取i2s數(shù)據(jù),我們只需要調(diào)用esp_err_t i2s_read(i2s_port_t i2s_num, void *dest, size_t size, size_t *bytes_read, TickType_t ticks_to_wait);這個(gè)函數(shù)。因?yàn)榍懊嬖诔跏蓟疘2S時(shí)的量化位數(shù)是16位,所以每個(gè)采樣點(diǎn)的數(shù)據(jù)大小為2字節(jié),我們將讀取到的數(shù)據(jù)放入一個(gè)緩存區(qū)數(shù)組sBuffer,將數(shù)組長(zhǎng)度bufferLen定義為64,確保每次從I2S接口讀取時(shí)能獲得足夠的音頻數(shù)據(jù)。 如果讀取成功2s_read這個(gè)函數(shù)會(huì)返回一個(gè)ESP_OK,成功后就進(jìn)入數(shù)據(jù)處理部分。這里我們將讀取到的音頻數(shù)據(jù)求均值然后可以用串口繪圖儀觀察它的數(shù)據(jù)波形,代碼如下:

完整代碼

接線圖

寫完代碼后就可以開始接線了,接線圖如下圖所示:供電這里接3.3V,L/R接地。

實(shí)驗(yàn)效果

一開始接收到的是外界的聲音,波形是雜亂無(wú)章的。后面用嘴吹氣,波形會(huì)跟著吹氣變化,不吹氣波形是平緩不變的,后面大概吹了幾次,可以看到波形變化,如下圖:

總結(jié)

本篇文章介紹了通過ESP32的I2S通信實(shí)時(shí)讀取INMP441麥克風(fēng)模塊的音頻數(shù)據(jù),并通過串口繪圖儀顯示音頻數(shù)據(jù)波形。后面我們還會(huì)介紹使用INMP441采集音頻并實(shí)時(shí)播放音頻,感興趣的可以先關(guān)注收藏一下!

審核編輯 黃宇

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

    關(guān)注

    1

    文章

    78

    瀏覽量

    43772
  • ESP32
    +關(guān)注

    關(guān)注

    21

    文章

    1052

    瀏覽量

    20540
  • 音頻總線
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    224
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    音頻總線I2S協(xié)議:I2S收發(fā)模塊FPGA的仿真設(shè)計(jì)

    1 概述 I2S(Inter—IC Sound)總線, 又稱 集成電路內(nèi)置音頻總線,是飛利浦公司為數(shù)字音頻設(shè)備之間的
    的頭像 發(fā)表于 12-14 17:34 ?9629次閱讀
    <b class='flag-5'>音頻</b><b class='flag-5'>總線</b><b class='flag-5'>I2S</b>協(xié)議:<b class='flag-5'>I2S</b>收發(fā)模塊FPGA的仿真設(shè)計(jì)

    全面解析I2S、TDM、PCM音頻總線

    I2S是比較簡(jiǎn)單的數(shù)字接口協(xié)議,沒有地址或設(shè)備選擇機(jī)制。在I2S總線上,只能同時(shí)存在一個(gè)主設(shè)備和發(fā)送設(shè)備。主設(shè)備可以是發(fā)送設(shè)備,也可以是接收設(shè)備,或是協(xié)調(diào)發(fā)送設(shè)備和接收設(shè)備的其它控制設(shè)備。
    發(fā)表于 09-20 10:58 ?1.5w次閱讀

    請(qǐng)問ESP-WROOM-32 I2S音頻信號(hào)幅度讀取異常怎么解決?

    。 通過以下代碼獲取ESP32 i2s接口采集的數(shù)據(jù)最大幅度: #include //I2S音頻數(shù)據(jù)采樣率48K #define
    發(fā)表于 07-01 07:50

    如何從INMP441 I2S麥克風(fēng)向ESP32輸入音頻?

    = I2S_CHANNEL_FMT_ONLY_LEFT, // Ground the L/R pin on the INMP441. .communication_format
    發(fā)表于 04-13 07:45

    音頻接口I2S實(shí)驗(yàn)

    實(shí)驗(yàn)?zāi)康? 1.掌握有關(guān)音頻處理的實(shí)驗(yàn)原理及說(shuō)明;2.通過實(shí)驗(yàn)了解I2S(Inter–ICSound)音頻接口的工作原理;3.通過實(shí)驗(yàn)掌握對(duì)處理器S
    發(fā)表于 12-29 00:07 ?116次下載

    基于FPGA和AD1836的I2S接口設(shè)計(jì)

    I2S(Inter IC Sound Bus)是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn),它既規(guī)定了硬件接口規(guī)范,也規(guī)定了數(shù)字
    發(fā)表于 03-29 11:02 ?7097次閱讀
    基于FPGA和AD1836的<b class='flag-5'>I2S</b>接口設(shè)計(jì)

    i2s音頻總線學(xué)習(xí)

    I2S是飛利浦公司針對(duì)數(shù)字音頻設(shè)備(如CD播放器、數(shù)碼音效處理器、數(shù)字電視音響系統(tǒng))之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn)。它采用了獨(dú)立的導(dǎo)線傳輸時(shí)鐘與
    發(fā)表于 01-29 16:29 ?4773次閱讀
    <b class='flag-5'>i2s</b><b class='flag-5'>音頻</b><b class='flag-5'>總線</b><b class='flag-5'>學(xué)習(xí)</b>

    i2si2c的區(qū)別

    I2C總線是由Philips公司開發(fā)的一種簡(jiǎn)單、雙向線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。
    發(fā)表于 01-29 16:47 ?8w次閱讀
    <b class='flag-5'>i2s</b>和<b class='flag-5'>i2</b>c的區(qū)別

    I2S接口工作原理_I2S接口介紹

    I2S總線, 又稱 集成電路內(nèi)置音頻總線,是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一
    發(fā)表于 01-29 17:18 ?11.4w次閱讀
    <b class='flag-5'>I2S</b>接口工作原理_<b class='flag-5'>I2S</b>接口介紹

    幾種常見的I2S數(shù)據(jù)格式

    I2S總線簡(jiǎn)單有效,可以有效提升輸出數(shù)據(jù)的質(zhì)量,在各種嵌入式音頻系統(tǒng)中有廣泛應(yīng)用。但是在嵌入式音頻系統(tǒng)設(shè)計(jì)中,并不是所有的MCU都支持
    發(fā)表于 01-29 19:18 ?1.3w次閱讀
    幾種常見的<b class='flag-5'>I2S</b><b class='flag-5'>數(shù)據(jù)</b>格式

    I2S音頻總線基本知識(shí)科普

    I2S(Inter—IC Sound)總線, 又稱集成電路內(nèi)置音頻總線,是飛利浦公司為數(shù)字音頻設(shè)備之間的
    的頭像 發(fā)表于 04-12 07:48 ?3.2w次閱讀
    <b class='flag-5'>I2S</b><b class='flag-5'>音頻</b><b class='flag-5'>總線</b>基本知識(shí)科普

    I2S、TDM、PCM音頻總線

    I2S包括兩個(gè)聲道(Left/Right)的數(shù)據(jù),在主設(shè)備發(fā)出聲道選擇/字選擇(WS)控制下進(jìn)行左右聲道數(shù)據(jù)切換。通過增加I2S接口的數(shù)目或其它I2
    的頭像 發(fā)表于 09-20 11:01 ?6892次閱讀

    基于MM32F5270的I2S音頻播放

    基于MM32F5270的I2S音頻播放
    的頭像 發(fā)表于 10-30 17:13 ?2398次閱讀
    基于MM32F5270的<b class='flag-5'>I2S</b><b class='flag-5'>音頻</b>播放

    基于I2S接口的Linux內(nèi)核音頻技術(shù)

    I2S是飛利浦定義的數(shù)字音頻傳輸標(biāo)準(zhǔn),用于數(shù)字音頻數(shù)據(jù)在系統(tǒng)內(nèi)部器件之間傳輸。
    發(fā)表于 02-27 14:00 ?5207次閱讀
    基于<b class='flag-5'>I2S</b>接口的Linux內(nèi)核<b class='flag-5'>音頻</b>技術(shù)

    I2S總線的定義和特點(diǎn)

    I2S(Inter-IC Sound)總線,又稱為集成電路內(nèi)置音頻總線,是飛利浦公司(現(xiàn)為恩智浦半導(dǎo)體)為了數(shù)字音頻設(shè)備之間的
    的頭像 發(fā)表于 09-03 14:08 ?4476次閱讀