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.

[参考译文] TS3A227E:TS3A227E 切换耳机模式

Guru**** 2546020 points
Other Parts Discussed in Thread: TS3A227E

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

https://e2e.ti.com/support/switches-multiplexers-group/switches-multiplexers/f/switches-multiplexers-forum/720693/ts3a227e-ts3a227e-switch-headset-mode

器件型号:TS3A227E

就像在我之前的帖子中一样、我希望在不同的耳机模式之间切换、而不管连接到设备的是什么。 例如:

  • 采用4极 CTIA 标准耳机
  • 以特定方式配置 TS3A227E
  • 将 CTIA 标准耳机插入连接到 TS3A227E 的音频插孔
  • CTIA 标准耳机被检测为 OMTP 耳机
  • 内部开关设置也设置为4极 OMTP
  • 耳机将不再正常工作

我尝试了我们在这篇文章中找到的方法

但它仅在我重新启动设备之前起作用。 因此、我可能仍然会错过一些东西。 我当前的脚本如下所示:

switch_control_1_0x14
switch_control_2=0x09

#未插入耳机

#手动开关控制设置
i2cset -y -f 1 0x3b 0x04 0x80 # RESET
SLEEP 0.1
i2cset -y -f 1 0x3b 0x04 0x27 #将插入时间增加到2秒
休眠时间0.1
i2cset -y -f 1 0x3b 0x04 0x67 # enable manual switch control
sleep 0.1#

将开关设置为 OMTP 或 CTIA 设置
i2cset -y -f 1 0x3b 0x07 $switch_control_1 #写入开关控制1
睡眠0.1
i2cset -y -f 1 0x3b 0x08 $switch_control_2 #写入开关控制2
睡眠0.1

#插入 OMTP 耳机

i2cget -y -f 1 0x3b 0x0B #读取0x0c、这是(CTIA)错误、因为我们设置了 OMTP 

我应该错过什么?

此致、Thorben

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

    Thorben、

    如果您重新启动 TS3A227E、所有寄存器设置都将恢复为默认值。

    • 采用4极 CTIA 标准耳机

    • 特定方式配置 TS3A227E

    一旦检测序列运行、配置将丢失


    如果 DET_TRIGGER 引脚被切换或通过 I2C 命令手动启动检测序列、则配置序列将开始


    • CTIA 标准耳机被检测为 OMTP 耳机

    这对我来说毫无意义。  插孔中的 CTIA 耳机应被检测为 CTIA 耳机。  这是您遇到的问题、是否未正确检测到?


    • 内部开关设置也设置为4极 OMTP

    这对我来说毫无意义。  插孔中的 CTIA 耳机应被检测为 CTIA 耳机。  这是否是您遇到的问题,即检测不正确?)

     

    • 耳机将不再正常工作

    如果 TS3A227E 配置为支持 OMTP 设备、但将 CTIA 耳机插入音频插孔、则会出现这种情况。  您需要匹配 TS3A227E 内部开关矩阵、以支持 插入插孔的耳机类型。  

     

     

    switch_control_1=0x14
    switch_control_2=0x09

    我想您已经为 OMTp 配置翻转了位  




    #未插入耳机

    手动开关控制的#设置
    i2cset -y -f 1 0x3b 0x04 0x80    #复位(确定)
    睡眠0.1
    i2cset -y -f 1 0x3b 0x04 0x27    #将插入时间增加到2秒(正常)
    睡眠0.1
    i2cset -y -f 1 0x3b 0x04 0x67    #启用手动开关控制(OK)
    睡眠0.1

    #设置切换到 OMTP 或 CTIA 设置
    i2cset -y -f 1 0x3b 0x07 $switch_control_1    #写入开关控制1 (请参阅上面有关位翻转的注释)
    睡眠0.1
    i2cset -y -f 1 0x3b 0x08 $switch_control_2    #写入开关控制2 (请参阅上面有关位翻转的注释)
    睡眠0.1

    #插入 OMTP 耳机(在上面的注释中、您声明您在程序中插入了 CTIA 耳机、而不是 OTP 耳机)

    i2cget -y -f 1 0x3b 0x0B         #读取0x0c、这是(CTIA)错误、因为我们设置了 OMTP

     

    谢谢、

    Adam

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

    尊敬的 Adam:

    感谢您的回答。 您的选择完全正确、我将 OTP 和 CTIA 设置混在一起。 让我再次把这一点放在正确的背景下。

    我要做的是将 CTIA 耳机作为 OMTP 耳机连接到 TS3A227E、使其不再工作(我知道、这毫无意义)。 为了归档此目标、我需要执行的步骤如下所示:

    1. 采用4极 CTIA 标准耳机
    2. 以我尚不知道的特定方式配置 TS3A227E (请参阅下面的脚本)
    3. 将 CTIA 标准耳机插入连接到 TS3A227E 的音频插孔
    4. CTIA 标准耳机被检测为 OMTP 耳机
    5. 耳机将不再正常工作

    我尝试了我们在这篇文章中找到的方法

    但它仅在我重新启动设备之前起作用。 因此、我可能仍然会错过一些东西。 我当前的步骤3脚本(如上所述)如下所示:

    switch_control_1_0x28
    switch_control_2=0x06
    
    #未插入耳机
    
    #手动开关控制设置
    i2cset -y -f 1 0x3b 0x04 0x80 # RESET
    SLEEP 0.1
    i2cset -y -f 1 0x3b 0x04 0x27 #将插入时间增加到2秒
    休眠时间0.1
    i2cset -y -f 1 0x3b 0x04 0x67 # enable manual switch control
    sleep 0.1#
    
    将开关设置为 OMTP 设置
    i2cset -y -f 1 0x3b 0x07 $switch_control_1 #写入开关控制1
    睡眠0.1
    i2cset -y -f 1 0x3b 0x08 $switch_control_2 #写入开关控制2
    睡眠0.1
    
    #插入 OMTP 耳机
    
    i2cget -y -f 1 0x3b 0x0B #读取0x0c、这是(CTIA)错误、因为我们设置了 OMTP 

    我应该错过什么? 这是正确的顺序吗? TS3A227E 手动说明、您应该在启用手动开关控制之前设置开关

    此致、Thorben

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

    我认为、您按照这个顺序运行实验的问题。 由于您已启用自动检测、因此无论何时将耳机插入音频插孔、它都将运行检测并重新配置其开关矩阵以支持它检测到的耳机、即使您已经手动设置开关矩阵。 插入耳机后、您需要禁用自动检测或手动配置开关矩阵。

    Adam