1、首先有一个可用的驱动模板,程序框架正常即可,这里只讲TLV320AIC3101IRHBT芯片相关设置
2、在现有的音频驱动中,需要实现的接口函数如下:
AIC23B_Init --- 初始化音频芯片的
AIC23B_Deinit -- 卸载音频
AIC23B_StartAdc -- 开始录音,打开录音部分电源
AIC23B_StopAdc -- 停止录音 ,关闭录音部分power
AIC23B_StartDac -- 开始放音,打开放音部分电源
AIC23B_StopDac - 停止放音,关闭放音部分电源
AIC23B_SetAdcVol -- 设置录音音量
AIC23B_SetDacVol -- 设置放音音量
3、在Freescale A9wince系统上,录音使用的是14(MIC2L/LINE2L/MICDET)和16(MIC2R/LINE2R); 放音使用的是19(HPLOUT)和23(HPROUT)
通道设置上,需要与硬件一致。在datasheet上可以看得出芯片内部结构如下
4、解读芯片寄存器设置
TLV320AIC3101IRHBT寄存器共分两组:page0和page1,每页127个寄存器, 我们需要关心的主要是page0的127个寄存器
page0中寄存器,按照功能分类如下:
page选择: register 0
复位: register 1
配置采样率: register 2 3 4 5 6 7 11
配置数据格式: register 8 9 10
录音ADC音量增益: register 15 16
输入通道设置: regisert 17 ~ 35
输出通道设置: register 37 ~89
输出音量设置:register 43 44
时钟设置: register 101 102
5、调试音频时,需要注意的地方
调试放音时,
a,放音音量默认设置为最大
b,cpu输出的i2s数据,位宽等要与音频芯片中的设置对等
c,注意通道的选择,硬件上连接的通道与软件寄存器设置的通道要对的上
调试录音时,
a,录音的增益调至最大
b,录音时,mic部分不能有悬空的引脚,否则会出现杂音的。
6、调试技巧
IIC调试
a,可以尝试向音量控制寄存器写入音量,在读出,若都ok的话,则证明iic通讯异常
录音/放音有杂音,放音无声音
a,用逻辑分析仪测试I2S总线,在放音时左声道,右声道的数据应该是一致的,否则需要检查reg10的设置与处理器输出数据设置的关系
b,录音时,测试I2S总线,录音的左右声道数据也应该是一致的,可与手册中的I2S波形进行对比,查找原因。
阅读(3655) | 评论(0) | 转发(0) |