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.

[参考译文] TAC5112:配置为从非标准 MCLK 生成 wclk/BCLK

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1596885/tac5112-configure-for-wclk-bclk-generation-from-non-standard-mclk

器件型号: TAC5112

你好

我尝试在 5112EVM-K 上为 I2S (PASI) 从 MCLK 生成 wclk 和 BCLK:
      采样速率 125ksps、16 位字、L+R 通道、I2S 格式、控制器模式。
MCLK 是从我们的 MCU 提供到 GPIO1 (J41) GPIO1_CFG=1、CCLK_SEL=1 的 16MHz
16MHz 在 48kHz 或 44.1kHz 下是不常见的。
在这个阶段、我们的 MCU 在所有其他方面都断开。
5112 evmk 连接到 AC-MB 并由 AC-MB 供电、使用 PPC3 帮助配置。
我正在尝试让 ADC 路径最初在 PASI 上运行。
此时、我们 MCU 和 5112 之间的唯一连接是连接到 GPIO1 的 16MHz MCLK。
我期望 5112 能够通过提供从 MCLK 生成 BCLK 和 wclk/FSYNC
fsync 与时钟 src 比率和 bclk 与 fsync 比率。 这是正确的假设吗?
我假设 5112 需要处于控制器模式。  
在这方面、使用 PPC 配置上述行为并不容易理解。
我是否需要采用 PLL、因为 125ksps 不是标准音频速率、因此可能需要进行自动时钟配置
无法实现。 GUI 提供 FS_MODE (48kHz 或 44.1kHz) 和采样率自动检测等选项
似乎对我来说有点反直觉。
BCLK 和 fsync 是否也是内部的还是外部的?
对于时钟源选择、我是选择与主要 ASI Fsync 同步还是固定时钟频率的 CCLK 同步?

我也不确定应如何为我的配置设置 AC-MB 上的 S1 S0 来驱动 PASI。
MCLK 是连接到 AC-MB 上的 J7 还是直接连接到 EVM 上的 GPIO1 (J41)?

CCLK_FS_RATIO_MSB=0x00
CCLK_FS_RATIO_LSB=0x80

我不提供任何 PLL 配置、但我严重怀疑需要配置 PLL。

在之前的编解码器 AIC3204 上、我们将其配置为使用 NADC、mAdc、AOSR 值、以使来自 MCLK 的 Fs 和 BCLK 正常工作、但 5112 似乎具有完全不同且更复杂的 PLL 参数集。
如果我的假设正确、有些人能否帮助根据我们的需求配置 PLL? GUI 有 3 个屏幕、包含 PLL 配置设置、不明显也不记录如何设置这些设置。

一些相关的配置设置、但如果您需要、我可以提供更多信息:

S1S0 DIP SW:外部 ASI
MCLK 进入 GPIO1 J41(设置为输入)
CCLK_FREQ_SEL=0x03
PASI_CNT_CFG=0x01
FS_MODE=0(125ksps 不适用)

PASI_SAMP_RATE=0x0D
CUSTOM_CLK_CFG=1

PASI_USE_INT_BCLK_FOR_FSYNC=1
PASI_BCLK_FS_RATIO_MSB=0x00
PASI_BCLK_FS_RATIO_LSB=0x20

附上了 PPC3 的屏幕截图、但某些设置可能是旧版

谢谢你

Jas

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

    尊敬的 Jas:

    是的、您可以使用“自动 MCLK 比率“模式在控制器模式下使用编解码器、而无需手动设置 PLL 配置。 您可以通过以下应用手册了解更多相关信息: https://www.ti.com/lit/an/slaaeg6a/slaaeg6a.pdf

    由于 MCLK(也称为 CCLK)和 FSYNC 是通过整数比相关联的、因此时钟分频器可以由器件自动设置。 我为您编写了脚本的时钟部分示例:  

    w a0 32 c6 #FS bin 13d, auto mode 0011 0110
    w a0 34 42 #cclk synch with pasi fsync as input clk source
    w a0 35 00 #ratio msb=128
    w a0 36 80 #ratio lsb=128
    w a0 37 70 #16mhz cclk, pasi in cotntroller mode, 01110000

    对于 EVM 上的硬件连接、您可以将 AC-MB 上的两个开关设置为 OFF、然后将 16MHz MCLK 提供给 AC-MB 底部的 MCLK 引脚、请注意时钟信号位于顶部、接地位于引脚的底部行。 配置器件后、您还可以在这些接头引脚上测量器件的 BCLK 和 FSYNC 输出。 确保 MCLK 跳线安装在 GPIO1 接头上(J41,听起来您已经安装了!)。

    我不确定这是否完全可以通过 GUI 进行配置。 我看到有一个地方可以选择“CCLK 与主要 ASI MCLK 同步“、这是我们选择自动 FS 比率模式的方式、但我没有看到比率的指定位置。 因此、我建议将我的脚本添加到配置脚本中、以执行整个时钟配置。 如果您想获得有关脚本的更多帮助、请告诉我您的输入和输出路由、我们可以进一步处理。 您可以从 PPC 或 EVM 用户指南中预设开始、然后运行 I2C 监控器(可在 PPC3 GUI 底部访问)中的脚本。

    此致、
    Mir

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

    你好、Mir

    感谢您的及时回复。 我使用上面的脚本已经成功了(我认为您的寄存器 0x32 值应该是 0x3C 而不是 0xC6?)。 现在、我可以根据需要获得 125ksps 的 wclk 和 BCLK 以及 4MHz。 该密钥是将寄存器 0x36 设置为 128、正如您所说、在 GUI 上无法执行该操作。
    尽管 ADC 的 dout 线并不总是可靠的活跃、但有时我会得到一个信号、有时则不会、我必须再次调整配置以最终看到 dout、但我不确定神奇的公式是什么。 我仔细检查 ADC 均已启用(寄存器我希望 dout 在 直接通过 SPI 配置 5112 时始终正常工作、这是我们的最终用例。
    保存 PPC 项目并重新加载它特别不可靠,无法重新安装我保存的配置。
    是否有一系列写入操作来确保正确启用 ADC?

    我还有几个问题:

    J41、J42、J44、J45 上的 Re 跳线放置。 我认为一般思路是在所需的功能上放置跳线以启用它。
    我们观察到了几个问题:之前我们从 MCU 动态连接了 SPI、J45 和 J44 的底部引脚用于 CS 和 POCI。 我没有跳接这些引脚、而是直接将 CS 和 POCI 导线连接到它们中、这似乎有效。 实际上、当我第一次尝试在 J44 上连接 POCI 跳线并将 POCI 线从 MCU 连接到任何'GPO1_DUT 侧时、线路上会出现尖峰。 我对如何正确跳线感到困惑。 如果我确实需要为 CS 和 POCI 使用跳线、架空线路应在哪里?

    有时、PPC 会触发一个错误对话框、讨论时隙分配与字长和 BCLK/FSYNC 比率的错误组合。
    我的设置为 16 位 字长、32 BCLK/FSYNC 比率(L+R 通道)。 在 GUI 中、Dout 显示在 Ch1 上具有左时隙 0、在 Ch2 上具有右时隙 0
    我在这里有什么问题吗?

    再次感谢
    Jas

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

    尊敬的 Jas:

    是的、抱歉带有寄存器 0x32 的寄存器应该为 0x36(对于区间 13,001101 对应 5%容差、0 对应自动时钟配置)。 我想 DOUT 不可靠是因为不对整个配置使用脚本。 下面是一个包含 ADC 操作和时钟设置的示例脚本、来自 EVM 用户指南中的示例以及之前的代码(0x32 已固定):

    w a0 00 00 # Set page 0
    w a0 01 01 # Software Reset
    w a0 02 09 # Wake up with AVDD > 2v and all VDDIO level
    w a0 10 50 # Configure DOUT as Primary ASI (PASI) DOUT
    w a0 19 00 # 1 data input and 1 data output for PASI
    
    w a0 1a 40 #pasi i2s, 16 bit
    w a0 1e 20 # PASI Ch1 on left slot 0
    w a0 1f 30 # PASI Ch2 on right slot 0 
    
    w a0 32 36 #FS bin 13d, auto mode 0011 0110
    w a0 34 42 #cclk synch with pasi fsync as input clk source
    w a0 35 00 #ratio msb=128
    w a0 36 80 #ratio lsb=128
    w a0 37 70 #16mhz cclk, pasi in cotntroller mode, 01110000
    
    w a0 50 00 # ADC Ch1 diff input, 5KOhm, 2Vrms ac-coupled, audio band
    w a0 55 00 # ADC Ch2 diff input, 5KOhm, 2Vrms ac-coupled, audio band
    w a0 76 c0 # Enable Input Ch1 and Ch2, disable output channels
    w a0 78 a0 # Power up ADC and MICBIAS

    关于跳线设置、您应该能够将跳线连接到 J44 和 J45、然后将 AC-MB 上的跳线连接到 EVM 连接附近的 POCI 和 CS0 跳线。 它们可以标记为 MOSI 和 SS0、但应在 EVM 板上连接为“POCI"和“和“CS0"。“。

    我不确定该错误消息、但如果您在测试中获得了正确的音频输出、则我不会担心该错误。 有时、GUI 会出现一些问题。 查看当您使用脚本完全配置而不扰乱 GUI 时是否有这些错误。

    此致、
    Mir