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/TAS2552SW-Linux:如何使用ALSA片上系统(ASOC)

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/630327/linux-tas2552sw-linux-how-to-use-alsa-system-on-chip-asoc

部件号:TAS2552SW-Linux
主题中讨论的其他部件:TAS2552

工具/软件:Linux

哈洛

我们希望 将TAS2552 放大器和转换器与基于ARM的嵌入式Linux配合使用。

但是,在配置DTS后,有ALSA弹力卡,但aplay显示错误:

aplay -v -c 1 -t raw /usr/share/sounds/alsa/alsa/Noise.wav
播放wave '/usr/share/sounds/alsa/noise .wav':已签名的16位Little Endian,速率4.8万 Hz,Mono
aplay: set_params:1305:channels count不可用 

我们在DTS中为内核配置了两个新项目:

tas2552_sound:tas2552-sound{
状态="正常";
兼容="简单音频卡";
型号="ti-tas2550";
simile-audio-card,format ="I2S";
simple-audio-card,MCLK-FS =<256>;
simple-audio-card,name ="P5tas2552";

音频路由=
"EXT SPK","Out (输出)",
"内置麦克风","输入";
简单音频卡,CPU{
sound-dai =<&i2s0>;
};
simple音频卡,codec{
sound-dai =<&tas2552>;
};
};

i2c2{
状态="正常";
时钟频率=<40万>;

tas2552:tas2552@40{
兼容="ti,tas2552";
REG =<0x40>;
#sound - dai细胞=<0>;
VBAT-SUPPLY =<&VDDA_CODE>;
IOVdd-supply =<&vccadc_ref>;
avdD-supply=<&vccadc_ref>;
};
};

这是 主板启动期间消息的摘录:

。
[ Linux]高级0.18.9809万 声音体系结构驱动程序已初始化。
...
[ 4.87.6924万 i2S-hifi <->ff8a0000.i2S映射正常
[ 4.88.8926万 ] asoc-simple-card tas2552-声音:tas2552-放大器<->ff88万.i2S映射正常
...
 [ ALSA] 5.13.1152万 设备列表:
[ ALSA] 5.13.9035万 #0:HDMI-codec
[ 5.14.6635万 ]#1:P5tas2552

[ OK ]已到达目标声卡。

要使用 TAS2552 作为默认值,我创建了/etc/asound.conf:

# cat /etc/asound.conf
pcm.!default {
键入hw
卡1
}

ctl.!default {
键入hw
卡1
}

使用ALSA-工具访问:

# aplay -l
****播放硬件设备列表****
卡0:HDMICODE [HDMI-codec],设备0:ff8a0000.I2S-I2S-hifi I2S-hifi-0[]
子设备:1/1
子设备0:子设备0
:子设备0卡1:P5tas2552 [P5tas2552],设备0:lus-lamplifier

子
播放器# 2552-0

丢弃所有样本(回放)或生成零样本(捕获)
sysdefault:card=hdicodec
HDMI-codec,
默认音频设备
系统默认:CARD=P5tas2552
P5tas2552,
默认音频设备
# amixer set 'peaker Driver' 100 %
简单混音器控制'peaker Driver',0
功能: pvolume pvolume-joined
播放通道:单声道
限制:回放0-31 100 %
:回放31 [mono][24.00dB]#
amixer设置'Input Selection'数字简单
混音器控制'Input Selection',0
功能'Input Selection',0功能: enum
项目:'dital'Analog 'Tem0:
'digital'
# aplay -v -c 1 -t raw /usr/share/sounds/alsa/Noise.wav
playing wave '/usr/share/sounds/alsa/noise .wav': Signed 16 bit Little Endian,rate 4.8万 Hz, Mono
aplay: set_params:1305:channels counts non available

由于简单音频卡可以与HDMI配合使用,我认为TAS2552的配置有问题

 我们非常感谢您提供任何提示。

 此致

Klaus

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

    您可能希望将此问题上载到Linux论坛:
    e2e.ti.com/.../

    我将尝试找出导致此问题的原因,尽管我们并不真正涉及Linux驱动程序的操作/使用。

    此致,
    Ivan Salazar
    音频应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Klaus,

    您是否已尝试发送带有2个频道的播放命令? 我认为它是由-c参数完成的,因此它应该是类似"-c 2"的内容。

    此致,
    Ivan Salazar
    音频应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    哈洛

    如果我使用-c 1或-c 2作为aplay的标志,似乎没有什么区别。

    在使用稍微不同的设备树进行进一步测试时,会提供另一个aplay输出。

    这是实际的devic树:

    tas2552_sound:tas2552-sound{
    状态="正常";
    兼容="简单音频卡";
    型号="ti-tas2550";
    simile-audio-card,format ="I2S";
    simple-audio-card,MCLK-FS =<256>;
    simple-audio-card,name ="P5tas2552";
    
    音频路由=
    "EXT SPK","Out (输出)",
    "内置麦克风","输入";
    
    简单音频卡,CPU{
    sound-dai =<&i2s0>;
    };
    simple音频卡,codec{
    sound-dai =<&tas2552>;
    };
    };
    

    aplay提供以下输出,第一个呼叫结束时没有声音,第二个声音呼叫  也不播放声音,也 不返回shell:

    aplay -v -c 1 -t raw /usr/share/sounds/alsa/alsa/wave': Noise.wav
    Signed 16 bit Little Endian, Rate 4.8万 Hz, Mono
    Plug PCM: route conversion PCM (sformat=S16_LE)
    Transformation table:
    0 <- 0
    1 <- 0
    其设置为
    :STREAM :回放
    访问 :RW_interleaved
    格式 :S16_LE
    子格式:标准
    频道 :1
    速率 :4.8万
    精确速率:4.8万 (4.8万/1)
    msbits :16
    buffer_size:2.4万
    period_size:6000
    period_time:12.5万
    tstamp_mode:none
    tstamp_type:monotonic
    period_step:1
    AVAIL_MIN:6000
    period_event:0
    start_threshold:2.4万
    stop_threshold:2.4万
    silence_threshold: 0
    silence_size:0
    boundary :6755399441055744000
    从属:硬件PCM卡0 'P5tas2552'设备0子设备0
    其设置为
    :流 :回放
    访问 :MMAP_interleaved
    格式 :S16_LE
    子格式:标准
    频道 :2
    速率 :4.8万
    精确速率:4.8万 (4.8万/1)
    msbits :16
    buffer_size:2.4万
    period_size:6000
    period_time:12.5万
    tstamp_mode:none
    tstamp_type:monotonic
    period_step:1
    AVAIL_MIN:6000
    period_event:0
    start_threshold:2.4万
    stop_threshold:2.4万
    silence_threshold: 0
    silence_size:0
    boundary :6755399441055744000
    appl_ptr :0
    HW_PTR :0
    

    我仍然不知道 我是否需要"简单音频卡,小工具"的条目。

    此外 ,是否需要设置frame-relay和bitclock master。

    此致

    Klaus

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

    哈罗!

    我能够检查TA2552的LRCLK,BCLK和DIN,请参阅以下示波器硬拷贝:

    黄色:LRCLK

    蓝色:BCLK

     

    YELO:LRCK蓝色:DIN

    抱歉,我没有使用I2S的经验。 但对我来说,这似乎是可以的。 有什么提示为什么我们没有声音?

    该评估套件可与Windows测试软件 TAS2552 EVM GUI配合使用。

    此致

    Klaus

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哈罗!
    但我们还是听不到声音。 也许我必须设置PLL。 是否有通过设备树(DTS)配置TAS2552以仅与LRCLK和BCLK (无MCLK)配合使用的示例。 我无法从./include/dt-bindings/s声音/tas2552.h (带有Documentation/devicTree/bindings/s声音/tas2552.txt)获取指向Out Device Tree File (输出设备树文件)中有效条目的链接。
    此致
    Klaus
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Klaus,

    很遗憾,我们无法解决与Linux操作相关的问题。
    我们只需使用LRCLK和BCLK,即可提供在没有MCLK的情况下运行所需的寄存器配置。 您可以在EVM和Windows GUI上对此进行测试。 但是,我们不支持Linux驱动程序或设备树操作。

    此致,
    Ivan Salazar
    应用工程师-低功率音频和执行器