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.

[参考译文] TAS2780:需要调试帮助

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1202317/tas2780-debugging-help-needed

器件型号:TAS2780

您好!

我有两个使用 TAS2780的系统、一个是运行良好的开发设置(使用 TAS2780EVM)、一个是带有集成 TAS2780的 PCB、我无法开始工作。

DEV 系统具有12V 的 PVDD 电压、集成设置具有20V 的 PVDD 电压。 VBAT1S 没有外部连接、应在内部生成。 我在 TAS2780EVM 上调整了跳线配置、以匹配集成设置。

我编写了一些 python 代码来设置电源模式2并将器件设置为负载诊断和诊断发生器模式、并且我可以在两个系统上听到蜂鸣声。

加载内核驱动程序(只是重置并设置电源模式2)后、我可以在开发系统上播放声音、但在集成系统上没有声音输出。

使用 Python 脚本、我要打印 INT_LIVE 和 INT_LTCH 寄存器的内容、我看到这两个系统之间存在细微的差异、但我难以解释它们。

下面是我使用的脚本: https://gitlab.com/-/snippets/2508725

我将从这两个系统附加脚本的输出。

您能帮您找到问题吗?

此外、脚本中的负载计算是否正确? 规格表中显示的值以欧姆为单位、但看起来更像毫欧、连接的扬声器为8欧姆。

我是否 可以运行任何其他诊断?

谢谢!

 Stephan

# Dev system (working fine)

***** Resetting
wrote reg 0x00 value 0x00, read back 0x00
wrote reg 0x7f value 0x00, read back 0x00
wrote reg 0x01 value 0x01, read back 0x00
read reg 0x02 (MODE_CTRL): 0x1a
read reg 0x03 (CHNL_0): 0x28
read reg 0x04 (DC_BLK0): 0x21
read reg 0x42 (INT_LIVE0): 0x00
read reg 0x43 (INT_LIVE1): 0x00
read reg 0x44 (INT_LIVE1_0): 0x00
read reg 0x47 (INT_LIVE2): 0x00
read reg 0x48 (INT_LIVE3): 0x00
read reg 0x49 (INT_LTCH0): 0x00
read reg 0x4a (INT_LTCH1): 0x00
read reg 0x4b (INT_LTCH1_0): 0x00
read reg 0x4f (INT_LTCH2): 0x00
read reg 0x50 (INT_LTCH3): 0x00
read reg 0x51 (INT_LTCH4): 0x00
read reg 0x52 (VBAT_MSB): 0x00
read reg 0x53 (VBAT_LSB): 0x00
VBAT1S Voltage: 0.000V
read reg 0x54 (PVDD_MSB): 0x00
read reg 0x55 (PVDD_LSB): 0x00
PVDD Voltage: 0.000V
wrote reg 0x00 value 0x04, read back 0x04
wrote reg 0x00 value 0x00, read back 0x00
Load: 12607.650000000001 Ohm
***** Initializing power mode 2
wrote reg 0x0e value 0x44, read back 0x44
wrote reg 0x0f value 0x40, read back 0x40
wrote reg 0x00 value 0x01, read back 0x01
wrote reg 0x17 value 0xc0, read back 0xc0
wrote reg 0x19 value 0x00, read back 0x00
wrote reg 0x21 value 0x00, read back 0x00
wrote reg 0x35 value 0x74, read back 0x74
wrote reg 0x00 value 0xfd, read back 0xfd
wrote reg 0x0d value 0x0d, read back 0x0d
wrote reg 0x3e value 0x4a, read back 0x4a
wrote reg 0x0d value 0x00, read back 0x00
wrote reg 0x00 value 0x00, read back 0x00
wrote reg 0x03 value 0xe8, read back 0xe8
wrote reg 0x04 value 0xa1, read back 0xa1
wrote reg 0x71 value 0x0e, read back 0x0e
read reg 0x02 (MODE_CTRL): 0x1a
read reg 0x03 (CHNL_0): 0xe8
read reg 0x04 (DC_BLK0): 0xa1
read reg 0x42 (INT_LIVE0): 0x00
read reg 0x43 (INT_LIVE1): 0x00
read reg 0x44 (INT_LIVE1_0): 0x00
read reg 0x47 (INT_LIVE2): 0x00
read reg 0x48 (INT_LIVE3): 0x00
read reg 0x49 (INT_LTCH0): 0x00
read reg 0x4a (INT_LTCH1): 0x00
read reg 0x4b (INT_LTCH1_0): 0x00
read reg 0x4f (INT_LTCH2): 0x00
read reg 0x50 (INT_LTCH3): 0x00
read reg 0x51 (INT_LTCH4): 0x00
read reg 0x52 (VBAT_MSB): 0x00
read reg 0x53 (VBAT_LSB): 0x00
VBAT1S Voltage: 0.000V
read reg 0x54 (PVDD_MSB): 0x00
read reg 0x55 (PVDD_LSB): 0x00
PVDD Voltage: 0.000V
wrote reg 0x00 value 0x04, read back 0x04
wrote reg 0x00 value 0x00, read back 0x00
Load: 12607.650000000001 Ohm
***** Running load diagnostic
wrote reg 0x02 value 0x13, read back 0x13
read reg 0x02 (MODE_CTRL): 0x13
read reg 0x03 (CHNL_0): 0xe8
read reg 0x04 (DC_BLK0): 0xa1
read reg 0x42 (INT_LIVE0): 0x00
read reg 0x43 (INT_LIVE1): 0x02
read reg 0x44 (INT_LIVE1_0): 0x19
read reg 0x47 (INT_LIVE2): 0x00
read reg 0x48 (INT_LIVE3): 0x00
read reg 0x49 (INT_LTCH0): 0x00
read reg 0x4a (INT_LTCH1): 0x02
read reg 0x4b (INT_LTCH1_0): 0x19
read reg 0x4f (INT_LTCH2): 0x00
read reg 0x50 (INT_LTCH3): 0x00
read reg 0x51 (INT_LTCH4): 0x06
read reg 0x52 (VBAT_MSB): 0x26
read reg 0x53 (VBAT_LSB): 0x0d
VBAT1S Voltage: 4.750V
read reg 0x54 (PVDD_MSB): 0x31
read reg 0x55 (PVDD_LSB): 0x8d
PVDD Voltage: 12.375V
wrote reg 0x00 value 0x04, read back 0x04
wrote reg 0x00 value 0x00, read back 0x00
Load: 9675.9 Ohm
***** Playing diagnostic tone
wrote reg 0x02 value 0x1d, read back 0x1d
read reg 0x02 (MODE_CTRL): 0x1d
read reg 0x03 (CHNL_0): 0xe8
read reg 0x04 (DC_BLK0): 0xa1
read reg 0x42 (INT_LIVE0): 0x00
read reg 0x43 (INT_LIVE1): 0x02
read reg 0x44 (INT_LIVE1_0): 0x11
read reg 0x47 (INT_LIVE2): 0x00
read reg 0x48 (INT_LIVE3): 0x00
read reg 0x49 (INT_LTCH0): 0x04
read reg 0x4a (INT_LTCH1): 0x22
read reg 0x4b (INT_LTCH1_0): 0x39
read reg 0x4f (INT_LTCH2): 0x00
read reg 0x50 (INT_LTCH3): 0x00
read reg 0x51 (INT_LTCH4): 0x06
read reg 0x52 (VBAT_MSB): 0x26
read reg 0x53 (VBAT_LSB): 0x08
VBAT1S Voltage: 4.750V
read reg 0x54 (PVDD_MSB): 0x31
read reg 0x55 (PVDD_LSB): 0xa2
PVDD Voltage: 12.406V
wrote reg 0x00 value 0x04, read back 0x04
wrote reg 0x00 value 0x00, read back 0x00
Load: 9675.9 Ohm
***** Shutting down
wrote reg 0x02 value 0x1a, read back 0x1a
# Integrated system (diagnostic beep works, but then no sound)

***** Resetting
wrote reg 0x00 value 0x00, read back 0x00
wrote reg 0x7f value 0x00, read back 0x00
wrote reg 0x01 value 0x01, read back 0x00
read reg 0x02 (MODE_CTRL): 0x1a
read reg 0x03 (CHNL_0): 0x28
read reg 0x04 (DC_BLK0): 0x21
read reg 0x42 (INT_LIVE0): 0x00
read reg 0x43 (INT_LIVE1): 0x00
read reg 0x44 (INT_LIVE1_0): 0x00
read reg 0x47 (INT_LIVE2): 0x00
read reg 0x48 (INT_LIVE3): 0x00
read reg 0x49 (INT_LTCH0): 0x00
read reg 0x4a (INT_LTCH1): 0x00
read reg 0x4b (INT_LTCH1_0): 0x00
read reg 0x4f (INT_LTCH2): 0x00
read reg 0x50 (INT_LTCH3): 0x00
read reg 0x51 (INT_LTCH4): 0x00
read reg 0x52 (VBAT_MSB): 0x00
read reg 0x53 (VBAT_LSB): 0x00
VBAT1S Voltage: 0.000V
read reg 0x54 (PVDD_MSB): 0x00
read reg 0x55 (PVDD_LSB): 0x00
PVDD Voltage: 0.000V
wrote reg 0x00 value 0x04, read back 0x04
wrote reg 0x00 value 0x00, read back 0x00
Load: 764174.9500000001 Ohm
***** Initializing power mode 2

wrote reg 0x0e value 0x44, read back 0x44
wrote reg 0x0f value 0x40, read back 0x40
wrote reg 0x00 value 0x01, read back 0x01
wrote reg 0x17 value 0xc0, read back 0xc0
wrote reg 0x19 value 0x00, read back 0x00
wrote reg 0x21 value 0x00, read back 0x00
wrote reg 0x35 value 0x74, read back 0x74
wrote reg 0x00 value 0xfd, read back 0xfd
wrote reg 0x0d value 0x0d, read back 0x0d
wrote reg 0x3e value 0x4a, read back 0x4a
wrote reg 0x0d value 0x00, read back 0x00
wrote reg 0x00 value 0x00, read back 0x00
wrote reg 0x03 value 0xe8, read back 0xe8
wrote reg 0x04 value 0xa1, read back 0xa1
wrote reg 0x71 value 0x0e, read back 0x0e
read reg 0x02 (MODE_CTRL): 0x1a
read reg 0x03 (CHNL_0): 0xe8
read reg 0x04 (DC_BLK0): 0xa1
read reg 0x42 (INT_LIVE0): 0x00
read reg 0x43 (INT_LIVE1): 0x00
read reg 0x44 (INT_LIVE1_0): 0x00
read reg 0x47 (INT_LIVE2): 0x00
read reg 0x48 (INT_LIVE3): 0x00
read reg 0x49 (INT_LTCH0): 0x00
read reg 0x4a (INT_LTCH1): 0x00
read reg 0x4b (INT_LTCH1_0): 0x00
read reg 0x4f (INT_LTCH2): 0x00
read reg 0x50 (INT_LTCH3): 0x00
read reg 0x51 (INT_LTCH4): 0x00
read reg 0x52 (VBAT_MSB): 0x00
read reg 0x53 (VBAT_LSB): 0x00
VBAT1S Voltage: 0.000V
read reg 0x54 (PVDD_MSB): 0x00
read reg 0x55 (PVDD_LSB): 0x00
PVDD Voltage: 0.000V
wrote reg 0x00 value 0x04, read back 0x04
wrote reg 0x00 value 0x00, read back 0x00
Load: 764174.9500000001 Ohm

***** Running load diagnostic
wrote reg 0x02 value 0x13, read back 0x13
read reg 0x02 (MODE_CTRL): 0x13
read reg 0x03 (CHNL_0): 0xe8
read reg 0x04 (DC_BLK0): 0xa1
read reg 0x42 (INT_LIVE0): 0x00
read reg 0x43 (INT_LIVE1): 0x00
read reg 0x44 (INT_LIVE1_0): 0x00
read reg 0x47 (INT_LIVE2): 0x00
read reg 0x48 (INT_LIVE3): 0x00
read reg 0x49 (INT_LTCH0): 0x00
read reg 0x4a ( ): 0x22
read reg 0x4b (INT_LTCH1_0): 0x30
read reg 0x4f (INT_LTCH2): 0x08
read reg 0x50 (INT_LTCH3): 0x00
read reg 0x51 (INT_LTCH4): 0x06
read reg 0x52 (VBAT_MSB): 0x00
read reg 0x53 (VBAT_LSB): 0x00
VBAT1S Voltage: 0.000V
read reg 0x54 (PVDD_MSB): 0x00
read reg 0x55 (PVDD_LSB): 0x00
PVDD Voltage: 0.000V
wrote reg 0x00 value 0x04, read back 0x04
wrote reg 0x00 value 0x00, read back 0x00
Load: 764174.9500000001 Ohm
***** Playing diagnostic tone
wrote reg 0x02 value 0x1d, read back 0x1d
read reg 0x02 (MODE_CTRL): 0x1d
read reg 0x03 (CHNL_0): 0xe8
read reg 0x04 (DC_BLK0): 0xa1
read reg 0x42 (INT_LIVE0): 0x00
read reg 0x43 (INT_LIVE1): 0x02
read reg 0x44 (INT_LIVE1_0): 0x11
read reg 0x47 (INT_LIVE2): 0x00
read reg 0x48 (INT_LIVE3): 0x00
read reg 0x49 (INT_LTCH0): 0x00
read reg 0x4a (INT_LTCH1): 0x22
read reg 0x4b (INT_LTCH1_0): 0x39
read reg 0x4f (INT_LTCH2): 0x08
read reg 0x50 (INT_LTCH3): 0x00
read reg 0x51 (INT_LTCH4): 0x06
read reg 0x52 (VBAT_MSB): 0x26
read reg 0x53 (VBAT_LSB): 0x01
VBAT1S Voltage: 4.750V
read reg 0x54 (PVDD_MSB): 0x51
read reg 0x55 (PVDD_LSB): 0x80
PVDD Voltage: 20.375V
wrote reg 0x00 value 0x04, read back 0x04
wrote reg 0x00 value 0x00, read back 0x00
Load: 764174.9500000001 Ohm
***** Shutting down
wrote reg 0x02 value 0x1a, read back 0x1a

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

    尊敬的 Stephen:  

    我想问题是、将 I2C 地址设置为0x7E、但不会写入寄存器0x0A。  默认情况下、TAS2780将从 I2S 时隙读取等于其 I2C 地址偏移量的数据。 在本例中、器件在时隙8中查找 I2S 数据。 您是否可以将寄存器0x0A 更改为"单声道左/右通道"、这将使器件从时隙0/1读取。

    由于没有 锁存任何中断、我认为您的设计没有关键问题。  

    0x70 -时隙0  

    0x72 -插槽1

    ...

    0x7E -插槽8

    此致、

    Arthur

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

    Arthur、您好!

    感谢您的快速响应!

    我之前使用过 TDM_CFG2寄存器、我可以确认这里不存在这个问题。 我已在复位芯片后立即将其设置为 LeftRight/2。

    我看到有中断被锁存(向下滚动上面引用的输出)。 我进行了另外一个比较、即在复位后立即从内核驱动程序中打印 INT_LIVE 和 INT_LTCH、并在播放声音时触发的静音/取消静音功能中打印:

    集成系统上似乎存在 VBAT1S 欠压。 当 VBAT1S 由内部产生时、如何实现这一点?

    感谢您的帮助。

     Stephan

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

    Stephan、您好!  

    感谢您指出这一点。 我没有看到该中断。  

    当为内部生成的 VBAT 引发 VBAT1S LDO 欠压标志时、这意味着 LDO 未成功启动。  

    如果 VBAT 引脚上的去耦过大、则可能会发生这种情况。 基本上、为10uF 电容充电所需的电流会阻止 LDO 的出现。

    当 VBAT1S 在外部时、应在 EVM 上插入 J13、当 VBAT1S 在内部生成时、应将其移除。  

    您能否将原理图中的 C610替换为1uF 电容器并查看是否出现同样的错误?

    此致、
    Arthur

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

    Arthur、您好!

    感谢您的发现!

    移除 C610 (手头没有1uF 电容器来替换)后、寄存器与开发系统中的看起来相同:

    [58836.892622] tas2780 2-003f: Status in tas2780_mute (mute 0, direction 0):
    [58836.902813] tas2780 2-003f: TAS2780_MODE_CTRL: 0x1A
    [58836.912167] tas2780 2-003f: TAS2780_CHNL_0: 0xE8
    [58836.916948] tas2780 2-003f: TAS2780_DC_BLK0: 0xA1
    [58836.921872] tas2780 2-003f: TAS2780_INT_LIVE0: 0x00
    [58836.926914] tas2780 2-003f: TAS2780_INT_LIVE1: 0x00
    [58836.931974] tas2780 2-003f: TAS2780_INT_LIVE1_0: 0x00
    [58836.937200] tas2780 2-003f: TAS2780_INT_LIVE2: 0x00
    [58836.942301] tas2780 2-003f: TAS2780_INT_LIVE3: 0x00
    [58836.947344] tas2780 2-003f: TAS2780_INT_LTCH0: 0x00
    [58836.952414] tas2780 2-003f: TAS2780_INT_LTCH1: 0x22
    [58836.957453] tas2780 2-003f: TAS2780_INT_LTCH1_0: 0x19
    [58836.962691] tas2780 2-003f: TAS2780_INT_LTCH2: 0x00
    [58836.967729] tas2780 2-003f: TAS2780_INT_LTCH3: 0x00
    [58836.972785] tas2780 2-003f: TAS2780_INT_LTCH4: 0x06

    但是、我们不会获得声音输出。 INT_LTCH4=0x06是否有问题? DEV 系统表明、在这种情况下声音也很好。

    是否有关于如何进一步调试的提示?

    谢谢!

     Stephan

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

    Stephan、您好!

    我再次查看了您的代码、但在进入电源模式2后没有看到您发送加电命令。  

    您能否确认 您正在发送   normal_powerup(): command?

    Regards,

    Arthur

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

    Arthur、您好!

    我们对另一个 板进行了返工、工作正常。 所以在第一 块电路板上肯定有问题。

    再次感谢!

    Stephan