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.

[参考译文] TS3A225E:TS3A225E 丢失配置

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

https://e2e.ti.com/support/switches-multiplexers-group/switches-multiplexers/f/switches-multiplexers-forum/687353/ts3a225e-ts3a225e-losing-configuration

器件型号:TS3A225E
主题中讨论的其他器件:TLV320AIC3100

您好!

 我们在设计中实现了以下两个组件(请参阅附件中的原理图)

-         TLV320AIC3100

         - TS3A225E

我们很难观察到 TS3A225E 的寄存器设置丢失。

立即写入和读取这些值是可以的、但在大多数时间100ms 后、这些值会丢失。

PS:同一 I2C 总线上的 TLV320AIC3100工作正常

你能提供建议吗?

TX

e2e.ti.com/.../audio.pdf

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

    MBA、

    TS3A225E 具有用于配置开关矩阵的手动 I2C 控制模式和自动模式。  开关的默认模式将与自动检测一起使用。

    您是否希望在自动检测模式或手动模式下使用该器件?

    您希望向 TS3A225E 写入哪些设置、如果您丢失这些设置、结果将是什么。

    谢谢、

    Adam

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

    我们写入 CTRL3寄存器的 I2C_INT 位、以便在 I2C 寄存器发生变化时获取 IRQ。 (因此我们可以检测耳机和麦克风)。 我们观察到、在"某些时间"后、I2C_INT 位消失(CTRL3寄存器再次变为零)。

    作为实验、我们添加了一个转储所有寄存器的轮询例程。 这就是我们观察到 I2C_INT 位消失的方式。 当该位消失时、它不一致。

    因此、当 I2C_INT 位降至0后、如果我们插入真实的麦克风(因为我们使用芯片的自动麦克风检测功能)、我们只会获得 IRQ、而当我们插入耳机时、我们不会获得 IRQ。

    因此、作为第二个实验、我们在每次寄存器转储之前重写 I2C_INT 位。 这样、当我们插入耳机时、我们也会获得 IRQ。

    此致、

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

    如果您要读取寄存器、则 CTRL3寄存器/MIC_Present 位默认为0、并且 MIC_Present 引脚仅在检测到 MIC 时拉低。 您还可以选择将 CTRL3寄存器/MIC_Present 位写入1、这将导致 MIC_Present 引脚拉低。

    除非电源引脚发生中断、并且值1可以恢复为默认值0、否则我不会期望 CTRL3寄存器更改超时。

    我将需要与设计团队进行检查、以查看此 MIC_Present 引脚是否实际表现为 I2C_IRQ 并在任何 I2C 更改中拉低、或者是否仅在检测到麦克风时拉低

    Adam
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Adam
    是否有任何关于此问题的反馈?
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    MBA、

    我遇到了与您相同的问题。

    这似乎是 TS3A225E 的问题(TI 尚未确认)。
    移除耳机后、IC 将重置所有可写寄存器。

    权变措施:
    在 MIC_Present 变为高电平后重新配置所有可写寄存器。
    实际上、用0x04重写 CTRL3就足够了。

    希望它对您有所帮助。

    此致
    Forrest

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

    很抱歉、我提供了有关 MIC_Present 引脚具有中断功能的能力的错误信息。 我删除了错误帖子、以帮助清除此主题。

    我与其中一个 IC 定义器进行了交谈、他们认为读取 INT 寄存器将自动释放 MIC_Present 引脚、但它并未解释为什么 CTRL3寄存器0x41会重置这些值。

    我现在在实验室中设置了电路板、并将尝试此测试以查看是否可以看到您的问题。

    1) 1)在未连接任何器件的情况下为器件加电
    2) 2)写入 CTRL3 0x41寄存器以将 MIC_Present 引脚配置为中断0x04
    3) 3)反复读取所有寄存器、查看 CTRL3 0x41寄存器设置是否发生变化

    此测试是否会模仿您的工作?

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

    尊敬的 Adam:

    我有测试步骤、很容易重现:

    1) 1)在未连接任何器件的情况下为器件加电。

    2) 2)向 CTRL3 0x04寄存器写入值0x04 (作为中断)

    3) 3)连接耳机。 MIC_Present 引脚变为低电平(有效)。

    4) 4)读取 CTRL3、它仍然为0x04。

    5) 5)断开耳机。 MIC_Present 引脚变为高电平

    6) 6)读取 CTRL3、它将为0x00。 实际上、所有寄存器都是复位值、IC 似乎执行内部复位。

    PS:我注意到数据表为 CTRL3提供了两个不同的地址。

    在"寄存器映射"部分中、CTRL3的地址为0x04;

    在下一节"寄存器说明"中、它变为"0x041"。

    我认为 CTRL3的地址应该是0x04。

    此致

    Forrest

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

    @Adam:是的,让我们从这个简单的实验开始。

    根据 Forrest、配置丢失时需要插入耳机。 我观察到不同的行为:定期读取 CTRL3也会导致配置丢失、因此、我们根本不会获得 IRQ。

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

    我能够看到您使用此过程看到的内容。 我又省去了一个变量、没有使用耳机。 我只需上拉 DET_TRIGGER 引脚即可启动检测序列。

    1) 1)在未连接任何器件的情况下为器件加电。

    2) 2)向 CTRL3 0x04寄存器写入值0x04 (作为中断)

    3) 3)上拉 DET_TRIGGER 引脚以启动检测。 是 MIC_Present 引脚变为低电平(有效)。

    4) 4)读取 CTRL3、它仍然为0x04。

    5) 5)从 DET_TRIGGER 中移除上拉电压。 MIC_Present 引脚变为高电平

    6) 6)读取 CTRL3、它将为0x00。 实际上、所有寄存器都是复位值、IC 似乎执行内部复位。

    我还尝试了相同的过程、但使用 ctl3寄存器启动检测序列、但未发现问题。

    Peter、

    我尝试重复读取 ctl3、但它始终保持其值。 我认为除了读取 ctl3来启动检测之外、还需要执行其他操作。

    PS:是的、我看到了 ctl3 0x041地址拼写错误。 应为0x04。

    我将考虑该实验、以及如果移除 DET_TRIGGER 电压、为什么 IC 会复位。

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

    Adam 和 Peter、

    根据我们之间的不同情况、我更详细地研究了它。

    问题现已基本确定、但仍在 DET_TRIGGER 电压附近。

    一旦 MIC_Present 引脚变为高电平、立即读取或写入 TS3A225E 寄存器、它就没有响应。
    它会导致主机微处理器 STM32F407置位 I2C 忙标志。

    之前、主机程序继续读取 TS3A225E 寄存器、而不会复位忙标志、
    因此、我报告所有寄存器已复位为零。 (丢失配置)

    如果在 MIC_Present 引脚变为高电平后插入大约1毫秒的延迟、则可以进行读取或写入。

    为什么需要延迟? 是否有更优雅的解决方案?

    PS:如果设置 CTRL3 = 0x04、MIC_Present 引脚几乎是 DET_TRIGGER 的反向器。 是这样吗?

    此致
    Forrest

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TS3A225E 问题汇总
    ===================================
    问题1:
    从音频插孔中取出耳机、立即读取或写入任何 TS3A225E 寄存器后、它没有响应。

    如果插入大约1毫秒的延迟、则读取/写入成功。

    问题2:
    从音频插孔中取出耳机后、TS3A225E 丢失其配置。
    主机程序必须再次重写配置。

    问题3:
    从音频插孔中取出所有耳机、并设置 CTRL3 = 0x01 (DET_TRIGGER)、
    寄存器 INT (地址= 0x06)等于0x01、
    它指示"检测到标准 TSR 耳机"。

    如何重现问题2.
    ===========================
    1) 1)使用默认设置为器件加电。
    2) 2)插入带麦克风的4极耳机、MIC_Present 引脚变为低电平。
    3) 3)取下耳机、MIC_Present 引脚变为高电平。
    4) 4)如果重复上述两个步骤、您将获得电压变化。
    5) 5)使用标准 TSR 耳机(不带 MIC 的3极)、执行相同的测试、MIC_Present 引脚的电压保持高电平。
    6) 6)将0x04写入 CTRL3、将该引脚配置为中断。
    7) 7)插入标准 TSR 耳机、针脚现在变为低电平。 (作为中断)
    8) 8)取下耳机、将其恢复到高电压。
    9) 9)再次插入标准 TSR 耳机、电压永远不会再次改变。
    10) 10)仔细检查 CTRL3的值、现在为0x00。

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

    问题1:我知道、如果 TS3A225E 器件运行检测序列、将需要几毫秒的时间、但我不确定为什么移除耳机可能会启动检测序列。 在这种情况下、您是否能够监控 DET_TRIGGER 引脚电压上的电压? 当您拔下音频插孔时、可能会启动一个额外的检测序列。

    问题2:我在工作台上重复了这一点、但尚未确定根本原因。

    问题3:这是预期的。 如果音频插孔中未插入任何内容并运行检测算法、它将检测为3极器件。 器件将看到 TIP 和 Ring2/SLEEVE 之间的阻抗相等、因为这两个引脚都将具有高阻抗或开路。

    谢谢、
    Adam
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在我们继续解决此问题时、您是否会告知我们上述建议的解决方案是否能够在您的系统中实施?

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

    Adam、

    应用一些软件权变措施补丁后、芯片工作正常。
    因此、我不打算再对其进行任何测试。

    问题1:在中断触发后插入延迟、然后成功查询 IC。

    问题2:虽然原因未知、但只需在取下耳机后重新编写配置、然后它就可以正常工作。

    问题3:只需对耳机存在的定义感到困惑。

    此致
    Forrest