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.

[参考译文] TAS2555:在复位线变为高电平后、I2C 停止~21ms

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1170204/tas2555-i2c-stops-acking-21ms-after-reset-line-goes-high

器件型号:TAS2555

、我认为您是 TAS2555的专家。

我有一个 CY8C6347驱动 TAS2555。  I2C 上的上拉电阻为4.5K。  我已经尝试了50K 到400K 的 I2C 时钟频率、所有这些频率的行为都是一样的

根据数据表的第11.2节对 TAS2555电源进行定序。  然后、/Reset 线被驱动为高电平、并且根据9.2.2节中的器件加电启动软件加电。

在/Reset 被驱动为高电平大约21ms 后、TAS2555停止堆叠。  我确定它取决于时间、而不是写入哪个寄存器。  在我现在拥有的时序中、NAK 出现在软件复位的值字节中(寄存器字节 ACK 和值字节 nack)。 我已经通过跳过软件复位写入来验证它不是特定于软件复位、而是在此时写入寄存器0x22、结果相同。

我已验证/Reset 行是否保持高电平。

您对导致这种情况的原因有什么了解吗?

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

    您好、Kurt、

    感谢您分享到目前为止的详细调试、 我将列出更多需要检查您设置的内容:

    • 请在测试期间检查为 TAS2555供电的电压轨、IOVDD 或 VREG 上是否有压降?
    • 还请检查 SPI_SEL 引脚以及 ADR1和 ADR0引脚、这些引脚是否有任何变化?
    • 您的 I2C 频率是多少? 您是否尝试过不同的速度、例如100kHz 和400kHz?
    • 从 TAS2555返回 NACK 后、您能否尝试其他可能的 I2C 地址? 即使您没有更改这些引脚上的硬件连接、我也想仔细检查地址是否可以更改。

    如果您有任何疑问、请告诉我。

    此致、
    -Ivan Salazar
    应用工程师

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

    Ivan、谢谢您、这是电源轨。  电源轨开关未正确加载 N 型 FET 而不是 P 型、因此电压较低、未进行定序。  使用正确的部件更换这些部件可以解决 I2C 问题。

    关于此应用的另一个问题:按照9.4.2中详述的器件设置、器件是否应该能够接收32位 I2S 数据而无需再进行任何配置?

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

    您好、Kurt、

    感谢您让我们知道您的设置有什么问题。

    关于第9.4.2节、是的、您应该能够使用该脚本播放音频。 只需考虑脚本的最后一部分是断电序列、您不应包含该部分。
    您的时钟设置是什么? 例如 MCLK、BCLK 和 WCLK 频率? 您还可以使用 PPC3来生成特定于您的应用要求的配置。

    此致、
    -Ivan Salazar
    应用工程师

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

    伊万

    MCLK = 12.5MHz、BCLK = 3.125MHz、WCLK = 48.828KHz。

    目前、I2S 数据是一个~254Hz 三角波、包含0至192,000,000个32位数据。  除了脚本中的内容、我还将0、0、42设置为0x04、并将0.1.1设置为0x18、因为 I2S 数据是32位数据的单个流。

     我将进入8欧姆扬声 器(来自开发套件的扬声器)的扬声器输出是195KHz 周期性、由均匀间隔的正负脉冲组成。 我在 I2S 流期间查看了寄存器0.0.0.0、0.0.104、0.108、它们都符合我的预期。

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

    您好、Kurt、

    TAS2555的输出驱动器是一个 D 类放大器、因此您应该期待一个 PWM 信号、然而、如果占空比不变、这意味着它空闲并且出于某种原因不播放音频。
    让我根据您的系统时钟和其他说明生成一个配置文件、我今天稍后将与您分享。

    此致、
    -Ivan Salazar
    应用工程师

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

    您好、Kurt、

    是否可以尝试附加的脚本? 我使用 PPC3根据 BCLK = 3.072MHz PLL 输入和48kHz 采样率(最符合您所描述的值)生成了该图。

    e2e.ti.com/.../48k_5F00_3M072_5F00_TuningMode_5F00_combined_5F00_configuration_5F00_0_5F00_TuningMode_5F00_48KHz.cfg

    第9.5.2节介绍了 MCLK = 24.576MHz、这可能是其在您的系统上无法正常工作的原因。

    此致、
    -Ivan Salazar
    应用工程师

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

    伊万

    感谢您提供信息。

    我尝试的第一个是25MHz MCLK、但我。

    我正在尝试使用您发送的.cfg 文件、但我对某些事情感到困惑。

    我无法将脚本播放到2555中、因此我要将 相关部分转换为 我的 C 代码。  这样、我会注意到一些寄存器写入对我来说是没有意义的。  例如、 在下面的部分中、我已经注释了在我看来写入几个保留寄存器的位置。 我的 TAS2555数据表日期为2015年8月- 2019年2月修订

    # PLL 开始
    W 98 00 00 -第0页
    w 98 7f 00 -书籍0
    W 98 00 01 -第1页
    W 98 73 0f -保留寄存器、第0页和第1页
    W 98 74 00 -保留寄存器、第0页和第1页
    W 98 00 00 -第0页
    w 98 7f 64 - book 100
    w 98 1b 01
    w 98 1c c
    W 98 1D 00
    宽98 1e 00
    W 98 20 07
    宽98 22 08
    W 98 02 10 -数据表中的寄存器2不在书籍100中
    宽98 21 04
    W 98 01 08
    w 98 2b 00
    宽98 2c 20.
    w 98 1f 20
    W 98 2a 40 -书籍100中的保留寄存器
    # PLL 结束
    这是 我的代码的一个片段、它根据脚本配置2555。  我已经尝试过使用和不使用注释掉的行(在上面被标识为保留寄存器)。  在这两种情况下、我不再获得周期性脉冲、现在根本没有输出。
    Amp2555_i2cRegWrite (TAS2555_REG_PAGE_SELECT、0);
    Amp2555_i2cRegWrite (TAS2555_REG__book_select、0);
    Amp2555_i2cRegWrite (TAS2555_REG_SW_RESET、0x01);
    DelayMsWatchdog (10、WDT_MAIN);

    //设置 PLL
    Amp2555_i2cRegWrite (TAS2555_REG_PAGE_SELECT、0);
    Amp2555_i2cRegWrite (TAS2555_REG__book_select、0);
    Amp2555_i2cRegWrite (TAS2555_REG_PAGE_SELECT、1);
    // Amp2555_i2cRegWrite (0x73、0x0f);
    // Amp2555_i2cRegWrite (0x74、00);
    Amp2555_i2cRegWrite (00、00);
    Amp2555_i2cRegWrite (0x7f、0x64);
    Amp2555_i2cRegWrite (0x1b、0x01);
    Amp2555_i2cRegWrite (0x1c、0x1c);
    Amp2555_i2cRegWrite (0x1d、0x00);
    Amp2555_i2cRegWrite (0x1E、0x00);
    Amp2555_i2cRegWrite (0x20、0x07);
    Amp2555_i2cRegWrite (0x22、0x08);
    // Amp2555_i2cRegWrite (0x02、0x10);
    Amp2555_i2cRegWrite (0x21、0x04);
    Amp2555_i2cRegWrite (0x01、0x08);
    Amp2555_i2cRegWrite (0x2b、0x00);
    Amp2555_i2cRegWrite (0x2C、0x20);
    Amp2555_i2cRegWrite (0x1f、0x20);
    // Amp2555_i2cRegWrite (0x2a、0x40);

    Amp2555_i2cRegWrite (TAS2555_REG_DSP_MODE、0x22);
    Amp2555_i2cRegWrite (TAS2555_REG__book_select、0);
    Amp2555_i2cRegWrite (TAS2555_REG_PAGE_SELECT、0);
    Amp2555_i2cRegWrite (TAS2555_REG_POWER_CONTRAING_1、0xf8);
    Amp2555_i2cRegWrite (TAS2555_REG_POWER_CONTRAING_2、0xa3);
    Amp2555_i2cRegWrite (0x2a、0x04);
    DelayMsWatchdog (1、WDT_MAIN);
    Amp2555_i2cRegWrite (TAS2555_REG__MUTE、0x00);
    Amp2555_i2cRegWrite (TAS2555_REG__book_select、100);
    Amp2555_i2cRegWrite (TAS2555_REG_PAGE_SELECT、0);
    Amp2555_i2cRegWrite (TAS2555_REG__MUTE、0x00);

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

    您好、Kurt、

    数据表中有一些寄存器未公开披露、但 PPC3生成的脚本应该起作用。

    • 您之前提到过使用25MHz、现在为12.5MHz、是否有任何其他频率发生了变化、例如 BCLK 和 WCLK?
    • 您是否在之前和新的时钟设置中尝试过之前的脚本(第9.2.2节)? 有什么区别吗?
    • 您是否尝试过其他类型的信号? 或者您到目前为止只使用三角波形进行了测试?

    此致、
    -Ivan Salazar
    应用工程师

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

    伊万

    输出正在调制、但它只是噪声。  噪声特性根据我的 MCLK 频率而变化(我使用的是25MHz、12.5MHz、8.333MHz、8.333MHz MCLK 时的可闻噪声)、但 I2S 输入对输出没有影响、即使是 I2S 零输入也会产生相同的噪声。

    我无法使用 PPC3生成的脚本。

    我尝试 生成4kHz 正弦波。

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

    您好、Kurt、

    因此、您的意思是噪声仅存在于8.33MHz MCLK 情况下、但无论如何、您都没有输出信号。 是这样吗?
    您能评论一下 BCLK 吗? 它是否针对每个不同的情况进行了更改? 还是 MCLK 是唯一变化的?
    您使用的配置是否与我之前共享的配置相同?

    此致、
    -Ivan Salazar
    应用工程师

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

    伊万

    我想从配置文件中退一步、了解更基本的内容并描述我看到的内容。

    BCLK = 6.25MHz、WCLK = 97.656KHz。  I2S 数据是正弦波、但到目前为止 I2S 数据没有发生任何变化。  如果我从相同的基准时钟生成 MCLK、速度为25MHz (接近 WCLK * 256)、则我获得196KHz 脉冲、而不进行调制。  如果我从频率= WCLK 的256倍的不同时钟源生成 MCLK、我将通过生成白噪声的令人厌恶的波形得到显著调制。 只要 I2S 时钟存在、它就不会影响 I2S 数据的含义。 由于没有 I2S 数据、因此没有输出。

    我的第一个问题是、I2S 时钟是否都来自相同的基本时钟? 数据表中有这样的建议、但这是一项要求吗?

    第二个问题、是否有诊断/错误寄存器?

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

    您好、Kurt、

    至少 WCLK 和 BCLK 应该是相同的时钟源、这两个时钟应该是直接的倍数并同步、因为每个位(BCLK)在 一个字(WCLK)内被采样。
    在任何情况下、如果时钟发生变化、您必须确保时钟与所选配置的比率相同、否则您需要使用不同的配置来匹配新的时钟比率。

    有几个标志、包括时钟错误。 下面列出了 D/S 的一些相关部分:

    此致、
    -Ivan Salazar
    应用工程师