最近在调试DM365+AIC3101音频的问题,使用内核是LINUX 2.6.18, 采用MIC输入. 立体声已经可以正常采集.但是我现在想使用单声道采集声音,这款芯片是否支持?有哪些寄存器需要配置 ?
谢谢!!
Derek Xie:
你好:
AIC3101立体声采集没有问题那说明单声道也没有问题。只需要将其中一端的输入不连接即开。
liu danly:
回复 Derek Xie:
谢谢DEREK的回复,我的原理图见附件.实际上我现在应用层PCM的设置都是使用的单声道的,但是出来的数据是立体声的.我把PCM数据保存播放,要选择立体声才能正常,对音频这一块我不懂,想请教一点就是单单从硬件上接单声道就可以了吗?AIC3101这端不需要再进行其他配置了?为什么我设置的单声道出来的声音要使用立体声才能正常播放.
谢谢!!
Derek Xie:
回复 liu danly:
你好:
要从硬件软件两方面配置,首先硬件连接成单端的方式,软件配置根据你的需要配置。你说选择立体声是指配置的哪里?你的输出是哪里输出?
liu danly:
回复 Derek Xie:
这个是我的原理图的接法.
驱动我使用的DM365默认内核的驱动 TLV320AIC3X.C,见附件.我只修改了输入部分的配置,MIC3L/R -> L-PGA和AGC,其他的
我都没有动过.见附件键我在TLV320AIC3101 芯片的DATASHEET里面没有看到关于设置MONO相关的寄存器,全靠猜测试.
应用层音频相关的配置如下,之前使用DM365内置音频CODEC的时候这程序是可以正常工作的,采集的数据为单声道.
/* Signed 16-bit little-endian format */snd_pcm_hw_params_set_format(pPcm->pPcmCaptureFd, pPcm->pcmHwParamsCapture, SND_PCM_FORMAT_S16_LE);
/* Two channels (stereo) / One channles (Mono) */channels = 1;snd_pcm_hw_params_set_channels(pPcm->pPcmCaptureFd,pPcm->pcmHwParamsCapture, channels);
但我 snd_pcm_readi 读到的数据保存成文件之后,播放要使用立体声才能正常,使用单声道就不正常.
现在我的问题是,在驱动里面应该如果配置寄存器,才能让我采集的音频数据出来就是单声道的数据.
DATASHEET中有提过把一边的ADC关掉,但是我试过了还是不行,希望你能给出一个参考寄存器的值.
谢谢!!
Derek Xie:
回复 liu danly:
你好:
你的MIC是接在MIC2L/R上的,你改MIC3L/R没用哦。你的连接方式只连接HPL不就是mono了?还是你要差分的输出?
liu danly:
回复 Derek Xie:
不意思,昨天没有给头文件,实际上那个寄存器的宏是对应的MIC2R/L的,见附件头文件.
我是想采集(record)的数据是mono的,播放也是MONO的.
我没有找到对应设置的寄存器,17和18设置是否正确.麻烦你帮我看一下应该怎么配置.
另你那有没有针对 AIC3101的LINUX驱动,或者寄存器的配置指导文档.可否发我一份.我对音频非常的不了解.
谢谢!!
Derek Xie:
回复 liu danly:
你好:
如果你要单端,软件配置方法:
配置信号只进入一个ADC,MIC2L/LINE2L 0000: Input level control gain = 0 dB. MIC2R/LINE2R is not connected to the left-ADC PGA.
Register 17 为0x0F
另外一个ADC不连接:MIC2R/LINE2R is not connected to right-ADC PGA.
Register 18 为0xFF
硬件方法:
直接切断你要进入的信号源的线。
Yunjiang Zhao:
回复 Derek Xie:
请问如果 17. 18 都是FF代表什么?