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.

[参考译文] 在不同的时钟之间切换和丢失音频

Guru**** 2478765 points
Other Parts Discussed in Thread: TLV320AIC3104

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/817537/changing-between-different-clocks-and-losing-audio

器件型号:TLV320AIC3104

我似乎对 TLV320AIC3104有另一个问题。 我已经设置了驱动程序、因此我们在 MCLK、CLKDIV_CLKIN 路径(对于16KHz 音频)和 MCLK、PLL_CLKIN 路径(对于8kHz 音频)之间切换。

 

我们在我们的系统中测试这一点、方法是 调用 HQ 并使用 VoIP 回叫装置。 VoIP 以8kHz 的频率运行、通常这是可行的。  

 

我可以在音频停止从扬声器传出之前拨打一些电话。 当音频在时钟路径之间切换时、往往会发生这种情况。 使用16KHz 的采样率建立呼叫并播放消息。 将接受呼叫、切换到8kHz 采样率、音频正常。 当呼叫结束并切换回16KHz 采样率时、扬声器不会听到任何音频。

 

我可以看到在 I2S 总线上播放的音频、当音频良好且停止工作时、寄存器看起来是相同的。 以下是供参考的寄存器转储。 这全部针对16KHz 音频(我们的系统中为15600)进行设置

 

  -盒上的音频不是从扬声器发出的,这是寄存器的状态,没有播放音频

   root@生命线:/media/userdata i2cdump -f -y 0 0x18

   未指定大小(使用字节数据访问)

        0 1 2 3 4 5 6 7 8 9 A b c d e f   0123456789abcdef

   00:00 00 44 10 2c 99 40 0A 00 00 21 00 00 00   .D???@?!

   10:00 8f F8 78 78 78 78 78 78 78 06 70 FE 00 fe 00   .?xxxxxx?p?..

   20:00 00 00 00 80 00 10 00 00 50 00 81 00 76   ……???????????????vv

   30:00 76 76 04 00 76 00 76 76 76 04 00 76 00 76 76 76 76 00 76   .vv?.vv?.vv?.vv.v

   40:76 04 00 76 00 76 76 76 04 00 00 00 00 00 00 00   v?.vv?...

   50:00 B6 76 00 76 0b 00 F6 76 00 36 76 0b D8 00   .v.vv??v.6V?。

   60:00 00 00 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ???..........

   70:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

 

-  此处盒上的音频不是从扬声器发出的、这是播放"离开"消息的寄存器的状态

   root@生命线:/media/userdata i2cdump -f -y 0 0x18

   未指定大小(使用字节数据访问)

        0 1 2 3 4 5 6 7 8 9 A b c d e f   0123456789abcdef

   00:00 00 44 10 2c 99 40 0A 00 00 01 00 00 00   .D?、?@?...。。

   10:00 8f F8 78 78 78 78 78 78 78 06 70 FE 00 fe 00   .?xxxxxx?p?..

   20:00 00 00 00 80 c0 10 00 00 50 00 01 00 76   ……?????????????????vv

   30:00 76 76 07 00 76 00 76 76 06 00 76 00 76 76 76 76 76 76 76 76 76   .vv?.vv?.vv.v

   40:76 07 00 76 00 76 76 04 00 00 00 00 00 00 00   v?.vv?...

   50:00 B6 76 00 76 0b 00 F6 76 00 36 76 0b DE 08   ?v.vv???v.6V?????

   60:00 00 00 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ???..........

   70:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

 

-寄存器0x0B 设置为21和01。 该规范中规定已设置"左 DAC 上溢标志"。

-寄存器0x2b 和0x2C 发生变化、这是正常现象

-寄存器0x5e 发生变化,这是正常现象

-扬声器仍然没有音频输出、因此请重置设备并再次转储寄存器。

 

-音频现在可以工作,这是音频不播放时的寄存器转储

   根@生命线:~# i2cdump -f -y 0 0x18

   未指定大小(使用字节数据访问)

        0 1 2 3 4 5 6 7 8 9 A b c d e f   0123456789abcdef

   00:00 00 44 10 2c 99 40 0A 00 00 41 00 00 00   .D?、?@?... A.

   10:00 8f F8 78 78 78 78 78 78 78 06 70 FE 00 fe 00   .?xxxxxx?p?..

   20:00 00 00 00 80 00 10 00 00 50 00 81 00 76   ……???????????????vv

   30:00 76 76 04 00 76 00 76 76 76 04 00 76 00 76 76 76 76 00 76   .vv?.vv?.vv?.vv.v

   40:76 04 00 76 00 76 76 76 04 00 00 00 00 00 00 00   v?.vv?...

   50:00 B6 76 00 76 0b 00 F6 76 00 36 76 0b D8 00   .v.vv??v.6V?。

   60:00 00 00 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ???..........

   70:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

 

-音频现在可以工作、这是当音频播放"离开"消息时的寄存器转储

   未指定大小(使用字节数据访问)

        0 1 2 3 4 5 6 7 8 9 A b c d e f   0123456789abcdef

   00:00 00 44 10 2c 99 40 0A 00 00 01 00 00 00   .D?、?@?...。。

   10:00 8f F8 78 78 78 78 78 78 78 06 70 FE 00 fe 00   .?xxxxxx?p?..

   20:00 00 00 00 80 c0 10 00 00 50 00 01 00 76   ……?????????????????vv

   30:00 76 76 07 00 76 00 76 76 06 00 76 00 76 76 76 76 76 76 76 76 76   .vv?.vv?.vv.v

   40:76 07 00 76 00 76 76 04 00 00 00 00 00 00 00   v?.vv?...

   50:00 B6 76 00 76 0b 00 F6 76 00 36 76 0b DE 08   ?v.vv???v.6V?????

   60:00 00 00 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ???..........

   70:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

 

我看不到寄存器设置有什么不同、但只有在我们执行硬件复位时、音频才会重新开始工作。 您能不能建议您的任何工程师是否遇到过此类音频问题。

 

 

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

    大家好、海报!

    我们的支持人员正花时间与家人一起在美国度过独立日假期。  可能是7月8日、我们才会在您的查询中为您提供帮助。  我们提前对延误表示歉意、并将尽快返回给您。

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

    Ajayt、  

    当您从8kHz 切换到16kHz 或相反切换时、是否先关断 ADC 和 DAC?  

    此致、

    -Steve Wilson

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

    您好、Steve、  

    您是否有用于启动关断和启动的寄存器序列。 写入这些寄存器之间是否存在时序用途。 即发出关断、等待、设置其他寄存器、等待、发出启动?

     

    然后、我可以查看系统如何控制相关寄存器。

     

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

    Alan、  

    如果需要更改采样频率、

     ADC 和 DAC 应断电(寄存器19、22和37)

    延迟5ms

    然后 PLL 掉电、 系数改变、

    然后 PLL 重新加电  

    延迟5ms  

    然后、ADC 和 DAC 上电。  

    重要的是确保在系数发生变化时不为 ADC/DAC 和 PLL 上电。  

    此致、

    -Steve Wilson

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

    您好、Steve、

    感谢您提供信息。 这似乎起了作用。 我按照你所描述的顺序依次向我们的国家民警发出了10次电话,都通过了。 音频在采样率和声音正常之间切换。 我将做更多的测试和检查,但这似乎要好得多。

     

    您能不能在您说 PLL 掉电并再次上电时澄清一下、是仅使用寄存器3 (D7)中的启用/禁用位、还是我错过了什么?

     

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

    Alan、

    您已经知道了、 寄存器3 D7会关闭 PLL。  

    但关断应与系数写入分开、 通常情况下、客户尝试进行短暂的削减并对系数进行编程并同时为其加电。  不建议这样做。  

    此致、

    -Steve Wilson