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.

[参考译文] TAD5212:90kHz 带宽模式+ 768kHz FS +线性插值不如预期平坦

Guru**** 2503725 points


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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1557372/tad5212-90khz-bandwidth-mode-768khz-fs-linear-interpolation-is-not-as-flat-as-it-should-be

部件号:TAD5212


工具/软件:

我正在对频率响应进行测试、结果并不像数据表中规定的那样平坦。

我的采样速率为 744kHz、我使用线性相位内插滤波器。

根据数据表、即–0.2dB @ 0.15xFS = 111kHz。

我的测量值约为–0.6dB @ 90kHz。

测试方法:从 DSP 向 DAC 馈送 16 位 I2S、从而生成正弦波。

想知道我的预期、测试方法或用于初始化 DAC 的设置(包括在下面)是否有问题。

    // SW reset
    data = 0x00;
    i2c_write_reg(kDacBus, kDacAddress, 0x00, &data, 1);
    data = 0x01;
    i2c_write_reg(kDacBus, kDacAddress, 0x01, &data, 1);
    std::this_thread::sleep_for(std::chrono::milliseconds(2));
    data = 0x00;
    i2c_write_reg(kDacBus, kDacAddress, 0x00, &data, 1);
    // Bring out of sleep mode
    data = 0x09;
    i2c_write_reg(kDacBus, kDacAddress, 0x02, &data, 1);
    std::this_thread::sleep_for(std::chrono::milliseconds(2));
    // Disable GPIO1
    data = 0;
    i2c_write_reg(kDacBus, kDacAddress, 0x0a, &data, 1);
    // Primary ASI: I2S, 16 bit data
    data = 0x40;
    i2c_write_reg(kDacBus, kDacAddress, 0x1a, &data, 1);
    // Primary ASI RX Channel 2: I2S right slot 0
    data = 0x30;
    i2c_write_reg(kDacBus, kDacAddress, 0x29, &data, 1);
    // DAC demod rate override
    data = (1 << 4);
    i2c_write_reg(kDacBus, kDacAddress, 0x4f, &data, 1);
    // DAC: wide bandwidth
    data = 0xe1;
    i2c_write_reg(kDacBus, kDacAddress, 0x65, &data, 1);  // Channel 1p
    i2c_write_reg(kDacBus, kDacAddress, 0x6c, &data, 1);  // Channel 2p
    data = 0xe0;
    i2c_write_reg(kDacBus, kDacAddress, 0x66, &data, 1);  // Channel 1m
    i2c_write_reg(kDacBus, kDacAddress, 0x6d, &data, 1);  // Channel 2m
    // Disable DAC biquads
    data = (1 << 4);
    i2c_write_reg(kDacBus, kDacAddress, 0x73, &data, 1);
    // Disable inputs, enable outputs
    data = 0x0c;
    i2c_write_reg(kDacBus, kDacAddress, 0x76, &data, 1);
    // Power up DAC
    data = 0x40;
    i2c_write_reg(kDacBus, kDacAddress, 0x78, &data, 1);

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

    您好、Josh、

    您是否参考了数据表的这一部分?

    这些规格适用于标准音频采样率、可能并不 完全适用于 744kHz 速率。 有一个 CLK_CFG0 寄存器用于配置主要 ASI 采样速率、建议您向 PASI_FS_RATE_NO_LIM 写入 1、以便更好地支持 744kHz。

    数据= 0x02;
    I2C_WRITE_reg (kDacBus、kDacAddress、0x32、&DATA、1); // 允许音频采样率容差为 5%

    此外、您的代码不启用 ASI 通道 1 输入 数据(寄存器 0x28)、我很好奇这是有意还是无意中看到。

    此致、

    Garret

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

    Garret,

    是的、这个滤波器图就是我要参考的图。

    我将尝试指定 5%容差。

    对于寄存器 0x28、默认值是用于我用途的正确值(正常 I2S)。

    下面有一个问题:是否可以获得 768kHz 线性相位滤波器的滤波器系数?

    然后,我可以确定确切的响应(道具到 scipy.signal !) 并设计一个相应的 FIR 滤波器在 DSP 中应用以补偿滚 降。

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

    您好、Josh、

    我正在 向我们的系统工程师询问您的问题、但可能需要一些时间才能得到解答。 更改时钟容差是否有任何帮助? 正如我所说、在不同的采样率下、您的测量结果不一定符合数据表规格。

    此外、您使用的 BCLK 的频率是多少?

    此致、

    Garret

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

    时钟容差似乎没有影响、它似乎可以在设置了 1%或 5%容差的情况下正常运行。
    BCLK 为 32xFS、因此为 23.81MHz。
    但是、能够使用系数自行绘制响应会非常有用、因为使用另一个 FIR 滤波器固定滚降对于我来说是足够的解决方案。

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

    您好、Josh、

    明白了、我将继续研究这一点、希望在本周结束时将这些内容交给您。

    此致、

    Garret

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

    您好、Josh、

    已向您发送申请、以便我们可以离线继续该线程。

    此致、

    Garret