主题中讨论的其他器件: TAS2563
您好!
是否有方法可以将 PPC3生成的 DDC 头文件中的数组长度减少为仅处理过/需要操作的寄存器值。 例如、如果寄存器0x03的复位状态为0x00并且我希望该寄存器具有值0x00、则我要跳过该 I2C 写入操作、因为这不会产生任何影响、但需要我额外写入。
此外、我想知道将整个寄存器转储文件写入 TAS2781是否足以使其正常工作、或者我是否需要对我自己的其他启动序列进行编程?
此致 Severin
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.
您好!
是否有方法可以将 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 时出错。 文件名和文件内数组名称中缺少_。
此致、
塞韦林
大家好!
我现已测试了放大器的基本功能。 当我通过 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 额外芯片加电和断电寄存器设置将添加到代码中。
请参阅 pre_power_up 部分、afer 下载 DSP 程序和 algo 参数、然后调用 pre_power_up 设置。在此日志中。 PS:此日志中仅支持16位。
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 的正弦波输出外、不会产生任何结果。
我真的不是要粗鲁,我只是有一个很难理解和遵循你的建议,因为我不明白你试图告诉我什么。 您能否用更多的词写一下您的意思、或许可以添加屏幕截图并说明步骤?
否则 、Arthur Brown 能否协助我们? 我会很高兴能成功写入 DSP 寄存器。 如果 PPC3无法生成 usfull 头文件、我甚至可以"手动"执行此操作、但我不知道 DSP 的寄存器、因为没有说明例如哪个寄存器用于设置扬声器的共振频率的数据。
因此、您可以看到、我取决于您的支持、并且产品的开发无法持续、直到我解决这个问题。
此致、
塞韦林
尊敬的 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:
我认为、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:
我使用"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%确定报头文件中肯定存在错误。
此致、
塞韦林
Arthur、您好!
是的,我在没有修改的情况下测试了它,它没有提供音频输出,但我有好消息。 我编写了一个程序、将.cfg 文件转换为一个可用的标头。 在尝试了一下程序后,我找到了一种方法,使它工作. 以下是以前不起作用的原因说明:
以下是 PPC3的结果:
这是我的程序产生的结果:
我再次在函数中添加了+1、这样它就会跳过最后一个偶数值。
进行此修改后、任何人都应该能够使用 PPC3的头文件并通过 I2C 上载这些文件。 但是、仅使用此 C 程序并将任何.cfg 文件转换为工作中的.h 文件就会更加方便:
e2e.ti.com/.../5707.main.c
在运行程序前、只需在头文件文件夹中创建一个空的头文件(我将其命名为 dsp_register.h)并告诉程序您的文件路径在哪里:
因此、我建议在 PPC3中解决此问题、这样其他用户就无需进行处理。
现在、我对智能放大器的实际功能还有更多问题、但我将在另一个主题中发布这些问题。
此致、
塞韦林·格茨纳