打印
[技术问答]

如何设置I2S的采样频率及选择外部晶振?

[复制链接]
2333|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如果系统仅需要一种采样频率,时钟源可以通过外部晶振来实现。如果需要两种以上的采样频率,大部分的芯片就会受到硬件的限制,每个采样频率只能是I2S时钟源分频后的的结果。

以NUC140系列为例,I2S选取12.288Mhz时钟源及16位长度,可以播放的采样频率为96K, 48K, 32K, 24K, 19.2K, 16K, 12K, 9.6K, 8K和 6K。至于44.1K, 22.05K及11.025K,时钟源必须改为5.6448Mhz。

I2S_BCLK = I2S_CLK /(2x(BCLK_DIV + 1)) =  SR * Length * 2


使用特权

评论回复
沙发
tiakon| | 2024-9-25 13:22 | 只看该作者
设置I2S(Inter-IC Sound)的采样频率及选择外部晶振通常涉及硬件和软件两个方面的配置。确定晶振频率:你需要确定所需的采样频率。I2S通常支持多种采样频率,如44.1kHz、48kHz、96kHz等。选择一个合适的晶振频率,通常是采样频率的整数倍。

使用特权

评论回复
板凳
ewyu| | 2024-9-25 14:33 | 只看该作者
建议根据你的应用需求,选择合适的晶振类型(如石英晶振)。确保晶振的频率稳定性和精度满足要求

使用特权

评论回复
地板
hhdhy| | 2024-9-25 15:39 | 只看该作者
将晶振正确连接到I2S控制器的时钟输入引脚。通常,晶振的两个引脚分别连接到I2S控制器的XTAL_IN和XTAL_OUT引脚

使用特权

评论回复
5
一切D都好| | 2024-9-25 16:45 | 只看该作者
在代码中初始化I2S控制器,并配置其基本参数(如数据格式、通道数等)。

使用特权

评论回复
6
清芯芯清| | 2024-9-25 18:09 | 只看该作者
配置时钟源,设置I2S控制器的时钟源为外部晶振。通常,这需要在寄存器中进行配置

使用特权

评论回复
7
pe66ak| | 2024-9-25 19:16 | 只看该作者
设置采样频率:根据外部晶振的频率和所需的采样频率,计算并设置I2S控制器的分频系数(Divider)。公式如下: [ \text{Divider} = \frac{\text{晶振频率}}{\text{采样频率} \times \text{通道数} \times \text{位深度}} ] 例如,如果晶振频率为24.576MHz,采样频率为48kHz,通道数为2,位深度为16位,则: [ \text{Divider} = \frac{24576000}{48000 \times 2 \times 16} = 16 ]

使用特权

评论回复
8
星星点点didi| | 2024-9-25 20:22 | 只看该作者
一般是需要计算的,并且将计算得到的分频系数写入I2S控制器的相应寄存器中

使用特权

评论回复
9
nqty| | 2024-9-26 09:08 | 只看该作者
确保外部晶振的频率稳定性和精度,以避免音频信号的失真

使用特权

评论回复
10
gra22ce| | 2024-9-26 10:23 | 只看该作者
分频系数应为整数,否则可能导致采样频率不准确。

使用特权

评论回复
11
eleg34ance| | 2024-9-26 13:30 | 只看该作者
一般需要确保所选晶振和I2S控制器的硬件兼容性。

使用特权

评论回复
12
黑心单片机| | 2024-9-28 15:20 | 只看该作者
晶振为啥不是整数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

131

主题

2603

帖子

2

粉丝