DebugLab 发表于 2025-5-14 18:20:27

建议直接发32位数据,低16位填0,DAC用16位、24位、32位都可以,兼容性好

suncat0504 发表于 2025-5-14 20:51:06

DebugLab 发表于 2025-5-14 18:13
绿色LRCK一个周期近似10us,1s/10us=100K,这应该是96K的采样率,并非48K
你所有截图的LRCK都是图文不符
...

程序代码中的设置,没有设置为96K啊。同一个程序,采样率调整为48KHz、通道32位宽的时候,BLCK信号频率就是正常的。

suncat0504 发表于 2025-5-14 20:52:05

DebugLab 发表于 2025-5-14 18:20
建议直接发32位数据,低16位填0,DAC用16位、24位、32位都可以,兼容性好

好的。谢谢指导!

DebugLab 发表于 2025-5-14 21:45:20

suncat0504 发表于 2025-5-14 20:51
程序代码中的设置,没有设置为96K啊。同一个程序,采样率调整为48KHz、通道32位宽的时候,BLCK信号频率就 ...

但你逻辑分析仪显示LRCK就是约100M

梁工 发表于 2025-5-14 23:57:30

1、I2S的BLCK时钟是数据位流时钟,其值 = 量化长度 *通道*采样率,比如48KHz采样,16位量化,2通道,则BCLK = 16*2*48=1536KHz=1.536MHz。
2、MCLK是给DAC的时钟,由于是256倍过采样,所以MCLK=fs*256,比如48KHz采样,则MCLK=48*256=12.288MHz。所以推荐主频为12.288MHz*3=36.864MHz。

suncat0504 发表于 2025-5-15 12:00:08

梁工 发表于 2025-5-14 23:57
1、I2S的BLCK时钟是数据位流时钟,其值 = 量化长度 *通道*采样率,比如48KHz采样,16位量化,2通道,则BCLK ...

谢谢指导!我之前是按照例程中推荐的45MHz进行烧录的。后面试试您推荐的主频。

suncat0504 发表于 2025-5-15 12:03:02

DebugLab 发表于 2025-5-14 21:45
但你逻辑分析仪显示LRCK就是约100M

那是不是说,程序代码中设置I2S的相关代码有问题?或者代码没问题,但单片机内部协调有问题?毕竟逻辑分析仪只是用来测试运行结果的。

梁工 发表于 2025-5-15 13:17:27

suncat0504 发表于 2025-5-15 12:03
那是不是说,程序代码中设置I2S的相关代码有问题?或者代码没问题,但单片机内部协调有问题?毕竟逻辑分 ...
你可以参考我的例子,里面的时钟设置。

Ai8051U实现USB全双工声卡,同时 录音/ 放 音,微信通话/腾讯会议 可用, 重磅开源
https://www.stcaimcu.com/thread-11217-1-1.html

AI8051U播放下载在Flash中的立体声32K采样的ADPCM音乐
https://www.stcaimcu.com/thread-10641-1-1.html



MCU的主频或PLL时钟必须是 256*SampleRate的整数N倍。
数据格式为立体声双通道16位,I2S主时钟MCLK=256*SampleRate=FOSC(或PLL CLK)/N,左右声道时钟WS=SampleRate,数据时钟BCLK=32*SampleRate。


suncat0504 发表于 2025-5-15 16:01:56

梁工 发表于 2025-5-15 13:17
你可以参考我的例子,里面的时钟设置。

Ai8051U实现USB全双工声卡,同时 录音/ 放 音,微信通话/腾讯会议 ...

好的,谢谢!

patch1582 发表于 2025-6-6 20:58:55

学到了
页: 1 [2]
查看完整版本: Ai8051U的I2S外设时钟问题