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/PCM1865:AM3358 McASP 在记录时无数据

Guru**** 2547160 points
Other Parts Discussed in Thread: AM3358, PCM1865, TLV320DAC3100

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/602825/linux-pcm1865-am3358-mcasp-no-data-while-recording

器件型号:PCM1865
主题中讨论的其他器件:AM3358TLV320DAC3100

工具/软件:Linux

我们正在使用 AM3358模块和 PCM1865 ADC 来试用我们的定制板。

最初我们自行编写了 PCM186x 编解码器、但昨天发现了一个由 TI 编写的编解码器。 两者都具有相同的结果-无数据。 我们收到以下错误:

ASOC-simple-card sound:capture write error (DMA or IRQ trouble?)(ASOC-simple card 声音:捕获写入错误(DMA

使用示波器、我们可以看到数据来自 ADC。 我们尝试配置 I2S 和 DSP_b 格式、始终会得到相同的错误。

我们在同一电路板上将 DAC TLV320DAC3100连接到同一 McASP、当我们使用器件树启用 DAC 时、我们可以毫无问题地向耳机插孔输出声音。

这是 dmesg

[23.554856] pcm186x 1-004A:pcm186x_i2c_probe () i2c->addr=74
[23.561204] pcm186x 1-004A:pcm186x_probe ()
[23.561245] pcm18582 1-004A:1-004A 电源 AVDD 未找到、使用
Pcm186x 1稳压
器、pcm18566x 1 p004A] pcm18564A] pcm18564a]]未找到 pcm18546x 稳压器[23.004a] 1-004A 电源 IOVdd 未找到、使用虚拟稳压
器[23.606958] pcm186x 1-004A:编解码器寄存器1-004A
[23.606996] pcm186x 1-004A:ASOC:DAI 寄存器1-004A #1
[23.607003] pcm186x 1-004A:ASOC:23.606x 寄存器 DA1'p604a1'
p801cm186x 1'p804a1'p804a1' p804a1cm184a1'm [23.604a1cm186x 1'm:1001cm184a1'm:1004a1cm186x 1'm:
注册编解码



器'pcm186x.1-004A'[23.607026] pcm186x 1-004A:注册编解码器类型:3 [23.607743] ASOC-simple-card:名称:davio-McAP.0-pcm1865-aif [23.607757] ASOC-simple-card:格式:[23.60771001] ASOC-Simple card
:[23.60771001]简单音频卡:[ASOC-60770000.ASOC-1001] ASC-ASC-ASC-ASOC-ASC-ASCMOP-AS3765]简单音频卡:[23.60770000.ASC-ASC-ASCMOCCP-AS60771001]简单音频卡:
绑定 davinci-McASP/0-pcm1865-aif
[23.608009] pcm186x 1-004A:ASOC:添加 AIF 捕获小部件
[23.608021] pcm186x 1-004A:pcm186x 编解码器探针()
[23.608124] ASOC-simple card:ASOC-134:ASOc 0:简单音
频链路音
频卡[ASOC-DA-0:ASOc:ASOc:ASOc 末音频连接[23.608140:ASOC-DA] 探针 ADC Sound Dai link 0 late 0[23.608147]
ASOC-simple-card sound:ASOC:探针 ADC Sound Dai link 0 late 1[23.608153]
ASOC-simple-card sound:ASOC:探针 ADC Sound Dai link 0 late 2[23.608164]
pcm1812001-00k:pcm186x_set_spird_000=cl000_000_cl000_000=cl000_000_000_000=cl000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_
无法解析节点'/sound[0]'
的'sple-audio-card、hp-det-gpio'属性[23.608242] of _get_named_gpio_FLAGS:不能解析节点'/sound[0]的'sepule-audio-card、mic-det-gpgp1001'属性[23.608251]
pcm186x
damps [23.606x dama-c676x ea-c676x p186x pc.e1001.pc@p186x e1001.pc.e100b.phe-c@p186p186c@p186p186c@p186cm6c@p186cabc.p186c@p186cabc.p186c@p186c@p186c@p186cm6cm6c@p186cm6c@p186cm6cabc.

pcm186x_set_bias _level () level=1
[ 23.625638] pcm186x 1-004A:pcm186x_set_bias _level () level=2
[ 23.625694] pcm186x 1-004A:pcm186x_set_bias _level () level=3
[ 35.067176] pcm186x
1aC:pcm186x
= 3c = 3c:35.672c:3c.0674ac:pcm186x = 3c:3c.24x = 3c:3c.0674ac:3c.24x 3c.24c:3c.0674ac:3c:3c.24c:3c.0674ac:3c.0674ac:3c:3c.

最小速率8000最大速率192000
[ 35.072071] pcm186x 1-004A:pcm186x_HW_params () rate=48000 format=0x6 width=24 channels=4
[ 35.073089] pcm186x 1-004A:pcm186x_hw_params () master_clk=12000000_bocr2=4596 dma
或简单的 dma-rcr eq=2852 dma (eq=24div)简单的 dma:eq-cheoq=24e2_dr)

设备树配置

Sound{
compatible ="简单音频卡";
简单音频卡、name ="ADC Sound";

简单音频卡、小工具=
"线路"、"插孔1中的线路"、
"线路"、"插孔2中的线路"、
"线路"、"插孔3中的线路"、
"线路"、"插孔4中的线路";
简单音频卡、路由=
"插孔1中的线路"、"VINL1"、
"插孔1中的线路"、"VINR1"、
"插孔2中的线路


"、"VINL2"、"插孔2中的线路"、"VINR2"、"插孔3中的线路"、"VINL2"





、"VINR2"、"SIMPLE 线路4中的音频主机"、"INR4"、"INR4"格式
simple-audio-card、frame-master =<&sound0_master>;

simple-audio-card、CPU{
sound-dai =<&McASP0>;
system-clock-frequency =<24000000>;
system-clock-direction ="out";
};

sound0_master:simple-audio-card、codec{
sound-dai =<&pcm1865>;
system-clock-frequency =<12000000>;
};
};}???????????????????????????????






??????????????????????????????????????
时钟频率=<100000>;

pcm1865:pcm1865@4a{
compatible ="ti、pcm1865";
#sound-di-cells =<0>;
reg =<0x4a>;
status ="确定";
// DVDD */
AVDD-supply =<&VDD_3v3b3>;
IOVDD-supply =<&VDD_33b


};vDD_3bd3 vDD_supply =<&v3b>};vDD_3bd3 vDD_3b>

mymcasp0_PINS_DEFAULT:mymcasp0_PINS_DEFAULT{
pinctrl-single、PINS =<
0xc0 (PIN_INPUT_PULLUP | MUX_MODE3)/*(U1) LCD_data8.McASP0_aclkx *
/ 0xc4 (PIN_INPULL_MODE3)/0xc3
)*(0xcPV_3* 0_MODEW2_MODEW3.d3)*(0xc0_DCMOS_MODx *(0xc3)/McASP3*输入/McA0_MODEW2_MODULL.3*(0xc3

(PIN_OUTPUT | MUX_MODE3)/*(U3) LCD_data10.McASP0_axr0 */
0xd8 (PIN_INPUT_PULLUP | MUX_MODE3)/*(V4) LCD_data14.McASP0_axr1 */ 0xd8 (
PIN_INPUT_PULLUP | MUX_MODE3)/*(V4) LCD_DATA0




=<INCK_0_MC0_MCUCC_INCK_0 =默认值;#cn_MCUCC0_0_MCU0 =#cn_MODE0);#cn_mctrl =#cn_mctrlc.nature_m&trl =#mctrl =#mctrl 0_m0_m0_m0_mtrl =

默认值;



/* mcasp_iis_mode */
tdm-slots =<2>;
serial-dir =</* 0:非活动、1:TX、2:Rx */
0 2 2 0
>;
tx-num-evt =<32>;
rx-num-evt =<32>;
}; 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们发现了这个问题、我们有两个编解码器连接到同一个 McASP。 Linux 内核中的当前 ALSA/McASP 驱动程序(不知道具体哪一个)无法在异步模式下运行、如以下主题 e2e.ti.com/.../599960中所示

    因此、经过一些重新布线后、我们使 ADC 在 TDM 或 I2S 模式下成功地与编解码器驱动器一起工作、作为主器件。

    TI gitorious git.ti.com/.../b25aae072f19414fcca5af3e352a20d4471bfbff 上的当前 TI 驱动程序 非常不完整、不支持使用 I2S 或两个串行器的示例编解码器主控。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tomas、

    我建议您检查最新 AM335x TI PSDK 中的 McASP 驱动程序

    TI-processor-sdk-linux-am335x-evm-03.03.00.04/board-support/linux-4.4.4.41/

    对于多串行器支持、请检查以下 e2e 线程:

    e2e.ti.com/.../1640893
    e2e.ti.com/.../1667368

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

    但是、当谈到对多个串行器的不完全支持时、我会同时谈到 pcm186x 编解码器驱动程序、而不是达芬奇-McASP
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Tomas、

    关于 PCM186x 编解码器问题、您应该在我们的音频转换器论坛中提问/发帖。 请参阅以下 e2e 主题:

    e2e.ti.com/.../515971

    此致、
    帕维尔