本人依据 AM335x General Purpose EVM Board 设计了一块基板,上面的音频芯片为tlv320aic3106,控制板为Beaglebone。固件为TI提供的linux-3.2.0-psp04.06.00.10,经过一段时间调试,tlv320aic3106终于可以发出声音了,但无论如何也无法进行录音。请问各位大神,该如何对内核进行修改呢?万分感谢。
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.
本人依据 AM335x General Purpose EVM Board 设计了一块基板,上面的音频芯片为tlv320aic3106,控制板为Beaglebone。固件为TI提供的linux-3.2.0-psp04.06.00.10,经过一段时间调试,tlv320aic3106终于可以发出声音了,但无论如何也无法进行录音。请问各位大神,该如何对内核进行修改呢?万分感谢。
我和你的问题一样啊。 开始录音,及调试信息如下:
[root@me share]# aplay -C -t wav -c 2 -r 44100 -f S16_LE -d 10 -v record.wav
[ 1917.347137] davinci-mcasp davinci-mcasp.1: ---wxj---davinci_mcasp_startup
Recording WAVE 'record.wav' : Signed 16 bit Litt[ 1917.359069] tlv320aic3x-codec 3-001b: ---wxj---sound/soc/codecs/tlv320aic3x.c aic3x_hw_params()
le Endian, Rate [ 1917.368530] tlv320aic3x-codec 3-001b: ---wxj--- SNDRV_PCM_FORMAT_S16_LE
44100 Hz, Stereo[ 1917.376831] tlv320aic3x-codec 3-001b: ---wxj--- params_rate:44100
[ 1917.384582] tlv320aic3x-codec 3-001b: ---wxj---snd_soc_write AIC3X_GPIOB_REG, AIC3X_PLL_PROGA_REG,AIC3X_PLL_PROGA_REG
[ 1917.396423] davinci-mcasp davinci-mcasp.1: ---wxj--, davinci_hw_param(), Set AHCLKRCTL_REG
[ 1917.405426] tlv320aic3x-codec 3-001b: ---wxj--- aic3x_set_power
[ 1917.411621] tlv320aic3x-codec 3-001b: ---wxj--- power is truePlug PCM: Hardware PCM card 0 'AM335X EVM' device 0 subdevice 0
Its setup
[ 1917.458404] davinci-mcasp davinci-mcasp.1: ---wxj--, davinci_mcasp_trigger() data:
[ 1917.466278] davinci-mcasp davinci-mcasp.1: ---wxj---, transmits sound data
[ 1917.473449] davinci-mcasp davinci-mcasp.1:
[ 1917.477813] davinci-mcasp davinci-mcasp.1: ---wxj--, davinci_mcasp_start()
[ 1917.485015] davinci-mcasp davinci-mcasp.1: ---wxj--, mcasp_start_rx()
is:
stream : CAPTURE
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 32768
period_size : 2048
period_time : 46439
tstamp_mode : NONE
period_step : 1
avail_min : 2048
period_event : 0
start_threshold : 1
stop_threshold : 32768
silence_threshold: 0
silence_size : 0
boundary : 1073741824
appl_ptr : 0
hw_ptr : 0
[ 1927.523956] davinci-mcasp davinci-mcasp.1: ---wxj--, davinci_mcasp_trigger() data:
[ 1927.531890] davinci-mcasp davinci-mcasp.1: ---wxj---, transmits sound data
[ 1927.539062] davinci-mcasp davinci-mcasp.1:
[ 1927.543395] davinci-mcasp davinci-mcasp.1: ---wxj--, davinci_mcasp_stop()
[ 1927.550506] davinci-mcasp davinci-mcasp.1: ---wxj--, mcasp_stop_rx()
[ 1927.558532] tlv320aic3x-codec 3-001b: ---wxj--- aic3x_set_power
[ 1927.564758] tlv320aic3x-codec 3-001b: ---wxj--- power is false
播放过程及调试信息:
[root@me share]# aplay record.wav
[ 1935.303894] davinci-mcasp davinci-mcasp.1: ---wxj---davinci_mcasp_startup
Playing WAVE 'record.wav' : Signed 16 bit Little[ 1935.316070] tlv320aic3x-codec 3-001b: ---wxj---sound/soc/codecs/tlv320aic3x.c aic3x_hw_params()
Endian, Rate 44[ 1935.325500] tlv320aic3x-codec 3-001b: ---wxj--- SNDRV_PCM_FORMAT_S16_LE
100 Hz, Stereo
[ 1935.333831] tlv320aic3x-codec 3-001b: ---wxj--- params_rate:44100
[ 1935.341613] tlv320aic3x-codec 3-001b: ---wxj---snd_soc_write AIC3X_GPIOB_REG, AIC3X_PLL_PROGA_REG,AIC3X_PLL_PROGA_REG
[ 1935.353363] davinci-mcasp davinci-mcasp.1: ---wxj--, davinci_hw_param(), Set _AHCLKXCTL_REG
[ 1935.362548] tlv320aic3x-codec 3-001b: ---wxj--- aic3x_set_power
[ 1935.368865] tlv320aic3x-codec 3-001b: ---wxj--- power is true
[ 1935.410888] davinci-mcasp davinci-mcasp.1: ---wxj--, davinci_mcasp_trigger() data:
[ 1935.418823] davinci-mcasp davinci-mcasp.1: ---wxj---, transmits sound data
[ 1935.426025] davinci-mcasp davinci-mcasp.1:
[ 1935.430419] davinci-mcasp davinci-mcasp.1: ---wxj--, davinci_mcasp_start()
[ 1935.437622] davinci-mcasp davinci-mcasp.1: ---wxj--, stream == SNDRV_PCM_STREAM_PLAYBACK
[ 1935.446105] davinci-mcasp davinci-mcasp.1: ---wxj--,dev->base=fa03c000
[ 1935.453033] davinci-mcasp davinci-mcasp.1: ---wxj-- flush and enable FIFO
[ 1935.460235] davinci-mcasp davinci-mcasp.1: ---wxj--, mcasp_start_tx()
[ 1935.467010] davinci-mcasp davinci-mcasp.1: ---wxj---, mcasp_start_tx(),num_serializer = 16
[ 1935.475677] davinci-mcasp davinci-mcasp.1: ---wxj---, mcasp_start_tx(),serial_dir[2] = TX_MODE
[ 1935.484710] davinci-mcasp davinci-mcasp.1: ---wxj---, mcasp_start_tx() wait for TX ready ......
[ 1935.493865] davinci-mcasp davinci-mcasp.1: ---wxj---, Tx ready cnt=118
[ 1945.497863] davinci-mcasp davinci-mcasp.1: ---wxj--, davinci_mcasp_trigger() data:
[ 1945.505828] davinci-mcasp davinci-mcasp.1: ---wxj---, transmits sound data
[ 1945.513031] davinci-mcasp davinci-mcasp.1:
[ 1945.517425] davinci-mcasp davinci-mcasp.1: ---wxj--, davinci_mcasp_stop()
[ 1945.524536] davinci-mcasp davinci-mcasp.1: ---wxj--, stream == SNDRV_PCM_STREAM_PLAYBACK
[ 1945.533020] davinci-mcasp davinci-mcasp.1: ---wxj-- disable FIFO
[ 1945.539428] davinci-mcasp davinci-mcasp.1: ---wxj--, mcasp_stop_tx()
[root@me share]# [ 1950.556579] tlv320aic3x-codec 3-001b: ---wxj--- aic3x_set_power
[ 1950.562774] tlv320aic3x-codec 3-001b: ---wxj--- power is false
结果,没有声音