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.

[参考译文] TAS2781:PPC3接头:减少 I2C 写入

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1253868/tas2781-ppc3-header-reducing-i2c-writes

器件型号:TAS2781
主题中讨论的其他器件: TAS2563

您好!

是否有方法可以将 PPC3生成的 DDC 头文件中的数组长度减少为仅处理过/需要操作的寄存器值。 例如、如果寄存器0x03的复位状态为0x00并且我希望该寄存器具有值0x00、则我要跳过该 I2C 写入操作、因为这不会产生任何影响、但需要我额外写入。

此外、我想知道将整个寄存器转储文件写入 TAS2781是否足以使其正常工作、或者我是否需要对我自己的其他启动序列进行编程?

此致 Severin

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

    尊敬的 Severin:  

    不支持修改已导出头文件的格式、但是如果您手动查看该文件以删除冗余写入、只要序列在软件复位后开始、以便器件以已知状态启动、那么该操作应该不会产生任何问题。 不过、当器件启用了 DSP 时、大部分 I2C 写入将对 DSP 存储器进行编程、这不会在数据表中进行描述、因此在 INIT 方面节省的时间可能不是很长。  

    使用"组合".cfg 文件时、不需要额外的启动序列、该文件将包含所有必要的写入、"Reset->program->power up"。

    此致、
    亚瑟

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

    Arthur、您好!

    感谢您的答复。 目前我无法输出除6kHz 正弦波之外的任何音频。 我假设这是由于缺少 I2C 写入或 I2C 写入不正确、可能是由于代码中的错误或 PPC3生成的头文件所致。

    我的电路和布局可以在 这里看到。 当我通过 I2S 播放音频时、扬声器仅输出测量的6kHz 正弦波。 当我改变音频信号的音量时、正弦波的音量不会改变。
    您提供的屏幕截图显示了.cfg 文件、但在头文件文件夹中没有这样的"组合"头文件。 我查看了.cfg 文件。 我看到它开头有一些 I2C 写入、然后包含以下顺序:program_0_Tuning Mode.h 寄存器、DEV_A_PRE 寄存器、DEV_A_Coeff 寄存器、最后一些 I2C 写入。
    我曾尝试将缺失的 I2C 写入添加到 program_0文件及 dev_a_coeff 文件、然后将其发送到 IC。

    缺少对 program_0_Tuning Mode.h 文件的写入:

    DEV_A_COEFF 文件缺失写入:


    查看逻辑分析仪可在初始化期间显示以下行为:

    值得注意的是:当 IRQZ 引脚为低电平时、放大器也输出此特定的6kHz 正弦波。
    IRQZ 变为低电平的时刻(正弦波输出开始):

    IRQZ 变为高电平(正弦波输出停止)的时刻:

    之后、只有当音乐的音量高于零且正在播放音乐时、才会生成正弦波。

    PS:我还注意到 PPC3在生成文件 program_0_Tuning Mode.h 时出错。 文件名和文件内数组名称中缺少_。

    此致、
    塞韦林

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

    尊敬的 Severin:

    感谢您提供信息。 亚瑟明天会回到你身边。

    谢谢。
    J·麦克弗森

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

    尊敬的 Severin:  

    到目前为止,你尝试的似乎是合理的,但它有点超出我的专长领域。  

    我和我们的中国车手团队分享了这个问题、以便分享一些见解。  

    此致、
    亚瑟

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

    您好、Severin

    关于如何通过 i2c 将数组写入 IC、我们提供了一些建议。 请上传 PPC3生成的头文件之一。

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

    您好!

    感谢你的帮助。 我无法只通过 I2C 上传 PPC3生成的头文件。 我从未能够输出任何音乐。 此处是我使用的代码(为了使该代码可理解、我还添加了一些注释):



    此致、Severin

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

    大家好!

    我现已测试了放大器的基本功能。 当我通过 I2C 上传这个数组时(数据表的第73页列出了这个数组)、一切都正常、而且放大器也能按预期播放音乐。

    之后我上传了 PPC3头文件、再次只播放6kHz 正弦波、而不是播放音乐。

    因此我可以很肯定错误发生在 PPC3生成的头文件中。 如果有人可以修复这个错误、并实现一个生成"组合"头文件的函数、而无需采取任何进一步的步骤即可操作放大器、则很适合通过 I2C 传输该头文件。 这样可以实现快速开发和优化。

    此致、
    塞韦林

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

    您好、Severin

    我们用于 tas2563的 RTOS 代码位于以下链接中、您可以在 tas2781上重复使用它。
    https://www.ti.com/licreg/docs/swlicexportcontrol.tsp?form_type=2∏_no=tas2563_RTOS_driver.zip&oropn=TAS2563-RTOS-DRIVER-KIT (&ref_url=https%3A%2F%2Fdr-download-draft.ext.ti.com%2Fsecure%2Fdesign-tools-simulation%2Fdesign-tool%2FMD-AD6gpdB7Tz%2F1.0%2Ftas2563_RTOS_driver.zip)

    头文件仅是 DSP 参数和 DSP 固件、ax 额外芯片加电和断电寄存器设置将添加到代码中。

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

    你(们)好!

    问题是、在向标头添加一些写入操作后、芯片会打开。 我要解释的问题是、音频输出的行为不符合预期。 为了保护您的答案、DSP 固件或 DSP 参数必须存在一些错误。

    此外、我无法访问您的链接中提供的代码。

    此致、
    塞韦林·格茨纳

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

    在得到 Admin 的批准后、即可访问该链接。 那么、它当前可以输出音乐、对吧?

    您可以共享有关如何为芯片供电的寄存器设置吗?

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

    它可以输出音乐、但仅当我 请勿使用 由 PPC3生成的头文件。 工作原理是什么、这个数组:

    TAS2781的数据表第73页也指定了该值。
    我使用该函数通过 I2C 传输数组:


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

    根据 TI 的政策、请 在空白处填写必要信息 、并 首先申请 tas2563_RTOS_driver.zip。 您见过以下页面吗?  

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

    是的、那么我转到此页面:

    按"下载"后、我转至无法访问的页面:

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

    告诉我你的邮件地址,我会给你邮寄。

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

    您可以在此处向我发送直接消息吗? 我不希望我的电子邮件公开。

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

    我也想了解您对此的看法。 从我的经验来看、放大器可以正常工作、但 PPC3不会生成有用的标头。

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

    我认为 DSP 参数头文件不包含芯片上电命令。 您可以生成 ftcfg fiile 而不是头文件、并将该 ftcfg 文件直接下载到 EVM、tas2782 EVM 是否可以工作? 如果是、请通过 PPC3记录该命令日志、并比较缺少哪些与开机相关的命令。 然后在代码中的 DSP 句段后添加它们。

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

    "对不起,我不是很确定你在想告诉我什么。" 您可以详细说明一下吗?

    我不确定您是否知道我不在使用德州仪器评估模块、而是使用我自己的专为我的特定需求设计的 PCB。 我的电路和布局可以在 这里看到

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

    请参阅 pre_power_up 部分、afer 下载 DSP 程序和 algo 参数、然后调用 pre_power_up 设置。在此日志中。 PS:此日志中仅支持16位。  

    e2e.ti.com/.../tas2781_2D00_1amp_2D00_reg.bin.log

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

    e2e.ti.com/.../configuration_5F00_0_5F00_Mono_5F00_conf_5F00_DEV_5F00_A_5F00_COEFF.h  e2e.ti.com/.../program_5F00_0_5F00_Tuning-Mode.h   


    您好、Shenghao:

    我不知道您的意思。 我尽量尽量解释你的信息。 我想您的意思是通过 I2C 发送 program_0_Tuning Mode.h、然后是 configuration_0_Mono_conf_DEV_A_COEFF.h 文件、并发送 conf 1 (我假设功率模式1是???) 或共享代码。

    如果这是您的意思、除了6kHz 的正弦波输出外、不会产生任何结果。

    我真的不是要粗鲁,我只是有一个很难理解和遵循你的建议,因为我不明白你试图告诉我什么。 您能否用更多的词写一下您的意思、或许可以添加屏幕截图并说明步骤?

    否则  能否协助我们? 我会很高兴能成功写入 DSP 寄存器。 如果 PPC3无法生成 usfull 头文件、我甚至可以"手动"执行此操作、但我不知道 DSP 的寄存器、因为没有说明例如哪个寄存器用于设置扬声器的共振频率的数据。

    因此、您可以看到、我取决于您的支持、并且产品的开发无法持续、直到我解决这个问题。

    此致、
    塞韦林

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

    尊敬的 Severin:

    今天是 TI 在美国的假日。我们将在明天结束前回复您的问题。

    请勿回复此邮件、除非我们未及时回复您。

    谢谢!
    J·麦克弗森

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

    尊敬的 Severin:  

    对于这里的混乱、我深表歉意。

    我可以评论如何"手动"做到这一点

    1)在已导出的"Debug_cfg"目录中的"combined_configuration_.......... _TuningMode_withTDM.cfg "应包含 音频回放所需的所有写入。 可对其进行调整并将其包含到头文件中。

    2) 2)在 PPC3中、将配置下载到器件时、可记录 I2C。 这可以被记录下来、然后调整到头文件、但这种方法似乎有很多冗余写入、

    -加载 PPC3调优文件并打开"Device Control"面板

    -打开 I2C 监控器,然后选择"log"

    -点击绿色按钮开始录制

    -按应用

    我还在与升豪讨论、以便更好地理解他的要求

    此致、
    亚瑟

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

    尊敬的 Arthur:

    感谢您的答复。 我将努力手工完成这项工作,但我已经有这样的感觉:结果将是一样的。 我认为、因为头文件和 combined...cfg 文件基本上只包含 PPC3的 I2C 日志所说的内容。

    我知道我要求很多、但如果您可以尝试通过 I2C 将生成的头文件准确地从 PPC3写入 TAS2781、这会不会成功? 如果它按预期工作、您能告诉我您是怎么做的吗? 如果不起作用、您或许能够从 PPC3调试如何生成头文件。
    如果我还能为您做些什么来加快此过程、请告诉我。

    此致、
    塞韦林

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

    尊敬的 Severin:  

    是的、我可以为您检查该文件、您能否提供您正在使用的已导出头文件、以便我对相同的文件进行评估?

    此致、
    亚瑟

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

    e2e.ti.com/.../headers.zip

    您好!

    非常感谢!

    此致、
    塞韦林

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

    尊敬的 Severin:  

    感谢您提供头文件。 可能需要一些时间来检查并将其设置为 ppc3格式。 我将在星期三回复您、告知我的结果、

    此致、
    亚瑟

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

    尊敬的 Severin:  

    立即处理此问题

    此致、
    亚瑟

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

    尊敬的 Severin:  

    我认为、CFG_META_BURST 函数的使用方式可能会出错。

    您删除了+1因为它跳过数组中的值、我认为这是 CFG_META_BURST 的有意函数。 该数组既具有寄存器地址、也具有数据字节、  

    在下面的示例中、它从寄存器0x08开始、接下来的24个字节被编程到接下来的24个寄存器地址。 忽略最后的0x00。  

    将0x00写入寄存器0x08

    将0xFE 写入寄存器0x09

    将0x40写入寄存器0x0a

    等等

    例如、您已将数据表中的以下行转换为

    这将导致出现以下 I2C 序列

    宽70 58 40

    >00

    >00

    >00

    >00

    >00

    W 70 02 00

    不过、我认为正确的设置

    { CFG_meta_burst,4 },

    { 0x58、0x40 },

    { 0x00、0x00 }、

    0x00、0x00  }、

    { 0x00、0x00 }、

    { 0x02,0x00 },

    从而产生以下 I2C 序列、  

    宽70 58 40

    >00

    >00

    >00

    W 70 00 00 00

    W 70 02 00

    此外、我正在查看头文件、将其转换为.cfg 格式似乎很繁琐。 您能否也共享与标头一起导出的.cfg 文件? 再次检查它们是否是相同的数据、然后运行.cfg 至 ppc3应该会更快。  

    此致、
    亚瑟

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

    Arthur、您好!

    感谢您投入宝贵的时间与精力。 到目前为止我尝试的是将已经工作的数组从{ CFG_meta_burst, 6 }更改为{ CFG_meta_burst, 4},这导致没有音频输出。 然后我在函数中添加了+1、这也导致了没有音频输出。  然后我尝试了两者,它有相同的结果。 然后我回到配置、一切都再次正常工作:

    随此函数传输:

    我还尝试先发送 CONFIGURATION_0_MONO_CONF_DEV_A_COEFF_REGERS Tuning_Mode_、然后使用与上述相同的步骤发送 program_0_oclare、但又使用相同的结果。

    我已经附加了 PPC3的所有输出以及正常工作的头文件。 我还想知道:您是否尝试过通过 I2C 将头文件传输到 IC? 如果是,结果如何?
    e2e.ti.com/.../TEBM_5F00_28_5F00_DDC.zip


    此致、
    塞韦林

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

    尊敬的 Severin:  

    我今天将测试.cfg 文件。 我无法测试头文件。 手动操作有点乏味。 我需要编写一个简短的脚本来转换它。

    此致、

    亚瑟

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

    尊敬的 Severin:

    我使用"Debug_cfg"目录中的.cfg 文件进行了测试、该文件应该与头文件中的数据相同。  

    我发现"combined_configuration_0_mono_conf"不起作用、没有音频输出、也不会引发中断、而且器件仍处于工作模式(第0页寄存器0x02)

    但是、"combined_configuration_1_mono_conf"确实可以起作用、给我回放音频。  

    从查看工作中的.cfg 文件可以看出、使用头文件的正确顺序是这样的。

    1) 1)初始编程用于软件复位  

    D 01
    W 70 00 00 00
    W 70 7f 00
    W 70 00 00 00
    W 70 02 01
    D 01
    W 70 00 00 00
    W 70 7f 00
    W 70 00 00 00
    W 70 02 02
    W 70 00 00 00
    W 70 7f 00
    W 70 00 00 00
    w 70 01 01 01 #此软件复位将重置所有寄存器设置
    D 01英寸

    2) 2)"program_0_tuning Mode.h"

    3) 3)"Configuration_1_MONO_conf_dev_a_pre.h"

    4) 4)"配置_1_CALIBRATION_TuningMode_48kHz_DEV_A_COEFF"

    5) 5)最终序列在启用 IV 感测的情况下将器件置于活动模式

    W 70 00 00 00
    W 70 7f 00
    W 70 00 00 00
    w 70 02 00 #在 IV sense 启用的设备上电。  

    您是否尝试过上述顺序?

    此致、
    亚瑟

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

    Arthur、您好!

    感谢您的回复。 是的、我以前试过这个序列、但现在试过只是为了确定。 那么结果是相同的。 无论输入信号的波形如何、只要输入音量大于0%、输出端就会出现可闻的6kHz 正弦波。

    我很好奇:您试过这个序列吗?它对您有用吗? 因为我还查看了"组合".cfg 文件、认为这个序列应该可以正常运行、但遗憾的是、它不能正常运行。 我几乎100%确定报头文件中肯定存在错误。

    此致、
    塞韦林

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

    尊敬的 Severin:  

    我没有将其从标头转换为.cfg、而是直接使用了.cfg  

    此外、我的意思不是再次提出同样的想法、但您是否在没有对 CFG_META_BURST 命令进行修改的情况下对进行了测试? 结果是否相同?

    与 cfg 相比、我可以再次检查头文件、但我可能需要盛豪的进一步支持、我认为他的工作截止星期四。  

    此致、

    亚瑟  

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

    Arthur、您好!

    是的,我在没有修改的情况下测试了它,它没有提供音频输出,但我有好消息。 我编写了一个程序、将.cfg 文件转换为一个可用的标头。 在尝试了一下程序后,我找到了一种方法,使它工作. 以下是以前不起作用的原因说明:

    以下是 PPC3的结果:

    这是我的程序产生的结果:

    我再次在函数中添加了+1、这样它就会跳过最后一个偶数值。

    进行此修改后、任何人都应该能够使用 PPC3的头文件并通过 I2C 上载这些文件。 但是、仅使用此 C 程序并将任何.cfg 文件转换为工作中的.h 文件就会更加方便:

    e2e.ti.com/.../5707.main.c

    在运行程序前、只需在头文件文件夹中创建一个空的头文件(我将其命名为 dsp_register.h)并告诉程序您的文件路径在哪里:

    因此、我建议在 PPC3中解决此问题、这样其他用户就无需进行处理。
    现在、我对智能放大器的实际功能还有更多问题、但我将在另一个主题中发布这些问题。

    此致、
    塞韦林·格茨纳