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.

[参考译文] TLV320ADC3100:有关 TLV320ADC3100 双二阶滤波器配置的问题

Guru**** 2928900 points

Other Parts Discussed in Thread: TLV320ADC3100

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1652851/tlv320adc3100-questions-regarding-tlv320adc3100-biquad-filter-configuration

器件型号: TLV320ADC3100

您好 TI 支持部门、

我使用 TLV320ADC3100、并成功配置了 ADC 和音频路径。 然而、我在获得可编程双二阶滤波器来影响音频信号时遇到了问题。

感谢您对以下问题的帮助:

  1. 双二阶滤波器编程

  • 您能否提供用于对双二阶滤波器系数进行编程的建议序列(伪代码)?

  • 写入系数是否需要一个时序?

  • 在更新系数之前、ADC 通道应该断电、静音或置于特定状态?

  • 对于要使双二阶滤波器生效、选定的处理块 (PRB) 是否有任何要求?

  1. 系数更新期间的 ADC 状态

  • 写入双二阶系数时、建议使用什么 ADC 状态?

  • 在 ADC 主动流式传输音频时更新系数是可以接受的、还是必须先禁用 ADC?

  1. 回读验证

  • 回读系数寄存器并验证这些值是否正确写入的建议方法是什么?

  • 在编程后、所有系数寄存器是否都可通过 I2C 完全读取?

  • 读回之前、是否需要任何特殊的页面选择或访问顺序?

  1. 启用和禁用双二阶滤波器

  • 除了对系数进行编程外、是否有单独的可编程双二阶滤波器启用/禁用控制?

  • 在选择支持可编程双二阶滤波器的 PRB 时、是否自动启用双二阶滤波器?

  • 是否有适用于单个双二阶滤波器或整个双二阶链的旁路机制?

目前、音频录制工作正常、但更改双二阶系数似乎对输出信号没有影响。 如果您对正确的初始化序列或常见的配置错误有任何指导意见、我们将不胜感激。

感谢您的帮助。

此致、
Saeed Sattari

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

    尊敬的 Saeed:

    我可以稍后提供更详细的响应、但我希望提供一个快速的响应、以帮助您朝着正确的方向前进。

    要对双二阶进行编程、首先、您需要选择在信号路径中具有双二阶滤波器的 PRB。 默认 PRB 路径中没有任何双二阶滤波器。 详细信息请参阅数据表的第 31 页。

    设置系数的关键在于、您首先必须通过写入寄存器 0 来进入第 4 页。 例如:

    w 30 00 00 #第 0 页

    w 30 3D 02 #选择 PRB_R2

    w 30 00 04 #第 4 页

    w 30 0e xx #设置双二阶滤波器 A 系数 N0

    w 30 10 xx #设置双二阶 A 系数 N1

    w 30 12 xx #设置双二阶 A 系数 N2

    您应该能够通过 I2C 轻松读回、确保仍然位于正确的页面上:

    W 30 00 04 #第 4 页

    R 30 0e 06 # 从 0x0E 开始读取六个寄存器

    我建议不要动态更改这些设置。 将 ADC 断电、写入系数、然后重新上电。

    选择相关 PRB 后、应启用双二阶滤波器。

    如果您仍然需要这方面的任何帮助、请告诉我。

    此致、

    Garret

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

    启动后发送了这些确切的命令。

    - PRB_R2 被使用,所有 5 个双二阶都被编程。 (使用逻辑分析仪验证)
    -在加载参数之前和之后、ADC 被断电和上电(页 0 寄存器 81)
    -音频继续工作,但双二阶没有效果。 它们似乎不适用。

    在测试中、我们发现:
    -如果我们在恢复电源之前读回系数,则系数存在。 上电 (P0|R81) 后、它们无法读取(返回*全零*(不是其复位值))
    -如果我们通过编程 PLL 时钟设置启动序列,*在调用软件复位 (P0|R1) 之前*,参数*可读且正确,但不存在音频,即使使用默认的双二阶参数进行编程。
    -如果我们在加电 ADC 之前调用软件复位 (P0|R1)(P0|R81)(在参数编程之后),则参数*可读,但 已重置为 默认的双二阶参数值。 音频也不存在。
    -我们还尝试了发送参数的不同顺序(一次 1/2/10 字节),不同的处理块(和/或设置处理块的不同时序),以及设置不同参数之前/之后/之间的等待时间(重新)。

    是否有任何简单的引导->启用双二阶滤波器->对其参数进行编程的示例脚本?
    任何见解都将不胜感激。

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

    尊敬的 Saeed:

    这是我手头上唯一的示例脚本:

    # Key: w 30 XX YY ==> write to I2C address 0x30, to register 0xXX, data 0xYY
    # # ==> comment delimiter
    #
    # The following list gives an example sequence of items that must be executed in the time
    # between powering the device up and reading data from the device. Note that there are
    # other valid sequences depending on which features are used.
    #
    # ADC3101EVM Key Jumper Settings and Audio Connections:
    # 1. Remove Jumpers W12 and W13
    # 2. Insert Jumpers W4 and W5
    # 3. Insert a 3.5mm stereo audio plug into J9 for
    # single-ended input IN1L(P) - left channel and
    # single-ended input IN1R(M) - right channel
    ################################################################
    # 1. Define starting point:
    # (a) Power up appicable external hardware power supplies
    # (b) Set register page to 0
    #
    w 30 00 00
    # (c) Initiate SW Reset
    #
    w 30 01 01
    #
    # 2. Program Clock Settings
    # (a) Program PLL clock dividers P,J,D,R (if PLL is necessary)
    #
    # In EVM, the ADC3001 receives: MCLK = 11.2896 MHz,
    # BCLK = 2.8224 MHz, WCLK = 44.1 kHz
    #
    # Sinve the sample rate is a multiple of the input MCLK then
    # no PLL is needed thereby saving power. Use Default (Reset) Settings:
    # ADC_CLKIN = MCLK, P=1, R=1, J=4, D=0000
    w 30 04 00
    w 30 05 11
    w 30 06 04
    w 30 07 00
    w 30 08 00
    #
    # (b) Power up PLL (if PLL is necessary) - Not Used in this Example
    w 30 05 11
    # (c) Program and power up NADC
    #
    # NADC = 1, divider powered on
    w 30 12 81
    #
    # (d) Program and power up MADC
    #
    # MADC = 2, divider powered on
    w 30 13 82
    #
    # (e) Program OSR value
    #
    # AOSR = 128 (default)
    w 30 14 80
    #
    # (f) Program I2S word length as required (16, 20, 24, 32 bits)
    #
    # mode is i2s, wordlength is 16, slave mode (default)
    w 30 1B 00
    #
    # (g) Program the processing block to be used
    #
    # PRB_P1
    w 30 3d 01
    #
    # 3. Program Analog Blocks
    # (a) Set register Page to 1
    #
    91
    TLV320ADC3100
    www.ti.com SBAS906 –MARCH 2018
    Product Folder Links: TLV320ADC3100
    Copyright Copyright 2018, Texas Instruments Incorporated Submit Documentation Feedback
    w 30 00 01
    #
    # (b) Program MICBIAS if applicable
    #
    # Not used (default)
    w 30 33 00
    #
    # (c) Program MICPGA
    #
    # Left Analog PGA Seeting = 0dB
    w 30 3b 00
    #
    # Right Analog PGA Seeting = 0dB
    w 30 3c 00
    #
    # (d) Routing of inputs/common mode to ADC input
    # (e) Unmute analog PGAs and set analog gain
    #
    # Left ADC Input selection for Left PGA = IN1L(P) as Single-Ended
    w 30 34 fc
    #
    # Right ADC Input selection for Right PGA = IN1R(M) as Single-Ended
    w 30 37 fc
    #
    # 4. Program ADC
    #
    # (a) Set register Page to 0
    #
    w 30 00 00
    #
    # (b) Power up ADC channel
    #
    # Power-up Left ADC and Right ADC
    w 30 51 c2
    #
    # (c) Unmute digital volume control and set gain = 0 dB
    #
    # UNMUTE
    w 30 52 00
    #

    软件复位只能在开始时完成、ADC 会在结束时上电 在读取和写入双二阶滤波器时、跟踪您所在的页面始终很重要。 如果您写入、打开 ADC 电源、然后进行读取操作、必须确保在每个相关命令之前切换页码。

    w 30 00 04 #第 4 页

    w 30 0e xx #设置双二阶滤波器 A 系数 N0

    w 30 10 xx #设置双二阶 A 系数 N1

    w 30 12 xx #设置双二阶 A 系数 N2

    w 30 00 00 #第 0 页

    W 30 51 C2 #上电

    W 30 00 04 #第 4 页

    R 30 0e 06 # 从 0x0E 开始读取六个寄存器

    如果您发送了正在使用的脚本、我可以查看此内容。

    此致、

    Garret