- 积分
- 518
- 在线时间
- 729 小时
- 最后登录
- 2019-8-28
- 阅读权限
- 50
- 精华
- 0
 
- UID
- 712589
- 帖子
- 505
- 精华
- 0
- 经验
- 518 点
- 金钱
- 495 ¥
- 注册时间
- 2014-6-12
|

楼主 |
发表于 2015-5-20 09:27
|
显示全部楼层
说完电源说晶振和采样率匹配。
44.1K 序列和 48K 序列采样率的频率通常无法兼容,常见的处理方法:
1、以一种频率作为基准频率,比如 44.1K,晶振选择 11.2896MHz 的,可以配置出无误差的 44.1K、88.2K、176.4K 采样率对应的 BCLK 频率。但这种情况下,对于 48K 序列的采样率,只能采用近似值,会有一定的误差,要求不高可以姑且使用。
2、采用双晶振,11.2896MHz、12.288MHz 同时上,根据不同采样率动态选通其中一个晶振生效,这种情况下,可以精确匹配 44.1K 序列和 48K 序列的频率。
3、采用可以非常精确设置逼近实际频率的芯片,比如 WM8805,它自带的 PLL 可以在单晶振下,提供非常精确的时钟信号。
4、采用单片机自身具备的能力,在一定频率的晶振下实现精确匹配。
第1种方法不太好,尽管实际上可能很难分辨1%的速度误差,但是总觉得不够完美。
第2种方法比较完美,也有很多产品采用这种双晶振、多晶振的方案,不失为一种可选的方案。
第3种方案不失为一种可选方案,但前提是不能为频率而上WM8805,否则增加了这个 SPI 控制的器件,复杂度和可靠性都是问题。
第4种方案,如果芯片支持,当然是最好的。因为简单,因为可以完美匹配频率。可靠性会大大增强。
幸运的是,STM32F407 就是一颗可以通过单晶振,借助 I2SPLL 实现完美匹配所有采样率的芯片。
(这个方案来自于网络,非常抱歉时间太久,无法找到原帖了,谢谢原作者)
晶振采用 11.0592MHz 的,而 STM32F407 可以非常完美的配置出所有 44.1K 和 48K 序列所需要的频率。
计算表格如下(内容为转载,谢谢原作者):
采样率 /M VOC输入 *N VOC输出 /R PLL_I2S_CLK I2S_DIV ODD FS 误差
MCLK使能
44.1 6 1.8432 196 361 2 180.6336 8 0 44.1 0.00%
48 6 1.8432 200 369 2 184.32 7 1 48 0.00%
88.2 6 1.8432 196 361 2 180.6336 4 0 88.2 0.00%
96 6 1.8432 200 369 3 122.88 2 1 96 0.00%
176.4 6 1.8432 196 361 2 180.6336 2 0 176.4 0.00%
192 9 1.2288 320 393 2 196.608 2 0 192 0.00%
192 9 1.2288 320 393.216 2 196.608 2 0 192 0.00%
192 9 1.2288 240 294.912 3 98.304 1 0 192 0.00%
MCLK失能16BIT
44.1 6 1.8432 196 361 4 90.3168 32 0 44.1 0.00%
48 6 1.8432 200 369 4 92.16 30 0 48 0.00%
88.2 6 1.8432 196 361 4 90.3168 16 0 88.2 0.00%
96 6 1.8432 200 369 4 92.16 15 0 96 0.00%
176.4 6 1.8432 196 361 4 90.3168 8 0 176.4 0.00%
192 6 1.8432 200 369 4 92.16 7 1 192 0.00%
MCLK失能32BIT
44.1 6 1.8432 196 361 4 90.3168 16 0 44.1 0.00%
48 6 1.8432 200 369 4 92.16 15 0 48 0.00%
88.2 6 1.8432 196 361 4 90.3168 8 0 88.2 0.00%
96 6 1.8432 200 369 4 92.16 7 1 96 0.00%
176.4 6 1.8432 196 361 4 90.3168 4 0 176.4 0.00%
192 6 1.8432 200 369 2 184.32 7 1 192 0.00%
|
-
有源晶振,0705封装,标称 20ppm
|