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.

[参考译文] AM5728:音频编解码器 TLV320AIC3212设备在除44100Hz 外的任何频率下均无法正常工作

Guru**** 1144270 points
Other Parts Discussed in Thread: TLV320AIC3212, AM5728
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1068109/am5728-audiocodec-tlv320aic3212-device-is-not-working-with-any-frequency-except-44100hz

部件号:AM5728
线程中讨论的其他部件: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 上播放时,它会被破坏。 我是对的吗?

请对上述问题提供解决办法。

此致  

萨希尔·卡拉

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好,

    这是一个温和的提醒,请您回答问题。

    此致

    萨希尔·卡拉

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好,

    这是一个温和的提醒,请您回答问题。

    此致

    萨希尔·卡拉