当前位置:   article > 正文

ADAU1701(含A2B)的开发详解二:第一个例程(从0开始)_stm32f103驱动adau1701

stm32f103驱动adau1701

作者的话

ADAU1701是OP认为最具性价比的一颗ADI的音频DSP,价格、性能的匹配度极佳,且通用性强,基本上学会了这颗DSP,后面所有的ADAU系列DSP都可以直接搞。

我希望通过这篇文章,配合开发板和 USBi 仿真器,10分钟让你写出第一个SigmaDSP的程序来!

开发板和仿真器哪里找

某宝搜店铺 “ADI之家”

视频讲解

ADAU1701做第一个DSP程序的讲解

SigmaDSP调音的最基本原理

科普性,非专业,新手玩家可以简单看看。

我们说世间万物皆模拟,在我们电子工程师眼里,一切可视,可见,可闻,都可以统称为模拟,声音也是如此。

SigmaDSP 作为一个数字音频 DSP,是怎么来处理模拟的声音,调整他,改变他,实现我想要的音色?首先需要把模拟的声音,音乐,语音变成数字的 010101,这个过程叫模数转换,又称之为 ADC,经过转换后的 010101 的数字组合,进入到我们的 SigmaDSP 数字音频DSP 中,DSP 就可以对这些 010101 的数字组合进行处理了,再说的通俗彻底一点,就是重新排列组合,拆,拼,凑,这个过程就叫做调音。010101 经过分频、EQ,增益,延迟、反馈、混音、混响等算法调整好了,拼拼凑凑重新组合成了新的 010101。但是我们人耳是听不到 010101 的数字信号的,怎么办?于是又有了数模转换,称之为 DAC,把这些新组合而成的 010101 还原成模拟的声音,再传到我们耳朵里。整个的过程就是如此。

所以你看,具体到 SigmaDSP中的具体型号,ADAU1701 是怎么实现的呢?模拟音源通过 ADAU1701 芯片内部自带的 2 进 4 出 AD/DA 功能的 Codec 功能模块,进行 ADC 转换,变成 010101 的数字送入其 DSP 功能模块中,DSP 获取了 010101 的数字,通过自带的分频、EQ等算法模块进行重新排列组合,形成了含有我们想要的音色的数字音频信号,再通过 1701片内高性能的 DAC 功能转换成模拟音源,输出到功放、耳机等设备上,让我们听到增加了音效的声音,整个过程就是这样。

并不是从专业角度的一段讲解,只希望 0 基础选手对此有个感性的认识,再进入我们理性的专业调音开发中来吧。

ADAU1701-A2B板的简介

在这里插入图片描述

看图说话吧:(看板子上的丝印也能看出来)

  1. 5V2A/1A的电源接口,负责给开发板供电;

在这里插入图片描述

  1. 模拟的2进4出,绿色的接口是模拟输入,黑色的两个接口是模拟输出;

在这里插入图片描述

有同学可能就有疑问了,这明明是1进2出呀,1个输入接口,2个输出接口。这个想法是错的,因为我们在音频这个领域里,讲到的通道数都是指的单通道,这里的绿色输入接口,是立体声输入,也就是左右两个单通道,所以是2进,2个黑色的输出接口同样做的是立体声输出,也就是左右两声道在一个接口输出,所以是4出(这个在后面的程序配置中会有更好的体现)。

  1. 一个电位器

在这里插入图片描述

  1. USBi JTAG接口

在这里插入图片描述
5. 一个用IO设计的按键

在这里插入图片描述

  1. 复位按键

在这里插入图片描述

  1. IIS扩展插针

在这里插入图片描述

  1. STM32的烧写接口(接STLINK)

在这里插入图片描述

  1. STM32的串口

在这里插入图片描述

  1. A2B接口(汽车音频总线接口)

在这里插入图片描述

  1. ADAU1701芯片

在这里插入图片描述

  1. STM32F103芯片

在这里插入图片描述

开发前的准备工作

硬件准备

一台64位的PC,一块ADAU1701开发板,一个USBi仿真器,一个单片机烧写器(STLINK),两根音频线,一个5V2A/1A的电源,一个输入音源,可以是 PC 或者手机或者其他模拟音频输入设备,一个或两个输出音源设备,可以是耳机音箱等。(为啥要64位的PC呢,是因为ADI现在提供的新版本SigmaStudio 软件只支持64位的OS了)。

输入和输出音源这个我也要简单说一下,因为我们这个是开发板,目的是为了迅速的教会大家使用 ADAU1701,所以就用最简单的外设,文档中我使用了手机作为输入音源,一个小音箱和一个普通的3.5耳机作为输出设备。

软件准备

(单片机软件、烧写软件及单片机操作说明有专门的文档,此处不再赘述)

首选需要安装SigmaStudio软件,这个软件是开发ADAU1701的唯一工具,你的所有功能都依赖这个软件来实现,所以请随时关注 ADI 官网上的软件更新情况,确保自己安装的是最新的 SigmaStudio 软件,已获得更多更稳定的功能。

SigmaStudio 软件官网下载链接:
http://www.analog.com/cn/design-center/processors-and-dsp/evaluation-and-development-software/ss_sigst_02.html

这个软件是完全免费的,直接下载安装即可,目前就直接下4.7。

在这里插入图片描述

特别注意,安装 SigmaStudio 时,有可能需要你安装 Microsoft.NET Framework Ver4.0,如果你的机器之前没有安装过此类软件包。

最新版本的.net Framework 可到以下网站下载:
http://www.microsoft.com/zh-cn/download/details.aspx?id=17718

操作系统特别注意,若是WIN7或以上PC系统,请确保“我的文档”在C盘目录中,否则在安装过程中有可能会提示出错。 有兄弟问能不能用WIN10和WIN11,WIN11我还真是不清楚,但WIN10肯定可以,因为我自己用的就是WIN10。

软件都装好了,就可以正式开启我们的 ADAU1701 的开发之旅了!

开发平台搭建示意图

在这里插入图片描述

  1. 开发板上的跳线不动;

  2. 开发板上SW2(1701BOOT)开关拨到OFF;(注意,我们在做调试的时候,一律让DSP不启动)

  3. 开发板上的SW1(IIC & MCU)开关拨到IIC(就表示我需要用到DSP的IIC模式来做调试)

  4. USBi插到开发板的USBi JTAG接口(开发板和仿真器均有温馨防反插设计,不用担心插反了,这个时候仿真器和开发板均没有通电);

  5. 5V2A电源接入,USBi接PC的USB口(如果是台式机,不要前置USB口,要接到后置的);(供电正常时,Power D3红色会被点亮,LED1绿色被点亮,MCUBOOT黄灯闪烁。否则说明供电有问题,请检查电源) ;

  6. 模拟音源从绿色的接口输入(接的是PC声卡的音源输入);

  7. 模拟音源从黑色的接口输出,我接的是一个小音箱输出,注意该模拟输出口对应的音频通道编号, 这个我在后面的章节会详细讲解;

  8. 特别注意,输入输出的线缆用力怼到底,插到最里头。

USBi 通过 USB 线插入 PC 后,如果弹出找到新硬件并要求安装设备驱动,请选择自动安装。如自动安装失败,可手动定位到 USBi 的驱动安装目录:

在这里插入图片描述

安装完毕后,可在设备管理器里检查是否有 Analog Devices USBi 设备,如下图所示,则表示安装成功,否则须重试。

在这里插入图片描述

ADAU1701的第一个程序开发:直通

软件也装好了,硬件也接好了,下面就跟着OP老师的节奏,正式开搞,会很有趣,只需要点点鼠标,就能搞定,这也是我为什么会说,10分钟就让你写出第一个DSP程序来。

我们从最简单的开始,先做一个直通的例程。先把这个板子弄出声来。

下面要做的事很简单,一路PC声卡模拟音源输入音源(也可以用手机,播放器等模拟音源),通过ADAU1701的内部codec 进行AD,并不经过任何的数字音效处理,在DSP里走直通,然后通过内部codec进行DA,再推到音箱。让PC声卡输入音源播放音乐,看看音箱能否正常的发声。

  1. 打开SigmaStudio软件。我安装的是 4.7 版本,当下最新的。选择 File> New Project,新建一个工程。

在这里插入图片描述

  1. 首先设计 Hardware,把 ADAU1701,USBi 和 EEPROM 鼠标选中,拖到 Hardware 里来,然后按照下面的图示进行链接(这是所有 SigmaDSP 设计的第一步)

在这里插入图片描述

注意!请不要随便改变 USBi 单元显示的 SPI 或 I2C 地址,否则会导致通信错误,从而不 能正常联接调试,你的硬件是怎么设计的,你就选择怎样的链接。我的开发板设计的是 IIC 的 EEPROM,就是上图这么连。这个地址在ADAU1701 的数据手册里也能够体现。

再注意!这个界面下,你会发现你的这个USB是绿色的,就证明你的USBi调试器正常接入了,你拔掉USBi调试器就会变红,就表示仿真器不可用。

在这里插入图片描述

  1. 硬件链接设计好了,接下来的音频设计步骤,需要转换到原理图设计页面(Schematic), 选中 Schematic。

在这里插入图片描述

  1. 首先设计 Input,同样是将左边的 input 拖到右边。Tree Toolbox, 点开 IO 模块组, 然后选择 Input 模块中的 Input1(因为我们要用到开发板上的 IN0-1),并将其拖到右边的空白工作区;

在这里插入图片描述

这里为什么选择的是 0 和 1 打勾呢,因为我们开发板上设计的就是 0/1 接口输入音源。请看下图的丝印:

在这里插入图片描述

  1. 设计输出接口,点开 IO 的 output,如下图拖出来 2 个。(为什么这里要拖出来 2 个呢?因为是左右声道呀)

在这里插入图片描述

一个输出选择 DAC0,一个输出选择 DAC1,同样也是对应的板子上的输出接口的,看下图。

在这里插入图片描述

OUTPUT0/1 接的是音箱,所以一会出声的就是音箱了。

  1. 将这几个模块连线,就完成了一个最简单的直通程序了。

在这里插入图片描述

  1. 将做好的例程下载到板子上。可按 F7 或快捷按钮,或通过主菜单 Link Compile Download 来把你的设计下载到开发板的 ADAU1701 中,实现 1701 的音频直通功能。

在这里插入图片描述

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

在这里插入图片描述

  1. 将输入音源设备播放音源,输出音源开始正常播放。

注意:USBi 将例程 down 到了板子上 ADAU1701 的 SRAM 上,板子断电就没有了。USBi 的 这种调试是为了快速验证功能,最终需要把这个例程的代码烧写到 ADAU1701 的外部
EEPROM 来实现自启动,从而实现脱机运行。

技术支持这一块,咱们把话术约定一下,同学们说USBi下载程序到DSP的SRAM中,实现实时的调试,我们都叫“在线下载调试”,而烧写到EEPROM实现自启动,脱机运行,我们都叫“烧写”,这样后面大家有问题问我的时候,就不会产生理解上的偏差。

下一篇预告

软件装好,硬件连好,新建工程,鼠标点几下,把输出输出框架结构连好,点击下载,直通功能达成。

怎么样,是不是不要 10 分钟,就能自己开发出第一个 SigmaStudio 例程啦!下一章会讲一下EEPROM的烧写和脱机运行。

OP老师在ADAU1701的这个开发板上写了超过100个例程,跟紧OP老师的节奏,后面的开发更简单,也更有趣!

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号