工具/软件:Code Composer Studio
你(们)好
我正在尝试制作一个使用 DMA 通过 I2S 总线从 AIC3204编解码器读取/写入 DSP 的应用。
我计划使用 CCS_v6.x_examples 中 的 CSL_I2S_AudioCodec_DMA 示例作为起点。
设置:
eZdsp 5535评估板。
Code Composer v8.1.0
我将 PC 连接到板上的插孔(麦克风)、并将一对耳机连接到插孔。
我已按照编辑 csl_general.h 头文件的说明进行操作、因此 删除了#define CHIP_C5517、而是 使用#define CHIP_C5535。
我已添加到 CODE_AIC3254.c:
/* ADC 路由和上电*/
AIC3254_Write (0、0x01、hi2c); //选择第1页
AIC3254_Write (51、0x48、hi2c); //使用 LDO-IN 为麦克风偏置加电
AIC3254_Write (0x34、 0x10、hi2c); //使用 LDO-IN 为麦克风偏置加电
我现在有直通音频、但质量是不可接受的。 音频噪声受频带限制且具有明显的伪影。
作为完整性检查、我已经尝试过 ezdsp5535_BSL_RevC 文件夹中的引导后应用程序、它具有音频回送例程、这里的音频非常完美。 但是、此示例不使用 DMA。
我怀疑 AIC3204编解码器设置不正确、但可能是错误的?
但是、如果我查看 Idleloop.h 文件、我会发现以下定义:
#define NUM_SAMP_PER_MS (16)//每毫秒样本数
#define NUM_MS_PER_FRAME (20)//每帧秒
这表明采样率旨在为16kHz、但主函数包含以下内容:
/*初始化 AIC3204编解码器*/
状态= AIC3254_INIT (48000、48000、PLL_MHz);
这表示编解码器应以48kHz 的频率运行。 但是 、AIC3254_INIT 函数实际上不使用前两个参数(48、48000、48000)、这对我来说更令人困惑。
期待收到能解决我的问题的任何建议。