10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-23 14:02 来自手机端 | 显示全部楼层
jinggx 发表于 2015-5-23 13:55
data在slave模式下的不同步,那是stm32的bug,这个问题你是可以解决。可我说了这么多,要说明的关键是pll的 ...

在我的另外一个帖子里,对于jitter,已经说了很多我自己的理解和分析。
对于数字输出的转盘类,确实需要低jitter的输出,可以最大限度降低累积效应。
但是对于主从模式的通信,jitter的影响已经低到无法体现,也可以说没有jitter问题了。
我的播放器中,只有主从模式通信,因此不存在jitter的问题。

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-23 14:06 来自手机端 | 显示全部楼层
我的播放器的目标,当然不是出声的要求,也尽量要好听。不过jitter在我这个方案里的影响,由于不存在spdif输出,已经没有影响了

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-23 14:09 来自手机端 | 显示全部楼层
另一个帖子里已经提到过,在4398 dac转换过程中,407的400ps jitter,只是低于一亿分之一秒的误差,模拟器件是无法体现的。
头像被屏蔽

16

主题

4

好友

777

积分

禁止发言 当前离线

UID
17546
帖子
658
精华
0
经验
777 点
金钱
645 ¥
注册时间
2007-1-16
发表于 2015-5-23 14:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-23 14:20 来自手机端 | 显示全部楼层
jinggx 发表于 2015-5-23 14:14
原来如此,那看来是咱们对这个问题的认识不一致,对原理的理解也不一致。我的个人见解就不说了。

理解不同而已,不过我一直认为jitter是数字通信领域的问题,即使是出来的声音有问题,也是因为数字不同步通信的问题由模拟体现出来。模拟并不能体现jitter本身,而是体现因jitter引起的数字问题,而且数字问题至少是bit级别的。

共同探讨,无关对错。
谢谢关注。
头像被屏蔽

152

主题

14

好友

3215

积分

禁止发言 当前离线

DAC7天下无敌

UID
23806
帖子
4807
精华
0
经验
3215 点
金钱
3198 ¥
注册时间
2007-6-19
发表于 2015-5-23 14:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

139

主题

11

好友

3309

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
5036
帖子
4980
精华
1
经验
3309 点
金钱
3020 ¥
注册时间
2005-7-26
发表于 2015-5-23 18:29 | 显示全部楼层
jialong0926 发表于 2015-5-23 14:02
在我的另外一个帖子里,对于jitter,已经说了很多我自己的理解和分析。
对于数字输出的转盘类,确实需要 ...

看到这里,我又忍不住跳出来说,我个人不认同你这个观点。
这不是真的没有jitter问题,而是被你”没有jitter问题“。
不能认为它是没有这个问题的,而它就真的没问题了。

有句话叫“误差是一定存在的,是没办法完全消除的,只能尽量减小”
我觉得套这话套在这里,也是适用的。
纯讨论,别介意。

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-24 11:04 来自手机端 | 显示全部楼层
op111op 发表于 2015-5-23 14:31
楼主能不能介绍一下DSD,对这个话题比较有兴趣

dsd文件解析是借鉴几个开源插件,用C语言重写,以适应单片机的

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-24 11:07 来自手机端 | 显示全部楼层
tf卡的读取,是用 FatFs,经过stm32单片机优化后,达到性能要求的。

24

主题

1

好友

2781

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
2006
帖子
3127
精华
0
经验
2781 点
金钱
1708 ¥
注册时间
2004-11-2
发表于 2015-5-24 12:09 | 显示全部楼层
关注,楼主的坚持好样的!

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-24 13:33 | 显示全部楼层
tf卡的读取,是用 FatFs,经过stm32单片机优化后,达到性能要求的。

我用的 FatFs 0.09 原始版本需要在几个方面进行优化。
1、为支持大容量存储卡,需要修改读写函数中地址相关的几个参数,由 uint32_t,改为 uint64_t。
2、FatFs 每个 Block 大小为 512 字节,如果每次以 512 字节的整数倍长度读写,效率提高非常大。
3、每次尽量多的读取数据,可以进一步大幅提高读写速度。
4、读写函数中,存放数据的 buffer 地址,尽量用 4 字节对齐的地址,又可以进一步大幅提高读写速度。


通过以上的几个优化,在某些情况下,可以数倍地提高 FatFs 的读写速度。


FatFs支持大容量盘.jpg
FatFs支持大容量盘2.jpg

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-24 13:42 | 显示全部楼层
目录搜索及播放列表组织

音频文件的搜索,是采用的递归方式遍历整个 TF 卡目录,因此可支持的目录层次,仅受限于栈空间的大小。

目录和播放列表的组织,使用了双向链表,可以为后续歌曲切换、专辑切换提供极大的便利。

通过实际测试,64G 卡在装满音频文件的情况下(1000首左右),文件搜索和列表组织可以在 2 秒钟以内完成。

播放列表结构.jpg

38

主题

1

好友

478

积分

业余侠客 当前离线

Rank: 4

UID
5498
帖子
361
精华
0
经验
478 点
金钱
358 ¥
注册时间
2005-9-8
发表于 2015-5-24 18:39 | 显示全部楼层
你 讲的  这些 功能 ,网上都有  , 特别 是 原子的 开发例程, 详细的 代码 太多了。 有啥保密的 。

感觉 你对 jitter 的 理解 还 不 深刻。 stm32 的 i2s 公认的 有问题。 这个 芯片主要是 便宜,  性价比 高。 如果 真要用 i2s 飞利浦的 不错。

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-24 19:12 | 显示全部楼层
maxwang71 发表于 2015-5-24 18:39
你 讲的  这些 功能 ,网上都有  , 特别 是 原子的 开发例程, 详细的 代码 太多了。 有啥保密的 。

感 ...

对于 jitter 的理解每个人有自己的分析和判断,是否正确和深刻,各自表述吧。对于我的理解,网络上除了有质疑的声音,也有认同和支持的声音,这只能说是个有争议的话题。如果您有何深刻的理解,愿闻其详。

STM32 确实很便宜,性价比很高,而且开发资源也很多,适合做高性价比的产品。

至于说到 STM32  I2S 的问题,不用它有问题的那部分就可以了,不会影响任何功能。世界上所有的芯片都有勘误的。

至于说到播放器功能的网络资源,确实很丰富,我的所有程序可以说最初都是借鉴网络资源的。

如果没人愿意看,就更新到此吧。

专心地争取尽快做一个高性价比的播放器。
头像被屏蔽

152

主题

14

好友

3215

积分

禁止发言 当前离线

DAC7天下无敌

UID
23806
帖子
4807
精华
0
经验
3215 点
金钱
3198 ¥
注册时间
2007-6-19
发表于 2015-5-24 19:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

2

主题

0

好友

36

积分

注册会员 当前离线

Rank: 2

UID
791848
帖子
37
精华
0
经验
36 点
金钱
32 ¥
注册时间
2015-5-10
发表于 2015-5-24 19:35 | 显示全部楼层
jinggx 发表于 2015-5-23 12:31
stm32的pll抖动巨大,这个时钟用在音频上难有好的效果!
亲身经历,用stm32f407的mco为eth的phy提供时钟, ...

非常同意这个观点, PLL就是控制VCO得到想要的时钟的,
都用上4398的DSD了,为啥不另加一个时钟源,让STM32F4的I2S工作在从模式,DMA方式传输数据,那才爽,
听说F4的i2s从模式,也不大好用,

2

主题

0

好友

36

积分

注册会员 当前离线

Rank: 2

UID
791848
帖子
37
精华
0
经验
36 点
金钱
32 ¥
注册时间
2015-5-10
发表于 2015-5-24 19:40 | 显示全部楼层
jinggx 发表于 2015-5-23 12:34
并且,勘误手册上已经说明在slave模式下的bug,而且只支持16bit,所以stm32的iis可以认为是废了

STM32F103的i2s不知道, 但是F4的从模式 哪里有说不能用啊? 只是说有bug吧.

10

主题

8

好友

518

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
712589
帖子
505
精华
0
经验
518 点
金钱
495 ¥
注册时间
2014-6-12
 楼主| 发表于 2015-5-24 19:43 | 显示全部楼层
musich 发表于 2015-5-24 19:35
非常同意这个观点, PLL就是控制VCO得到想要的时钟的,
都用上4398的DSD了,为啥不另加一个时钟源,让STM32F ...

不加的原因是因为这个播放器没有与外界的数字接口,按照我的观点,jitter 在 DAC 过程中已经不重要了。

如果要加上 SPDIF 等数字接口,那就一定要用一个非常好的时钟,不过我这个播放器不考虑这个接口。

38

主题

1

好友

478

积分

业余侠客 当前离线

Rank: 4

UID
5498
帖子
361
精华
0
经验
478 点
金钱
358 ¥
注册时间
2005-9-8
发表于 2015-5-24 19:47 | 显示全部楼层
jialong0926 发表于 2015-5-24 19:12
对于 jitter 的理解每个人有自己的分析和判断,是否正确和深刻,各自表述吧。对于我的理解,网络上除了有 ...

我 写 这些 没有 别的 意思, 时钟不仅有jitter 问题, 还有 其他的 指标, stm32 pll 能 满足hifi 要求么,
其实 我很 佩服 楼主 的 , 能实现 这么多功能 ,特别 是 对 iso 文件的 支持, 很少见 。 能 提供代码么

2

主题

0

好友

36

积分

注册会员 当前离线

Rank: 2

UID
791848
帖子
37
精华
0
经验
36 点
金钱
32 ¥
注册时间
2015-5-10
发表于 2015-5-24 19:59 | 显示全部楼层
jialong0926 发表于 2015-5-24 19:43
不加的原因是因为这个播放器没有与外界的数字接口,按照我的观点,jitter 在 DAC 过程中已经不重要了。
...

jitter 在 DAC 过程中已经不重要了。 不同意这个观点哦,
因为dac的i2s的所有时钟都来自PLL的VCO了, VCO就是个压控振荡器啊,它的Fo稳定输出是靠电压控制得到的,可可惜F4没有将PLL的LPF电路留出引脚,不然你用手摸一下,保证以后就不会这么用了,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版| ( 鄂ICP备2025138941号-3 ICP证:鄂B2-20130019 公安局网监备:420100007348 邮箱:1343292467@qq.com )

GMT+8, 2025-11-6 04:58 , Processed in 0.158086 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部