1

主题

0

好友

121

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
370892
帖子
188
精华
0
经验
121 点
金钱
139 ¥
注册时间
2011-7-26
发表于 2015-5-20 08:48 | 显示全部楼层
謝謝樓主無私分享diy大作,持續關注中,加油.

4

主题

0

好友

50

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
792448
帖子
58
精华
0
经验
50 点
金钱
44 ¥
注册时间
2015-5-16
发表于 2015-5-20 08:54 | 显示全部楼层
楼主研究辛苦了

5

主题

1

好友

91

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
172667
帖子
176
精华
0
经验
91 点
金钱
91 ¥
注册时间
2010-2-9
发表于 2015-5-20 08:58 | 显示全部楼层
不错的设计   

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

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

有源晶振,0705封装,标称 20ppm

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-20 09:34 | 显示全部楼层
编辑时对齐没问题,到帖子里就对不齐了

5

主题

1

好友

91

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
172667
帖子
176
精华
0
经验
91 点
金钱
91 ¥
注册时间
2010-2-9
发表于 2015-5-20 09:38 | 显示全部楼层
jialong0926 发表于 2015-5-20 09:27
说完电源说晶振和采样率匹配。

44.1K 序列和 48K 序列采样率的频率通常无法兼容,常见的处理方法:

开发过程是痛苦的  支持楼主

0

主题

6

好友

228

积分

业余侠客 当前离线

Rank: 4

UID
11299
帖子
240
精华
0
经验
228 点
金钱
178 ¥
注册时间
2006-8-8
发表于 2015-5-20 09:42 | 显示全部楼层
支持

2

主题

0

好友

650

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
54958
帖子
668
精华
0
经验
650 点
金钱
618 ¥
注册时间
2008-9-18
发表于 2015-5-20 09:45 | 显示全部楼层
APE格式的还是很多的。
只有佩服的心情,顶贴的份。
望早出成品

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-20 09:56 | 显示全部楼层
既然说到频率了,就避不开所谓 jitter。
也斗胆说说自己的狭义理解。

1、jitter是一个数字信号才有的概念;
2、jitter只存在于多时钟情况下不同时钟数字系统之间在时间上的不匹配;
推导出:
3、数字通信的主从模式下,不存在jitter问题,完全由主动方负责时钟;
4、异步方式重整时钟的情况下,已经在异步处理点隔离了jitter问题;(不知是否会引入过冲溢出或延迟等待的情况)

基于以上几点,在我这个DIY方案中,实际上不存在 jitter 问题。

首先,播放器只有一个时钟,唯一的来源是 11.0592MHz 的晶振,其他所有时钟都是基于这个基础的。
其次,I2S采用 F407 主、CS4398 从的模式,时钟源为 F407 的 MCLK、BCLK,无jitter问题。唯一需要保证的是 MCLK 和 BCLK 的同步,这个由 F407 保证,完全没有问题。

至于说到晶振 20ppm 抖动、F407 的 400 ps 抖动(记得是这个量级),这个就完全不是数字抖动的问题了,而是转换为模拟信号时的时间误差。
我算了一下,低于一亿分之一秒,这个不光是人的耳朵不可感知,而且是几乎所有的模拟器件都完全不可能呈现的了。

由于播放器本身没有任何外接数字接口,因此,与外部系统连接也不存在任何 jitter 问题了。

理解可能不对,欢迎批评探讨指正。

5

主题

0

好友

1832

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
21156
帖子
1908
精华
0
经验
1832 点
金钱
1830 ¥
注册时间
2007-4-2
发表于 2015-5-20 10:01 | 显示全部楼层
这才是真正的DIY。赞一个!围观学习下。

37

主题

0

好友

3516

积分

罗宾汉 当前离线

Silenton Shutupov Speechlesski

Rank: 7Rank: 7Rank: 7

UID
238600
帖子
3631
精华
0
经验
3516 点
金钱
3434 ¥
注册时间
2010-9-9
发表于 2015-5-20 10:09 | 显示全部楼层
jialong0926 发表于 2015-5-20 09:56
既然说到频率了,就避不开所谓 jitter。
也斗胆说说自己的狭义理解。

说到jitter,觉得有必要再次请教一下。
http://www.head-fi.org/t/668878/ ... ity/30#post_9544922
http://www.madronadigital.com/Li ... allDistortions.html
这两个链接里的内容能不能分解一下,借助翻译还是不能理解。谢谢!

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-20 10:43 | 显示全部楼层
回过头,直接上整体逻辑图!

分两大部分:
1、主控部分
STM32F407 VET6 作为核心,连接TF卡、CS4398、晶振。
CS4398 进行DAC 转换为差分信号,由运放和 LPF 电路进行处理。
之后一路由继电器控制,输出到 RCA 接口,可供功放连接;另一路连到耳放芯片,最终由3.5耳机插座输出到耳机。

2、显示控制部分
STM32F030 C8T6为主,与STM32F407连接,采用 SPI 通信,中间有可片选的 FLASH。
FLASH 由 F407 和 F030 共享,实现字库维护(F407)、字库检索显示(F030)。
OLED显示屏由 F030 通过 SPI 驱动。
按键和遥控接收芯片连线较简单。

直接看图吧!
整体逻辑图.jpg

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-20 10:50 | 显示全部楼层
LeonBernieniv 发表于 2015-5-20 10:09
说到jitter,觉得有必要再次请教一下。
http://www.head-fi.org/t/668878/jitter-correlation-to-audibi ...

E文不好,看得很累,留待慢慢学习。
老外的很多东西做得很细很深,这样的牛角尖会越钻越有收获。

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-20 11:12 来自手机端 | 显示全部楼层
上面的逻辑图中,除了i2s信号外,还传输dsd信号

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-20 11:13 来自手机端 | 显示全部楼层
上面的逻辑图中,除了i2s信号外,还传输dsd信号

31

主题

1

好友

373

积分
     

业余侠客 当前离线

Rank: 4

UID
785065
帖子
1271
精华
0
经验
373 点
金钱
333 ¥
注册时间
2015-2-10
发表于 2015-5-20 11:26 | 显示全部楼层
我都声卡直接插功放使用,省心!!

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-20 11:46 来自手机端 | 显示全部楼层
csop 发表于 2015-5-20 11:26
我都声卡直接插功放使用,省心!!

我之前也是这么玩的。
没办法,喜欢折腾。

不过也有很多人喜欢另外一种省心:插tf卡,插功放,插电!

pchifi也多少需要点折腾,安装 foobar,安装插件。。。

有了这个以后,我都不开电脑了。也是一种省心。

纯属探讨,没有说哪个好哪个不好的意思。

24

主题

0

好友

335

积分

业余侠客 当前离线

Rank: 4

UID
4866
帖子
322
精华
0
经验
335 点
金钱
257 ¥
注册时间
2005-7-9
发表于 2015-5-20 11:59 | 显示全部楼层
DIY总是让人感动

31

主题

1

好友

373

积分
     

业余侠客 当前离线

Rank: 4

UID
785065
帖子
1271
精华
0
经验
373 点
金钱
333 ¥
注册时间
2015-2-10
发表于 2015-5-20 12:00 | 显示全部楼层
jialong0926 发表于 2015-5-20 11:46
我之前也是这么玩的。
没办法,喜欢折腾。

支持!生命在于折腾嘛。不过话说回来人的听感就如欲望,那是永远无法满足的。在经济条件允许下玩玩实为一大乐趣。
头像被屏蔽

152

主题

14

好友

3215

积分

禁止发言 当前离线

DAC7天下无敌

UID
23806
帖子
4807
精华
0
经验
3215 点
金钱
3198 ¥
注册时间
2007-6-19
发表于 2015-5-20 12:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部