This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于linux 2.6.37下dm368+tlv320aic3101不能录音的问题(mcbsp的din管脚有信号,DRR寄存器读到的数据都是0 )

Other Parts Discussed in Thread: TLV320AIC3101


问题描述  (附件是驱动源码)

内核版本 : linux 2.6.37
硬件环境 : dm368_ipnc+tlv320aic3101, using  DSP B mode


问题背景:  dm368_ipnc+tlv320aic3101通过mcbsp通信,采用的是DSP mode,即kernel 37 sound/soc/codec/tlv320aic3x.c中描述的DSP B mode,

codec芯片作为主时钟,即 #define AUDIO_FORMAT (SND_SOC_DAIFMT_DSP_B |SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_IB_NF)

问题描述:

现在的问题是录音的时候,我可以量到Mcbsp的DIN管脚上是有信号的,并且时钟与帧信号也与数据手册上是相符合的,但DRR寄存器读到的数据都是0 导致我无法录音
(播放是没有问题的)

但在kernel linux 2.6.32 下是可以录音的,证明硬件电路是好的

我是在sound/soc/davinci/davinci_i2s.c的davinci_i2s_trigger里davinci_mcbsp_start启动之后用davinci_mcbsp_read_reg读的DRR寄存器。

Mcbsp寄存器的值
drr [0x0]
dxr [0x0]
spcr [0x2000031]
rcr [0x1440140]
xcr [0x0]
pcr [0x0]


TLV320AIC3101寄存器的值

reg[0]=[0x0]
reg[1]=[0x80]
reg[2]=[0x0]
reg[3]=[0x92]
reg[4]=[0x1c]
reg[5]=[0x2c]
reg[6]=[0x4]
reg[7]=[0xa]
reg[8]=[0xc0]
reg[9]=[0x40]
reg[10]=[0x0]
reg[11]=[0x1]
reg[12]=[0x0]
reg[13]=[0x0]
reg[14]=[0x0]
reg[15]=[0x20]
reg[16]=[0x20]
reg[17]=[0xff]
reg[18]=[0xff]
reg[19]=[0x0]
reg[20]=[0x78]
reg[21]=[0x78]
reg[22]=[0x0]
reg[23]=[0x78]
reg[24]=[0x78]
reg[25]=[0x0]
reg[26]=[0x0]
reg[27]=[0xfe]
reg[28]=[0x0]
reg[29]=[0x0]
reg[30]=[0xfe]
reg[31]=[0x0]
reg[32]=[0x18]
reg[33]=[0x18]
reg[34]=[0x0]
reg[35]=[0x0]
reg[36]=[0x0]
reg[37]=[0x0]
reg[38]=[0x0]
reg[39]=[0x0]
reg[40]=[0x0]
reg[41]=[0x0]
reg[42]=[0x0]
reg[43]=[0xaf]
reg[44]=[0xaf]
reg[45]=[0x2f]
reg[46]=[0x2f]
reg[47]=[0xaf]
reg[48]=[0x0]
reg[49]=[0x0]
reg[50]=[0x0]
reg[51]=[0xc]
reg[52]=[0x2f]
reg[53]=[0x2f]
reg[54]=[0xaf]
reg[55]=[0x0]
reg[56]=[0x0]
reg[57]=[0x0]
reg[58]=[0xc]
reg[59]=[0x0]
reg[60]=[0x0]
reg[61]=[0x0]
reg[62]=[0x2f]
reg[63]=[0x2f]
reg[64]=[0xaf]
reg[65]=[0xc]
reg[66]=[0x0]
reg[67]=[0x0]
reg[68]=[0x0]
reg[69]=[0x2f]
reg[70]=[0x2f]
reg[71]=[0xaf]
reg[72]=[0xc]
reg[73]=[0x2f]
reg[74]=[0x2f]
reg[75]=[0xaf]
reg[76]=[0x2f]
reg[77]=[0x2f]
reg[78]=[0xaf]
reg[79]=[0x8]
reg[80]=[0x2f]
reg[81]=[0x2f]
reg[82]=[0xaf]
reg[83]=[0x0]
reg[84]=[0x0]
reg[85]=[0x0]
reg[86]=[0x8]
reg[87]=[0x0]
reg[88]=[0x0]
reg[89]=[0x0]
reg[90]=[0x2f]
reg[91]=[0x2f]
reg[92]=[0xaf]
reg[93]=[0x8]
reg[94]=[0x0]
reg[95]=[0x0]
reg[96]=[0x0]
reg[97]=[0x0]
reg[98]=[0x0]
reg[99]=[0x0]
reg[100]=[0x0]
reg[101]=[0x0]
reg[102]=[0x2]
reg[103]=[0xff]

我的QQ是156387178,请TI的大神以及各路豪杰帮忙解决一下呗

dm368_aic3101.tar.gz