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.

[参考译文] TAS5766M:智能放大器输出模拟音频信号、但没有经过后处理的样片从 SDOUT/GPIO3返回 I2S 主器件

Guru**** 2468610 points
Other Parts Discussed in Thread: TAS5766M

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/785277/tas5766m-smart-amp-outputs-analog-audio-signal-but-no-post-processed-samples-return-back-to-i2s-master-from-sdout-gpio3

器件型号:TAS5766M

作为验证定制板上硬件连接的一种方法、我被要求为 SmartAmp 加电、而不是对其进行全部配置、只需发送 I2S 数据、然后查看在其运行 ROM miniDSP 代码时是否有任何音频信号从它发出。 确实如此。  

接下来,我已经验证了我可以运行 TAS5766M SmartAmp 初始化的每个位,并通过不下载我们的定制 miniDSP 代码(4000+配置寄存器)在 DACR 和我的扬声器上获取模拟信号。 (我在 SmartAmpInit.h 文件的第54行添加了“#if 0”,并在“//coefficient programming Begin”备注之后向 TI 支持代表发送了电子邮件,在“//coefficient programming Begin”备注之后向第4165行添加了“#endif 0”,在“//end of coefficient programming”备注之后)。 因此、所有配置仍应完成、包括该文件最底部的 GPIO3/SDOUT。 但是,我看不到 GPIO3中出现的任何 SDOUT (DSP 后处理)数据,但是如果我重新配置第0页/寄存器7,我会看到 DSP 预处理数据。 转储 20个状态寄存器时未显示错误。

如果我只是停止下载我们的 SmartAmp 代码(因此其 ROM 代码正在运行),屏幕截图如下所示:DACR 模拟输出始终存在,SDOUT 设置为 DSP 预处理会使其退出,但后处理不会。  为什么 SmartAmp ROM 代码会发生这种情况?

 

-------------- 下载的 SmartAmpInit.h 文件内容:

SmartAmpParameter smartAmpParameter[]={

//Get SmartAmp ready for coefficient values
{0、0x00}、//页0
{3、0x11}、//将 L/R 通道静音
{2、0x10}、//进入待机模式
//系数编程开始
#if 0
(笑声)
系数编程结束
#endif
{0、0x00}、//页0
{2、0x00}、//关闭待机
{40、0x03}、// 32位 I2S 数据样本
{7、0x00}、//禁用去加重滤波器、sdout 为 DSP 输出
{8、0x2C}、//将 GPIO3 (SDOUT)设置为输出+将 GPIO1/2设置为输出(TP 82/83)
{85、0x07}、//将 SDOUT 路由到 GPIO3
{83、0x02}、//将寄存器86位3路由到 GPIO1输出
{82、0x02}、//将寄存器86位2路由到 GPIO2输出
{0、0x00}、//页0
{3、0x00}、//取消 L/R 通道静音
};

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

    Andy 很快就会跟进。


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

     当我将寄存器83、82和85分别设置为0xC 和0xD 时、我可以从所有3个 GPIO (1、2和3)中获得 DAC 时钟和 miniDSP 时钟/4T 输出。 这个问题似乎与 GPIO 配置无关、而是 SDOUT 不包含任何采样数据。

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

    ***** 当模拟音频信号出现在 DACR 上时、请尽快回答导致 TAS5766M 不输出后处理的 DSP 样本的原因*****

    这是我一直监测的状态寄存器转储、试图了解 SmartAmp 内部发生的情况。 配置 SmartAmp 后100ms 完全没有显示错误。 在我通过 I2C 向 SmartAmp 发送任何内容之前、唯一有意义的事情发生在这里(请参阅寄存器0x5f 和0x79)。 我的示波器屏幕截图根本没有变化、尽管我注意到寄存器0x77没有反映我在示波器捕获上从通道4 (绿色)跟踪中看到的内容;它显示 GPIO3持续处于低电平、而寄存器0x77始终显示为高电平。  

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

    我再次确认了主机处理器软件,在将第0页寄存器82、83和85设置为2后,可以写入寄存器86,并使相应的请求状态显示在 GPIO1、GPIO2和 GPIO3引脚上(请参阅所附文件的底部屏幕截图)。

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

    您好、Jean、

    很抱歉我迟到了。 上周、我在几次出差和拜访客户。

    要启用 SDOUT 作为后处理 DSP 输出、 必须正确配置 TAS5766M 内的 miniDSP 内核。  否则、您将不会看到 GPIO 引脚输出 SDOUT。  

    下表显示了 TAS5766M 寄存 器页面结构。 基本上、DSP 指令位于第152页至第186页。  您可以在  SmartAmpInit.h 文件中找到从第2097行到第4158行的 DSP 指令行。

    如果这些行的注释与您所做的相同、 则 TAS5766M DSP 内核不会运行、因此 SDOUT 上不会显示任何数据。 如果 SDOUT 配置 为 DSP 预处理、 您在 SDOUT 上看到的内容将与 SDIN 相同。

    Andy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的问题不是关于我们的 miniDSP 代码、而是关于 SmartAmps 自己的 ROM miniDSP 代码。 我正在尝试通过注释掉我们的 miniDSP 代码行54到4165。 这是为了确保 SmartAmp 的 ROM 代码在其 miniDSP 上运行。 我假设 miniDSP ROM 代码正在运行、直到发送第4160行的{43、0x1f}、对吧? 我假设 ROM 代码将处理数据、如果我的文件第4165行下的寄存器被发送到 SmartAmp、它将显示在 SDOUT/GPIO3上。 这是不是正确的吗?
    您是否说运行其 miniDSP ROM 代码的 SDOUT/GPIO3不会产生任何后处理数据_并且我的文件第54行及第4165行以下的寄存器配置会发送给它?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我知道您说过只要没有发送另一个 miniDSP 代码、miniDSP ROM 代码就会运行、然后将0x1F 写入第0页寄存器43。 这就是我在上面的前一个帖子的基础。 这意味着、如果 SmartAmp 加电、则它最初会运行其 ROM miniDSP 代码、该代码将处理传入的样本数据。 直到0x1F 被写入第0页寄存器43、并且写入少数其他寄存器、复位模块和/或寄存器、或者将其置于待机或断电模式、这种情况才会改变这样一个事实:miniDSP 仍然在运行其自己的 ROM 代码。 这是不是正确的吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、我的所有状态寄存器转储(包括上面的两个转储)显示 miniDSP 内核正在运行(寄存器0x76 (118)= 0x85 "DSP 引导已完成"、"运行(播放)"。 如果正在运行、运行中的内核是否应该处理样本数据并输出数据? 如果是这样、那么该数据是否应该出现在 SDOUT 上、无论它是我们的代码还是 SmartAmp 的 ROM 代码?

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

    如果我更改我通过电子邮件发送给您的文件的第53行、其中包含我们的(启用的)系数和 miniDSP 代码、

      出发地://Coefficient programming Begin  

      更改为   "  {1、0x11}、//复位模块和寄存器  //系数编程开始"  

    (基本上、只需在注释前添加一个配置项即可重置 SmartAmp 的模块和寄存器、因为主机处理器代码除了发送该文件中包含的寄存器配置项之外、不会执行任何其他操作)、 我得到的结果相同(包括 miniDSP 处于"运行"状态):

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

    您好、Jean、

    TAS5766M 没有用于 SmartAmp 的 ROM 代码。 当 TAS5766M 上电时、其 miniDSP 中没有运行 SmartAmp 代码。 用户必须将 SmartAmp 算法/miniDSP 代码下载到 TAS5766M 的内部 RAM 中。 这就是您在头文件中看到如此多行的原因。

    如果您只是发送头文件第54行和第4165行以上的寄存器配置、 我可以确认 SDOUT/GPIO3中不会出现任何后处理数据、因为 SmartAmp 根本不运行。  

    Andy

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

    这是您需要注意的另一个事实。 通过 SDOUT 提供后处理数据是 SmartAmp 算法的一个数字块。 如果您没有通过 i2c 将整个 SmartAmp miniDSP 代码下载到 TAS5766M、SDOUT 上将不会显示任何数据。

    Andy
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Andy、
    我想当我在几周前打电话时、您说 SmartAmp 中有 ROM 代码时、我会误解您。 如果没有、那么我就会觉得不管我发送什么配置序列、我都看不到任何 SDOUT。 此外、寄存器0x76 (118)表明它已启动、这似乎意味着它正在运行以下内容:
    Botm "DSP Boot Done Flag (Read Only)"(DSP 引导完成标志(只读))
    该位指示 DSP 引导是否完成。
    0:DSP 正在引导
    1:DSP 启动完成

    如果您在该主题的初始帖子/问题中错过了该帖子、并且如果您不再拥有来自 TAS5766M_no_I2C_config_at_all.zip 的 SmartAmpInit.h、我通过电子邮件将您发送给您、则会再次:

    SmartAmpParameter smartAmpParameter[]={
    {0、0x00}、//页0

    {0、0x01}、//页1
    {3、0x04}、<-您说这是一个已弃用(与电荷泵相关)设置、我们现在可以忽略它


    //开始 PLL 重新编程
    /*
    (笑声) <--不使用 PLL 主控模式
    *
    //结束 PLL 重新编程


    //Get SmartAmp ready for coefficient values 实际上,这就是有用配置的开始位置
    {0、0x00}、//页0
    {3、0x11}、//将 L/R 通道静音
    {2、0x10}、//进入待机模式
    //系数编程开始
    (笑声) <--我们的系数+ miniDSP 代码
    系数编程结束

    {0、0x00}、 //页0
    {2、0x00}、 //关闭待机
    {40、0x03}、// 32位 I2S 数据样本
    {7、0x00}、 //禁用去加重滤波器,sdout 为 DSP 输出
    {8、0x2C}、 //将 GPIO3 (SDOUT)设置为输出+将 GPIO1/2设置为输出(TP 82/83)
    {85、0x07}、//将 SDOUT 路由到 GPIO3
    {83、0x02}、//将寄存器86位3路由到 GPIO1输出
    {82、0x02}、//将寄存器86位2路由到 GPIO2输出
    {0、0x00}、 //页0
    {3、0x00}、 //取消使 L/R 通道静音
    };
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jean、

    我要关闭该主题、因为我们一直在离线处理此问题。

    Andy