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.

[参考译文] TAS5825M:TAS 器件 Linux 驱动程序和 Bin 文件生成器配置文件

Guru**** 2782625 points

Other Parts Discussed in Thread: TAS5825M

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1616907/tas5825m-tas-device-linux-driver-and-bin-file-generator-profiles

器件型号: TAS5825M

我们的应用包含三个 TAS5825m 器件、其中两个配置为 2.0 立体声放大器(高频和中频)、其中一个配置为 1.0 PBTL 单声道放大器(低频范围)。

我创建了三种配置、每个放大器一种、并在 DSP 中使用交叉频率滤波器。 我将这些配置用于 Bin File Generator 工具中的 init 配置文件。 这些是基本配置、因为它们不会发生变化(交叉频率保持不变)。 如果在初始化配置文件中播放声音、则交叉过滤器工作正常。

然后、我添加了另一个配置文件、称为音乐。 目前它所做的只是将放大器扬声器输出从高阻态转换到 PRE_POWER_UP 中的播放模式、并在 PRE_SHUTDOWN 中将其恢复到高阻态。 这在我播放声音时有效。 但是、由于某种原因、不再应用 DSP 滤波器。 扬声器发出声音、但全频范围适用于所有扬声器、而在运行初始化配置文件时、只有扬声器接收到正确的频率范围。

我的印象是、除了初始化配置文件的设置之外、还应用了配置文件设置。 在我的示例中、这意味着 INIT 配置文件中的所有 DSP 设置都保留到位、因为音乐配置文件只会设置 DEVICE_CTRL2 寄存器。

请参阅附加的 regbin 工具的 JSON 文件(我必须将文件从.json 重命名为.txt、因为上传程序不会上传扩展名为.json 的文件)。

注意:使用初始化配置文件回放时、驱动程序会通过 I2C 按顺序将寄存器设置发送到安培。 由于有很多设置、这需要一点时间、导致安培按顺序下降。 仅发送几个寄存器不会导致此问题。

感谢您的支持。

tas5825m-3amp-reg-flat.txt 

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

    切换到音乐之前、芯片是否已物理关闭? 如果是、您必须重新加载所有设置。

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

    您是否可以尝试在初始化块中添加块 pre_shutdown?

    顺便说一下、您的驱动程序版本(或内核版本)是什么?

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

    否、切换曲线时芯片不会物理关断。

    我会在 init 块中将 pre_dutoff 块放在什么位置?

    此驱动程序的内核版本为 5.15: git.ti.com/.../

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

    仅将 TAS5825m 置于高阻态、就像分组音乐中所做的那样。

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

    嗨、大家好

    我认为您使用的驱动器不正确。 git.ti.com 中的驱动程序已停产、不支持 INIT。

    tidrive.ext.ti.com/.../44a3f155-a8d4-46c0-9cb0-73aa25487dc3

    访问代码: 14yj.Rrk

    我们已经将初始化补丁上游添加到 Linux 主线、请参阅以下链接:

    aSOC:tas2781:在配置文件部分添加关键字“init"-“- kernel/git/Torvalds/linux.git - linux 内核源树

    在文件夹“for kernel 5.15“中、您可以找到已支持 init 的最新内核 5、15 驱动程序。

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

    谢谢你。

    我尝试了新的驱动程序。 在本问题的上下文中、您为我提供了  对它的访问权限:关于 TAS5825M:PBTL 输入混频器 

    但是、当驱动程序构建并加载时、它无法与芯片通信。 I2C 通信存在问题。 以下是错误消息:

    [   29.846530] tasdev-codec 5-004c: tasdevice_change_chn_book, E=-6
    [   29.852554] tasdev-codec 5-004c: process_block: single write error

    在您说这将解决问题时:

    Thanks for your feedback. 
    
    
    // TAS58xx need run this function
    static void mpa_hwrst(struct gpio_desc *desc)
    {
    	gpiod_set_value_cansleep(desc, 0);
    	usleep_range(500, 1000);
    	gpiod_set_value_cansleep(desc, 1);
    }
    
    I will raise a new patch to fix this issue shortly.

    是否已解决此问题?

    谢谢你。

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

    我已经从我的客户和我们的硬件人员检查了其他平台;此功能可以很好地工作。 我不确定您的平台出了什么问题。 我认为这不是一个大问题。  请在设备中对其进行修改。

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

    我没有写驱动程序。 该函数应在何处以及何时运行?

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

    您的器件配置设置是什么? ACPI? 器件树? 您能帮您分享整个日志吗?

    顺便说一下、应用下面的补丁后、您可以再试一次吗?
    git.kernel.org/.../tas2781-i2c.c