- 积分
- 20
- 在线时间
- 125 小时
- 最后登录
- 2020-3-4
- 阅读权限
- 40
- 精华
- 0
- UID
- 823944
- 帖子
- 19
- 精华
- 0
- 经验
- 20 点
- 金钱
- 16 ¥
- 注册时间
- 2016-12-6
|
本帖最后由 chen37007 于 2019-2-26 13:23 编辑
最近研究CS8416/ AK4113软控,采用arduino nano控制(因为就arduino编程会一点),碰到如下几个问题,希望热心的坛友能帮忙解答一下心中的疑惑。
问题一:
以ak4113为例,unlock在寄存器07H中的D4位,
doSPI(AK4113_cspin, B00000111, 0); 读取pll锁定信号时,返回的是整个07寄存器中的全部位数据,
返回的数据怎么能只提取出第4位的数,用来判断是否锁定呢??(这个搞懂后,采用频率也就ok了)
问题二:
CS8416中的采样频率检测,规格书中描述:
该寄存器允许主机微控制器根据公式 ORR=Fso/Fsi 计算输入采样频率。Fso 由频率取决于的OMCK(256*Fso)。ORR 是一个无符号的 2 位整数部分加上 6 位的小数部分。其值仅在 PLL 锁定后才有意义。例如,如果 OMCK 为 12.288MHz,则 Fso 为 48kHz(48kHz=12.288MHz/256)。如果输入采样频率也是 48kHz,则 ORR 寄存器中的值为 1.0(ORR 寄存器中的值是十六进制的,所有真实值是 40h)。如果 F SO /F SI >3-63/64
,则 ORR 为 FFh。此外,ORR 中没有滞后。因此在任何时钟上的一个小抖动都会引起最低有效位 ORR[0]的振荡。
ORR[7:6] - 比率的整数部分(整数值=整数(SRR[7:6]))。
ORR[5:0] - 比率的分数部分(分数值=整数(SRR[5:0])/64)
没找到fsi具体数,根据公式推算48khz,请问这个跟是否外接晶振,以及晶振频率有关吗?如果没关,那就可以不用晶振了^_^。 |
|