工具/软件:TI C/C++编译器
大家好、TI!
请帮帮我
我使用 WiFi 音频应用示例、我需要更改音频编解码器的配置。 我尝试重现的声音具有8KHz 8位单声道的参数。
我尝试使用以下参数:
PLL_J = 40
PLL_R = 6
PLL_P = 1
PLL_D = 0
NDAC = 12
MDAC = 10
DOSR = 128
NADC = 12
mAdc = 10
AOSR = 128
使用这些参数、我可以听到具有16kHz 描述频率的声音、但无法听到具有8kHz 描述频率的声音。 我听到的不是8kHz 的声音、而是令人讨厌的噪声。 我尝试重现8位8kHz 单声道声音、并使用此音频编解码器配置:
audiocodec.c:
int AudioCodecConfig (unsigned char codecId、unsigned char bitsPerSample、unsigned short bitrate、 unsigned char noOfChannels、unsigned char 扬声器、unsigned char mic) { unsigned int bitClk = 0; if (codecId = audio_codec_TI_3254) { AudioCodecPageSelect (TI3254_PAGE_0); if (bitsPerSample = AUDIO_CODE_8_BIT)//AUDIO_CODE_16_BIT { //设置 I2S 模式和字长 AudioCodecRegWrite (TI3254_AUDIO_IF_1_REG、0x00); } 其他 { 返回-1; } bitClk = 64000; if (bitClk =64000)//512000 { AudioCodecPageSelect (TI3254_PAGE_0); AudioCodecRegWrite (TI3254_CLK_MUX_REG、0x03); // PLL 时钟为 CODE_CLKIN 0x03 AudioCodecRegWrite (TI3254_CLK_PLL_P_R_REG、0x96);// PLL 上电、P=1、R=6 AudioCodecRegWrite (TI3254_CLK_PLL_J_REG、0x28); // J=40 AudioCodecRegWrite (TI3254_CLK_PLL_D_MSB_REG、0x00);// D = 0 AudioCodecRegWrite (TI3254_CLK_NDAC_REG、0x8C); // NDAC 分压器加电,NDAC = 12 AudioCodecRegWrite (TI3254_CLK_MDAC_REG、0x8A); // MDAC 分频器加电,MDAC = 10 AudioCodecRegWrite (TI3254_DAC_OSR_MSB_REG、0x00);// DOSR = 0x0080 = 128 AudioCodecRegWrite (TI3254_DAC_OSR_LSB_REG、0x80);// DOSR = 0x0080 = 128 AudioCodecRegWrite (TI3254_CLK_NADC_REG、0x8C); // NADC 分压器加电,NADC = 12 AudioCodecRegWrite (TI3254_CLK_mAdc_REG、0x8A); // mAdc 分频器加电、mAdc = 10 AudioCodecRegWrite (TI3254_ADC_OSR_REG、0x80); // AOSR = 128 ((与 PRB_R1配合使用到 PRB_R6、ADC 滤波器类型 A) } 其他 { 返回-1; } //配置电源 AudioCodecPageSelect (TI3254_PAGE_1); //选择第1页 AudioCodecRegWrite (TI3254_PWR_CTRL_REG、0x08);//禁用 AVDD 与 DVDD 的弱连接 AudioCodecRegWrite (TI3254_LDO_CTRL_REG、0x01);//为 AVDD LDO 检测到过流 AudioCodecRegWrite (TI3254_ANALOG_IP_QCHRG_CTRL_REG、0x32);//模拟输入加电时间为6.4ms AudioCodecRegWrite (TI3254_REF_PWR_UP_CTRL_REG、0x01);//当模拟块加电时,基准将在40ms 内加电
主:
AudioCodecReset (audio_codec_TI_3254、空); //配置音频编解码 器 AudioCodecConfig (audio_codec_TI_3254、audio_codec_8_bit、8000、 Audio_codec_Mono、audio_codec_speaker_all、 AUDIO_CODE_MIC_NONE)
I2S_if.c:
void AudioCaptureRenderConfigure (unsigned char bitsPerSample、 无符号短比特率、 unsigned char noOfChannels、 unsigned char RxTx、 unsigned char DMA) { unsigned long bitClk; bitClk = bitsPerSample * bitrate * noOfChannels; IF (DMA) { if (bitsPerSample = 8) { MAP_PRCMI2SClockFreqSet (5120000); MAP_I2SConfigSetExpClk (I2S_base、5120000、512000、I2S_SLOT_SIZE_16| I2S_PORT_DMA); } } IF (RxTx = I2S_MODE_RX_TX) { MAP_I2SSerializerConfig (I2S_base、I2S_DATA_LINE_1、I2S_SER_MODE_RX、 I2S_INACT_LOW_LEVEL); } IF (RxTx 和 I2S_MODE_TX) { MAP_I2SSerializerConfig (I2S_base、I2S_DATA_LINE_0、I2S_SER_MODE_TX、 I2S_INACT_LOW_LEVEL); } }
在这里、我为完成任务所做的所有更改。 但每次我听到16位16kHz 立体声、而不是8位8kHz 单声道。 可能是什么问题、任何建议都会帮助我
感谢你的帮助。
乔治