|
1:控制代码如下:
AUDIO_MakeSine16bit((int16_t *)wav_file_buffer,2000,22050,22050*2);
AUDIO_Stop();
wm8978_Init();
tx_thread_sleep(20);
wm8978_SetSpkVolume(0);
wm8978_CfgAudioPath(DAC_ON, EAR_LEFT_ON|EAR_RIGHT_ON|SPK_ON);
wm8978_SetEarVolume(20);
wm8978_SetSpkVolume(40);
wm8978_CfgAudioIF(0/*I2S_Standard_Phillips*/,16);
AUDIO_Init(1,0,SAI_DATASIZE_16,22050);
AUDIO_Play((int16_t *)wav_file_buffer,22050*2);
FOR_EACH_0(I,1000)
{
AUDIO_Poll();
tx_thread_sleep(1);
}
AUDIO_Stop();
wm8978_Init();
2) AUDIO_MakeSine16bit使用测试数据
void AUDIO_MakeSine16bit(int16_t *_outbuf, uint32_t _sin_freq, uint32_t _sample_freq, uint32_t _count)
{
for (int i = 0; i < _count / 4; i++)
{
_outbuf[2 * i] = 0x5555;
_outbuf[2 * i + 1] = 0x0505;
}
}
3) 总线上数据如下,
CH1: MCLK
CH2: FS
CH3: SCK
CH4: SD
整体数据
SD不定时会有一段时间输出0,持续时间不一定,大致在10~35ms之间
参考
4)局部正确的数据如下,数据符合生成的预期
请大佬们看下,可能是什么原因导致的,谢谢~~
|
|