IMX6ULL——音频驱动

news2024/9/24 7:24:25

WM8960简介

WM8960内部 ADC和 DAC都为24

I2S 总线接口

2S 总线用于主控制器和音频CODEC 芯片之间传输音频数据。
I2S 接口需要3 根信号线(如果需要实现收和发,那么就要4根信号线,收和发分别使用一根信号线):
SCK:串行时钟信号,也叫做位时钟(BCLK),音频数据的每一位数据都对应一个SCK,立体声都是双声道的,因此SCK=2×采样率×采样位数。比如采样率为44.1KHz、16 位的立体声音频,那么SCK=2×44100×16=1411200Hz=1.4112MHz。
WS:字段(声道)选择信号,也叫做LRCK,也叫做帧时钟,用于切换左右声道数据,WS 为“1”表示正在传输左声道的数据,WS 为“0”表示正在传输右声道的数据。WS 的频率等于采
样率,比如采样率为44.1KHz 的音频,WS=44.1KHz。
SD:串行数据信号,也就是我们实际的音频数据,如果要同时实现放音和录音,那么就需要2 根数据线,比如WM8960 的ADCDAT 和DACDAT,就是分别用于录音和放音。不管音频
数据是多少位的,数据的最高位都是最先传输的。数据的最高位总是出现在一帧开始后(LRCK变化)的第2 个SCK 脉冲处。

MCLK为了使音频CODEC 芯片与主控制器之间能够更好的同步,会引入另外一个叫做MCLK 的信号,也叫做主时钟或系统时钟,一般是采样率的256 倍或384 倍。
在这里插入图片描述

DATA 数据相对于LRCK 和SCLK 位置的不同,出现了Left Justified(左对齐)和Right Justified(右对齐)两种格式
在这里插入图片描述

WM8960驱动

1. 2.4版本I2C1设备接口

	 codec: wm8960@1a {
  		compatible = "wlf,wm8960";
   	reg = <0x1a>;
   	clocks = <&clks IMX6UL_CLK_SAI2>; //时钟源为SAI2
   	clock-names = "mclk";
   	wlf,shared-lrclk;
 	};

wlf,shared-lrclk 这是一个 bool类型的属性,如果添加了此属性, WM8960的 R24寄存器的 LRCM位 (bit2)就会置 1。当 LRCM为 1的时候只有当 ADC和 DAC全部关闭以后 ADCLRC和 DACLRC时钟才会关闭。
wlf,capless 这也是一个 bool类型的属性, 如果添加了此属性, OUT3引脚将会使能,并且为了响应耳机插入响应事件, HP_L和 HP_R这两个引脚都会关闭。

2. SAI音频接口设备树

NXP原厂编写

&sai2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sai2
		     &pinctrl_sai2_hp_det_b>;

	assigned-clocks = <&clks IMX6UL_CLK_SAI2_SEL>,
			  <&clks IMX6UL_CLK_SAI2>;
	assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
	assigned-clock-rates = <0>, <12288000>;

	status = "okay";
};

3. I.MX6ULL sound节点

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

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

相关文章

java之路 —— 带你了解安全框架Shiro

文章目录 前言一、组件二、主要开发步骤三、常用的API四、认证的流程 前言 在学习之前&#xff0c;让我们先了解一下什么是shiro。 Shiro&#xff08;Apache Shiro&#xff09;是一个Java安全框架&#xff0c;提供了身份认证、授权、加密和会话管理等功能。它的设计目标是简单…

VMware workstation 17 pro 安装 Windows 10 操作系统

① 访问官方网址下载 MediaCreationTool22H2.exe ② 下载 Windows 10 iso 镜像 ③

Android13 安装最新版 Frida

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰&#xff0c;更不会影响计算机信息系统的正常运行。不得将代码用于非法用途&#xff0c;如侵立删&#xff01; Android13 安装最新版 Frida 环境 win10Pixel4Android13Python3.9Frida1…

真箱独立版盲盒小程序定制开发

真箱独立版盲盒小程序定制开发需要以下步骤&#xff1a; 需求分析&#xff1a;确定客户具体的需求和功能要求&#xff0c;例如支持哪些盲盒商品种类、购物车、支付方式等。 用户界面设计&#xff1a;根据客户要求&#xff0c;设计合适的用户界面&#xff0c;包括首页、…

创建四大经济区shp矢量图

准备 1、具有省域划分的shp矢量图 2、Arcgis 一、创建新要素 右击目录-新建-要素文件 选择要素开始编辑 矩形框选需要的行政边界要素点—右击要素线复制—粘贴至新要素文件中 &#xff08;长按shift键&#xff0c;多点选择&#xff09; 结果图&#xff08;部分&#xff0…

chatgpt赋能python:Python计算结果:快速、高效的数据分析的秘密武器

Python计算结果&#xff1a;快速、高效的数据分析的秘密武器 Python是一个高级的、互动式的、以面向对象语言为基础的动态语言&#xff0c;广泛应用于各种领域的编程任务中&#xff0c;特别是在数据分析的领域中扮演着重要的角色。Python计算结果快速、高效、并且容易学习&…

LENOVO联想笔记本电脑ThinkBook 15 G5 ABP(21JF)原装Win11系统,原厂OEM预装系统镜像

lenovo联想笔记本电脑&#xff0c;ThinkBook 15 G5 ABP(21JF)原厂Windows11系统原装专用系统&#xff0c;恢复出厂状态一模一样 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&#xff1a;IS…

c语言通讯录——动态版本(带详细文字解释)

1.定义一个用于存储一个人的信息的结构体 typedef struct PeoInfo {char name[NAME_MAX];int age;char sex[SEX_MAX];char addr[ADDR_MAX];char tele[TELE_MAX]; }PeoInfo;定义了一个名为 “PeoInfo” 的结构体&#xff08;struct&#xff09;类型&#xff0c;用于存储有关一个…

软件测试实验室申请cnas需要做好哪些资源准备?

软件测试实验室在准备申请cnas资质前&#xff0c;除了建立完善的软件测试体系、科学的质量管理体系&#xff0c;还需要做好相关资源的准备。本文我们就一起来看一下&#xff0c;cnas官方文件中的资源要求部分&#xff0c;以及对于软件检测实验室&#xff0c;应该做好哪些准备才…

项目bug--汇集

1、 2、 原因&#xff1a;页面选择后 没有调init方法 刷新页面 解决&#xff1a;在保存方法最后 &#xff0c;加上init方法 3、 原因&#xff1a;select中 v-model绑定的id、select选项中 :value 绑定的id &#xff0c;和编辑时触发的方法里 的id 没有一致&#xff0c;可能的…

抖音账号矩阵系统源码开发怎么用

以下是一些关键的技术交付形式&#xff1a; 1. 形成完整的运营需求框架 在开展任何项目前&#xff0c;首先应建立一个完整的运营需求框架。这个框架要对于整个系统的功能、结构、性能、安全、稳定性等方面进行详细的需求分析。并且需要与各方沟通&#xff0c;形成清晰的需求文…

【高频电子线路课程设计】调幅发射机

目录 高频电子线路课程设计 摘要&#xff1a; 1绪论 1.1设计的作用和目的 2调幅发射机的主要性能指标 2.1调幅发射机的工作原理 3小功率调幅发射机的设计 3.1方案的选择 3.1.1简易调幅发射机的工作原理框图 3.1.2功率分配及电源电压确定 3.1.3各级晶体管的选择 3.2…

Golang每日一练(leetDay0109) 拼接最大数、区间和的个数

目录 321. 拼接最大数 Create Maximum Number &#x1f31f;&#x1f31f;&#x1f31f; 327. 区间和的个数 Count of Range Sum &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Pytho…

【Android】怎么把一个自定义Dialog弄成一个圆形的

需求 自定义一个Dialog&#xff0c;做成圆形 实现 实现步骤&#xff1a; 创建XML布局 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://s…

多元分类预测 | Matlab麻雀算法(SSA)优化极限学习机(ELM)的分类预测,多特征输入模型。SSA-ELM分类预测模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 麻雀算法(SSA)优化极限学习机(ELM)的分类预测,多特征输入模型。SSA-ELM分类预测模型 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程序可出分类效果图,迭代…

C#中如何调整easyui中控件方法$.messager.alert弹窗窗口和字体的大小

首先看下调整前的效果&#xff1a; 这是easyui 默认的一个效果&#xff0c;然后 我在网上搜调整大小&#xff0c;搜到的代码是这样的 $.messager.alert({title: 提示,msg: ,icon: warning,ok: 确定,style: {fontSize: 20px // 修改字体大小},fn: function(){$(.messager-windo…

Git 常用指令

查看修改的文件 将修改的文件添加到版本库 Git如何创建、切换、删除分支? 合并分支 新建分支 切换分支 合并分支&#xff0c;解决冲突 删除分支

如何校验 MySQLOracle 时间字段合规性?

作者&#xff1a;余振兴 爱可生 DBA 团队成员&#xff0c;热衷技术分享、编写技术文档。 本文来源&#xff1a;原创投稿 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。 背景信息 在数据迁移或者数据库低版本升级到高版本…

基于OneAPI工具分析包TensorFlow的聊天机器人设计分析和总结

文章目录 基础介绍&#xff1a;实现思路&#xff1a;详细介绍1. 聊天机器人发展历程&#xff1a;2. embedding_attention_seq2seq接口&#xff1a;3. 训练模型&#xff1a;4. Python编程实现完整的聊天机器人&#xff1a;补充内容&#xff1a; 环境搭建与关键技术环境搭建关键技…

【跟晓月学数据库】基于book库的mysql进阶实战

前言 上篇文章中&#xff0c;我们已经导入了book库&#xff0c;如果你还没有导入book库&#xff0c;参考&#xff1a;【跟晓月学数据库】使用MySQLdump 对数据导入导出 这篇文章&#xff0c;主要是基于book库的操作&#xff0c;希望对你有用。 &#x1f3e0;个人主页&#xf…