1.系统时钟
AK7709使用内部的PLL电路产生内部操作主时钟,PLL的参考时钟源可以从XTI pin和BICKx(x=A~H)pin选择。
通过XTI连接一个晶振或输入外部时钟。当不使用晶振时,XTO需要断开。当使用BICKx pin作为输入系统时钟时,要求一个稳定的单频率。
晶振起振由PDN pin和SELE pin控制,起振激活时间最大为6ms。
PLL生成相应DSP的主时钟和Audio Hub,Audio功能(SRC1~12、DIT、数字MIC、DIR)的主时钟。为了减少PLL抖动,建议将参考时钟设置为XTI。
2.Audio HUB
Audio Hub通过输入/输出端口允许各种音频源同时发送/接收和灵活的路径配置,并且支持采样率转换器(SRC)的各种配置。它可以适应汽车音频中的各种用例。
AK7709有10个内部时钟同步域(SD1~SD10),用于输入和输出不同采样率的音频数据到每个块。时钟同步域根据寄存器配置输出参考时钟(LRCKSDx/BICKSDx),内部音频数据和输入/输出数据必须始终被同步到时钟同步域之一。
当MSNx位=0时,时钟同步域x选择输入pin(LRCKx pin/BICKx pin);当MSNx位=1时,选择内部分频时钟,并输出参考时钟(LRCKSDx/BICKSDx)。
时钟同步域定义如下图所示:
3.配置实操
假如要使用7709的LRCKA pin/BICKA pin产生一个LRCKA=48k、BICKA=64fs(I2S)的主时钟,使用LRCKB pin/BICKB pin产生一个LRCKB=48k、BICKB=256fs(TDM8)的主时钟,那么在DSP的GUI中如何进行配置呢?
首先通过CKSx[3:0]选择时钟源,时钟源可以是下表中的任意一个。
其中SDGCLK是由PLL的VCOCLK(X2CLK)除以10得到的。即对于48k系统,SDGCLK=49.152MHz;对于44.1k系统,SDGCLK=45.1584MHz。
这里我们选择SDGCLK作为时钟源。然后根据需要计算LRCKx和BICKx的分频系数,分别设置寄存器BDVx[7:0]和SDVx[7:0]。
在这里,普及一个概念:
位时钟 = 采样频率fs * 采样位数 * 通道数
(1) 使用LRCKA pin/BICKA pin产生一个LRCKA=48k、BICKA=64fs(标准I2S)的主时钟。
这里,SDVA选择Mode 0,即64,根据时钟同步域定义图(LRCKA=SDGCLK/SDVA/BDVA)可以计算得出LRCKA的分频系数:
BDVA = SDGCLK / SDVA / LRCKA = 49.152M / 64 / 48K = 16
(2) 使用LRCKB pin/BICKB pin产生一个LRCKB=48k、BICKB=256fs(TDM8)的主时钟
这里,SDVB选择Mode 4,即256,根据时钟同步域定义图(LRCKB=SDGCLK/SDVB/BDVB)可以计算得出LRCKB的分频系数:
BDVB = SDGCLK / SDVB / LRCKB = 49.152M / 256 / 48K = 4
具体在DSP的GUI中配置如下:
总结
以上就是对AK7709系统时钟配置的一个简单介绍,详细资料还需查看7709的官方文档中对于时钟这部分的介绍。