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/1450DSP 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写入

Published by

风君子

独自遨游何稽首 揭天掀地慰生平