CC2564MONEM+CC2564XEM+STM32DISCOVERY A3DP SNK音频失真
请赐教:
如此,我用上述标准配置,结合SWRU416和SWRU417及ti官方提供的基于STM32F4的CC2564协议栈,
在A3DP SNK例子下(ti提供的是在STM3240G-EVAL开发板上),修改了AUDIOCFG.h下的i2s相关接口,
/*STM3240G-EVAL*/
//#define AUDIO_I2S 2
//#define AUDIO_I2S_WS_PORT B
//#define AUDIO_I2S_WS_PIN 12
//#define AUDIO_I2S_SCK_PORT B
//#define AUDIO_I2S_SCK_PIN 13
//#define AUDIO_I2S_SDO_PORT B
//#define AUDIO_I2S_SDO_PIN 15
//#define AUDIO_I2S_MCK_PORT C
//#define AUDIO_I2S_MCK_PIN 6 /*EVM*/
修改成了如下,
/*STM32Discovery*/
#define AUDIO_I2S 3
#define AUDIO_I2S_WS_PORT A
#define AUDIO_I2S_WS_PIN 4
#define AUDIO_I2S_SCK_PORT C
#define AUDIO_I2S_SCK_PIN 10
#define AUDIO_I2S_SDO_PORT B
#define AUDIO_I2S_SDO_PIN 5
#define AUDIO_I2S_MCK_PORT C
#define AUDIO_I2S_MCK_PIN 7
#define AUDIO_DBG_PORT G
#define AUDIO_DBG_PIN 2
#define MCO2_OUT_PIN 9
#define ADC3_MIC_PIN 10
并且
/* The following function is the interrupt request handler for the */
/* I2S interface. */
void AUDIO_I2S_IRQ_HANDLER(void)
{
/*STM3240G-EVAL*/
//SPI_I2S_SendData(SPI2, 0x00);
类似的地方都修改成了
/*STM32Disvovery*/
SPI_I2S_SendData(SPI3, 0x00);
if(AUDIO_Context.hfpAudio)
{
right_sample = readADC3(8);
}
},
运行,iphone6s下能找到蓝牙设备,连接,用百度音乐播放一声歌,
在stm32f4discovery的电路板上查耳机能提到歌曲,但是失真很严重,基本就能听出一点调,到是没有杂音,
其他暂停等ACRCP控制指令也正常,不知道是什么原因?新手刚玩,估计还有扣没有解开,一直找不到,我试了两套,都是如此,
三个板子应该是没有问题,软件还需要改其他的地方吗?彻底懵了?请各位指点迷津,小弟不甚感激呀。
各位TI员工:
请帮忙看看吧,小弟实在是找不到原因了,公司项目上想用CC2564,小弟也是刚开始接触,跪谢了!
估计要调PCM接口的设置。
在bts文件里面添加HCI_VS_Write_CODEC_Config命令去配置。具体的PCM的设置需要根据主平台的PCM配置来调试。
例子:
# ----------------- Codec configuration -------------------------------------------------------------------------------------
# Codec configuration - I2S to BT:
Send_HCI_VS_Write_CODEC_Config 0xFD06, 0x0200, 0x00, 0x00003e80, 0x0001, 0x01, 0x01, 0x00, 0x0010, 0x0001, 0x01, 0x0010, 0x0001, 0x00, 0x00, 0x0010, 0x0011, 0x01, 0x0010, 0x0011, 0x00, 0x00
Wait_HCI_Command_Complete_VS_Write_CODEC_Config_Event 5000, 0x00, 0xfd06, 0x00