我用ADAU1467加5个ADAU1772,做20进10出的音频处理板(七):音量调节的更多例程

作者的话

ADAU1467是现阶段ADI支持最多通道的ADAU音频DSP,他配合外部的AD/DA,可以实现最多32路音频通道,接了一个小项目,我拿它做了一块20进10出的板,10个MIC/LINE输入,10个LINE IN输入,10个HPOUT,算是把他的接口几乎都用全,芯片性能开发到了极致。(其实可以做20个MIC IN,但是因为客户的具体需求是10个LINE IN,10个MIC IN)

芯片选型

项目背景的话,做这块板的目的是给ADAU1467搞功能验证,还有极限性能评估,所以并没有考虑更细节的芯片成本,怎么方便怎么来。

主芯片当然就是ADAU1467了,CODEC考虑到要LINE IN的同时能够模拟MIC IN,这就要求Codec的AD需要具备前置放大,需要有偏置电压,我选了ADAU1772做Codec,这其实也是一颗DSP,但他片内有一个adda,能做到4进2出,而且4进全部可以支持MIC IN,搞起来非常方便快捷,于是我就直接用它了。这颗codec也因为有自带的运放,我在模拟输出的设计时就不需要额外加运放了。

4进2出去配ADAU1467显然是不够的,那我就拼5个,就有20进10出了,这是我的选型思路。

这个系列文章将对这个电路板的软硬件开发设计做详细讲解,上一章我们讲了硬件设计,这一章我们开始讲软件开发。

硬件准备

开发板的产品链接:https://item.taobao.com/item.htm?id=625095214294&spm=a1z10.5-c.w4002-5192690539.15.713a1c74E0XfRv

在这里插入图片描述

调试器的产品链接:https://item.taobao.com/item.htm?id=38242936768&spm=a1z10.5-c.w4002-5192690539.11.663b2dbdDNXVZF

ADAU1467 的开发 8:双通道音量调音

SigmaStudio 里的算法模块,很多都是可以添加输入输出的,比如这个音量调节模块就可以,我们来看一下如何用一个音量调节模块,来控制 2 路输出(立体声)。

1)通过原理图设计,达到下面的效果

在这里插入图片描述

2)选中并鼠标右键点击刚加入的 Single 1 模块, 选择弹出菜单里的 Grow Algorithm>1. Gain (HW slew) >1, 使其支持双声道处理。并将 input 与其链接。

在这里插入图片描述

3)将 Input 模块和音量调节模块进行连接。

在这里插入图片描述

4)设置输出:点开 IO 的 output,如下图拖出来 2 个。

在这里插入图片描述

这两个就是你要输出的 HP-OUT。

5)选择 HP-OUT 的接口:我们板子上有 10 个 HP-OUT,也就是说有 10 路输出,应该如何让软件设置与板子的硬件接口对应呢?其实很简单,我们选择一下就好了。这里我就默认的4/5。

6)将调音量的模块与音频输出链接,完成该例程的设计。

在这里插入图片描述

7)小技巧:如果有用户找不到调音的模块,没有关系,可以复制我工程中的模块,SigmaStudio支持这个功能。(SigmaStudio 里的功能模块非常多,很多时候我也不记得哪个模块具体在哪里,要么就直接复制以前的工程,要么就通过软件的 Help 搜关键字,然后看能不能找到路径)

8)将做好的例程下载到板子上。可按下图所示,来把你的设计下载到开发板的 ADAU1467的 SRAM 中,实现 1467 的音频功能。

在这里插入图片描述

如 USBi 与开发板通信正常, SS 右下角的状态栏会显示 100%, Active: Downloaded。

在这里插入图片描述

9)将输入音源设备播放音源,输出音源开始正常播放,这个时候只需要在 SigmaStudio 软件中,你的工程里调节调音模块,就可以控制音量大小了。

在这里插入图片描述

注意:编译完毕后,SS 会在右边的 output 窗体里显示编译结果,如有错误会提示错误信息,用户可据此信息去修改设计;如成功则会显示资源占用信息,用户可根据百分比来增减模块,如图:

在这里插入图片描述

这个例程把下载再写一遍,加深印象,相信 ADAU1467 的最基础开发流程用户已经能熟练掌握了。

ADAU1467 的开发 9:多通道音量调音

做一个复杂一点的程序,2 进 8 出,8 通道音量全部控制。

在这里插入图片描述

这个程序里,一个总音量调节之后,分出 8 通道,每 2 个通道(1 组立体声)分别由一个调音量模块来控制音量。同学们自己分别调一下音量,感受一下这个逻辑电路的含义。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GRPC学习笔记

GRPC学习笔记 1 GRPC简介 1.1 定义 gRPC(Google Remote Procedure Call,Google远程过程调用)协议是谷歌发布的基于HTTP2协议承载的高性能、通用的RPC开源软件框架,提供了支持多种编程语言的、对网络设备进行配置和管理的方法。…

跨部门协作中的沟通困境与平台建设策略——以软硬件研发为例

一、背景 在科技行业,跨部门合作的重要性不言而喻,然而实际工作中,经常会遭遇沟通不畅的现象。以软件与硬件研发部门为例,两者在产品研发过程中经常需要紧密协作,但却时常出现信息传递障碍。当你试图阐述观点时&#…

分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测

分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测 目录 分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.RIME-BP霜冰优化BP神经网络多特征分类预测(Matlab实现完整源码和数据&a…

【深度学习】YOLOv5,烟雾和火焰,目标检测,防火检测,森林火焰检测

文章目录 数据收集和数据标注查看标注好的数据的脚本下载yolov5创建 dataset.yaml训练参数开始训练yolov5n训练训练后的权重下载gradio部署 数据收集和数据标注 搜集数据集2w张。 pip install labelme labelme 然后标注矩形框和类别。 下载数据请看这里: https:…

数据结构(C):时间复杂度和空间复杂度

目录 🚀 0.前言 🚀 1.为何会有时间复杂度和空间复杂度的概念 🚀 2.时间复杂度 2.1初步时间复杂度 2.2大O表示法 2.2.1.O(N*N) 2.2.2.O(N) 2.2.3.O(1) 2.3最坏情况…

nginx配置挂载html

目标 很多软件的官方文档,在国内打开很慢,每次都得等很久,看到官方同时提供了html的包,所以想着挂载到本地nginx下,查看会方便很多。 下载官方html文档包,解压到documentation_htmls下 想添加新的文档也是…

springboot停机关闭前保证处理完请求

application.yml配置 server:shutdown: graceful // 处理完请求在关闭服务server:shutdown: immediate // 立刻关闭,默认 jvm关闭自带的回调

在vscode上面进行分支merge的记录

前言:在我们的项目中,有两个分支:master和liutielong。现在要将liutielong分支的改动merge到master分支中。 如果master分支已经更改了,所以要先pull(这是在git bash里面的命令)。 git pull origin master…

jvm(JVM快速入门、stack栈、堆、GC垃圾回收、Arthas)

文章目录 1. JVM快速入门1.1. 结构图1.2. 类加载器ClassLoader1.3. 执行引擎Execution Engine1.4. 本地接口Native Interface1.5. Native Method Stack1.6. PC寄存器(程序计数器)1.7. Method Area方法区 2. stack栈3. 堆3.1. 堆体系概述3.1.1. 新生区3.1.2. 老年代3.1.3. 永久代…

【JAVA】UDP与TCP套接字编程

目录 一、UDP数据报套接字编程 1、DatagramSocket API 2、DatagramPacket API 3、InetSocketAddress API 4、示例一 5、示例二 二、TCP流套接字编程 1、ServerSocket API 2、Socket API 3、TCP中的长短连接 4、示例一 5、示例二 一、UDP数据报套接字编程 1、Datag…

SpanBert学习

SpanBERT: Improving Pre-training by Representing and Predicting Spans 核心点 提出了更好的 Span Mask 方案,也再次展示了随机遮盖连续一段字要比随机遮盖掉分散字好;通过加入 Span Boundary Objective (SBO) 训练目标,增强了 BERT 的性…

虚假新闻检测——Adapting Fake News Detection to the Era of Large Language Models

论文地址:https://arxiv.org/abs/2311.04917 1.概论 尽管大量的研究致力于虚假新闻检测,这些研究普遍存在两大局限性:其一,它们往往默认所有新闻文本均出自人类之手,忽略了机器深度改写乃至生成的真实新闻日益增长的现…