用ADI的DSP做一套实验教学系统,选定的型号是SHARC系列的ADSP-21369,硬件设计出了一个大概的框图如下(比较丑,大家不要笑话,也欢迎大家对此图提意见)
在评估版来之前看了很多资料,现在总结一下DAI接口(数字音频接口)的外围设备中用到的精密时钟发生器。
先简单概述一下精密时钟发生器。精密时钟发生器(Precision clock generatorsPCG)包括四个单元,每一个单元产生的一对信号(时钟和帧同步)来自时钟输入信号。这四个单元A,B,C,D具有相同的功能并且各自独立作用。每个单元产生的两个信号通常被用来作为一个串行位时钟/帧同步对。
下面讨论使用PCG(精确时钟发生器)为SHARC SPORT 提供时钟的注意事项。
使用PCG 产生的信号为I2S 模式的SPORT 提供FS 和SCLK 信号时,需要配置PCG 的延迟寄存器,使信号时序与I2S 协议时序一致。LRCLK 信号必须由串行时钟的下降沿驱动。
使用PCG 为TDM 模式的SPORT 提供信号时,要求帧同步信号仅在一个串行bit 时钟周期保持有效。注意,TDM 模式的帧同步是电平触发的,而不是边沿触发。PCG 脉宽寄存器(PCG_PW)应该置“1”,这样帧同步仅在一个串行时钟周期有效。在这样的配置下,由于帧同步是单串行时钟周期有效,SPORT 是使能还是再次使能的状态都没关系。如果帧同步无效期间,SPORT 被使能,需要等待直到下个有效帧同步信号。在PCG 配置需要50%工作周期的系统下,使用DAI中断来使能SPORT。
假设PCG 帧同步和时钟信号在SPORT 使能或再次使能前启动,由于串口可以在同步和时钟信号启动后的任何时候使能,可能有以下情形发生:串口在任何有效同步信号采样时,开始锁存(接收机情形)或驱动数据(发送机情形)。注意,帧同步信号在TDM 模式是电平触发而不是边沿触发的。这样的情况会在串口禁止然后重新使能下反复发生,以致失去同步。这可能导致通道移位或者数据丢失。启动串口的正确过程应该是等待帧同步信号无效沿,然后在帧同步信号无效期间使能串口。这就保证了串口在帧同步信号有效电平期间采样数据。这个过程还应该在串口禁止和重新使能的时候采用,从而保证串口不会在有效帧的中部采样数据。这个操作由以下过程实现。PCG 帧同步映射到DAI 中断。帧同步无效边沿触发DAI 中断,这意味着帧同步信号会在一段时间无效,串口应该在帧同步信号无效期间启动,或者执行串口禁止和重新使能时操作。 |