[技术问答] 如何设置I2S的采样频率及选择外部晶振?

[复制链接]
 楼主| heisexingqisi 发表于 2024-5-18 20:51 | 显示全部楼层 |阅读模式
如果系统仅需要一种采样频率,时钟源可以通过外部晶振来实现。如果需要两种以上的采样频率,大部分的芯片就会受到硬件的限制,每个采样频率只能是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
354476648a4411491c.png

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引脚
一切D都好 发表于 2024-9-25 16:45 | 显示全部楼层
在代码中初始化I2S控制器,并配置其基本参数(如数据格式、通道数等)。
清芯芯清 发表于 2024-9-25 18:09 | 显示全部楼层
配置时钟源,设置I2S控制器的时钟源为外部晶振。通常,这需要在寄存器中进行配置
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 ]
星星点点didi 发表于 2024-9-25 20:22 | 显示全部楼层
一般是需要计算的,并且将计算得到的分频系数写入I2S控制器的相应寄存器中
nqty 发表于 2024-9-26 09:08 | 显示全部楼层
确保外部晶振的频率稳定性和精度,以避免音频信号的失真
gra22ce 发表于 2024-9-26 10:23 | 显示全部楼层
分频系数应为整数,否则可能导致采样频率不准确。
eleg34ance 发表于 2024-9-26 13:30 | 显示全部楼层
一般需要确保所选晶振和I2S控制器的硬件兼容性。
黑心单片机 发表于 2024-9-28 15:20 | 显示全部楼层
晶振为啥不是整数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

157

主题

2767

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

157

主题

2767

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部