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.

[参考译文] TLV320AIC3254:查询 TLV320AIC3254 中的噪声消除和 miniDSP 使用情况

Guru**** 2554780 points
Other Parts Discussed in Thread: TLV320AIC3254

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1556992/tlv320aic3254-query-on-noise-cancellation-and-minidsp-usage-in-tlv320aic3254

部件号:TLV320AIC3254


工具/软件:

我正在使用 TLV320AIC3254 编解码器 我的工程。 可以了 两个模拟麦克风和两个数字麦克风 连接到编解码器。 我希望能够使用模拟麦克风或数字麦克风进行信号处理。

我需要执行不同的噪声消除技术、例如:

  1. 有源噪声消除 (ANC)

  2. 回声消除 (AEC)

  3. 波束形成

  4. 自适应滤波器

    我对编解码器有几个问题:

    1. TLV320AIC3254 中处理块和 miniDSP 的用途是什么? 这两个是设计为做同样的工作,还是他们服务不同的目的? 如果不同、您能否说明在处理块与 miniDSP 中可实现哪种类型的操作?

    2. 与 Pure Path Studio 中 TLV320AIC3254 中的处理块相比、使用 miniDSP 的建议方法是什么? 在哪些情况下应依赖内置处理块、在哪些情况下应使用 PurePath Studio 对 miniDSP 进行编程?

    3. 我在 TI 支持论坛上找到了注释:

      • “它无法满足 AEC 和 ANC 的现代期望。 我们强烈建议设计人员不要使用编解码器中的 DSP 来托管算法、而是将算法托管在单独的 DSP 或 SoC 上。“
        基于此、我想确认:ANC 和 AEC 等高级算法在编解码器的 miniDSP 中无法完全支持、并且在外部 DSP/SoC 上更好地实现是否正确?

    4. 我还找到了一条注释:

      • “自适应滤波功能将无法提供噪声消除功能。 噪声消除需要将噪声反相并使用噪声来消除噪声、而不仅仅是使用双二阶滤波来滤除噪声。“
        您能否在 miniDSP 的上下文中澄清这一说法? 这是否意味着编解码器中的自适应滤波器块不足以实现实际的 ANC。

    5. 您能否提出在 TLV320AIC3254 编解码器上实际可以采用哪些噪声消除技术?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我将逐一解答您的问题。

    答:处理块是在不使用 miniDSP 的情况下器件上可用的内置处理系统。 如果要使用 miniDSP、则不再使用处理块、反之亦然。 使用处理块的主要目的是更改所使用的滤波器数量以及 AGC 是否能够启用的信号链。 有一些用户可编程的双二阶滤波器以及 FIR 和 IIR 滤波器。 当不使用 miniDSP 时、可使用处理块、 而如果不使用 miniDSP、则实际上将始终为 1 启用。 miniDSP 将使用 PurePath Studio 进行配置。 当然有滤波器和 AGC、但也可以完成复杂的路由、并可以运行特定的算法。 这里列出的选项太多、我建议您下载 PurePath Studio (PPS) 并查看是否有您想要使用的选项。 以下是 miniDSP 算法的一些选项屏幕截图:

    B:如果不使用 miniDSP、则会处理块。 如果只需要一些滤波器、则不要使用 miniDSP。 如果希望使用任何路由或算法、可以使用 miniDSP。

    C:噪声消除需要另一个 DSP。 AIC3254 上的 miniDSP 确实具有“降噪“算法、但这是由滤波器制作的基本算法。 噪声消除涉及回放反相信号和处理、我认为这太快了、DSP 无法在此设备中处理。 此器件存在的大多数相关算法仅在 16kHz 或更低的采样率下工作、因此对于实际 AEC/ANC 系统中的适当响应而言、这也过低。 此器件的 PPS 中曾经有一种 AEC 算法、但它已被移除、我认为效果不佳。

    D:我相信可以在 miniDSP 和处理块中启用自适应滤波。 在该器件中、自适应滤波是指在器件开启并已传递数据时可以更改滤波器系数。 滤波器系数有一个双缓冲器、因此当使用一个滤波器时、您可以更改另一个缓冲器中的系数、然后进行切换。 噪声消除系统的设计理念是通过调整滤波器来消除背景噪声、并根据麦克风输入进行调整。 但是,同样,这只是滤波器,系数缓冲器的开关存在一定的延迟 — 从技术上讲,这并不是消除噪声,只是通过滤波降低噪声。 背景噪音通常也在您希望听到的语音频段或音频段中、因此滤波也会损害预期声音的质量。 实际的噪声消除会将噪声反相、以便所需的信号不受影响。

    E:主要是面向滤波的算法最适合在编解码器本身上运行、并且增益级别调整。 我在屏幕截图中展示的任何效果都是合理使用的。 我也认为 miniDSP 可用于通过混频器和分离器等各种输入和输出路由信号。

    此致、
    Mir

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

    您好、
    Mir

    感谢您给出清晰的解释、并澄清我对 TLVAIC3254 编解码器噪声消除技术的疑虑
    我还有一个关于  TLV320AIC3254 中的数字麦克风连接和录制/播放路径的问题。

    数字麦克风和 ADC 连接

       参考指南中显示了这一点 数字麦克风连接到 ADC 。 因为我使用的是 I²S μ s 数字麦克风 、它已输出      数字位流、我对这个连接的目的感到困惑。

       如果麦克风已经提供数字数据、在这种情况下 ADC 级还发挥了什么额外作用。

    2.录制和回放路径
    我希望了解 TLV320AIC3254 内部记录和播放路径的执行情况。

          录音路径的哪一部分是连接的数字麦克风

          路径的哪一部分 数字麦克风数据是否已路由?



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

    您好、

    通常、当我们讨论数字麦克风时、我们讨论的是 PCM 数字麦克风、而不是 I2S 麦克风。 PCM 麦克风输出的数据与器件内部的 ADC 编码数据大致相同、而不是 I2S — 它使用调制器时钟作为其数字数据的时钟。 如果您的麦克风输出 I2S、它根本不需要通过 ADC、而是将其用作 DAC 的输入。  

    此致、
    Mir

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

    您好、
    Mir  
    感谢您的答复。
    我有另一个关于数字麦克风的问题。 我使用两个 I²S Ω MEMS 麦克风(主 — 左声道和次-右声道)。 在 TLV320AIC3254 编解码器中、这些数字麦克风连接在哪里?




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

    您好、
    Mir

    我还有另一个关于自适应筛选器的查询。 当我们通过寄存器启用自适应滤波器时、我们将系数加载到中 缓冲器 A 最初、我们也将相同的系数复制到中 缓冲器 B (这是我的假设,复制相同的 系数  缓冲器 A 指定  缓冲器 B,如果我错了,请纠正我)

    我的问题是:在编解码器中执行缓冲器 A 时、如果我们要修改缓冲器 B 中的系数、我们是否需要通过寄存器将滤波器系数写入来手动更新滤波器系数、或者编解码器是否会根据信号特性自动调整系数以实现平滑调整?




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

    尊敬的 Vandana:

    器件不会自行更新缓冲器 A 或缓冲器 B。 主机必须提供要加载到缓冲区中的新系数。

    此致、
    Jeff McPherson

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

    我的理解是数字 I²S MEMS 麦克风直接连接到 miniDSP D 是正确的吗?

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

    您好、

    是的、如果您的麦克风输出 I2S、则可以连接到 DIN 引脚和 I2S 时钟引脚。 DIN 引脚应该是 miniDSP D 的输入 — 如果使用 PPS、则需要在 PPS 中使用“I2S IN“块。

    此致、
    Mir

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

    谢谢你、米尔
    我有一个关于 TLV320AIC3254 编解码器中的时钟生成的问题、
    我使用 PLL 生成所需的采样率、 无法生成采样率 (WCLK) 和位时钟。  我已经按照所附时钟树图中所示的过程进行了操作

    我的 MCLK 是 12MHz、MCLK 是 PLL_CLKIN 的输入。




    我将 ADC_MOD_CLK 输入带到 BDIV_CLKIN



    我想生成 48kHz 的采样率  
    我已从参考指南中配置了有关 PLL 的所有寄存器值。
    寄存器 — 4   值–0x43
    寄存器 — 5   值–0x91
    寄存器 — 6   值–0x07
    寄存器 — 7   值–0x06
    寄存器 — 8   值–0x90
    寄存器 — 11   值–0x82
    寄存器 — 12   值–0x87
    寄存器 — 13   值–0x00
    寄存器 — 14   值 — 0x80
    寄存器 — 18   值–0x87
    寄存器 — 19   值–0x82
    寄存器 — 20   值 — 0x80
    寄存器 — 27   值–0x3c
    寄存器 — 28   值–0x00
    寄存器 — 29   值–0x03
    寄存器 — 30   值–0x88




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

    您好、

    为了获得正确的时钟输出、您应该更改此处的一些内容。 首先、寄存器 4 应设置为 0x03、该“高 PLL 范围“可在参考指南的下表中看到:

    在 J.D = 7.1680 或 7.560 的这些 PLL 设置下、PLL_CLK 将对于从 92MHz 开始的“高 PLL 时钟范围“而言过低。  

    接下来、我建议 NDAC=NADC 且 MDAC=mAdc、在此示例中、我看到它设置 NADC=7 和 NDAC=2、然后在 mAdc/MDAC 中设置 NDAC=2。 如果您将这些时钟设置为相同、可能会更好、只是为了将来参考、如果您使用不同的时钟作为输出、并弄清楚 DAC 内部时钟与 ADC 时钟不同的原因、就会更好。 由于您使用 ADC_MOD_CLK 作为 BCLK 分频器输入、在 N 和 M 分频器之后、因此它现在不会影响您的特定问题。

    最后、通过计算得到 ADC_MOD_CLK 的值-> 12MHz * 7.1680/(7*2)= 6.144MHz。 您使用了 8 的 BCLK NDIV、也就是该除以 8、但由于您选择了 I2S 32 位、我们预计 BCLK 为 48kHz * 32 * 2 = 3.072MHz。 因此、BCLK NDIV 应该为 2(寄存器 30 至 0x82)。

    如果这样可以解决问题、或者您仍然有问题、请告诉我。

    此致、
    Mir

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

    你好、Mir  
    我想知道 TLV320AIC3254 中主要 I2S 接口的路由  

    我将两个 MEMS I²S 麦克风(一个左声道,一个右声道)与 TLV320AIC3254 配合使用。 两个麦克风均已连接至 I²S I ² C 接口 编解码器。

    从上一个论坛,我理解 DIN 引脚是 miniDSP D 输入
    我的问题是:

    1. 如何通过主 I²S 接口将左右麦克风通道路由到 miniDSP D ? 两个通道是共享 miniDSP D、还是在内部分开?

    2. 在 miniDSP D 中进行处理后、会自动路由通道、以便实现 左麦克风连接到左 DAC 右麦克风连接到正确的 DAC 然后连接到耳机输出?

    3. 您能否说明完整的信号路径: Primary I²S Interface→miniDSP D→DAC  对于左侧和右侧?


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

    您好、

    miniDSP 可以单独在任何通道上运行 — miniDSP 使用 PurePath Studio 软件(也称为 PPS)进行编程。 因此、两个通道将在内部保持分离、如果采用这种配置方式、则可以应用单独的处理。 如果您不需要 miniDSP 的特殊功能、我建议您只使用内置处理块作为“DSP"(“(处理(处理块允许使用双二阶滤波器和其他滤波器,但不能使用 miniDSP 之类的更复杂算法)。 无论是哪种方式、L 和 R DAC 保持分离、然后您需要对 I2C 进行编程、以通过耳机输出发送 DAC 输出。 您的信号路径应该没有问题、或者您可以删除“miniDSP D“部分并将其保留为内部处理块、这样可简化编程、因为您可以使用数据表中的寄存器执行所有操作。 可在应用参考指南(从第 89 页开始)中找到示例脚本: https://www.ti.com/lit/an/slaa408a/slaa408a.pdf 

    这包括“通过 D 类耳机放大器播放 DAC “示例、您可能需要这样的示例。 如果您需要更多帮助、请告诉我!

    此致、
    Mir

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

    尊敬的 Mir:

    我使用的是 TLV320AIC3254 编解码器、 我已将两个 I2S 数字麦克风(一个左侧,一个右侧)连接到 主要 I2S 接口 编解码器。 我的目标是使用 miniDSP 将麦克风音频直接路由到耳机(回放路径)。

    目前、我仅使用进行测试 右声道数字麦克风 互联。 我已经给上电了 正确的 ADC 并将信号路由到 右 DAC(HPR 输出)

    我的时钟生成正确:

    • WCLK = 48kHz

    • 位宽 = 32 位
    • BCLK = 3.072MHz

    我遵循了前面提供的参考文档、并相应地配置了寄存器、包括一些其他寄存器。 但是、我只能得到清晰的音频 耳机输出端的连续噪声

    从前面的论坛讨论中、我知道数字 I2S 麦克风应该会通过 miniDSP D 然后连接到 DAC 以提供耳机输出。 您能说明一下为什么我仍然只能听到噪音吗?

    我将附加我的时钟和正确的 ADC 配置代码以供参考

    时钟配置:
    CODEC_WRITE (0、0x01);//选择页 1
    CODEC_WRITE (1、0x08);
    CODEC_WRITE (2、0xA1);
    CODEC_WRITE (123、0x00);

    k_msleep (20);

    CODEC_WRITE (0、0x00);//选择页 0
    CODEC_WRITE (4、0x43);
    CODEC_WRITE (5、0x11);

    CODEC_WRITE (6、0x08);
    CODEC_WRITE (7、0x07);
    CODEC_WRITE (8、0x80);
    CODEC_WRITE (5、0x91);
    K_msleep (10);

    CODEC_WRITE (25、0x03);
    CODEC_WRITE (11、0x84);
    CODEC_WRITE (12、0x84);
    CODEC_WRITE (13、0x00);
    CODEC_WRITE (14、0x80);
    CODEC_WRITE (18、0x84);
    CODEC_WRITE (19、0x84);
    CODEC_WRITE (20、0x80);

    CODEC_WRITE (27、0x3C);
    CODEC_WRITE (28、0x00);
    CODEC_WRITE (29、0x05);
    CODEC_WRITE (30、0x82);

    I2S 数字麦克风右通道配置  

    CODEC_WRITE (0、0x00);//选择页 0
    CODEC_WRITE (60、0x08);


    CODEC_WRITE (0、0x01);//选择页 1
    CODEC_WRITE (20、0x25);
    CODEC_WRITE (10、0x03);
    CODEC_WRITE (13、0x08);
    CODEC_WRITE (4、0x00);

    CODEC_WRITE (0、0x00);//选择页 0
    CODEC_WRITE (81、0x20);
    CODEC_WRITE (53、0x03);
    CODEC_WRITE (54、0x02);
    CODEC_WRITE (31、0x00);
    CODEC_WRITE (32、0x00);
    CODEC_WRITE (33、0x11);

    CODEC_WRITE (0、0x01);//选择页 1
    CODEC_WRITE (17、0x0F);
    CODEC_WRITE (9、0x10);
    k_msleep (2500);

    CODEC_WRITE (0、0x00);//选择页 0
    CODEC_WRITE (63、0x44);
    CODEC_WRITE (64、0x08);
    CODEC_WRITE (66、0x00);



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

    我使用的实现方案中 处理块 8     将数字麦克风数据路由到 DAC、而不是配置应用参考(从 SLA A408A 的第 89 页开始)中所述的 miniDSP 路径(请参阅我随附的寄存器)。
     https://www.ti.com/lit/an/slaa408a/slaa408a.pdf 

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

    您好、

    您能否在时钟旁边的示波器上分享麦克风的输出吗? 电源和系统原理图? 您的代码在首次阅读时似乎很好。  

    此致、
    Mir

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    • 我正在使用 TLV320AIC3254 编解码器 和 A 数字麦克风 对数线 DIN 引脚 。 以下是我的硬件配置:

      • 在原理图中、 未安装 R47 R49 已安装

      • 数字麦克风的 DIN 引脚 同时连接到 TLV320AIC3254 代替

      • 当我通过 I2S 直接从 MCU 捕获麦克风数据时、可以确认数字麦克风工作正常(数据看起来有效)。

      • 但是、当我将麦克风音频路由到编解码器并通过耳机播放时、我会不断听到声音 干净的音频

    • 数字麦克风→MCU 路径工作正常(数据被正确捕获)。

    • 数字麦克风→TLV320AIC3254→耳机路径仅提供噪声。

      我附上了数字麦克风(辅助通道)和编解码器连接的原理图。



      在这里、DIN 路由到 MCU 时的麦克风数据  
      a:fff8fac0 fff96700 fff8fb00 fff95d00 fff8fa40
      b:fff8f5c0 fff9b2c0 fff8f500 fff9b040 fff8f440
      a:fff8dd80 fff95ac0 fff8dcc0 fff94400 fff8ddc0
      b:fff8fac0 fffab280 fff8fac0 fffa9bc0 fff8f7c0
      a:fff8df80 fffa3800 fff8e080 fffa4840 fff8e240
      b:fff8ce40 fff9fb80 fff8cf40 fff9fac0 fff8d140
      a:fff90240 fff99fc0 fff90300 fff9ac40 fff90280
      b:fff8e840 fff8bec0 fff8e840 fff8d7c0 fff8e7c0
      a:fff8ee40 fff8f980 fff8ed00 fff8f100 fff8eb40
      b:fff8f780 fff92d00 fff8f940 fff93180 fff8f880
      a:fff8c180 fff8f500 fff8c240 fff8fc40 fff8c280
      b:fff8e000 fff8e400 fff8dfc0 fff8e100 fff8e000
      a:fff8e240 fff8cc80 fff8e200 fff8d240 fff8e240
      b:fff8d180 fff8cbc0 fff8d200 fff8d500 fff8d1c0
      a:fff8e3c0 fff4d740 fff8e500 fff4d040 fff8e640
      b:fff8e5c0 fff74540 fff8e680 fff74580 fff8e680
      a:fff8e300 fff84c00 fff8e500 fff84700 fff8e680
      b:fff8e9c0 fff5e100 fff8ec80 fff5d940 fff8edc0
      a:fff8dd00 fff92d00 fff8de40 fff91600 fff8df80
      b:fff8d8c0 fff8cc80 fff8d940 fff90ec0 fff8dbc0


      a、b 以上是缓冲区名称

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

    您好、

    如果您可以同时显示 I2S 数据与时钟的示波器屏幕截图、将会更有帮助。 这是为了检查时序、以确保 DAC 需要与给定的信号相同的信号。 但是、 我确实检查了您的数据以查看其外观、我注意到值“ff8ee40"比“比其他值小得多、这是噪声尖峰还是有拼写错误? 这只是 50 个样本、如果我们处于 48K 频率、则相当于大约 1ms、因此这也不是指示您听到的噪声类型的好指标。

    使用异常值(蓝色为 A、橙色为 B):

    无异常值:

    此致、
    Mir

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


    第一个示波器捕获显示了来自连接到编解码器的右通道数字麦克风的 μ I²S 数据以及相应的时钟


    第二个示波器捕获显示了来自连接到 TLV320AIC3254 编解码器的左右通道麦克风的 μ I²S 数据以及时钟。
    绿色-- BLCK
    蓝色---- WCLK
    黄色--左右音频数据

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

    您好、

    如果您可以共享原理图的耳机输出部分以及电源连接、这些部分可能会有所帮助。

    有几件事可能需要在脚本中更改、您可以在应用参考指南中找到 DAC 操作的 HP 路径的示例脚本: https://www.ti.com/lit/an/slaa408a/slaa408a.pdf (在第 89 页中)或 91 页中的 D 类耳机输出(目前,您的设置与第 89 页中的示例非常相似、您选择了 AB 类 HP 输出)。

    首先、如果您可以在脚本的开头添加软件复位、则会在第 0 页中写入寄存器 1 0x01。 然后、您可能需要更改以下几项:

    1) 寄存器 123 -> 0x01(模拟块通电时的上电基准)

    2) 第 1 页寄存器 10 -> 0x00(使用 AVDD 而非 LDOIN 为 HP 驱动器供电)  

    写入这些寄存器后、如果您看到任何差异、请告诉我。 如果您能够尝试运行也适合检查的示例脚本、

    此致、
    Mir

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



    这是编解码器的原理图。 我已经尝试了论坛中建议的寄存器设置、但仍然没有从数字麦克风获得音频输出。

    • VDD_SYS 所在的位置 2.7V

    • 我还测试了 混频器放大器路径

      • IN2L、IN2R→左 MIC PGA→左混频器放大器→耳机 (HPL + HPR)

      • 在这条道路上、我能够得到 清洁耳机的音频

    • 这样可确认耳机输出的耳机路径和寄存器配置正常工作。

    • 在原理图中、  未安装 R47   R49 已安装

    •  数字麦克风的 DIN 引脚  同时连接到  TLV320AIC3254   代替

    • 当我通过 I2S 直接从 MCU 捕获麦克风数据时、我可以确认数字麦克风工作正常、在上一个论坛中我已粘贴了这些数据  

    • 但是、当我将麦克风音频路由到编解码器并通过耳机播放时、我会不断听到声音  干净的音频

    • 我 I²S 了数字麦克风 μ C 信号(左右声道)的示波器捕获。 这些波形可确认 数字麦克风工作正常

    • 我怀疑问题具体出现在中 从数字麦克风到 DAC 的信号路径




  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
      
    我试图生成蜂鸣器生成,以了解什么可能是 DAC 端的问题.
     我无法听到哔声。
    我已经 检查了时钟,时钟是正确的  
    WCLK --> 48kHz
    位时钟--> 3.072MHz
    MCLK -->12MHz  


      codec_write (
    00x00);   //选择页 0
      CODEC_WRITE (600x19);   // DAC 处理块 25

      如果是 1
      CODEC_WRITE (00x44);   //选择页 44
      CODEC_WRITE (10x04);   // DAC 自适应滤波
      #endif

      // ADC 和 DAC 路径通用
      CODEC_WRITE (00x01);   //选择页 1
      CODEC_WRITE (10x08);   //为内部 AVdd LDO 上电
      CODEC_WRITE (20xA1);   //启用主器件模拟电源控制
      CODEC_WRITE (710x31);   //模拟输入上电时间为 3.1ms
      CODEC_WRITE (1230x00);  //将 REF 充电时间设置为 40ms

      codec_write (200x29);   //无弹出:6 个时间常数、6k 个电阻
      CODEC_WRITE (100x00);   //全芯片共模通过 AVDD 电源进行 0.9V 上电
      CODEC_WRITE (120x08);   //左通道 DAC 正极端子路由到 HPL         
      CODEC_WRITE (130x08);   // 右通道 DAC 正极端子路由到 HPR
      CODEC_WRITE (90x30);   // 为 HPL/HPR 驱动器上电
      CODEC_WRITE (160x0F);   //取消 HPL 驱动器静音、0dB 增益
      CODEC_WRITE (170x0F);   //取消 HPR 驱动器静音、0dB 增益
      
      CODEC_WRITE (00x00);   //选择页 0
      CODEC_WRITE (650x00);   // 左数字音量控制 0dB
      CODEC_WRITE (650x00);   //右数字音量控制 0dB
      CODEC_WRITE (630xD6);   //左声道和右声道数据到左、右 DAC
      CODEC_WRITE (640x00);   // DAC 左右通道取消静音
      

      CODEC_WRITE (730x01);
      CODEC_WRITE (740x77);
      CODEC_WRITE (750x00);
      CODEC_WRITE (760x23);
      CODEC_WRITE (770xFB);
      CODEC_WRITE (780x7A);
      CODEC_WRITE (790xD7);
      CODEC_WRITE (710x84);   //音量–4dB
      CODEC_WRITE (720x04);   //启用蜂鸣声

    即使我尝试了这个脚本修改,它不能为我工作.
    e2e.ti.com/.../faq-tlv320aic3254-tlv320aic32xx-family-beep-generator-configuration
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    除了蜂鸣发生器之外的测试、我认为您听到的噪声可能是位移 I2S 数据、因为此器件上的 I2S 预计数据在 WCLK 变化后 1 个 BCLK 周期后出现。 如果您可以共享模拟输出波形、这可能有助于确认。 要解决此问题、您可以使用页 0 寄存器 28 (0x1c) 添加数据偏移配置、并了解这如何影响模拟输出。 我建议从 1 个 BCLK 开始、如果这没有帮助、可以尝试 31 位来转到另一个方向。  

    关于蜂鸣发生器、您能否尝试切换最后两行的顺序、即先设置寄存器 72(设置级别)、然后再设置寄存器 71(启用蜂鸣声)?  

    此致、
    Mir