线程中讨论的其他部件:TLV320AIC3212,
您好,
我们正在将 TLV320AIC3212音频编解码器与基于 AM5728的自定义板进行移植,并使用 AudioCodec 3262驱动程序文件(如论坛3262文件中所建议的,可用于3212音频编解码器)。
e2e.ti.com/.../tlv320aic326x.c
e2e.ti.com/.../tlv320aic326x.h
观察结果:
1. 在使用 arecord(无 频率 16000/22050 Hz 频率)命令录制任何输入时,录制的文件 sample.wav 将使用 aplay 命令在同一 SOC 上播放,但它正在播放录制的声音,但噪音太大。 但是,当将同一文件传输到笔记本电脑/电脑时,该文件无法正常播放,并且记录的文件 sample.wav 的持续时间也会增加。
2.如果使用44100 Hz 进行相同的观测,则在同一 SoC 上以及在 PC/笔记本电脑上也能正常工作。
此外,在使用 arecord 命令以16000 Hz 频率录制任何输入时,内部似乎以11025 Hz 的频率录制。 请查看以下日志:
root@am57xx-evm:~# arecord -f cd -c 1 -r 16000 /home/root/bin/sample.wav Recording WAVE '/home/root/bin/sample.wav' : [ 106.298553] [ 106.298553] Inide soc_dai_hw_params Signed 16 bit Little Endian, Rate 16000 Hz, Mono [ 106.305518] #aic3262_multi_i2s_hw_params: Invoked for ASI1 Port for Record Mode [ 106.317622] #aic3262_get_divs: Found Entry 6 in Clock_Array [ 106.323218] rate = 11025 [ 106.327818] starting i2c_verify [ 106.332707] Resetting page to 0 [ 106.337557] #aic3262_set_bias_level: Codec Active 1[0] [ 106.343316] #aic3262_multi_i2s_hw_params: None of the ASIs active yet... [ 106.350747] # reading NDAC = 8 , NDAC_DIV_POW_REG = 1 [ 106.356110] # writing NDAC = 8 , NDAC_DIV_POW_REG = 8 [ 106.361302] # reading MDAC = 8 , MDAC_DIV_POW_REG = 4 [ 106.367780] # writing MDAC = 8 , MDAC_DIV_POW_REG = 8 [ 106.372949] # writing DOSR_MSB_REG = 0 [ 106.377088] # writing DOSR_LSB_REG = 128 [ 106.381124] # writing NADC_DIV_POW_REG = 8 [ 106.385660] # writing MADC_DIV_POW_REG = 8 [ 106.389872] # writing AOSR = 128 [ 106.393308] #aic3262_multi_i2s_hw_params: Reading Pg 4 Reg 1 for Bus Format Control. [ 106.401582] #aic3262_multi_i2s_hw_params: Configuring ASI1 S16_LE Fmt.. [ 106.408775] #aic3262_set_bias_level: Codec Active 1[0] [ 106.414766] aic3262_asi1_clk_config: Invoked [ 106.419151] [ 106.419151] wclk output control reg = 80 [ 106.425505] [ 106.425505] Inide soc_dai_hw_params [ 106.430676] davinci-mcasp 48468000.mcasp: Too fast reference clock (24000000) [ 106.438536] davinci-mcasp 48468000.mcasp: Sample-rate is off by 400 PPM [ 106.446078] #aic3262_set_bias_level: Codec Active 1[1] [ 106.452096] #aic3262_set_bias_level: Codec Active 1[1] [ 106.457565] #aic3262_set_bias_level: Another Stream Active. No STANDBY [ 106.464260] #aic3262_set_bias_level: Codec Active 1[1]
查询:
1.为什么设备不能与44100 Hz 以外的任何其它频率一起工作?
由于将 sample.wav 录制文件传输到 PC/笔记本电脑后,其持续时间会增加,从内部看,它实际上仅以44100 Hz 的频率录制,但在音频文件元数据中,它存储作为参数传递的频率值,例如16000或22050Hz, 这就是为什么在 PC 上播放时,它会被破坏。 我是对的吗?
请对上述问题提供解决办法。
此致
萨希尔·卡拉