硬件采用STM32F103RE+CS4344,采用I2S3通道master模式,DAM传输方式,播放WAVE文件,无法输出音乐,而是一直都是杂音,目前只播放了44.1K采样率双声道文件
I2S配置
/* I2S peripheral configuration */
I2S_InitStructure.I2S_Standard = I2S_Standard_Phillips;
I2S_InitStructure.I2S_DataFormat = I2S_DataFormat_16b;
I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput_Enable;
I2S_InitStructure.I2S_AudioFreq = I2S_AudioFreq_44k;
I2S_InitStructure.I2S_CPOL = I2S_CPOL_Low;
I2S_InitStructure.I2S_Mode = I2S_Mode_MasterTx;
I2S_Init(CODEC_I2S_PORT, &I2S_InitStructure);
/* DMA Channel configuration ----------------------------------------------*/
DMA_Cmd(CODEC_I2S_DMA, DISABLE);
DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)(&(CODEC_I2S_PORT->DR));
DMA_InitStructure.DMA_MemoryBaseAddr = (u32) addr;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize = size;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(CODEC_I2S_DMA, &DMA_InitStructure);
/* Enable SPI DMA Tx request */
SPI_I2S_DMACmd(CODEC_I2S_PORT, SPI_I2S_DMAReq_Tx, ENABLE);
DMA_ITConfig(CODEC_I2S_DMA, DMA_IT_TC, ENABLE);
DMA_Cmd(CODEC_I2S_DMA, ENABLE);
用示波器测量,LRCK波形正确,单个L或者R下面有16个SCK,每个SCK下面有8个MCLK,并且符合I2S格式,数据在LR边沿后第2个SCK上升沿锁存,播放时间也是对的,但是就是不出正常的音乐声,全是咋音,有没有人遇到过同样的问题?官方也有个IAR开发板电路图也是接的CS4344。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
好多年前的帖子了,已经忘了当时是怎么解决的,你也遇到同样的问题了?
是的,最近项目上需要用到语音播报,就选了DMA+cs4344 DAC,输出有时候会有杂音
能否帮忙再想想[可怜]……
很多年前从CS4334切换到CS4344也遇到过这个问题,但是一直无解,就换回CS4334了……
一周热门 更多>