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.

[参考译文] TAS2563:器件树配置和 Linux 驱动程序

Guru**** 2535750 points
Other Parts Discussed in Thread: TAS2563

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1028056/tas2563-device-tree-configuration-and-linux-driver

器件型号:TAS2563

您好!


我们正在使用基于 imx8m Nano 的定制板、该板使用连接到 SAI3的 TAS2563。

使用的内核版本是使用 Yocto 构建的5.10.9。 此内核版本具有适用于 TAS2563的驱动程序、但电路板无法播放任何声音。 所使用的器件树配置基于 e2e.ti.com/.../tas2110-tas2110-tas2562-device-tree-for-imx8m-mini 中所示的配置如下所示

听起来{
兼容="简单音频卡";
simple-audio-card、name ="mx8-tas2563";
simple-audio-card、format ="I2S";
简单音频卡、位时钟反转;
simple-audio-card、bitclock-master =<和 tas2563cpu>;
simple-audio-card、frame-master =<和 tas2563cpu>;

tas2563cpu:简单音频卡、CPU{
??Sound-Dai =<?Sa义3>;
di-tdm-slot-num =<2>;
di-tdm-slot-width =<16>;
};

简单音频卡、编解码器{
sound-dai =<和 tas2563>;
};
};

i2c3{(&I)
时钟频率=<400000>;
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_i2c3>;
状态="正常";

tas2563:编解码器@4c{
兼容="ti、tas2563";
reg =<0x4c>;
#sound-di-cells =<0>;
interrupt-parent =<&GPIO2>;
中断=<20>;
关断-GPIO =<&GPIO5 3 GPIO_ACTIVE_HIGH_>;
TI、imon-slot-no =<0>;
};
};

pinctrl_sai3:saE3grp{
FSL、引脚=<
MX8Mn_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6
MX8Mn_IOMUXC_SAI3_TXC_SAI3_TXC_BCLK 0xd6
MX8Mn_IOMUXC_SAI3_MCLK_SAI3_MCLK 0xd6
MX8Mn_IOMUXC_SAI3_TXD_SAI3_TX_DATAA0 0xd6
MX8Mn_IOMUXC_SAI3_RXD_SAI3_RXD_DATA3_RX_DATAA0 0xd6
>;
};


Saa3{(&S)
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_sa3>;
分配的时钟=<&clk IMX8Mn_CLK_SAI3>;
分配的时钟父级=<&clk IMX8MN_AUDIO_PLL1_OUT>;
分配的时钟速率=<24576000>;
状态="正常";
};


我们的电路板具有以下连接:

imx8mn 引脚                | TAS2563引脚
------------------------------------ |---
MX8MNM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC   |  FSYNC
MX8MNM_IOMUXC_SAI3_TXC_SAI3_TXC_BCLK   |  SBCLK1
MX8MNM_IOMUXC_SAI3_MCLK_SAI3_MCLK     |  GPIO
MX8MNM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0   |  SDIN1
MX8MNM_IOMUXC_SAI3_RXD_SAI3_RXD_DATA3_RX_DATA0   |  SDOUT1

这些连接是否正确?

我们不知道 Saa3和声卡的配置是否正确。 您能否告诉我们此配置是否正确? 使用此驱动程序时如何加载 TAS2563配置和扬声器调优?


之后、我们尝试使用 适用于 Linux 的 Android 驱动程序(git.ti.com/.../)。 设备树配置如下:

听起来{
兼容="简单音频卡";
simple-audio-card、name ="mx8-tas2563";
simple-audio-card、format ="I2S";
简单音频卡、位时钟反转;
simple-audio-card、bitclock-master =<和 tas2563cpu>;
simple-audio-card、frame-master =<和 tas2563cpu>;
状态="正常";

simple-audio-card、小工具=
"扬声器"、"扬声器";
简单音频卡,路由=
"扬声器"、"输出";

tas2563cpu:简单音频卡、CPU{
??Sound-Dai =<?Sa义3>;
di-tdm-slot-num =<2>;
di-tdm-slot-width =<16>;
};

简单音频卡、编解码器{
sound-dai =<和 tas2563>;
时钟=<&clk IMX8MN_CLK_SAI3>;
};
};


i2c3{(&I)
时钟频率=<400000>;
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_i2c3>;
状态="正常";

tas2563:tas2563@4c{
#sound-di-cells =<0>;
兼容="ti、tas2563";
reg =<0x4c>;
TI、左通道=<0x4c>;
TI、CHANNELS =<1>;/*通道编号*/
TI、RESET-GPIO =<&GPIO5 3 GPIO_ACTIVE_HIGH_>;
TI、IRQ-GPIO =<&GPIO2 20 GPIO_ACTIVE_HIGH_>;
TI、ASI-format =<0>;/* 0、I2S;1、DSP; *
TI、左槽=<0>;/* *
TI、右槽=<1>;/* *
TI、imon-slot-no =<0>;/* *
TI、VMON-SLOT-NO =<2>;/* *
ti、echo-ref =<2>;
TI、BYPASS-Tmax =<1>;/* 0、非 BYPASS;1、BYPASS *
TI、I2S 位=<32>;
状态="ok";
};
};


Saa3{(&S)
#sound-di-cells =<0>;
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_sa3>;
分配的时钟=<&clk IMX8Mn_CLK_SAI3>;
分配的时钟父级=<&clk IMX8MN_AUDIO_PLL1_OUT>;
分配的时钟速率=<24576000>;
时钟=<&clk IMX8Mn_CLK_SAI3_IPG>、<&clk IMX8Mn_CLK_dumme>、
<&clk IMX8Mn_CLK_SAI3_root>、<&clk IMX8Mn_CLK_dumme>、
<clk IMX8Mn_CLK_dumme>、
<&clk IMX8Mn_AUDIO_PLL1_OUT>、
<&clk IMX8MN_AUDIO_PLL2_OUT>;
时钟名称="bus"、"mclk0"、"mclk1"、"mclk2"、"mclk3"、 "pll8k"、"pll11k";
状态="正常";
};

pinctrl_sai3:saE3grp{
FSL、引脚=<
MX8Mn_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6
MX8Mn_IOMUXC_SAI3_TXC_SAI3_TXC_BCLK 0xd6
MX8Mn_IOMUXC_SAI3_RXD_SAI3_RXD_DATA3_RX_DATAA0 0xd6
MX8Mn_IOMUXC_SAI3_TXD_SAI3_TX_DATAA0 0xd6
MX8Mn_IOMUXC_SAI3_MCLK_SAI3_MCLK 0xd6
>;
};

当我们加载 Android 驱动程序时、我们会获得 附加文件(driver_load.txt)中显示的日志:


e2e.ti.com/.../driver_5F00_load.txt

我们尝试播放声音时的输出显示在附加的文件(aplay_output.txt)中:

e2e.ti.com/.../aplay_5F00_output.txt


当我们开始播放声音时、我们可以听到很小的"哔哔声"、但我们听不到我们正在播放的声音。


我们的问题是:
我们应该使用哪种驱动程序?
- TAS2563的 SAI3配置是否正确?

非常感谢。

此致。

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

    您好 Gustavo、

    尽管只要您有 SBCLK、MCLK 就不是必需的、但连接似乎正常。
    请确保在向器件发送初始化和播放命令之前或至少在播放命令之前启用了时钟。 如果器件尝试在没有时钟的情况下播放、则会触发时钟错误检测。

    也许您可以尝试从器件中读回 IRQ 标志、这可以让您了解是否触发了错误标志。
    如果时钟在 TAS2563的输入端看起来正常、您能否使用示波器进行检查?

    您应该使用产品文件夹 https://git.ti.com/cgit/?q=tas2563中提供的驱动程序

    此致、
    -Ivan Salazar
    应用工程师

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

    你(们)好  

    我 有 以下 问题 希望 您  回答:
    1) 1)       book0 page0的寄存器转储是什么?  请 使用 以下 命令  转储。
    i2cset -y -f  0  4c  0  
    i2cset -y -f  0  4c  7f  0
    i2cset -y -f  0  4c  0  
    i2cdump -y -f  0  4c
    2) 2)      Front_Center.wav 的规范是什么?  
        小 端字节序 还是 大 端字节序?
        采样 率 、 通道 编号是多少?
    3) aplay -Dplughw:0、0 /usr/share/sounds/alsa/Front_Center.wav -c1 -fs24_LE -r48000 -v
    在此  命令中、 您 将  格式设置 为 带符号 24位、 但  日志 告诉 我  芯片 仅 在  16位中运行
    3) 3)您是否  使用          示波器测量 I2S clk(、包括 bit clk 和 fsync clk)、请上传。
    期待您的回复。 谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的所有人:

    我是 Gustavo 团队伙伴。 我将尝试跟进此主题。

    我们已将司机改为 Salazar 先生的建议,结果相同。 我们目前正在等待评估板、本周将到达以进行完整的扬声器校准、并尝试使用正确的校准文件。

    丁先生的回答:

    1)

    root@tv100:~# i2cset -f -y 2 0x4c 0x00 0 
    root@tv100:~# i2cset -f -y 2 0x4c 0x7f 0
    root@tv100:~# i2cset -f -y 2 0x4c 0x00 0
    root@tv100:~# i2cdump -f -y 2 0x4c
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
    00:00 0e 38 C6 22 09 03 4a 10 13 02 00 04 05 06 ..8?"?J???????
    10:07 7f 12 76 01 2e 60 0e 0c 00 fc A6 df ff 00 ??? v?`???……………
    20:00 00 80 00 04 00 80 00 80 00 00 00 8c 80 A1
    30:19 40 81 34 4b 74 00 0d 0c be 58 68 08 10 00@ 4 Kt.?XH?。
    40:76 41 00 c0 10 21 00 b4 ac 00 00 00 00 00 00 00 00 00 00 VA?????。
    50:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    60:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    70:00 00 00 f0 00 0f 00 00 80 00 00 00 10 6a 00 ...?...?...?J.
    80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    2)

    请找到随附的文件、它是 alsamixer 提供的测试示例之一。

    e2e.ti.com/.../Front_5F00_Center.wav

    3)

    我将尽快提供范围。 当前在家工作的情况使获取工具变得更加困难。 希望在本周结束时、我将得到它。

    谢谢、此致。

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

    您好 

    寄存器转储告诉我芯片已关闭、因为 B0P0R2=0x0E。 是否确定在回放期间捕获了寄存器转储? 如果是、则 clk 可能是错误的。  

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

    抱歉、播放时这是正确的转储:

    0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef 
    00:00 0c 38 c6 22 05 03 42 10 13 02 00 04 05 06。?8????B????????
    10:07 14 12 76 01 2e 60 0e 0c 00 fc A6 df ff 00 ??? v?`???…………
    20:00 00 80 00 06 00 11 c0 00 d0 3b 80 8c 40 A7 ..??????????@?
    30:19 40 80 34 4b 74 04 00 0d 0c be 58 68 08 10 00?@?4Kt????XH?。
    40:76 41 00 c0 10 21 00 2D AC 3b 70 00 00 00 00 00 00 00 VA????????-?;p.。。。
    50:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    60:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    70:00 00 00 f0 00 0f 00 00 80 00 00 00 10 97 00 ...?...?...???
    80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    如您所见、它现在处于激活模式 B0P0R2=0x0c

    此致。

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

    根据您最新的 reg dump,我获得以下信息:

    • B0P0R8 = 0x42、这意味着通道位宽为32位、但采样位宽为16位
    • B0P0R0x11=0x14、SBCLK:FSYNC=32、采样率约为48kHz。 该值非常奇怪、请使用示波器检查 I2S 位 clk 和 fsync clk。 我的项目经验。 根据 B0P0R8的设置、B0P0R0x11必须为0x24
    • B0P0R0x24=0x6告诉我、spk 线圈上的 TDM 时钟误差和过流。 spk 是否短路? 和音频时钟(I2S 时钟)异常?

    请上传时钟图。

    wav 文件的属性后面

    C:\Users\Dell\Desktop\Front_Center.wav
    一般
    完整名称:C:\Users\Dell\Desktop\Front_Center.wav
    格式:Wave
    文件大小:134 KiB
    持续时间:1s 428 ms
    整体比特率模式:常量
    总比特率:768kb/s
    音频
    格式:PCM
    格式设置:小/有符号
    编解码器 ID:1.
    持续时间:1s 428 ms
    比特率模式:常量
    比特率:768kb/s
    频道:1个频道
    采样率:48.0kHz
    位深度:16位
    流大小:134 KiB (100%)

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

    尊敬的丁先生和萨拉扎先生,我将尝试总结我们目前的发展状况。

    现在、我们有用于 TAS2563的开发板和基板、因此我们目前可以使用 PurePath。

    好消息是使用开发板测试我们的扬声器、听起来不错、因此我们可以确认所选端点不会出现问题。

    Linux 驱动程序

    我们已将驱动程序移至 TI 网站上提供的驱动程序 Salazar 先生提议的 Android 版本。

    我们将手动启动它们、结果如下:

    root@tv100:~# insmod /lib/modules/5.10.9-1.0.0+gf001713/kernel/sound/soc/codecs/tas2563-a/snd-soc-tas2563.ko
    [   64.729437] tas2563 2-004c: Driver ID: 1.0.0
    [   64.733790] tas2563 2-004c: tas2563_i2c_probe enter
    [   64.776032] tas2563 2-004c: PGID: 16
    [   64.779761] tas2563 2-004c: tas2563_register_codec, enter
    [   64.785383] tas2563 2-004c: tas2563_register_misc, leave
    [   64.790811] tas2563 2-004c: tiload_driver_init
    [   64.795361] tas2563 2-004c: allocated Major Number: 509
    [   64.800841] tas2563 2-004c: Registered TiLoad driver, Major number: 509
    [   64.809373] tas2563 2-004c: tas2563_codec_probe
    [   64.814149] tas2563 2-004c: tas2563_fw_ready:
    [   64.819755] tas2563 2-004c: firmware size: 20389
    [   64.824409] tas2563 2-004c: FW timestamp: 1630655686
    [   64.829441] debugfs: Directory '30030000.sai' with parent 'mx8-tas2563' already present!
    [   64.837598] tas2563 2-004c: tas2563_set_dai_fmt, format=0x4301
    [   64.843473] tas2563 2-004c: FW Size       = 20389
    [   64.848201] tas2563 2-004c: Checksum      = 0x79B70DDB
    [   64.853375] tas2563 2-004c: PPC Version   = 0x2C000
    [   64.858274] tas2563 2-004c: FW  Version    = 0x1010000
    [   64.863433] tas2563 2-004c: Driver Version= 0x0202
    [   64.868242] tas2563 2-004c: Timestamp     = 1630655686
    [   64.873402] tas2563 2-004c: DDC Name      = TV100_Trial2
    [   64.878731] tas2563 2-004c: Description   = TI SmartAmp
    [   64.883976] tas2563 2-004c: header size: 112, line: 1068
    [   64.889309] tas2563 2-004c: FW i2sMode: 0
    [   64.893347] tas2563 2-004c: fw_parse_data, 882
    [   64.897828] tas2563 2-004c: fw_parse_block_data, 842
    [   64.902818] tas2563 2-004c: fw_parse_block_data, 846
    [   64.907830] tas2563 2-004c: fw_parse_block_data, 871
    [   64.912821] tas2563 2-004c: program data number: 16272
    [   64.917981] tas2563 2-004c: program size: 16363, line: 1084
    [   64.923587] tas2563 2-004c: configuration, mnProgram: 0
    [   64.928860] tas2563 2-004c: configuration samplerate: 48000
    [   64.934463] tas2563 2-004c: Fs rate: 0
    [   64.938237] tas2563 2-004c: fw_parse_data, 882
    [   64.942721] tas2563 2-004c: fw_parse_block_data, 842
    [   64.947707] tas2563 2-004c: fw_parse_block_data, 846
    [   64.952706] tas2563 2-004c: fw_parse_block_data, 871
    [   64.957689] tas2563 2-004c: fw_parse_block_data, 842
    [   64.962674] tas2563 2-004c: fw_parse_block_data, 846
    [   64.967660] tas2563 2-004c: fw_parse_block_data, 871
    [   64.972656] tas2563 2-004c: configuration, mnProgram: 0
    [   64.977904] tas2563 2-004c: configuration samplerate: 48000
    [   64.983505] tas2563 2-004c: Fs rate: 0
    [   64.987275] tas2563 2-004c: fw_parse_data, 882
    [   64.991749] tas2563 2-004c: fw_parse_block_data, 842
    [   64.996736] tas2563 2-004c: fw_parse_block_data, 846
    [   65.001733] tas2563 2-004c: fw_parse_block_data, 871
    [   65.006718] tas2563 2-004c: fw_parse_block_data, 842
    [   65.011707] tas2563 2-004c: fw_parse_block_data, 846
    [   65.016698] tas2563 2-004c: fw_parse_block_data, 871
    [   65.021702] tas2563 2-004c: config size: 3914, line: 1091
    [   65.027119] tas2563 2-004c: calib size: 0, line: 1099
    [   65.032248] tas2563 2-004c: find default configuration 0
    [   65.075718] tas2563 2-004c: load program 0 (Tuning Mode)
    [   65.081058] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1
    [   65.091204] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 4035
    [   65.705983] tas2563 2-004c: Block PChkSum: FW = 0xcc, Reg = 0xcc
    [   65.712027] tas2563 2-004c: Block[0x1] PChkSum match
    [   65.717019] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block
    [   65.726789] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 4
    [   65.734642] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [   65.741190] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data
    [   65.750957] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 3
    [   65.758809] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 432
    [   65.850479] tas2563 2-004c: Block PChkSum: FW = 0x46, Reg = 0x46
    [   65.856533] tas2563 2-004c: Block[0x3] PChkSum match
    [   65.861539] tas2563 2-004c: tas2563_load_default, 1500, ret = 0
    [   65.867485] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   65.873016] tas2563 2-004c: tas2563_load_default, 1505, ret = 0
    [   65.879362] tas2563 2-004c: INV format: IBNF
    [   65.886783] tas2563 2-004c: tas2563_load_default, 1521, ret = 0
    [   65.892744] tas2563 2-004c: tas2563_set_bitwidth 1379
    [   65.897836] tas2563 2-004c: Not supported params format
    [   65.903088] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   65.908602] tas2563 2-004c: mnCh_size: 0
    [   65.912550] tas2563 2-004c: tas2563_load_default, 1526, ret = 0
    [   65.918491] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0
    [   65.928123] tas2563 2-004c: tas2563_load_default, 1547, ret = 0
    [   65.934681] tas2563 2-004c: INV format: IBNF
    [   65.939715] asoc-simple-card sound: ASoC: no DMI vendor name!

    配置文件

    为了能够启动 Linux 驱动程序、我们已根据 SLAA954 建议准备了配置文件。

    在文件生成过程中,我们选择0x4c 作为 I2C 地址,基本上我们只根据 CUI 设置扬声器阻抗和最高温度 -- CMS-30205-158L120-67 数据表。  

    请找到随附的使用 PurePath 生成这些文件的结果。

    e2e.ti.com/.../TV100_5F00_Trial2.zip

    我们已获取 TV100_Trial2.bin 文件并将其名称更改为 tas2563_uCDSP.bin、并将其存储在/lib/firmware.中

    校准文件

    为了避免尝试播放音频文件时出现播放失败、我们已在此 帖子中包含 tas2563_cal.bin。  

    我们已将文件复制到 /mnt/vendor/persist/audio

    根据驱动程序、此文件似乎是强制性的[链接]文件、但我们对包含正确信息的文件有一些担忧。

    Aplay 结果

    完成所有设置后、这是尝试播放音频文件时的结果。 我们无法听到扬声器上的任何声音。:

    root@tv100:~# aplay -Dplughw:0,0 /usr/share/sounds/alsa/Front_Center.wav -c1 -fS16_LE -r48000 -v
    Playing WAVE '/usr/share/sou[  359.520435] tas2563 2-004c: tas2563_set_bitwidth 1379
    nds/alsa/Front_Center.wav' : Sign[  359.528689] tas2563 2-004c: mnCh_size: 16
    ed 16 bit Little Endian, Rate 480[  359.535210] tas2563 2-004c: blr_clk_ratio: 32
    00 Hz, Mono
    [  359.543078] tas2563 2-004c: tas2563_hw_params, sample rate: 48000
    [  359.550769] tas2563 2-004c: SND_SOC_DAPM_POST_PMU
    [  359.555825] tas2563 2-004c: tas2563_mute
    [  359.559774] tas2563 2-004c: unmute: tas2563_mute
    [  359.564465] tas2563 2-004c: set power state: 0
    [  359.568944] tas2563 2-004c: tas2563_set_power_state, state: 0, mbPowerup 0
    [  359.575840] tas2563 2-004c: tas2563_load_calibration:
    [  359.580935] tas2563 2-004c: TAS2563 calibration file = /mnt/vendor/persist/audio/tas2563_cal.bin
    [  359.589773] tas2563 2-004c: f is not null
    [  359.595140] tas2563 2-004c: nSize = 440
    [  359.599007] tas2563 2-004c: nSize = 440
    [  359.602873] tas2563 2-004c: TAS2563 calibration file size = 440
    [  359.608816] tas2563 2-004c: firmware size: 440
    [  359.613287] tas2563 2-004c: FW timestamp: 1552463249
    [  359.618276] tas2563 2-004c: FW Size       = 440
    [  359.622855] tas2563 2-004c: Checksum      = 0x0000
    [  359.627679] tas2563 2-004c: PPC Version   = 0x0000
    [  359.632528] tas2563 2-004c: FW  Version    = 0x0000
    [  359.637430] tas2563 2-004c: Driver Version= 0x0100
    [  359.642251] tas2563 2-004c: Timestamp     = 1552463249
    [  359.647412] tas2563 2-004c: DDC Name      = Calibration Data File
    [  359.653537] tas2563 2-004c: Description   = Calibration Data File for TAS2563 Mono
    [  359.661174] tas2563 2-004c: header size: 139, line: 1068
    [  359.666542] tas2563 2-004c: program size: 2, line: 1084
    [  359.671792] tas2563 2-004c: config size: 2, line: 1091
    [  359.677008] tas2563 2-004c: fw_parse_data, 882
    [  359.681525] tas2563 2-004c: fw_parse_block_data, 842
    [  359.686519] tas2563 2-004c: fw_parse_block_data, 846
    [  359.691527] tas2563 2-004c: fw_parse_block_data, 871
    [  359.696522] tas2563 2-004c: calib size: 297, line: 1099
    [  359.701789] tas2563 2-004c: TAS2563 calibration: 1 calibrations
    [  359.708673] tas2563 2-004c: IRQ reg is: 0, 1219
    Plug PCM: Route conversion PCM (sformat=S16_LE)
      Transformation table:
        0 <- 0
        1 <- 0
    Its setup is:
      stream       : PLAYBACK
      access       : RW_INTERLEAVED
      format       : S16_LE
      subformat    : STD
      channels     : 1
      rate         : 48000
      exact rate   : 48000 (48000/1)
      msbits       : 16
      buffer_size  : 16384
      period_size  : 4096
      period_time  : 85333
      tstamp_mode  : NONE
      tstamp_type  : MONOTONIC
      period_step  : 1
      avail_min    : 4096
      period_event : 0
      start_threshold  : 16384
      stop_threshold   : 16384
      silence_threshold: 0
      silence_size : 0
      boundary     : 4611686018427387904
    Slave: Hardware PCM card 0 'mx8-tas2563' device 0 subdevice 0
    Its setup is:
      stream       : PLAYBACK
      access       : MMAP_INTERLEAVED
      format       : S16_LE
      subformat    : STD
      channels     : 2
      rate         : 48000
      exact rate   : 48000 (48000/1)
      msbits       : 16
      buffer_size  : 16384
      period_size  : 4096
      period_time  : 85333
      tstamp_mode  : NONE
      tstamp_type  : MONOTONIC
      period_step  : 1
      avail_min    : 4096
      period_event : 0
      start_threshold  : 16384[  359.816061] tas2563 2-004c: irq_work_routine
    
     
    
      stop_threshold   : 16384
      silence_threshold: 0
      silence_[  359.824901] tas2563 2-004c: IRQ status : 0x0, 0x0
    size : 0
      boundary     : 461168[  359.831817] tas2563 2-004c: IRQ reg is: irq_work_routine 0, 414
    6018427387904
      appl_ptr     : 0[  359.840862] tas2563 2-004c: IRQ reg is: irq_work_routine, 0, 427
    
     
    
      hw_ptr       : 0
    [  359.848797] tas2563 2-004c: set ICN to -90dB
    [  359.856217] tas2563 2-004c: IRQ reg is: 2, 435
    [  359.860689] tas2563 2-004c: set ICN delay
    [  359.866053] tas2563 2-004c: IRQ reg is: 2, 441
    [  359.898159] tas2563 2-004c: IRQ reg is: irq_work_routine 2, 414
    [  359.905018] tas2563 2-004c: IRQ reg is: irq_work_routine, 2, 427
    [  359.911070] tas2563 2-004c: set ICN to -90dB
    [  359.921463] tas2563 2-004c: IRQ reg is: 2, 435
    [  359.925944] tas2563 2-004c: set ICN delay
    [  359.934825] tas2563 2-004c: IRQ reg is: 2, 441
    [  359.939300] tas2563 2-004c: irq_work_routine, Critical ERROR REG[0x2] = 0x2
    [  359.946320] tas2563 2-004c: device powered up, power down to load program 0 (Tuning Mode)
    [  359.954533] tas2563 2-004c: set power state: 2
    [  359.959003] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 1
    [  360.007709] tas2563 2-004c: load program 0 (Tuning Mode)
    [  360.013047] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1
    [  360.021599] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 4035
    [  360.622907] tas2563 2-004c: Block PChkSum: FW = 0xcc, Reg = 0xcc
    [  360.628957] tas2563 2-004c: Block[0x1] PChkSum match
    [  360.633954] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block
    [  360.643719] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 4
    [  360.651579] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [  360.658134] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data
    [  360.667898] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 3
    [  360.675782] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 432
    [  360.744423] tas2563 2-004c: Block PChkSum: FW = 0x46, Reg = 0x46
    [  360.750491] tas2563 2-004c: Block[0x3] PChkSum match
    [  360.755497] tas2563 2-004c: tas2563_load_default, 1500, ret = 0
    [  360.761444] tas2563 2-004c: tas2563_set_slot, slot_width:16
    [  360.767644] tas2563 2-004c: tas2563_load_default, 1505, ret = 0
    [  360.773912] tas2563 2-004c: INV format: IBNF
    [  360.779234] tas2563 2-004c: tas2563_load_default, 1521, ret = 0
    [  360.785196] tas2563 2-004c: tas2563_set_bitwidth 1379
    [  360.790875] tas2563 2-004c: mnCh_size: 16
    [  360.794908] tas2563 2-004c: tas2563_load_default, 1526, ret = 0
    [  360.803759] tas2563 2-004c: tas2563_load_default, 1547, ret = 0
    [  361.164884] tas2563 2-004c: tas2563_mute
    [  361.168849] tas2563 2-004c: mute: tas2563_mute
    [  361.173349] tas2563 2-004c: set power state: 2
    [  361.177902] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 0
    [  361.185548] tas2563 2-004c: SND_SOC_DAPM_PRE_PMD

    这是尝试播放声音时的信号:

    BCLK --只是为了测量频率为1.53MHz

    FSYNC 至 BCLK

    DIN 到 BCLK、检查 SmartPA 是否正在接收数据:

    所有的图像文件都在这里、因此任何人都可以进行全尺寸检查:

    e2e.ti.com/.../3250.Scopes.zip

    我尝试在尝试播放音频时获取 I2C 转储、但现在每次转储时的结果都不同、就像驱动程序正在访问器件一样。

    谢谢、此致。

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

    前言消息有多个链接、但除非您尝试按、否则很难看到这些链接。

    由此给您带来的不便、我们深表歉意。

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

    请设置 B0P0R0x30=0x99、然后 tinyplay the tas2563

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

    顺便说一下、您能找到一个稍长一点的 wav 文件、持续时间至少为1分钟。 根据日志、从取消静音到1秒内将时间消耗静音(361.168849 - 359.559774)。

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

    你好,丁先生。

    我已经将音频更改为这个连接的 wav 剪辑。

    e2e.ti.com/.../file_5F00_example_5F00_WAV_5F00_1MG.wav

    我在引导后执行了以下序列、检查 insmod 的结果是否与之前的结果不同、校准/配置文件中没有进行任何更改。

    启动驱动程序:

    root@tv100:~# insmod /lib/modules/5.10.9-1.0.0+gf001713/kernel/sound/soc/codecs/tas2563-a/snd-soc-tas2563.ko
    [  116.367396] tas2563 2-004c: Driver ID: 1.0.0
    [  116.371748] tas2563 2-004c: tas2563_i2c_probe enter
    [  116.416035] tas2563 2-004c: PGID: 16
    [  116.419717] tas2563 2-004c: tas2563_register_codec, enter
    [  116.425371] tas2563 2-004c: tas2563_register_misc, leave
    [  116.430771] tas2563 2-004c: tiload_driver_init
    [  116.435305] tas2563 2-004c: allocated Major Number: 509
    [  116.440735] tas2563 2-004c: Registered TiLoad driver, Major number: 509
    [  116.449310] tas2563 2-004c: tas2563_codec_probe
    [  116.453957] debugfs: Directory '30030000.sai' with parent 'mx8-tas2563' already present!
    [  116.462213] tas2563 2-004c: tas2563_fw_ready:
    [  116.467690] tas2563 2-004c: firmware size: 20389
    [  116.472345] tas2563 2-004c: FW timestamp: 1630655686
    [  116.477375] tas2563 2-004c: tas2563_set_dai_fmt, format=0x4301
    [  116.483246] tas2563 2-004c: FW Size       = 20389
    [  116.488007] tas2563 2-004c: Checksum      = 0x79B70DDB
    [  116.493179] tas2563 2-004c: PPC Version   = 0x2C000
    [  116.498076] tas2563 2-004c: FW  Version    = 0x1010000
    [  116.503235] tas2563 2-004c: Driver Version= 0x0202
    [  116.508044] tas2563 2-004c: Timestamp     = 1630655686
    [  116.513228] tas2563 2-004c: DDC Name      = TV100_Trial2
    [  116.518570] tas2563 2-004c: Description   = TI SmartAmp
    [  116.523821] tas2563 2-004c: header size: 112, line: 1068
    [  116.529160] tas2563 2-004c: FW i2sMode: 0
    [  116.533188] tas2563 2-004c: fw_parse_data, 882
    [  116.537661] tas2563 2-004c: fw_parse_block_data, 842
    [  116.542659] tas2563 2-004c: fw_parse_block_data, 846
    [  116.547676] tas2563 2-004c: fw_parse_block_data, 871
    [  116.552662] tas2563 2-004c: program data number: 16272
    [  116.557823] tas2563 2-004c: program size: 16363, line: 1084
    [  116.563422] tas2563 2-004c: configuration, mnProgram: 0
    [  116.568679] tas2563 2-004c: configuration samplerate: 48000
    [  116.574270] tas2563 2-004c: Fs rate: 0
    [  116.578042] tas2563 2-004c: fw_parse_data, 882
    [  116.582502] tas2563 2-004c: fw_parse_block_data, 842
    [  116.587489] tas2563 2-004c: fw_parse_block_data, 846
    [  116.592491] tas2563 2-004c: fw_parse_block_data, 871
    [  116.597487] tas2563 2-004c: fw_parse_block_data, 842
    [  116.602472] tas2563 2-004c: fw_parse_block_data, 846
    [  116.607461] tas2563 2-004c: fw_parse_block_data, 871
    [  116.612446] tas2563 2-004c: configuration, mnProgram: 0
    [  116.617721] tas2563 2-004c: configuration samplerate: 48000
    [  116.623329] tas2563 2-004c: Fs rate: 0
    [  116.627101] tas2563 2-004c: fw_parse_data, 882
    [  116.631573] tas2563 2-004c: fw_parse_block_data, 842
    [  116.636563] tas2563 2-004c: fw_parse_block_data, 846
    [  116.641556] tas2563 2-004c: fw_parse_block_data, 871
    [  116.646541] tas2563 2-004c: fw_parse_block_data, 842
    [  116.651539] tas2563 2-004c: fw_parse_block_data, 846
    [  116.656520] tas2563 2-004c: fw_parse_block_data, 871
    [  116.661512] tas2563 2-004c: config size: 3914, line: 1091
    [  116.666938] tas2563 2-004c: calib size: 0, line: 1099
    [  116.672049] tas2563 2-004c: find default configuration 0
    [  116.715647] tas2563 2-004c: load program 0 (Tuning Mode)
    [  116.721008] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1
    [  116.729556] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 4035
    [  117.333279] tas2563 2-004c: Block PChkSum: FW = 0xcc, Reg = 0xcc
    [  117.339514] tas2563 2-004c: Block[0x1] PChkSum match
    [  117.344514] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block
    [  117.354288] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 4
    [  117.362169] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [  117.368726] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data
    [  117.378493] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 3
    [  117.386350] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 432
    [  117.456819] tas2563 2-004c: Block PChkSum: FW = 0x46, Reg = 0x46
    [  117.462871] tas2563 2-004c: Block[0x3] PChkSum match
    [  117.467881] tas2563 2-004c: tas2563_load_default, 1500, ret = 0
    [  117.473832] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [  117.479344] tas2563 2-004c: tas2563_load_default, 1505, ret = 0
    [  117.485676] tas2563 2-004c: INV format: IBNF
    [  117.490954] tas2563 2-004c: tas2563_load_default, 1521, ret = 0
    [  117.496905] tas2563 2-004c: tas2563_set_bitwidth 1379
    [  117.501979] tas2563 2-004c: Not supported params format
    [  117.507238] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [  117.512746] tas2563 2-004c: mnCh_size: 0
    [  117.516704] tas2563 2-004c: tas2563_load_default, 1526, ret = 0
    [  117.522649] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0
    [  117.532246] tas2563 2-004c: tas2563_load_default, 1547, ret = 0
    [  117.538822] tas2563 2-004c: INV format: IBNF
    [  117.543860] asoc-simple-card sound: ASoC: no DMI vendor name!
    [  117.594804] tas2563 2-004c: tas2563_codec_read, reg: 0x3, value: 0x20
    [  117.639642] tas2563 2-004c: load program 0 (Tuning Mode)
    [  117.645004] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1
    [  117.654058] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 4035
    [  118.275332] tas2563 2-004c: Block PChkSum: FW = 0xcc, Reg = 0xcc
    [  118.281409] tas2563 2-004c: Block[0x1] PChkSum match
    [  118.286417] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block
    [  118.296190] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 4
    [  118.304042] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [  118.310595] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data
    [  118.320361] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 3
    [  118.328215] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 432
    [  118.402008] tas2563 2-004c: Block PChkSum: FW = 0x46, Reg = 0x46
    [  118.408047] tas2563 2-004c: Block[0x3] PChkSum match
    [  118.413037] tas2563 2-004c: tas2563_load_default, 1500, ret = 0
    [  118.418985] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [  118.424524] tas2563 2-004c: tas2563_load_default, 1505, ret = 0
    [  118.430783] tas2563 2-004c: INV format: IBNF
    [  118.436058] tas2563 2-004c: tas2563_load_default, 1521, ret = 0
    [  118.442012] tas2563 2-004c: tas2563_set_bitwidth 1379
    [  118.447120] tas2563 2-004c: Not supported params format
    [  118.452394] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [  118.457919] tas2563 2-004c: mnCh_size: 0
    [  118.461869] tas2563 2-004c: tas2563_load_default, 1526, ret = 0
    [  118.467811] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0
    [  118.477429] tas2563 2-004c: tas2563_load_default, 1547, ret = 0
    [  118.484072] tas2563 2-004c: tas2563_configuration_put = 0
    [  118.489551] tas2563 2-004c: tas2563_load_configuration: 0
    [  118.494991] tas2563 2-004c: Configuration 0 is already loaded
    [  118.500820] tas2563 2-004c: Calibration 0 doesn't exist
    [  118.565247] tas2563 2-004c: tas2563_codec_read, reg: 0x3, value: 0x20
    [  118.611640] tas2563 2-004c: load program 0 (Tuning Mode)
    [  118.616984] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1
    [  118.625531] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 4035
    [  119.226891] tas2563 2-004c: Block PChkSum: FW = 0xcc, Reg = 0xcc
    [  119.232946] tas2563 2-004c: Block[0x1] PChkSum match
    [  119.237980] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block
    [  119.247757] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 4
    [  119.255640] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [  119.262229] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data
    [  119.272010] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 3
    [  119.279882] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 432
    [  119.350922] tas2563 2-004c: Block PChkSum: FW = 0x46, Reg = 0x46
    [  119.356975] tas2563 2-004c: Block[0x3] PChkSum match
    [  119.361982] tas2563 2-004c: tas2563_load_default, 1500, ret = 0
    [  119.367926] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [  119.373449] tas2563 2-004c: tas2563_load_default, 1505, ret = 0
    [  119.379767] tas2563 2-004c: INV format: IBNF
    [  119.385007] tas2563 2-004c: tas2563_load_default, 1521, ret = 0
    [  119.391045] tas2563 2-004c: tas2563_set_bitwidth 1379
    [  119.396130] tas2563 2-004c: Not supported params format
    [  119.401432] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [  119.406943] tas2563 2-004c: mnCh_size: 0
    [  119.410936] tas2563 2-004c: tas2563_load_default, 1526, ret = 0
    [  119.416888] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0
    [  119.426487] tas2563 2-004c: tas2563_load_default, 1547, ret = 0
    [  119.433114] tas2563 2-004c: tas2563_configuration_put = 0
    [  119.438604] tas2563 2-004c: tas2563_load_configuration: 0
    [  119.444087] tas2563 2-004c: Configuration 0 is already loaded
    [  119.449964] tas2563 2-004c: Calibration 0 doesn't exist
    
    root@tv100:~# ls /mnt/vendor/persist/audio/
    tas2563_cal.bin
    

    将0x30设置为0x99

    我无法理解此设置、因为该寄存器中的许多位都是"保留"的

    root@tv100:~# i2cset -f -y 2 0x4c 0x00 0
    root@tv100:~# i2cset -f -y 2 0x4c 0x7f 0
    root@tv100:~# i2cset -f -y 2 0x4c 0x00 0
    root@tv100:~# i2cset -f -y 2 0x4c 0x30 0x99
    root@tv100:~# i2cget -f -y 2 0x4c 0x30
    0x99
    

    播放 WAV 文件

    root@tv100:~# aplay -Dplughw:0,0 /home/file_example_WAV_1MG.wav
    Playing WAVE '/home/file_example_[  319.018279] tas2563 2-004c: tas2563_hw_params, format: 2
    WAV_1MG.wav' : Signed 16 bit Litt[  319.025438] tas2563 2-004c: tas2563_set_bitwidth 1379
    le Endian, Rate 8000 Hz, Stereo
    [  319.033975] tas2563 2-004c: tas2563_set_slot, slot_width:16
    [  319.042387] tas2563 2-004c: mnCh_size: 16
    [  319.046471] tas2563 2-004c: blr_clk_ratio: 32
    [  319.052096] tas2563 2-004c: tas2563_hw_params, sample rate: 8000
    [  319.058142] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 8000
    [  319.067297] tas2563 2-004c: SND_SOC_DAPM_POST_PMU
    [  319.072150] tas2563 2-004c: tas2563_mute
    [  319.076109] tas2563 2-004c: unmute: tas2563_mute
    [  319.080801] tas2563 2-004c: set power state: 0
    [  319.085272] tas2563 2-004c: tas2563_set_power_state, state: 0, mbPowerup 0
    [  319.092215] tas2563 2-004c: tas2563_load_calibration:
    [  319.097320] tas2563 2-004c: TAS2563 calibration file = /mnt/vendor/persist/audio/tas2563_cal.bin
    [  319.106181] tas2563 2-004c: f is not null
    [  319.111451] tas2563 2-004c: nSize = 440
    [  319.115318] tas2563 2-004c: nSize = 440
    [  319.119222] tas2563 2-004c: TAS2563 calibration file size = 440
    [  319.125219] tas2563 2-004c: firmware size: 440
    [  319.129730] tas2563 2-004c: FW timestamp: 1552463249
    [  319.134766] tas2563 2-004c: FW Size       = 440
    [  319.139326] tas2563 2-004c: Checksum      = 0x0000
    [  319.144200] tas2563 2-004c: PPC Version   = 0x0000
    [  319.149017] tas2563 2-004c: FW  Version    = 0x0000
    [  319.154019] tas2563 2-004c: Driver Version= 0x0100
    [  319.158846] tas2563 2-004c: Timestamp     = 1552463249
    [  319.164023] tas2563 2-004c: DDC Name      = Calibration Data File
    [  319.170158] tas2563 2-004c: Description   = Calibration Data File for TAS2563 Mono
    [  319.177855] tas2563 2-004c: header size: 139, line: 1068
    [  319.183200] tas2563 2-004c: program size: 2, line: 1084
    [  319.188446] tas2563 2-004c: config size: 2, line: 1091
    [  319.193613] tas2563 2-004c: fw_parse_data, 882
    [  319.198107] tas2563 2-004c: fw_parse_block_data, 842
    [  319.203097] tas2563 2-004c: fw_parse_block_data, 846
    [  319.208114] tas2563 2-004c: fw_parse_block_data, 871
    [  319.213111] tas2563 2-004c: calib size: 297, line: 1099
    [  319.218473] tas2563 2-004c: TAS2563 calibration: 1 calibrations
    [  319.225411] tas2563 2-004c: IRQ reg is: 0, 1219
    [  319.331962] tas2563 2-004c: irq_work_routine
    [  319.337483] tas2563 2-004c: IRQ status : 0x0, 0x0
    [  319.342921] tas2563 2-004c: IRQ reg is: irq_work_routine 0, 414
    [  319.349823] tas2563 2-004c: IRQ reg is: irq_work_routine, 0, 427
    [  319.355880] tas2563 2-004c: set ICN to -90dB
    [  319.361416] tas2563 2-004c: IRQ reg is: 0, 435
    [  319.365909] tas2563 2-004c: set ICN delay
    [  319.371568] tas2563 2-004c: IRQ reg is: 0, 441
    [  319.419642] tas2563 2-004c: irq_work_routine
    [  319.425168] tas2563 2-004c: IRQ status : 0x0, 0x0
    [  319.788023] tas2563 2-004c: irq_work_routine
    [  319.793544] tas2563 2-004c: IRQ status : 0x4, 0x0
    [  319.798280] tas2563 2-004c: device powered up, power down to load program 0 (Tuning Mode)
    [  319.806519] tas2563 2-004c: set power state: 2
    [  319.811012] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 1
    [  319.855648] tas2563 2-004c: load program 0 (Tuning Mode)
    [  319.860997] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1
    [  319.871498] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 4035
    [  320.476429] tas2563 2-004c: Block PChkSum: FW = 0xcc, Reg = 0xcc
    [  320.482506] tas2563 2-004c: Block[0x1] PChkSum match
    [  320.487545] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block
    [  320.497437] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 4
    [  320.505374] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [  320.511959] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data
    [  320.521745] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 3
    [  320.529621] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 432
    [  320.599691] tas2563 2-004c: Block PChkSum: FW = 0x46, Reg = 0x46
    [  320.605824] tas2563 2-004c: Block[0x3] PChkSum match
    [  320.610979] tas2563 2-004c: tas2563_load_default, 1500, ret = 0
    [  320.617011] tas2563 2-004c: tas2563_set_slot, slot_width:16
    [  320.623371] tas2563 2-004c: tas2563_load_default, 1505, ret = 0
    [  320.629714] tas2563 2-004c: INV format: IBNF
    [  320.635239] tas2563 2-004c: tas2563_load_default, 1521, ret = 0
    [  320.641248] tas2563 2-004c: tas2563_set_bitwidth 1379
    [  320.647161] tas2563 2-004c: mnCh_size: 16
    [  320.651251] tas2563 2-004c: tas2563_load_default, 1526, ret = 0
    [  320.657357] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 8000
    [  320.667291] tas2563 2-004c: tas2563_load_default, 1547, ret = 0
    [  352.848263] tas2563 2-004c: tas2563_mute
    [  352.852220] tas2563 2-004c: mute: tas2563_mute
    [  352.856765] tas2563 2-004c: set power state: 2
    [  352.861281] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 0
    [  352.870641] tas2563 2-004c: SND_SOC_DAPM_PRE_PMD
    

    转储 I2C 状态

    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 02 20 c6 22 09 03 40 10 01 02 00 04 05 06    ..? ?"??@???.???
    10: 07 7d 12 76 01 2e 60 0e 0c 00 f8 a6 df ef ff 00    ?}?v?.`??.????..
    20: 00 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00    .........@......
    30: 59 40 81 34 4b 84 05 00 00 0c be 38 38 08 10 00    Y@?4K??..??88??.
    40: b6 41 00 c0 10 21 00 00 2c 00 00 00 00 00 00 00    ?A.??!..,.......
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    70: 00 00 00 f0 00 0f 00 00 80 00 00 00 00 10 44 00    ...?.?..?....?D.
    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    

    谢谢、此致。

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

    我已检查在设置0x30至0x99后播放音频时,B0P0R2=0x02  -->软件关闭。

    如果我尝试第二次播放、在完成第一个播放后、当前状态为0x30、您可以看到 B0P0R2=0x00 -> Active

    root@tv100:~# i2cget -f -y 2 0x4c 0x30
    0x59
    
    root@tv100:~# i2cset -f -y 2 0x4c 0x00 0
    root@tv100:~# i2cset -f -y 2 0x4c 0x7f 0
    root@tv100:~# i2cset -f -y 2 0x4c 0x00 0
    root@tv100:~# i2cdump -f -y 2 0x4c
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 00 20 c6 22 09 03 40 10 01 42 40 04 05 06    ... ?"??@??B@???
    10: 07 10 12 76 01 2e 60 0e 0c 00 f8 b1 df ef ff 00    ???v?.`??.????..
    20: 00 40 80 00 00 00 50 80 00 00 00 00 00 8c 80 a7    .@?...P?.....???
    30: 59 40 81 34 4b 84 00 00 00 0c be 38 38 08 10 00    Y@?4K?...??88??.
    40: b6 41 00 c0 10 21 00 2e ac 00 00 00 00 00 00 00    ?A.??!..?.......
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    70: 00 00 00 f0 00 0f 00 00 80 00 00 00 00 10 3c 00    ...?.?..?....?<.
    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    

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

    尊敬的所有人:

    我们一直在努力解决这一问题、并尝试寻找正在发生的事情。

    这是播放 file_example_wAV_1mg 时的 BCLK 和 FSYNC

    e2e.ti.com/.../7282.file_5F00_example_5F00_WAV_5F00_1MG.wav

    播放波形'/home/file_example_[ 4003.699680] tas2563 2-004C:tas2563_hw_params、格式:2.
    WAV _1mg.wav':有符号16位 Litt[4003.706977] tas2563 2-004C:tas2563_set_bitwidth 1379
    LE 端字节序、速率8000Hz、立体声

    我们可以看到 BCLK (蓝色)和 FSYNC (红色)都是8kHz。

    我还准备了这个16b 和48kHz 的其他音频文件、以检查范围:

    e2e.ti.com/.../16b48k_5F00_PCM_5F00_16bS_5F00_LE.wav

    播放波形'/home/16b48k_PCM_16 [ 4133.304210] tas2563 2-004C:tas2563_hw_params、格式:2.
    [4133.311370] tas2563 2-004C:tas2563_set_bitwidth 1379
    BS_LE.wav':有符号16位小[4133.317163] tas2563 2-004C:MNCH_SIZE:16
    字节序、速率48000Hz、立体声

    现在我们可以看到 BCLK (蓝色)为26.54kHz、FSYNC 为48kHz。

    我希望这能帮助您了解正在发生的情况。

    感谢您的支持!

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

    BCK 异常。 根据您的设置、对于8kHz、位 clk 必须为0.256MHz;对于16kHz、0.5MHz;对于48kHz、1.536MHz。 此外、我们的芯片不支持低于940.8 kHz 的位时钟、因此不支持8kHz。

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

    感谢您的提示、我已经再次检查了、(第一个示波器可能出了问题)现在它是256kHz BCLK 和8kHz FSYNC

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

    尊敬的 Ming 先生:

    我们已将 DTS 更改为此配置:

    &sai3 {
    	#sound-dai-cells = <0>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&pinctrl_sai3>;
    	assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
    	assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
    	assigned-clock-rates = <12288000>; //12288000 //8192000
    	clocks = <&clk IMX8MN_CLK_SAI3_IPG>, <&clk IMX8MN_CLK_DUMMY>,
    		 <&clk IMX8MN_CLK_SAI3_ROOT>, <&clk IMX8MN_CLK_DUMMY>,
    		 <&clk IMX8MN_CLK_DUMMY>, 
    		<&clk IMX8MN_AUDIO_PLL1_OUT>, 
    		<&clk IMX8MN_AUDIO_PLL2_OUT>;
    	clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
        fsl,sai-asynchronous;
    	status = "okay";
    };

    通过此配置、我们在播放时将获得以下内容:

    root@tv100:~# aplay -Dplughw:0,0 /home/16b48k_PCM_16bS_LE.wav
    Playing WAVE '/home/16b48k_PCM_16[   92.367594] tas2563 2-004c: tas2563_hw_params, format: 2
    bS_LE.wav' : Signed 16 bit Little[   92.374785] tas2563 2-004c: tas2563_set_bitwidth 1379
     Endian, Rate 48000 Hz, Stereo
    [   92.383348] tas2563 2-004c: tas2563_set_slot, slot_width:16
    [   92.391675] tas2563 2-004c: mnCh_size: 16
    [   92.395718] tas2563 2-004c: blr_clk_ratio: 32
    [   92.401303] tas2563 2-004c: tas2563_hw_params, sample rate: 48000
    [   92.409367] tas2563 2-004c: SND_SOC_DAPM_POST_PMU
    [   92.414450] tas2563 2-004c: tas2563_mute
    [   92.418402] tas2563 2-004c: unmute: tas2563_mute
    [   92.423181] tas2563 2-004c: set power state: 0
    [   92.427673] tas2563 2-004c: tas2563_set_power_state, state: 0, mbPowerup 0
    [   92.434692] tas2563 2-004c: tas2563_load_calibration:
    [   92.440585] tas2563 2-004c: TAS2563 calibration file = /mnt/vendor/persist/audio/tas2563_cal.bin
    [   92.449459] tas2563 2-004c: f is not null
    [   92.453919] tas2563 2-004c: nSize = 440
    [   92.457888] tas2563 2-004c: nSize = 440
    [   92.461764] tas2563 2-004c: TAS2563 calibration file size = 440
    [   92.467762] tas2563 2-004c: firmware size: 440
    [   92.472280] tas2563 2-004c: FW timestamp: 1552463249
    [   92.477322] tas2563 2-004c: FW Size       = 440
    [   92.481938] tas2563 2-004c: Checksum      = 0x0000
    [   92.486806] tas2563 2-004c: PPC Version   = 0x0000
    [   92.491677] tas2563 2-004c: FW  Version    = 0x0000
    [   92.496623] tas2563 2-004c: Driver Version= 0x0100
    [   92.501487] tas2563 2-004c: Timestamp     = 1552463249
    [   92.506696] tas2563 2-004c: DDC Name      = Calibration Data File
    [   92.512856] tas2563 2-004c: Description   = Calibration Data File for TAS2563 Mono
    [   92.520509] tas2563 2-004c: header size: 139, line: 1068
    [   92.525897] tas2563 2-004c: program size: 2, line: 1084
    [   92.531195] tas2563 2-004c: config size: 2, line: 1091
    [   92.536435] tas2563 2-004c: fw_parse_data, 882
    [   92.540948] tas2563 2-004c: fw_parse_block_data, 842
    [   92.545996] tas2563 2-004c: fw_parse_block_data, 846
    [   92.551057] tas2563 2-004c: fw_parse_block_data, 871
    [   92.556103] tas2563 2-004c: calib size: 297, line: 1099
    [   92.561433] tas2563 2-004c: TAS2563 calibration: 1 calibrations
    [   92.570240] tas2563 2-004c: IRQ reg is: 0, 1219
    [   92.675570] tas2563 2-004c: irq_work_routine
    [   92.682602] tas2563 2-004c: IRQ status : 0x0, 0x0
    [   92.688188] tas2563 2-004c: IRQ reg is: irq_work_routine 0, 414
    [   92.695138] tas2563 2-004c: IRQ reg is: irq_work_routine, 0, 427
    [   92.701218] tas2563 2-004c: set ICN to -90dB
    [   92.706807] tas2563 2-004c: IRQ reg is: 2, 435
    [   92.711335] tas2563 2-004c: set ICN delay
    [   92.716786] tas2563 2-004c: IRQ reg is: 2, 441
    [   92.748242] tas2563 2-004c: IRQ reg is: irq_work_routine 2, 414
    [   92.755434] tas2563 2-004c: IRQ reg is: irq_work_routine, 2, 427
    [   92.761655] tas2563 2-004c: set ICN to -90dB
    [   92.767343] tas2563 2-004c: IRQ reg is: 2, 435
    [   92.771844] tas2563 2-004c: set ICN delay
    [   92.777202] tas2563 2-004c: IRQ reg is: 2, 441
    [   92.781706] tas2563 2-004c: irq_work_routine, Critical ERROR REG[0x2] = 0x2
    [   92.788771] tas2563 2-004c: device powered up, power down to load program 0 (Tuning Mode)
    [   92.797044] tas2563 2-004c: set power state: 2
    [   92.801643] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 1
    [   92.847580] tas2563 2-004c: load program 0 (Tuning Mode)
    [   92.852924] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1
    [   92.863479] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 4035
    [   93.553515] tas2563 2-004c: Block PChkSum: FW = 0xcc, Reg = 0xcc
    [   93.559626] tas2563 2-004c: Block[0x1] PChkSum match
    [   93.564634] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block
    [   93.574411] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 4
    [   93.582278] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [   93.588856] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data
    [   93.598653] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 3
    [   93.606528] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 432
    [   93.678287] tas2563 2-004c: Block PChkSum: FW = 0x46, Reg = 0x46
    [   93.684332] tas2563 2-004c: Block[0x3] PChkSum match
    [   93.689336] tas2563 2-004c: tas2563_load_default, 1500, ret = 0
    [   93.695323] tas2563 2-004c: tas2563_set_slot, slot_width:16
    [   93.701651] tas2563 2-004c: tas2563_load_default, 1505, ret = 0
    [   93.708004] tas2563 2-004c: INV format: NBNF
    [   93.713221] tas2563 2-004c: tas2563_load_default, 1521, ret = 0
    [   93.719204] tas2563 2-004c: tas2563_set_bitwidth 1379
    [   93.724989] tas2563 2-004c: mnCh_size: 16
    [   93.729058] tas2563 2-004c: tas2563_load_default, 1526, ret = 0
    [   93.738691] tas2563 2-004c: tas2563_load_default, 1547, ret = 0
    [  152.650472] tas2563 2-004c: tas2563_mute
    [  152.654457] tas2563 2-004c: mute: tas2563_mute
    [  152.659041] tas2563 2-004c: set power state: 2
    [  152.663664] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 0
    [  152.671306] tas2563 2-004c: SND_SOC_DAPM_PRE_PMD
    

    信号为:

    其中 BCLK = 3.072MHz 且 FSYNC = 48kHz -> BCLK/FSYNC = 64

    我已检查 B0P0R0x11:

    root@tv100:~# i2cset -f -y 2 0x4c 0x00 0
    root@tv100:~# i2cset -f -y 2 0x4c 0x7f 0
    root@tv100:~# i2cset -f -y 2 0x4c 0x00 0
    root@tv100:~# i2cget -f -y 2 0x4c 0x11
    0x24

    根据数据表:

    0x24 --> 0010 0100

    FS_Ratio[3:0]= B6-3 = 0100 = 04h = 64

    FS_RATE[2:0]= B2-b0 = 100 = 44.1/48kHz

    因此、我们认为信号现在是正确的。

    唯一的区别是、当开始播放时、我们现在可以听到一声柔和的喊叫噪音、但我们听不到任何其他声音。

    我们还尝试使用相同的结果将0x30设置为0x99。

    谢谢!!

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

    尊敬的 Ming 先生和 Salazar 先生:

    我们在同一问题上不断努力,进展甚微或毫无进展。

    是否可以获得有关此主题的更多帮助?

    此致。

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

    那么、您是否会同时测量这两个信号? 一个是 Fysnc 引脚、另一个是 Din 引脚。 请在同一图中测量它们。

    还有一点、让我们在听到软喊声时绕过 ALGO。 我想检查根本原因是否是算法。

    i2cset -f -y 2 0x4c 0x00 0
    i2cset -f -y 2 0x4c 0x7f 0
    i2cset -f -y 2 0x4c 0x00 1.
    i2cset -f -y 2 0x4c 0x02 2.

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

    尊敬的丁先生:

    我会再次给出这个问题的完整视图、因为我们在这几天中进行了几次测试、可能有些不同。

    我们目前正在使用 PurePath 创建的2个不同二进制文件进行测试、一个在调优模式下、另一个在 ROM 模式下、只是为了查看是否有任何差异。

    PowerPath 处于调优模式

    这些是使用 PurePath 生成的文件、我们使用二进制文件 作为  tas2563_uCDSP.bin 并将其存储在/lib/firmware.中

    e2e.ti.com/.../TV100_5F00_t1.zip

    Linux 驱动程序

    这是启动内核驱动程序的结果:

    root@tv100:~# insmod /lib/modules/5.10.9-1.0.0+gf001713/kernel/sound/soc/codecs/tas2563-a/snd-soc-tas2563.ko
    [   77.050555] snd_soc_tas2563: no symbol version for module_layout
    [   77.056625] snd_soc_tas2563: loading out-of-tree module taints kernel.
    [   77.065383] tas2563 2-004c: Driver ID: 1.0.0
    [   77.069705] tas2563 2-004c: tas2563_i2c_probe enter
    [   77.120043] tas2563 2-004c: PGID: 16
    [   77.123754] tas2563 2-004c: tas2563_register_codec, enter
    [   77.129408] tas2563 2-004c: tas2563_register_misc, leave
    [   77.134837] tas2563 2-004c: tiload_driver_init
    [   77.139418] tas2563 2-004c: allocated Major Number: 509
    [   77.144931] tas2563 2-004c: Registered TiLoad driver, Major number: 509
    [   77.153660] tas2563 2-004c: tas2563_codec_probe
    [   77.160017] tas2563 2-004c: tas2563_fw_ready:
    [   77.164420] tas2563 2-004c: firmware size: 20389
    [   77.169114] debugfs: Directory '30030000.sai' with parent 'mx8-tas2563' already present!
    [   77.177289] tas2563 2-004c: tas2563_set_dai_fmt, format=0x4301
    [   77.183201] tas2563 2-004c: FW timestamp: 1631628490
    [   77.188330] tas2563 2-004c: FW Size       = 20389
    [   77.193084] tas2563 2-004c: Checksum      = 0xFC1B33F2
    [   77.198264] tas2563 2-004c: PPC Version   = 0x2C000
    [   77.203191] tas2563 2-004c: FW  Version    = 0x1010000
    [   77.208389] tas2563 2-004c: Driver Version= 0x0202
    [   77.213232] tas2563 2-004c: Timestamp     = 1631628490
    [   77.218423] tas2563 2-004c: DDC Name      = TV100_t1
    [   77.223407] tas2563 2-004c: Description   = TI SmartAmp
    [   77.228704] tas2563 2-004c: header size: 112, line: 1068
    [   77.234078] tas2563 2-004c: FW i2sMode: 0
    [   77.238140] tas2563 2-004c: fw_parse_data, 882
    [   77.242623] tas2563 2-004c: fw_parse_block_data, 842
    [   77.247615] tas2563 2-004c: fw_parse_block_data, 846
    [   77.252640] tas2563 2-004c: fw_parse_block_data, 871
    [   77.257660] tas2563 2-004c: program data number: 16272
    [   77.262839] tas2563 2-004c: program size: 16363, line: 1084
    [   77.268461] tas2563 2-004c: configuration, mnProgram: 0
    [   77.273707] tas2563 2-004c: configuration samplerate: 48000
    [   77.279332] tas2563 2-004c: Fs rate: 0
    [   77.283118] tas2563 2-004c: fw_parse_data, 882
    [   77.287614] tas2563 2-004c: fw_parse_block_data, 842
    [   77.292687] tas2563 2-004c: fw_parse_block_data, 846
    [   77.297699] tas2563 2-004c: fw_parse_block_data, 871
    [   77.302686] tas2563 2-004c: fw_parse_block_data, 842
    [   77.307705] tas2563 2-004c: fw_parse_block_data, 846
    [   77.312715] tas2563 2-004c: fw_parse_block_data, 871
    [   77.317716] tas2563 2-004c: configuration, mnProgram: 0
    [   77.322993] tas2563 2-004c: configuration samplerate: 48000
    [   77.328628] tas2563 2-004c: Fs rate: 0
    [   77.332450] tas2563 2-004c: fw_parse_data, 882
    [   77.336945] tas2563 2-004c: fw_parse_block_data, 842
    [   77.341967] tas2563 2-004c: fw_parse_block_data, 846
    [   77.347343] tas2563 2-004c: fw_parse_block_data, 871
    [   77.352406] tas2563 2-004c: fw_parse_block_data, 842
    [   77.357451] tas2563 2-004c: fw_parse_block_data, 846
    [   77.362488] tas2563 2-004c: fw_parse_block_data, 871
    [   77.367566] tas2563 2-004c: config size: 3914, line: 1091
    [   77.373030] tas2563 2-004c: calib size: 0, line: 1099
    [   77.378141] tas2563 2-004c: find default configuration 0
    [   77.419598] tas2563 2-004c: load program 0 (Tuning Mode)
    [   77.424946] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1
    [   77.433510] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 4035
    [   78.005174] tas2563 2-004c: Block PChkSum: FW = 0x48, Reg = 0x48
    [   78.011219] tas2563 2-004c: Block[0x1] PChkSum match
    [   78.016210] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block
    [   78.025979] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 4
    [   78.033854] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [   78.040418] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data
    [   78.050190] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 3
    [   78.058045] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 432
    [   78.125902] tas2563 2-004c: Block PChkSum: FW = 0x3, Reg = 0x3
    [   78.131763] tas2563 2-004c: Block[0x3] PChkSum match
    [   78.136784] tas2563 2-004c: tas2563_load_default, 1506, ret = 0
    [   78.142747] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   78.148262] tas2563 2-004c: tas2563_load_default, 1511, ret = 0
    [   78.154511] tas2563 2-004c: INV format: IBNF
    [   78.159743] tas2563 2-004c: tas2563_load_default, 1527, ret = 0
    [   78.165714] tas2563 2-004c: tas2563_set_bitwidth 1383
    [   78.170793] tas2563 2-004c: Not supported params format
    [   78.176065] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   78.181581] tas2563 2-004c: mnCh_size: 0
    [   78.185545] tas2563 2-004c: tas2563_load_default, 1532, ret = 0
    [   78.191504] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0
    [   78.209643] tas2563 2-004c: tas2563_load_default, 1553, ret = 0
    [   78.215923] tas2563 2-004c: INV format: IBNF
    [   78.220929] asoc-simple-card sound: ASoC: no DMI vendor name!
    [   78.283307] tas2563 2-004c: tas2563_codec_read, reg: 0x3, value: 0x20
    [   78.290086] tas2563 2-004c: tas2563_codec_write, reg: 0x3, 0x24
    [   78.335602] tas2563 2-004c: load program 0 (Tuning Mode)
    [   78.340968] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1
    [   78.349533] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 4035
    [   78.955953] tas2563 2-004c: Block PChkSum: FW = 0x48, Reg = 0x48
    [   78.962008] tas2563 2-004c: Block[0x1] PChkSum match
    [   78.967015] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block
    [   78.976805] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 4
    [   78.984674] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [   78.991236] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data
    [   79.001003] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 3
    [   79.008857] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 432
    [   79.080013] tas2563 2-004c: Block PChkSum: FW = 0x3, Reg = 0x3
    [   79.085946] tas2563 2-004c: Block[0x3] PChkSum match
    [   79.090947] tas2563 2-004c: tas2563_load_default, 1506, ret = 0
    [   79.096897] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   79.102407] tas2563 2-004c: tas2563_load_default, 1511, ret = 0
    [   79.108660] tas2563 2-004c: INV format: IBNF
    [   79.113884] tas2563 2-004c: tas2563_load_default, 1527, ret = 0
    [   79.119857] tas2563 2-004c: tas2563_set_bitwidth 1383
    [   79.124949] tas2563 2-004c: Not supported params format
    [   79.130231] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   79.135757] tas2563 2-004c: mnCh_size: 0
    [   79.139714] tas2563 2-004c: tas2563_load_default, 1532, ret = 0
    [   79.145660] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0
    [   79.162841] tas2563 2-004c: tas2563_load_default, 1553, ret = 0
    [   79.169193] tas2563 2-004c: tas2563_configuration_put = 0
    [   79.174648] tas2563 2-004c: tas2563_load_configuration: 0
    [   79.180081] tas2563 2-004c: Configuration 0 is already loaded
    [   79.185911] tas2563 2-004c: Calibration 0 doesn't exist
    [   79.248842] tas2563 2-004c: tas2563_codec_read, reg: 0x3, value: 0x20
    [   79.255671] tas2563 2-004c: tas2563_codec_write, reg: 0x3, 0x24
    [   79.303594] tas2563 2-004c: load program 0 (Tuning Mode)
    [   79.308979] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1
    [   79.317533] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 4035
    [   79.913740] tas2563 2-004c: Block PChkSum: FW = 0x48, Reg = 0x48
    [   79.919800] tas2563 2-004c: Block[0x1] PChkSum match
    [   79.924813] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block
    [   79.934590] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 4
    [   79.942505] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [   79.949087] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data
    [   79.958873] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 3
    [   79.966791] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 432
    [   80.036415] tas2563 2-004c: Block PChkSum: FW = 0x3, Reg = 0x3
    [   80.042300] tas2563 2-004c: Block[0x3] PChkSum match
    [   80.047350] tas2563 2-004c: tas2563_load_default, 1506, ret = 0
    [   80.053364] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   80.058897] tas2563 2-004c: tas2563_load_default, 1511, ret = 0
    [   80.065261] tas2563 2-004c: INV format: IBNF
    [   80.070514] tas2563 2-004c: tas2563_load_default, 1527, ret = 0
    [   80.076458] tas2563 2-004c: tas2563_set_bitwidth 1383
    [   80.081558] tas2563 2-004c: Not supported params format
    [   80.086916] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   80.092443] tas2563 2-004c: mnCh_size: 0
    [   80.096457] tas2563 2-004c: tas2563_load_default, 1532, ret = 0
    [   80.102452] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0
    [   80.119636] tas2563 2-004c: tas2563_load_default, 1553, ret = 0
    [   80.126007] tas2563 2-004c: tas2563_configuration_put = 0
    [   80.131547] tas2563 2-004c: tas2563_load_configuration: 0
    [   80.136988] tas2563 2-004c: Configuration 0 is already loaded
    [   80.142881] tas2563 2-004c: Calibration 0 doesn't exist

    Aplay 结果

    这是播放歌曲的结果:

    root@tv100:~# aplay -Dplughw:0,0 /home/16b48k_PCM_16bS_LE.wav
    Playing WAVE '/home/16b48k_PCM_16[  100.097046] tas2563 2-004c: tas2563_hw_params, format: 2
    [  100.104649] tas2563 2-004c: tas2563_set_bitwidth 1383
    bS_LE.wav' : Signed 16 bit Little[  100.112223] tas2563 2-004c: tas2563_set_slot, slot_width:16
     Endian, Rate 48000 Hz, Stereo
    [  100.119155] tas2563 2-004c: mnCh_size: 16
    [  100.125575] tas2563 2-004c: blr_clk_ratio: 32
    [  100.130637] tas2563 2-004c: tas2563_hw_params, sample rate: 48000
    [  100.147160] tas2563 2-004c: SND_SOC_DAPM_POST_PMU
    [  100.152066] tas2563 2-004c: tas2563_mute
    [  100.156252] tas2563 2-004c: unmute: tas2563_mute
    [  100.160908] tas2563 2-004c: set power state: 0
    [  100.165484] tas2563 2-004c: tas2563_set_power_state, state: 0, mbPowerup 0
    [  100.172400] tas2563 2-004c: tas2563_load_calibration:
    [  100.180415] tas2563 2-004c: TAS2563 calibration file = /mnt/vendor/persist/audio/tas2563_cal.bin
    [  100.189222] tas2563 2-004c: f is not null
    [  100.193669] tas2563 2-004c: nSize = 440
    [  100.197557] tas2563 2-004c: nSize = 440
    [  100.201526] tas2563 2-004c: TAS2563 calibration file size = 440
    [  100.207482] tas2563 2-004c: firmware size: 440
    [  100.212053] tas2563 2-004c: FW timestamp: 1552463249
    [  100.217057] tas2563 2-004c: FW Size       = 440
    [  100.221661] tas2563 2-004c: Checksum      = 0x0000
    [  100.226531] tas2563 2-004c: PPC Version   = 0x0000
    [  100.231393] tas2563 2-004c: FW  Version    = 0x0000
    [  100.236341] tas2563 2-004c: Driver Version= 0x0100
    [  100.241208] tas2563 2-004c: Timestamp     = 1552463249
    [  100.246420] tas2563 2-004c: DDC Name      = Calibration Data File
    [  100.252531] tas2563 2-004c: Description   = Calibration Data File for TAS2563 Mono
    [  100.260150] tas2563 2-004c: header size: 139, line: 1068
    [  100.265527] tas2563 2-004c: program size: 2, line: 1084
    [  100.270832] tas2563 2-004c: config size: 2, line: 1091
    [  100.276047] tas2563 2-004c: fw_parse_data, 882
    [  100.280523] tas2563 2-004c: fw_parse_block_data, 842
    [  100.285570] tas2563 2-004c: fw_parse_block_data, 846
    [  100.290610] tas2563 2-004c: fw_parse_block_data, 871
    [  100.295648] tas2563 2-004c: calib size: 297, line: 1099
    [  100.300945] tas2563 2-004c: TAS2563 calibration: 1 calibrations
    [  100.308918] tas2563 2-004c: IRQ reg is: 0, 1219
    [  100.331603] tas2563 2-004c: irq_work_routine
    [  100.337190] tas2563 2-004c: IRQ status : 0x2, 0x0
    [  100.348587] tas2563 2-004c: device powered up, power down to load program 0 (Tuning Mode)
    [  100.356796] tas2563 2-004c: set power state: 2
    [  100.361275] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 1
    [  100.407611] tas2563 2-004c: load program 0 (Tuning Mode)
    [  100.412960] tas2563 2-004c: TAS2563 load data: TuningMode Program, Blocks = 1, Block Type = 1
    [  100.421566] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 4035
    [  101.077491] tas2563 2-004c: Block PChkSum: FW = 0x48, Reg = 0x48
    [  101.083634] tas2563 2-004c: Block[0x1] PChkSum match
    [  101.088819] tas2563 2-004c: load configuration configuration_Tuning Mode_48 KHz_s1_0 conefficient pre block
    [  101.098652] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 4
    [  101.106616] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [  101.113401] tas2563 2-004c: load new configuration: configuration_Tuning Mode_48 KHz_s1_0, coeff block data
    [  101.123194] tas2563 2-004c: TAS2563 load data: Snapshot 1, Blocks = 2, Block Type = 3
    [  101.131064] tas2563 2-004c: TAS2563 load block: Type = 3, commands = 432
    [  101.214223] tas2563 2-004c: Block PChkSum: FW = 0x3, Reg = 0x3
    [  101.220182] tas2563 2-004c: Block[0x3] PChkSum match
    [  101.225282] tas2563 2-004c: tas2563_load_default, 1506, ret = 0
    [  101.231248] tas2563 2-004c: tas2563_set_slot, slot_width:16
    [  101.237690] tas2563 2-004c: tas2563_load_default, 1511, ret = 0
    [  101.244087] tas2563 2-004c: INV format: IBNF
    [  101.249511] tas2563 2-004c: tas2563_load_default, 1527, ret = 0
    [  101.255504] tas2563 2-004c: tas2563_set_bitwidth 1383
    [  101.261282] tas2563 2-004c: mnCh_size: 16
    [  101.265348] tas2563 2-004c: tas2563_load_default, 1532, ret = 0
    [  101.282801] tas2563 2-004c: tas2563_load_default, 1553, ret = 0
    [  160.388675] tas2563 2-004c: tas2563_mute
    [  160.392651] tas2563 2-004c: mute: tas2563_mute
    [  160.397133] tas2563 2-004c: set power state: 2
    [  160.401667] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 0
    [  160.411557] tas2563 2-004c: SND_SOC_DAPM_PRE_PMD

    它似乎正在发出"扬声器过流"中断。

    在这里、您可以找到三个信号的波形图、一个是 FSYNC 和 DIN 的边沿的详细信息。

    您可以检查:

    SBCLK = 3.072MHz

    FSYNC = 48kHz

    绕过算法

    我们已经尝试了您建议的命令、但没有结果。

    我们已经尝试在播放之前和播放期间设置命令。

    ROM 模式下的 PowerPath

    这些是使用 PurePath 生成的文件、我们使用二进制文件 作为  tas2563_uCDSP.bin 并 将其存储 在/lib/firmware.中

    e2e.ti.com/.../TV100_5F00_t2ROM.zip

    Linux 驱动程序

    这是启动内核驱动程序的结果:

    root@tv100:~# insmod /lib/modules/5.10.9-1.0.0+gf001713/kernel/sound/soc/codecs/tas2563-a/snd-soc-tas2563.ko
    [   33.566028] snd_soc_tas2563: no symbol version for module_layout
    [   33.572121] snd_soc_tas2563: loading out-of-tree module taints kernel.
    [   33.580417] tas2563 2-004c: Driver ID: 1.0.0
    [   33.584727] tas2563 2-004c: tas2563_i2c_probe enter
    [   33.637236] tas2563 2-004c: PGID: 16
    [   33.640923] tas2563 2-004c: tas2563_register_codec, enter
    [   33.646666] tas2563 2-004c: tas2563_register_misc, leave
    [   33.652056] tas2563 2-004c: tiload_driver_init
    [   33.656642] tas2563 2-004c: allocated Major Number: 509
    [   33.662319] tas2563 2-004c: Registered TiLoad driver, Major number: 509
    [   33.670735] tas2563 2-004c: tas2563_codec_probe
    [   33.675438] debugfs: Directory '30030000.sai' with parent 'mx8-tas2563' already present!
    root@tv100:~# [   33.683685] tas2563 2-004c: tas2563_fw_ready:
    [   33.689178] tas2563 2-004c: firmware size: 1266
    [   33.693740] tas2563 2-004c: FW timestamp: 1631633181
    [   33.698738] tas2563 2-004c: FW Size       = 1266
    [   33.703407] tas2563 2-004c: tas2563_set_dai_fmt, format=0x4301
    [   33.709286] tas2563 2-004c: Checksum      = 0xC3EFF920
    [   33.714456] tas2563 2-004c: PPC Version   = 0x2C000
    [   33.719372] tas2563 2-004c: FW  Version    = 0x1010000
    [   33.724545] tas2563 2-004c: Driver Version= 0x0202
    [   33.729369] tas2563 2-004c: Timestamp     = 1631633181
    [   33.734531] tas2563 2-004c: DDC Name      = TV100_t2ROM
    [   33.739790] tas2563 2-004c: Description   = TI SmartAmp
    [   33.745053] tas2563 2-004c: header size: 112, line: 1068
    [   33.750397] tas2563 2-004c: FW i2sMode: 0
    [   33.754440] tas2563 2-004c: fw_parse_data, 882
    [   33.758905] tas2563 2-004c: fw_parse_block_data, 842
    [   33.763918] tas2563 2-004c: fw_parse_block_data, 846
    [   33.768909] tas2563 2-004c: fw_parse_block_data, 871
    [   33.773903] tas2563 2-004c: program data number: 861
    [   33.778889] tas2563 2-004c: program size: 949, line: 1084
    [   33.784323] tas2563 2-004c: configuration, mnProgram: 0
    [   33.789567] tas2563 2-004c: configuration samplerate: 48000
    [   33.795167] tas2563 2-004c: Fs rate: 0
    [   33.798947] tas2563 2-004c: fw_parse_data, 882
    [   33.803431] tas2563 2-004c: fw_parse_block_data, 842
    [   33.808421] tas2563 2-004c: fw_parse_block_data, 846
    [   33.813416] tas2563 2-004c: fw_parse_block_data, 871
    [   33.818402] tas2563 2-004c: config size: 205, line: 1091
    [   33.823745] tas2563 2-004c: calib size: 0, line: 1099
    [   33.828847] tas2563 2-004c: find default configuration 0
    [   33.871667] tas2563 2-004c: load program 0 (ROM Mode)
    [   33.876743] tas2563 2-004c: TAS2563 load data: ROMMode Program, Blocks = 1, Block Type = 1
    [   33.885031] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 183
    [   33.924904] tas2563 2-004c: Block PChkSum: FW = 0x7a, Reg = 0x7a
    [   33.930951] tas2563 2-004c: Block[0x1] PChkSum match
    [   33.935967] tas2563 2-004c: load configuration configuration_ROM Mode_48 KHz_s0_0 conefficient pre block
    [   33.945487] tas2563 2-004c: TAS2563 load data: base_snapshot, Blocks = 1, Block Type = 4
    [   33.953626] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [   33.960189] tas2563 2-004c: load new configuration: configuration_ROM Mode_48 KHz_s0_0, coeff block data
    [   33.969698] tas2563 2-004c: TAS2563 load data: base_snapshot, Blocks = 1, Block Type = 3
    [   33.977816] tas2563 2-004c: tas2563_load_default, 1506, ret = 0
    [   33.983768] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   33.989282] tas2563 2-004c: tas2563_load_default, 1511, ret = 0
    [   33.996136] tas2563 2-004c: INV format: IBNF
    [   34.001718] tas2563 2-004c: tas2563_load_default, 1527, ret = 0
    [   34.007680] tas2563 2-004c: tas2563_set_bitwidth 1383
    [   34.012772] tas2563 2-004c: Not supported params format
    [   34.018020] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   34.023533] tas2563 2-004c: mnCh_size: 0
    [   34.027474] tas2563 2-004c: tas2563_load_default, 1532, ret = 0
    [   34.033415] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0
    [   34.054346] tas2563 2-004c: tas2563_load_default, 1553, ret = 0
    [   34.060654] tas2563 2-004c: INV format: IBNF
    [   34.065677] asoc-simple-card sound: ASoC: no DMI vendor name!
    [   34.131132] tas2563 2-004c: tas2563_codec_read, reg: 0x3, value: 0x20
    [   34.179639] tas2563 2-004c: load program 0 (ROM Mode)
    [   34.184721] tas2563 2-004c: TAS2563 load data: ROMMode Program, Blocks = 1, Block Type = 1
    [   34.193092] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 183
    [   34.233928] tas2563 2-004c: Block PChkSum: FW = 0x7a, Reg = 0x7a
    [   34.239986] tas2563 2-004c: Block[0x1] PChkSum match
    [   34.244992] tas2563 2-004c: load configuration configuration_ROM Mode_48 KHz_s0_0 conefficient pre block
    [   34.254511] tas2563 2-004c: TAS2563 load data: base_snapshot, Blocks = 1, Block Type = 4
    [   34.262640] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [   34.269205] tas2563 2-004c: load new configuration: configuration_ROM Mode_48 KHz_s0_0, coeff block data
    [   34.278721] tas2563 2-004c: TAS2563 load data: base_snapshot, Blocks = 1, Block Type = 3
    [   34.286847] tas2563 2-004c: tas2563_load_default, 1506, ret = 0
    [   34.292794] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   34.298338] tas2563 2-004c: tas2563_load_default, 1511, ret = 0
    [   34.304608] tas2563 2-004c: INV format: IBNF
    [   34.309872] tas2563 2-004c: tas2563_load_default, 1527, ret = 0
    [   34.315839] tas2563 2-004c: tas2563_set_bitwidth 1383
    [   34.320923] tas2563 2-004c: Not supported params format
    [   34.326173] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   34.331722] tas2563 2-004c: mnCh_size: 0
    [   34.335678] tas2563 2-004c: tas2563_load_default, 1532, ret = 0
    [   34.341640] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0
    [   34.358679] tas2563 2-004c: tas2563_load_default, 1553, ret = 0
    [   34.365009] tas2563 2-004c: tas2563_configuration_put = 0
    [   34.370474] tas2563 2-004c: tas2563_load_configuration: 0
    [   34.375937] tas2563 2-004c: Configuration 0 is already loaded
    [   34.381768] tas2563 2-004c: Calibration 0 doesn't exist
    [   34.445323] tas2563 2-004c: tas2563_codec_read, reg: 0x3, value: 0x20
    [   34.495661] tas2563 2-004c: load program 0 (ROM Mode)
    [   34.500740] tas2563 2-004c: TAS2563 load data: ROMMode Program, Blocks = 1, Block Type = 1
    [   34.509071] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 183
    [   34.549163] tas2563 2-004c: Block PChkSum: FW = 0x7a, Reg = 0x7a
    [   34.555223] tas2563 2-004c: Block[0x1] PChkSum match
    [   34.560246] tas2563 2-004c: load configuration configuration_ROM Mode_48 KHz_s0_0 conefficient pre block
    [   34.569817] tas2563 2-004c: TAS2563 load data: base_snapshot, Blocks = 1, Block Type = 4
    [   34.577984] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [   34.584599] tas2563 2-004c: load new configuration: configuration_ROM Mode_48 KHz_s0_0, coeff block data
    [   34.594166] tas2563 2-004c: TAS2563 load data: base_snapshot, Blocks = 1, Block Type = 3
    [   34.602372] tas2563 2-004c: tas2563_load_default, 1506, ret = 0
    [   34.608368] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   34.613928] tas2563 2-004c: tas2563_load_default, 1511, ret = 0
    [   34.620229] tas2563 2-004c: INV format: IBNF
    [   34.625444] tas2563 2-004c: tas2563_load_default, 1527, ret = 0
    [   34.631478] tas2563 2-004c: tas2563_set_bitwidth 1383
    [   34.636605] tas2563 2-004c: Not supported params format
    [   34.641926] tas2563 2-004c: tas2563_set_slot, slot_width:0
    [   34.647464] tas2563 2-004c: mnCh_size: 0
    [   34.651424] tas2563 2-004c: tas2563_load_default, 1532, ret = 0
    [   34.657393] tas2563 2-004c: tas2563_set_samplerate, unsupported sample rate, 0
    [   34.674515] tas2563 2-004c: tas2563_load_default, 1553, ret = 0
    [   34.680913] tas2563 2-004c: tas2563_configuration_put = 0
    [   34.686437] tas2563 2-004c: tas2563_load_configuration: 0
    [   34.691899] tas2563 2-004c: Configuration 0 is already loaded
    [   34.697764] tas2563 2-004c: Calibration 0 doesn't exist
    

    Aplay 结果

    这是播放歌曲的结果:

    root@tv100:~# aplay -Dplughw:0,0 /home/16b48k_PCM_16bS_LE.wav &
    [1] 1051
    root@tv100:~# Playing WAVE '/home/16b48k_PCM_16[   39.594514] tas2563 2-004c: tas2563_hw_params, format: 2
    bS_LE.wav' : Signed 16 bit Little[   39.601760] tas2563 2-004c: tas2563_set_bitwidth 1383
     Endian, Rate 48000 Hz, Stereo
    [   39.610361] tas2563 2-004c: tas2563_set_slot, slot_width:16
    [   39.618866] tas2563 2-004c: mnCh_size: 16
    [   39.622930] tas2563 2-004c: blr_clk_ratio: 32
    [   39.628020] tas2563 2-004c: tas2563_hw_params, sample rate: 48000
    [   39.644833] tas2563 2-004c: SND_SOC_DAPM_POST_PMU
    [   39.649634] tas2563 2-004c: tas2563_mute
    [   39.653597] tas2563 2-004c: unmute: tas2563_mute
    [   39.658253] tas2563 2-004c: set power state: 0
    [   39.662722] tas2563 2-004c: tas2563_set_power_state, state: 0, mbPowerup 0
    [   39.669628] tas2563 2-004c: tas2563_load_calibration:
    [   39.676538] tas2563 2-004c: TAS2563 calibration file = /mnt/vendor/persist/audio/tas2563_cal.bin
    [   39.685374] tas2563 2-004c: f is not null
    [   39.689744] tas2563 2-004c: nSize = 440
    [   39.693629] tas2563 2-004c: nSize = 440
    [   39.697498] tas2563 2-004c: TAS2563 calibration file size = 440
    [   39.703446] tas2563 2-004c: firmware size: 440
    [   39.707914] tas2563 2-004c: FW timestamp: 1552463249
    [   39.712915] tas2563 2-004c: FW Size       = 440
    [   39.717468] tas2563 2-004c: Checksum      = 0x0000
    [   39.722282] tas2563 2-004c: PPC Version   = 0x0000
    [   39.727093] tas2563 2-004c: FW  Version    = 0x0000
    [   39.731999] tas2563 2-004c: Driver Version= 0x0100
    [   39.736812] tas2563 2-004c: Timestamp     = 1552463249
    [   39.742003] tas2563 2-004c: DDC Name      = Calibration Data File
    [   39.748129] tas2563 2-004c: Description   = Calibration Data File for TAS2563 Mono
    [   39.755773] tas2563 2-004c: header size: 139, line: 1068
    [   39.761111] tas2563 2-004c: program size: 2, line: 1084
    [   39.766388] tas2563 2-004c: config size: 2, line: 1091
    [   39.771553] tas2563 2-004c: fw_parse_data, 882
    [   39.776031] tas2563 2-004c: fw_parse_block_data, 842
    [   39.781014] tas2563 2-004c: fw_parse_block_data, 846
    [   39.786003] tas2563 2-004c: fw_parse_block_data, 871
    [   39.791013] tas2563 2-004c: calib size: 297, line: 1099
    [   39.796291] tas2563 2-004c: TAS2563 calibration: 1 calibrations
    [   39.803803] tas2563 2-004c: IRQ reg is: 0, 1219
    [   39.823649] tas2563 2-004c: irq_work_routine
    [   39.829144] tas2563 2-004c: IRQ status : 0x2, 0x0
    [   39.848240] tas2563 2-004c: device powered up, power down to load program 0 (ROM Mode)
    [   39.856979] tas2563 2-004c: set power state: 2
    [   39.862252] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 1
    [   39.907689] tas2563 2-004c: load program 0 (ROM Mode)
    [   39.912774] tas2563 2-004c: TAS2563 load data: ROMMode Program, Blocks = 1, Block Type = 1
    [   39.921063] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 183
    [   39.961446] tas2563 2-004c: Block PChkSum: FW = 0x7a, Reg = 0x7a
    [   39.967497] tas2563 2-004c: Block[0x1] PChkSum match
    [   39.972486] tas2563 2-004c: load configuration configuration_ROM Mode_48 KHz_s0_0 conefficient pre block
    [   39.981996] tas2563 2-004c: TAS2563 load data: base_snapshot, Blocks = 1, Block Type = 4
    [   39.990109] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [   39.996666] tas2563 2-004c: load new configuration: configuration_ROM Mode_48 KHz_s0_0, coeff block data
    [   40.006209] tas2563 2-004c: TAS2563 load data: base_snapshot, Blocks = 1, Block Type = 3
    [   40.014341] tas2563 2-004c: tas2563_load_default, 1506, ret = 0
    [   40.020288] tas2563 2-004c: tas2563_set_slot, slot_width:16
    [   40.026496] tas2563 2-004c: tas2563_load_default, 1511, ret = 0
    [   40.032765] tas2563 2-004c: INV format: IBNF
    [   40.037998] tas2563 2-004c: tas2563_load_default, 1527, ret = 0
    [   40.043962] tas2563 2-004c: tas2563_set_bitwidth 1383
    [   40.049644] tas2563 2-004c: mnCh_size: 16
    [   40.053685] tas2563 2-004c: tas2563_load_default, 1532, ret = 0
    [   40.070466] tas2563 2-004c: tas2563_load_default, 1553, ret = 0
    [   99.883907] tas2563 2-004c: tas2563_mute
    [   99.887896] tas2563 2-004c: mute: tas2563_mute
    [   99.892395] tas2563 2-004c: set power state: 2
    [   99.896935] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 0
    [   99.904982] tas2563 2-004c: SND_SOC_DAPM_PRE_PMD
    
    [1]+  Done                    aplay -Dplughw:0,0 /home/16b48k_PCM_16bS_LE.wav
    

    它似乎再次发出"扬声器过流"中断。

    为调优模式提供的图没有区别。

    绕过算法

    我们已经尝试了您建议的命令、但没有结果。

    我们已经尝试在播放之前和播放期间设置命令。

    原理图

    由于驱动器似乎产生了扬声器过流保护中断、我们再次检查了原理图并测量了扬声器路径中的阻抗。

    我们在电路板断电且未连接扬声器的情况下测量了 AUDIO_AMP_OUT_P 和_N 之间的阻抗。 我们得到大约175kOhm 的电阻、如在 tas2563评估板中。

    我们还在 TAS2563引脚中连接扬声器时测量了阻抗、我们可以测量大约8欧姆的扬声器阻抗。

    谢谢、此致。

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

    感谢您提供详细信息和日志。

    根据 pltos 中的波形、fsync 信号异常、您可以看到其占空比不是50%。 请更正。 在 I2S 标准中、fsync 时钟的占空比必须为50%。

    我仍然发现位 clk 为3.033 MHz。 理想值应为3.072 MHz。 更正后,请不要忘记转储 Book0Page0上的寄存器。

    然后、根据图、我想知道音频片段是否是单声道?

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

    尊敬的丁先生:

    尊敬的丁先生:

    我们已将 FSYNC 设置为50%占空比、但仍然听不到任何内容。

    50%占空比中的 FSYNC

    关于 SBCLK 的频率、您可以在图中看到奇怪的频率、我们有足够的空间来观察 FSYNC、如果我们仔细观察 SBCLK 来测量它、您可以检查它是否正好为3.072MHz:
    SBCLK 处于3.072MHz

    与音频文件相关,它是立体声歌曲。 我再次上载到这里:

    下载此文件--> e2e.ti.com/.../16b_5F00_48kH_5F00_PCM16bS_5F00_LE.wav

    以防万一、我已经将 wav 文件制作为单声道、并且结果相同。

    下载此文件--> e2e.ti.com/.../16b_5F00_48kH_5F00_PCM16bS_5F00_LE_5F00_mono.wav

    在 PowerPath 中、我们选择了对两个通道进行降频混合的选项。

    -->选择配置=立体声混合(L+R)/2

    我还在播放同一首歌曲时测量了评估板上的图。

    您可以检查 FSYNC 绝对不是50%占空比、它正在工作。 这就是我们不担心之前信号的原因。

    评估板图

    在运行 aplay 时、您可能错过了以下内容:

    [8968.313937] tas2563 2-004C:SPK 过流!

    root@tv100:~# aplay -Dplughw:0,0 /home/audio_files/16b_48kH_PCM16bS_LE.wav
    Playing WAVE '/home/audio_files/1[ 8968.215668] tas2563 2-004c: tas2563_hw_params, format: 2
    6b_48kH_PCM16bS_LE.wav' : Signed [ 8968.222919] tas2563 2-004c: tas2563_set_bitwidth 1383
    16 bit Little Endian, Rate 48000 [ 8968.231313] tas2563 2-004c: mnCh_size: 16
    Hz, Stereo
    [ 8968.237757] tas2563 2-004c: blr_clk_ratio: 32
    [ 8968.243873] tas2563 2-004c: tas2563_hw_params, sample rate: 48000
    [ 8968.250814] tas2563 2-004c: tas2563_set_samplerate, Ramp sample: 48000
    [ 8968.259606] tas2563 2-004c: SND_SOC_DAPM_POST_PMU
    [ 8968.264639] tas2563 2-004c: tas2563_mute
    [ 8968.268620] tas2563 2-004c: unmute: tas2563_mute
    [ 8968.273377] tas2563 2-004c: set power state: 0
    [ 8968.277975] tas2563 2-004c: tas2563_set_power_state, state: 0, mbPowerup 0
    [ 8968.286751] tas2563 2-004c: IRQ reg is: 0, 1219
    [ 8968.303566] tas2563 2-004c: irq_work_routine
    [ 8968.309076] tas2563 2-004c: IRQ status : 0x2, 0x0
    [ 8968.313937] tas2563 2-004c: SPK over current!
    [ 8968.320625] tas2563 2-004c: device powered up, power down to load program 0 (ROM Mode)
    [ 8968.328587] tas2563 2-004c: set power state: 2
    [ 8968.333187] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 1
    [ 8968.379589] tas2563 2-004c: load program 0 (ROM Mode)
    [ 8968.384669] tas2563 2-004c: TAS2563 load data: ROMMode Program, Blocks = 1, Block Type = 1
    [ 8968.393199] tas2563 2-004c: TAS2563 load block: Type = 1, commands = 183
    [ 8968.446860] tas2563 2-004c: Block PChkSum: FW = 0x7a, Reg = 0x7a
    [ 8968.452924] tas2563 2-004c: Block[0x1] PChkSum match
    [ 8968.457950] tas2563 2-004c: load configuration configuration_ROM Mode_48 KHz_s0_0 conefficient pre block
    [ 8968.467561] tas2563 2-004c: TAS2563 load data: base_snapshot, Blocks = 1, Block Type = 4
    [ 8968.475686] tas2563 2-004c: TAS2563 load block: Type = 4, commands = 0
    [ 8968.482266] tas2563 2-004c: load new configuration: configuration_ROM Mode_48 KHz_s0_0, coeff block data
    [ 8968.491945] tas2563 2-004c: TAS2563 load data: base_snapshot, Blocks = 1, Block Type = 3
    [ 8968.500078] tas2563 2-004c: tas2563_load_default, 1506, ret = 0
    [ 8968.506055] tas2563 2-004c: tas2563_set_slot, slot_width:16
    [ 8968.512573] tas2563 2-004c: tas2563_load_default, 1511, ret = 0
    [ 8968.518944] tas2563 2-004c: INV format: IBNF
    [ 8968.524286] tas2563 2-004c: tas2563_load_default, 1527, ret = 0
    [ 8968.530384] tas2563 2-004c: tas2563_set_bitwidth 1383
    [ 8968.536214] tas2563 2-004c: mnCh_size: 16
    [ 8968.540250] tas2563 2-004c: tas2563_load_default, 1532, ret = 0
    [ 8968.546986] tas2563 2-004c: tas2563_set_samplerate, Ramp sample: 48000
    [ 8968.558295] tas2563 2-004c: tas2563_load_default, 1553, ret = 0
    [ 9028.365610] tas2563 2-004c: tas2563_mute
    [ 9028.369566] tas2563 2-004c: mute: tas2563_mute
    [ 9028.374044] tas2563 2-004c: set power state: 2
    [ 9028.378584] tas2563 2-004c: tas2563_set_power_state, state: 2, mbPowerup 0
    [ 9028.386988] tas2563 2-004c: SND_SOC_DAPM_PRE_PMD
    

    感谢您对盛豪丁的支持!

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

    抱歉、我忘记了包含 I2C 转储:

    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 0e 20 f6 22 09 03 40 10 13 02 00 04 05 06    ..? ?"??@???.???
    10: 07 24 12 76 00 2e 60 0e 0c 00 f8 a6 df ff ff 00    ?$?v..`??.???...
    20: 00 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00    .........@......
    30: 59 40 81 34 49 84 08 00 00 0c be 38 38 08 10 00    Y@?4I??..??88??.
    40: ae 41 00 c0 10 21 00 00 2c 00 00 00 00 00 00 00    ?A.??!..,.......
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    70: 00 00 00 f0 00 0f 00 00 80 00 00 00 00 10 8c 00    ...?.?..?....??.
    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    

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

    寄存器转储显示芯片已关闭、请参阅 B0P0R2=0x0E

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

    请在回放期间转储寄存器

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

    检查扬声器连接是否短路。 您可以使用 8欧姆电阻器而不是扬声器来检查是否仍然出现此问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ming 先生和 Salazar 先生:
    我们已从电路板上移除电容器 C83、C317和 C84 (请参阅上面的原理图)、之后驱动器不会报告"SPK 过流!"。

    我们尝试使用 Linux 主线(https://github.com/torvalds/linux/blob/master/sound/soc/codecs/tas2562.c)中的驱动程序播放声音、并使用 Android 播放具有相同行为的声音:我们可以使用 ROM 二进制文件播放声音、但使用"调优模式"二进制文件时遇到一些问题。
    如果我们继续处理这一新问题、我们正在着手处理这一问题、并将打开一个新帖子、但我们认为现在可以将此帖子标记为已解决。

    感谢你的帮助。

    此致。
    Gustavo