我们将 TLV320AIC3268音频编解码器芯片用于具有8kHz 采样的单声道模式应用。
芯片使用:左 ADC IN1L 输入和通过 LOL 的左 DAC 输出、或通过 SPK 驱动器的右 DAC 输出。
为了进行测试、我们将1KHz 正弦波馈送到 IN1L 并在示波器中验证 DAC 输出。
左侧 ADC 的 ASI1数据输出使用 FPGA 环回到 ASI1左侧 DAC。 编解码器数字信号只与 FPGA 连接。
如果不启用 AGC、我们就会通过 LOL 从左侧 DAC 正确获得纯正弦输出。 我们要确保 ADC 输入电压不会增加到超过 ADC 满量程范围。 由于如果没有 AGC 实施、我们就会接收并正确发送正弦波输出、而没有任何削波、因此很明显、ADC 的正弦波输入小于其满量程范围。 我们对来自麦克风的语音信号进行了测试、没有任何问题。
对于 AGC 实现、我们遵循以下配置。
/* AGC 配置寄存器写入序列
第0页第0页
W 寄存器 R86/0x56、其中0xA0 /* AGC 被启用&目标电平被设定为-10dBFS
具有0x7E 的 W 寄存器 R87/0x57 /*左通道 ADC 迟滞为2dB &
左通道 AGC 噪声阈值为-90dB
带有0x50的 W 寄存器 R88/0x58 /*左声道 AGC 最大增益限制= 40dB
W 寄存器 R89/0x59以及0x10 /*左声道 AGC 启动时间= 5*32*(1/8kHz)=20ms。
ADC_FS = 8kHz
AGC 启动时间比例因子= 1
W 寄存器 R90/0x5A 与0x18 /*左声道 AGC 衰减时间= 7*512*(1/8kHz)=448ms
ADC_FS = 8kHz
AGC 衰减时间比例因子= 1
0x01的 W 寄存器 R91/0x5B /* 左声道 AGC 噪声去抖时间= 0
W 寄存器 R92/0x5C、具有0x01 /* 左通道 AGC 信号去抖时间= 0
/* AGC 配置状态寄存器读取
第0页第0页
R 寄存器 R93/0x5D 返回0x50 /*算法设置的 AGC 增益等于
最大增益限制。
R 寄存器 R45/0x2D 返回0x00 /*左 AGC 噪声阈值标志(粘滞)
0:信号功率大于噪声阈值
R 寄存器 R47/0x2F 返回0x00 /*左 AGC 噪声阈值标志(非粘滞)
R 寄存器 R42/0x2A 返回0x00 /*左 ADC 中无溢出
R 寄存器 R43/0x2B 返回0x00 /* ADC 饱和标志= 0
R 寄存器 R36/0x24返回0x60 /*左 AGC 增益状态:
左 ADC 中的增益等于左 AGC 中的最大允许增益
结果表明、无论设置的 PGA 上限是多少、AGC 都与 AGC 增益本身一样保持 PGA 上限。 我们观察到仅在峰值振幅处正弦波骤降、如图所示。 我们从 PGA 上限0x50开始、并逐步降低限值、直到变为0x12、以获得不会出现峰值骤降的合适正弦波。 在这种情况下、AGC 应用的增益也等于 PGA 增益上限。 现在、我们已经开始改变输入正弦波振幅。 预计 AGC 算法将起作用并保持目标电平。 但如果我们增加输入正弦波振幅、ADC 采样数据振幅也会增加。 这意味着 AGC 算法不能正常工作。 我们已尝试将目标电平降至-24dBFs 并将最大-5dBFs、但仍然面临问题。
请检查该问题、并提供有关调试位置的反馈。
此致
Hafiz Haja 