ESP32的I2S引脚及支持的音频标准使用说明

news2024/11/13 8:38:51

ESP32 I2S 接口

ESP32 有 2 个标准 I2S 接口。这 2 个接口可以以主机或从机模式,在全双工或半双工模式下工作,并且可被配置为 8/16/32/48/64-bit 的输入输出通道,支持频率从 10 kHz 到 40 MHz 的 BCK 时钟。当 1 个或 2 个 被配置为主机模式时,主机时钟可以输出到外部 DAC/CODEC。

2 个 I2S 接口都有专用的 DMA 控制器。支持 PDM 和 BT PCM 接口。
PDM可直接接入I2S,但只能接入I2S0。
用于串行立体声数据的输入输出,并行LCD 数据的输出,camera 并行数据的输入。

I2S第0通道接口

信号管脚
I2S0I_DATA_in0~15I2S除I2S_CLK,均支持映射(切换)到任意 GPIO 管脚
I2S0O_BCK_in
I2S0O_WS_in
I2S0I_BCK_in
I2S0I_WS_in
I2S0I_H_SYNC
I2S0I_V_SYNC
I2S0I_H_ENABLE
I2S0O_BCK_out
I2S0O_WS_out
I2S0I_BCK_out
I2S0I_WS_out
I2S0O_DATA_out0~23

I2S第1通道接口

信号管脚
I2S1I_DATA_in0~15I2S除I2S_CLK,均支持映射(切换)到任意 GPIO 管脚
I2S1O_BCK_in
I2S1O_WS_in
I2S1I_BCK_in
I2S1I_WS_in
I2S1I_H_SYNC
I2S1I_V_SYNC
I2S1I_H_ENABLE
I2S1O_BCK_out
I2S1O_WS_out
I2S1I_BCK_out
I2S1I_WS_out
I2S1O_DATA_out0~23
信号管脚
I2S0_CLK仅可通过GPIO0、U0RXD、或 U0TXD
I2S1_CLK仅可通过GPIO0、U0RXD、或 U0TXD

注:I2S0_CLK 和 I2S1_CLK 仅可通过 IOMUX 映射至 GPIO0、U0RXD (GPIO3) 或U0TXD (GPIO1),选择 GPIO 功能CLK_OUT1、CLK_OUT2 或 CLK_OUT3。这个CLK是高速CLK,主要是用于RGB接口的LCD液晶显示屏。每组I2S的DATA有0-23个信号,用于RGB接口液晶显示屏时,可连接18位或24位的LCD液晶显示屏。

12.4 I2S 模式

ESP32 I2S 模块内置数据 A 律压缩/解压缩模块,用于对接收到的音频数据进行 A 律缩/解压缩操作。如果要使用 A 律缩/解压缩模块,需要将 I2S_CONF1_REG 寄存器的 RX_PCM_BYPASS 比特和 TX_PCM_BYPASS 比特清零。

12.4.1 支持的音频标准

I2S 模式下,BCK 为串行时钟;WS 为通道选择信号,用于表示左右声道的切换;SD 为串行数据信号,传输音频数据。WS 信号和 SD 信号在 BCK 的下降沿发生变化,并在 BCK 的上升沿采样 SD 信号。如果将寄存器I2S_CONF_REG 的 I2S_RX_RIGHT_FIRST 比特和 I2S_TX_RIGHT_FIRST 比特都置 1,表示 I2S 模块首先接收和发送的是右声道数据,否则为首先接收和发送的是左声道数据。

12.4.1.1 Philips 标准

在这里插入图片描述

图 12­3. Philips 标准

如图 12-3 所示,在 Philips 标准下,在 BCK 的下降沿,WS 信号先于 SD 信号一个 BCK 时钟周期开始变化,即WS 信号从当前通道数据的第一个位之前的一个时钟开始有效,并在当前通道数据发送结束前一个 BCK 时钟周期变化。SD 信号线首先传输音频数据的最高有效位。如果分别将寄存器 I2S_CONF_REG 的I2S_RX_MSB_SHIFT 比特和 I2S_TX_MSB_SHIFT 比特置 1,I2S 模块接收数据和发送数据将使用 Philips 标准。

12.4.1.2 MSB 对齐标准

在这里插入图片描述

图 12­4. MSB 对齐标准

如图 12-4 所示,MSB 对齐标准下,在 BCK 下降沿,WS 信号和 SD 信号同时变化。WS 持续到当前通道数据发送结束,SD 信号线上首先传输音频数据的最高位。如果寄存器 I2S_CONF_REG 的 I2S_RX_MSB_SHIFT 比特和 I2S_TX_MSB_SHIFT 比特清零,则 I2S 模块接收数据和发送数据将使用 MSB 对齐标准。

12.4.1.3 PCM 标准

在这里插入图片描述

图 12­5. PCM 标准

如图 12-5 所示,在 PCM 标准的短帧同步模式下,在 BCK 的下降沿,WS 信号先于 SD 信号一个 BCK 时钟周期开始变化,即 WS 信号从当前通道数据的第一个位之前的一个时钟开始有效,并持续 1 个 BCK 时钟周期。
SD 信号线上首先传输音频数据的最高位。如果将寄存器 I2S_CONF_REG 的 I2S_RX_SHORT_SYNC 比特和I2S_TX_SHORT_SYNC 比特置 1,那么 I2S 模块接收数据和发送数据将使用短帧同步模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1911866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IEC62056标准体系简介-2.IEC62056标准体系及对象标识系统(OBIS)

1. IEC 62056标准体系 IEC 62056标准体系目前共包括六部分,见图1: 第61部分:对象标识系统第62部分:接口类第53部分:COSEM应用层第46部分:使用HDLC(High Level Data Link Control)协…

24吉林事业单位报名照上传通过别忘了这一步

24吉林事业单位报名照上传通过别忘了这一步 #吉林事业单位 #吉林三支一扶 #吉林事业编 #事业单位报名照片 #吉林事业单位考试 #吉林市事业单位

ChatGPT-4o大语言模型优化、本地私有化部署、从0-1搭建、智能体构建技术

在过去几年中,人工智能领域的发展迅猛,尤其是大语言模型的应用,为各行各业带来了前所未有的创新与突破。从ChatGPT-3.5的推出到GPT Store的上线,再到最新的多模态交互ChatGPT-4o,OpenAI不断引领科技潮流,推…

vite+vue3整合less教程

1、安装依赖 pnpm install -D less less-loader2、定义全局css变量文件 src/assets/css/global.less :root {--public_background_font_Color: red;--publicHouver_background_Color: #fff;--header_background_Color: #fff;--menu_background: #fff; }3、引入less src/main.…

从数据仓库到数据湖(上):数据湖导论

文章目录 一、什么是数据湖?起源数据湖的特征 二、为什么要用数据湖?三、数据湖与数据仓库的区别数据仓库和数据湖的对比 四、数据湖本质数据存储架构数据处理工具:三类第一类工具第二类工具第三类工具 小结 五、总结六、参考资料 一、什么是…

x86芯片定制,Ethercat芯片定制,IP服务,适用于运动控制,工业总线等软硬一体机

x86芯片定制,Ethercat芯片定制 X86平台 我们的研发工程师已经积累了非常丰富的主板、整机设计经验,对接您的产品规格场景需求,快速交付样机,包含主板、BOX整机、平板电脑、CPCI等形态产品。降本、长生命周期、快速交付、及时响应…

01 | 基础架构:一条SQL查询语句是如何执行的?

此系列文章为极客时间课程《MySQL 实战 45 讲》的学习笔记! 引言 在了解 SQL 查询语句如何执行之前,先了解下MySQL 的基本架构示意图。 MySQL 分为 Server 层和引擎层。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 M…

华为机试HJ108求最小公倍数

华为机试HJ108求最小公倍数 题目: 想法: 要找到输入的两个数的最小公倍数,这个最小公倍数要大于等于其中最大的那个数值,遍历最大的那个数值的倍数,最大的最小公倍数就是输入的两个数值的乘积 input_number_list i…

PTA - sdut-使用函数求a+aa+aaa++⋯+aa.....aaa(n个a)之和

题目描述: 给定两个均不超过9的正整数a和n,要求:编写函数fn(a,n), 求aaaaaa⋯aa⋯aa(n个a)之和,fn须返回的是数列之和。 函数接口定义: def fn(a,n):其中, a 和 n 都是传入的参数…

1.Frida框架-Frida环境搭建

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:微尘网校 前置条件:需要科学上网 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F…

7.9总结

容易推出当移动i与j时等价于j-i-1个左右交换,且每次交换逆序数的奇偶改变(无相同元素),假设有一个状态c,且a与b必须以等量的左右交换转移为c,则必须数量相同,元素相同(使用异或解决&…

vue学习day04-计算属性、computed计算属性与methods方法、计算属性完整写法

10、计算属性 (1)概念: 基于现有的数据,计算出来的新属性。依赖于数据变化,自动重新计算。 (计算属性->可以将一段求值的代码进行封装) (2)语法: 1&a…

Spring源码二十:Bean实例化流程三

上一篇Spring源码十九:Bean实例化流程二中,我们主要讨论了单例Bean创建对象的主要方法getSingleton了解到了他的核心流程无非是:通过一个简单工厂的getObject方法来实例化bean,当然spring在实例化前后提供了扩展如:bef…

【堆 (优先队列) 扫描线】218. 天际线问题

本文涉及知识点 堆 (优先队列) 扫描线 LeetCode218. 天际线问题 城市的 天际线 是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回 由这些建筑物形成的 天际线 。 每个建筑物的几何信息由数组 buildings 表示&…

来一场栈的大模拟(主要是单调栈)

一.栈模拟 二.单调栈求最大矩形面积 通常,直方图用于表示离散分布,例如,文本中字符的频率。 现在,请你计算在公共基线处对齐的直方图中最大矩形的面积。 图例右图显示了所描绘直方图的最大对齐矩形。 输入格式 输入包含几个测…

新火种AI|OpenAI的CEO又有新动作?这次他成立了AI健康公司

作者:一号 编辑:美美 AI技术即将改变医疗健康市场。 就在前两天,人工智能和医疗健康领域迎来了一个重要时刻。OpenAI的CEO萨姆阿尔特曼(Sam Altman)与Thrive Global的CEO阿里安娜赫芬顿(Arianna Huffing…

oracle(表空间分类、表空间操作、默认表空间)

文章目录 oracle数据库默认表空间列表表空间是什么?表空间的分类1.永久性表空间:2.临时性表空间:3.撤销表空间: 表空间的作用Oracle 系统自动建立的表空间默认表空间1.SYSTEM 表空间2.SYSAUX表空间3&#x…

【STM32/HAL】嵌入式课程设计:简单的温室环境监测系统|DS18B20 、DHT11

前言 板子上的外设有限,加上想法也很局限,就用几个传感器实现了非常简单的监测,显示和效应也没用太复杂的效果。虽说很简单,但传感器驱动还是琢磨了不久,加上串口线坏了,调试了半天才发现不是代码错了而是…

Python大数据分析——决策树和随机森林

Python大数据分析——决策树和随机森林 决策树决策树节点字段的选择信息熵条件熵信息增益信息增益率 基尼指数条件基尼指数基尼指数增益 决策树函数 随机森林函数 决策树 图中的决策树呈现自顶向下的生长过程,深色的椭圆表示树的根节点;浅色的椭圆表示树…