1.简介
这节的音频输入输出主要围绕tms320c6748芯片来说。
2.原理图
音频输入输出主要使用芯片TLV320AIC3106IRGZ,所以能当AD与DA使用,原理图如下图所示:

讲解一下这款芯片:
DA:
1.102-dBA S/N
2.支持16/20/24/32 bit数据
3.支持8k~96khz信号
AD:
1.92-dBA S/N
2.支持8k~96khz信号
然后说明一些比较重要的寄存器:
1.寄存器2,配置ad与da的采样率
2.寄存器3,配置PLL的使能与P和Q值
3.寄存器102,选择使用MCLK,GPIO2,BCLK作为时钟输入与分频
4.寄存器101,选择CODEC_CLKIN源
5.寄存器98,选择GPIO1控制寄存器
6.寄存器4,PLL J设置
7.寄存器5,6,配置PLL
8.寄存器11,配置PLL R值
9.寄存器8,配置时钟是主还是从模式
10.寄存器7,配置参考采样率与DA对应输出通路
11.寄存器15,16,配置声道的增益
12.如果是line in,配置寄存器17,18,19,22
13.如果是mic in,配置寄存器19,22,17,18,25
3.CPU端配置
a.配置I2S
1.使用PSC模块使能McASP
2.复位McASP的发送
3.如果使用dma方式传输,则设置fifo
4.设置i2s的位宽与通道数
5.设置帧信号
6.配置时钟与有效边沿信号
7.配置发送时钟极性
8.配置同步信号
9.配置McASP发送接收引脚
10.使能外部时钟
11.启动串行器
12.使能状态机
4.音频处理
使用创龙的开发板,其提供了相应的例子程序,例如AUDIO_LINE_IN,不过其对音频的处理部分比较粗糙,直接将输入的数据拷贝到输出的数据缓冲区,这里面看不到左右声道在哪个位置。
我这里点明一点,它是按照字节接收的,所以如果要按照16位接收,必须做拼接。左右声道共4个字节,输出也是一样,然后它默认的代码是先右声道数据然后是左声道数据。如果要修正,只需要将代码里面写的上升沿改为下降沿即可。
网友评论