ADAU1452和ADAU1466应该怎么做SPDIF输入和输出?(含图文+例程详解)
作者的话
ADAU1452和ADAU1466,作为ADI SigmaDSP里的经典款,支持SPDIF的输入和输出,但是很多兄弟并不知道应该如何配置,来实现这个功能,下面我就用硬件板+软件程序配置来详细的说一说吧。
我在这里做三个例程,SPDIF IN-DAC OUT,SPDIF IN-SPDIF OUT,以及 ADC IN-SPDIF OUT,每一个例程都可以实际操作并得到结果。
硬件准备
我用ADAU1452来讲,ADAU1466因为和1452是P2P兼容的,所以操作是完全一样的,可以直接参考。
ADAU1452EVB:ADAU1452的开发板两块,上面做了SPDIF IN和SPDIF OUT;
ADSP-AUDIO OUT:带SPDIF OUT的声卡
USBi仿真器:ADAU系列DSP的专用仿真器
软件准备
依然是SigmaStdio,这个没啥好说的,但凡是ADAU系列DSP,都是用这个软件,也没有别的软件可以选。
SPDIF设计的硬件原理图
硬件设计真的是平平无奇,因为ADAU1452有专门的SPDIF IN和OUT的管脚,完全独立不复用,直接引线出来到接口就完了,没什么可说的。
SPDIF输入,DAC输出详解
我准备好了手机,PC 电脑,两块 ADAU1452 开发板,一个带 SPDIF IN 接口的 USB 声卡,一个音箱,音频线若干,SPDIF 线若干。
这个例程,我们要用 USB 声卡,把电脑里的音乐,通过 USB 声卡的 SPDIF OUT 接口输出到一块 ADAU1452 开发板中,实现 SPDIF IN,这个时候电脑上的酷我音乐+USB 声卡输出,成为SPDIF IN 的音源。
ADAU1452 开发板接受到了 SDPIF IN 的音源之后,直通到 DAC 模拟接口 16/17 输出,实现整个功能,SPDIF IN 输入,模拟 16/17 输出。
这个例程中,我们要用到一个 ADAU1452 板,一个 USB 声卡,一个音箱,USBi 调试器等,如下图进行硬件链接。
- USB 声卡的设置:
USB 声卡我们先要让他顺利的输出 SPDIF,首先用 USB 线把声卡和 PC 链接起来,PC 插入后
自动识别成下图的设备:
因为我的电脑上本身有声卡,所以我需要让这个 USB 声卡成为我的默认声卡输出。怎么做见下图:
这样就设置好啦,PC 里播放的音乐,就通过这个 USB 声卡的 SPDIF 口输出。
- SigmaStudio 软件里的工程
这里面我就直接讲程序了,详细看过前面文档的用户已经能够很熟练的进行 HARDWARE 设置,以及操作了
1)如图所示的程序,SPDIF IN 就是这个 ASRC Input,过一个音量调节模块,再输出到 16/17。
2)配置下 DSP 内部的寄存器, 切换到 Hardware Configurations 页 面中的 Routing Matrix 一页,在此我们需要把 SPDIF0 的输入接到 ASRC 模块中的 ch0-1 并设置 ASRC 的输出频率参考值。
如果上图看不清,可以直接看我的例程里头的配置。
3) 切换到 Hardware Configurations 页面中的 SPDIF_RX 一页, 如图所示设置 SPDIF 输入端的恢复机制。
4)如要用到 SPDIF 输出, 需要在 SPDIF_TX 页面打开 SPDIF 的发送开关。我们后面要用到SPDIF OUT,所以就都打开吧。
5)我们就完成了一个简单的从 ADAU1452 的 SPDIF 口输入数字音频, 然后从其 I2S 接口输出并经过 DAC 模拟输出的工程。下载程序后,PC 打开某一个音乐软件,播放音乐。ADAU1452板上的小音箱就开始直通播放啦。
SPDIF输入,SPDIF输出
实现的功能说明
SPDIF 的输入输出如何验证,这里就需要 2 块 ADAU1452 开发板了。我们通过USB声卡作为音源,给第一块ADAU1452开发板输入SPDIF IN,并通过板子上的SPDIF OUT 输出,实现直通。
那么这个输出的 SPDIF OUT 怎么验证是否正确呢,我们把他输出到第二块 ADAU1452 板的 IN那里,作为第二块 ADAU1452 板的 SPDIF IN 音源,由第二块板的模拟接口 16/17 输出出去。
如果 USB 声卡播放音乐,第二块板的模拟接口音箱能正常播放,不就能验证了么,下面就是这么做的。
1)硬件准备和链接(第一阶段)
SigmaStudio 软件里的工程(第一阶段)
先做第一块板的 SPDIF IN 和 OUT 程序。
寄存器里的配置我再这里就不重复了。SPDIF IN,经过一个音量调节模块,SPDIF OUT。
下载程序,这个是没有现象的,因为输出 SPDIF OUT 啥都没接。然后我们把这个程序烧写到EEPROM 进行固化脱机。(固化脱机我也不重复了,前面的文档都有讲)
固化后,让第一块板的自启动开关打到 ON,让他自启动,这样这个板子就脱机运行 SPDIF IN
和 SPDIF OUT 了。
2)硬件准备和链接(第二阶段)
SigmaStudio 软件里的工程(第二阶段)
第一块板上电脱机,实现了 SPDIF IN 到 SPDIF OUT 的直通功能,但是我们需要在第二块板上验证他,所以让第一块板的 SPDIF OUT 接到第二块板的 IN,作为第二块板的音源。
然后调试第二块 1452 板,做 SPDIF IN 到 DAC,就可以啦。
这个程序第一个例程里已经详细说了,这里就不重复了。
这个时候,第一块板上电自启动,第二块板下载程序。PC 通过 USB 声卡输出的 SPDIF,接到第一块 1452 中做 SPDIF IN-OUT,再输出到第二块板,做 SPDIF IN-DAC,音箱正常播放,实现功能,是不是很简单!我的宗旨,能动鼠标,绝不多敲一个代码。
ADC输入,SPDIF输出
实现的功能说明
上面两个例程都是 SPDIF IN,能不能模拟音源输入,SPDIF OUT 呢?必然可以,SigmaDSP 就
是这么方便,我们来实现它,手机作为模拟音源,直接接到第一块 ADAU1452 开发板的 0/1输入接口中,再 SPDIF OUT。
怎么去验证这个 SPDIF OUT 正确输出呢,一样我们接第二块ADAU1452 板的 SPDIF IN 接口,把第一块 1452 板作为第二块 1452 板的 SPDIF 音源,然后 DAC送到音箱听直通效果,就可以验证啦。
1)硬件准备和链接(第一阶段)
这个阶段,我们只需要对第一块 ADAU1452 板进行编程就行了,所以就是正常的 USBi 调试板子的链接。
SigmaStudio 软件里的工程(第一阶段)
寄存器得配置我就不多说了,跟第一个例程一样。模拟 0/1 输入,SPDIF OUT 输出。
然后下载程序,注意一定要下载程序,再烧写到板子的 EEPROM 里实现脱机。让这个板子脱机完成模拟输入,SPDIF OUT 输出的功能。
2)硬件准备和链接(第二阶段)
手机输入音源,在第一块板的 0/1 输入,SPDIF OUT 输出,给到第二块板的 SPDIF IN,做 DAC输出到音箱。
SigmaStudio 软件里的工程(第二阶段)
第一块板上电脱机,实现了模拟到 SPDIF OUT 的直通功能,但是我们需要在第二块板上验证他,所以让第一块板的 SPDIF OUT 接到第二块板的 IN,作为第二块板的音源。然后调试第二块 1452 板,做 SPDIF IN 到 DAC,就可以啦。
这个程序第一个例程里已经详细说了,这里就不重复了。这个时候让第一块板脱机,下载程序到第二块板,手机播放的音乐,就在音箱里正常播放了。
总结
SPDIF 的 IN 和 OUT,与模拟的 IN 和 OUT 一样,只需要知道从软件的哪里调出输入输出,然后寄存器配对就可以了。至于音源进来之后的处理,就跟之前文档里讲得一样啦,这个文档到此就结束了,预祝大家在 SPDIF 这块玩得开心。
再说一句题外话,把 ADC 输入,SPDIF 输出的例程固化到板子上,实现脱机之后,这块板就可以当 SPDIF 数字音频的音源啦,也是一个很方便的应用,大家可以考虑玩一下。
ADAU1452和ADAU1466应该怎么做SPDIF输入和输出?(含图文+例程详解)相关推荐
- c++中整形输入逗号_C语言输入和输出方法amp;技巧详解
引言 今天刷题,写了好久写完了,一提交0分,改了好久没改对1分,看了一下别人的代码,又简洁又直观,代码量又少,还是满分,心理不平衡了,仔细看了一下,对输入输出的处理处理的好好.吃了这方面的亏,干脆借着 ...
- ABB机器人系统输入输出信号System Input和Output详解(一)
ABB机器人系统输入输出信号System Input和Output详解 System Input类型: 输入I/O信号可指定具体的系统输入项,比如Start或Motors on.该输入项会在不使用Fl ...
- ABB机器人系统输入输出信号System Input和Output详解(二)
ABB机器人系统输入输出信号System Input和Output详解(二) 上一次和大家分享了系统输入信号System Input相关的内容,具体可参考以下链接中的内容: ABB机器人系统输入输出信 ...
- java做jsp问题_java/jsp中 中文问题详解
java/jsp中 中文问题详解 更新时间:2006年10月13日 00:00:00 作者: 预备知识: 1.字节和unicode Java内核是unicode的,就连class文件也是,但是很多 ...
- 【Grasshopper基础2】Grasshopper电池的输入和输出不是那么详的解/进一步了解Params
我们在之前已经介绍过了如何创建自己的第一个电池,其中里面提到了我们制作的大部分电池都需要至少完成下面三个部分的代码 RegisterInputParams RegisterOutputParams S ...
- matlab做拉普拉斯曲线,Matlab 拉普拉斯滤波 以及 imfilter 详解(多图)
Matlab 拉普拉斯滤波 以及 imfilter 详解(多图) 08-08栏目:技术 TAG:imfilter imfilter 代码: jhua.orgclc clear all A=imread ...
- 台达变频器s1参数设置_【智】台达变频器计数输入功能接线和参数设置详解
大家好,我是微控小智,今天又跟大家见面了.学习不是一蹴而就,需要坚持,做技术亦是如此,厚积才能博发. 今天分享台达VFD-M变频器计数输入功能接线和参数设置,仅供参考,希望和大家一起交流一起进步,有问 ...
- 用TensorFlow做Kaggle“手写识别”达到98%准确率-详解
(点击"阅读原文"即可进入查看课程表) 刘颖,某互联网创业公司COO,技术出身,做产品里最懂运营的. 这是一个TensorFlow的系列文章,本文是第三篇,在这个系列中,你讲了解到 ...
- lpc1768的gpio库函数_LPC1768之GPIO输入和输出配置基础例程
**************************************** Copyright (c) CaKen ************************************ ** ...
最新文章
- sql查询父节点所有子节点id_5招搞定SQL棘手问题,同事看到直呼“内行”
- 有时间看看这个方法 会不会 避免 xss
- 考研C++必刷题(一)
- 苹果CMSV10绿色毛毛虫主题模板
- Sun公司网站上的Swing实例,想学Swing的不看后悔
- Docker Win 10 安装
- ND2D源码及范例工程(编译通过)
- 致初入职场的兄弟姐妹
- jeb安装教程_JEB2插件教程之一
- java 多次正则匹配_Java正则多次匹配和多次组匹配
- 【论文解读】深度学习目标检测 | R-CNN系列里程碑 | 一文弄懂Faster R-CNN
- hosts文件的作用说明
- Web运维之安全配置指导手册
- 怎么进入华为路由器终端管理系统
- ALT+数字键显示的标点符号大全
- android重启自身应用APP
- 如何登录数据库和运行
- favicon.ico制作
- Lemp + Wordpress 快速搭建个人博客
- 网格计算Grid Computing