DSP学习一:ADAU1452与Sigma Studio
关于I2S中的几个时钟关系
1、SCLK/BCLK:串行时钟,也称作位时钟,对应于数字音频的每一位数据
f(SCLK) = 2 * 采样频率 * 采样位数
2、LRCK:帧时钟,用于切换左右声道的数据,LRCK为1时表示左声道数据,0表示右声道数据
f(LRCK) = 采样频率
3、MCLK:主时钟,即系统时钟
f(MCLK) = 256 * 采样频率
ADAU1452可支持的最大时钟频率:294.912MHZ
ADAU1452/1451/1450的输入种类:
1、Serial input port —— 对应SigmaStudio中IO的sdata,共有48个通道,4个模块
2、SPDIF —— 索尼/飞利浦标准接口输入,对应SigmaStudio的DigMic模块
3、MIC INPUT —— 数字麦克风输入
4、ASRC —— 采样率转换器,可输入也可输出,输入信号源,输出到DSP core中
Serial input
ADAU1452/1451/1450有4组串行输入口,SDATA0和SDATA1每组有16个通道,SDATA2和SDATA3每组有8个通道;每组输入口的前两个通道为模拟输入,其余可具体用于TDM4、TDM8和TDM16音频输入,通过SERIAL_BYTE_X寄存器配置通道数目。
每个串行输入端口的字长有四种选择:24、16、32位以及灵活的TDM
24位(1.23格式)输入时,在底部LSB填充8个0,使其成为1.31格式,然后对音频数据进行移位,使其顶部有7个0,最底部有1个0,中间有24位数据(8.24格式)。
16位输入,则在底部填充16个0,移位后顶部仍有7个0,而底部有9个0(8.24格式)。
SPDIF
DigMic有两组输入,每组输入分左右通道。而SPDIF接收器不能在DSP 内核中直接访问,必须通过ASRC转换器。
SPDIF输出信号来源可以是DSP 内核或者S/PDIF接收器,配置源可以通过寄存器SPDIFTX_INPUT寄存器配置。
SPDIF接收器上接收到的数据可以转换为TDM8流,绕过SigmaDSP内核直接在串行数据输出引脚上输出,该操作模式成为辅助输出模式。
Serial output
48个串行输出通道在SigmaStudio中独立开,但映射到硬件中同样是4组输出,即16、16和8、8,通过SOUT_SOURCE寄存器配置通道数目
ASRC
任何异步输入都可以输入到ASRC以获取和DSP 内核相同的采样率,从而提供给DSP内核处理。
一共有16个ASRC输入通道,分为8组立体声输入,每组两个通道。
MIC Input
最多可以连接4个PDM麦克风,两个麦克风共享一条数据线,PDM麦克风通常需要1Mhz~3.3Mhz的位时钟频率,对应的采样率为15.625kHZ~51.5625kHZ,位时钟频率 = 采样频率 * 2 * 采样位数
ADAU1452/1451/1450的DSP Core
一个采样周期内最多可执行的指令数 = 时钟频率/采样频率
DSP内核由4个乘法器和两个累加器组成
关于Safeload机制
默认的软件Safeload存储地址有7个,其中0x6000 – 0x6004五个为数据插槽
address_SafeLoad 参数是在参数RAM中的目标地址,指定了要写入安全负载传输中的第一个地址
num_safeload指定要写入的参数个数
每次安全负载写入之间需要大于采样周期(采样频率的倒数)的延迟。
SafeLoad书写步骤:
1、从data_SafeLoad位0开始,将所需数据写入data_SafeLoad,最多五个参数
2、将所需的起始目标地址写入address_SafeLoad参数
3、将需要传输的字数写入num_SafeLoad参数,最小写入长度为1个字,最大写入长度为5个字
4、等待一个音频帧的时间(做适当的延时)以完成安全加载操作
关于RAM大小
ADAU1452含有40K Word大小的数据RAM控件,8K Word大小的程序存储器
20K DM0、20K DM1以及8K Program memory
在SigmaStudio中编译DSP工程,可以看到编译过程,即是启动顺序,其中工程中的配置等通过 Program DATA、DM0 DATA和DM1 DATA写入
DSP学习一:ADAU1452与Sigma Studio相关推荐
- DSP学习(5)—— Timer的使用
DSP学习(5)-- Timer的使用 文章目录 DSP学习(5)-- Timer的使用 前言 一.创建Timer 1. 法一:图形界面创建 2. 法二:代码方式创建 二.相关问题 前言 本文记录学习 ...
- DSP学习笔记之系统时钟、定时器、GPIO篇
\qquad写在前面,不管是C51.MSP430.32也好,DSP也好,总要有一个掌握的比较熟练,不能每次都复制粘贴别人的代码然后修修补补吧.不要再做Ctrl +C.Ctrl+V工程师.主要参考来自于 ...
- DSP学习(8)—— linker.cmd文件解析
DSP学习(8)-- linker.cmd文件解析 文章目录 DSP学习(8)-- linker.cmd文件解析 前言 前言 写工程的时候遇到报内存不够的错误,出现在linker.cmd的内存分配se ...
- DSP学习(4)—— 看代码记录
DSP学习(4)-- 看代码记录 文章目录 DSP学习(4)-- 看代码记录 前言 一.一些缩写 二.C语言忘记的知识 条件编译中使用的预编译指令 前言 本文用于记录看代码中间遇到的不认识的东西. 一 ...
- DSP学习笔记之EPWM
DSP学习笔记之EWPM学习 \qquad 学习PWM模块的知识,最少需要掌握频率可调.占空比可调.互补死区可调.多个PWM相位差可调等.内容较多,主要是参照英文手册中几个模块的介绍,内容很多,最基本 ...
- DL之IDE:深度学习环境安装之Visual Studio 2015版本+CUDA8.0+Cudnn8.0+OpenCV 3.1.0版本完美搭配安装图文教程之详细攻略
DL之IDE:深度学习环境安装之Visual Studio 2015版本+CUDA8.0+Cudnn8.0+OpenCV 3.1.0版本完美搭配安装图文教程之详细攻略 导读:网上教程一大把,瞎指挥的不 ...
- DSP学习 -- Visual Studio 操作
如需转载请注明出处 https://juyou.blog.csdn.net/article/details/107862686 最近一直使用Visual Studio写代码了,其中用到一些东西感觉有必 ...
- 【DSP】【第一篇】开始DSP学习
2022年6月14日 1. 部署开发环境 略.工作需要,TMS320C6678. 从今天开始学习DSP的知识. 后面会补充如何安装部署环境. 1.1 组件 1.1.1 SDK MCSDK(CCSv5, ...
- DSP学习初阶的一些笔记
这些内容都是一些基础的.概述性的知识,是本人在学习.使用DSP开始阶段的一些总结,对于DSP内部结构:各个寄存器的配置使用.各种外设的详细配置.中断处理机制.内存管理以及各种编程.调试的经验,以后有空 ...
最新文章
- Go语言defer详解
- 在maven项目中打开jsp_零基础在intellij中打开一个项目复制粘贴内容即可运行的java拼图...
- 精选| 2021年5月R新包推荐(第54期)
- [HNOI2008 Tree]
- js iframe 出现跨越问题
- oracle——监听(二、sqlplus连接数据库)
- 用VC++封装自己的DLL动态链接库
- 【译】Simple MySQL ORM for C
- Hibernate(1)
- java 导出EXcel数据
- 5G+4G聚合路由器
- 关于matlab的图像显示方法
- 计算机硬盘大小一般都是整数,完美主义 最精确的硬盘整数分区法
- 预留128k文件空间c语言,【求助】请教ATMEGA128高64k空间如何正确读取使用
- 伺服电控领域的产业情况与各主流制造商简介
- 【汽车总线技术】CAN FD与CAN网络共存的解决方案
- js 让鼠标右下角有一排小字_JS实现跟随鼠标的链接文字提示框效果
- 宣传片后期制作的要点介绍
- 乡村少年宫计算机教师简介,乡村少年宫教师感言
- 明源售楼系统技术解析 销售控制(三)
热门文章
- C语言中定义整数的一个小疑问
- lxml.html方法,用lxml编辑html代码
- 网络安全实训记录(2020.7.15-2020.7.19)
- 《cmos大规模集成电路设计(英文影印版)(第3版)》图书详细资料信息 / china...
- GNU Radio中的消息传递机制(Message Passing)
- 极地土活性层和永久冻土的比较宏基因组学
- HTML5新标签有哪些呢?
- Oracle课堂笔记之事务集合查询与PL/SQL匿名块(3)(实验习题)
- 怎么关DELL笔记本触摸板
- 单片机音乐门铃实验报告 C语言,基于单片机的音乐门铃