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.

[参考译文] TAS5713:DRC配置,寄存器,格式

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/659022/tas5713-drc-configuration-registers-formats

部件号:TAS5713

我需要在当前项目中使用DRC。  与大多数TAS5713寄存器一样,文件不仅不足,而且存在的文件自相矛盾。   

  •  http://www.ti.com/lit/ds/symlink/tas5713.pdf上的数据表DRC部分 提到了滤波器T和K的3个alpha和omega对 。它提到T参数是9.23 格式,而其他参数是3.23 ,但不指示T或K的单位。  它指示过滤器结构,但不指示它如何与DRC关联(如果有)。
  • 同一节列出了每个alpha和omega以及T的3个寄存器,但不列出K (其正上方图表中所示的斜率)。
  • 寄存器列表也不会选择任何K设置,但会添加一个T ',该T '被描述为衰减阈值,没有进一步的信息证明其存在。  虽然SPEC的DRC部分列出了注册位置,但它们与注册列表中的位置不同(DRC/reg部分表示T=3B/40,ae-OE=3C/3B,aa-ad-wa-wd/attack-release=40/3C)。  GDE似乎遵循寄存器描述,而不是DRC部分。  但是,不清楚aa,ad,wa和wd...大概是3.23 值...是如何填入64位寄存器中的,无论它是哪一个。  (不是四个滤波系数,而是
  •  http://www.ti.com/lit/an/sloa148/sloa148.pdf上的DRC应用说明 没有任何T'参数的指示,但提及K参数并添加O参数以进行偏移。  它特别指出,"刚果民主共和国方案有一个单一的阈值,偏移和斜率(均可编程)。"  相比之下,TAS5713似乎具有双重阈值,没有偏移或斜率。
  • 当然,最简单的配置方法是使用GDE。  读取DRC时,我尝试在-3dB...it上设置阈值,应生成一个代表(-3 - 24)/- 6.02 或关于4.5 的数字(忽略方程式4中的符号错误,在转换到9.23 时会被另一符号错误抵消)。  但是,它会生成 05A9万,这更接近11.32。  它没有为神秘的T生成任何值,所以我不知道这是注册定义还是描述中的错误。  我无法在应用说明中测试该示例,因为它使用-64dB的阈值,GDE不支持该阈值。
  • 虽然DRC部分指出所有值都是3.23 而不是T,但GDE很高兴地输出更大(和/或负值?) 发布编号。  攻击似乎限于0-0x000A0000。  由于没有进一步的互不冲突的描述,因此很难知道如何解释它们。
  • 使用寄存器列表,SPEC DRC描述和APP注释中的冲突指示进行多次试验和错误,不会显示DRC在任何条件下对收益有任何影响。  (是,我将0x0.0001万写入0x46。)  当我将全刻度输入更改为3dB时,输出也会改变3dB,这表明没有任何压缩。

因此,我需要尽快知道这是一个可以工作的模块,还是只是TI从未测试过的那些多产错误之一,当他们发现文档不起作用时,只对文档进行了编辑。  如果有人希望它能以在这些不同的地方所描述的各种方式工作,那么我们最好能定义哪个(或每个元素使用哪些)并决定涉及哪些寄存器,单位和规则。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Steve,
    TAS5713已在市场上广泛使用,我们从未听说过DRC问题。 Adam稍后将帮助您解释您的疑虑。
    此致,
    郑少文
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我很高兴听到您这么幸运。  这实际上是否算作TI系统中的响应?  显然,您的大多数客户都不需要DRC,或者很快放弃并找到替代解决方案。  我的选择较少,需要知道:

    1. 如何设置K和O,或者如果它们是自动选择的,标准是什么?
    2. 设置T的规则和单位是什么?
    3. 什么是神秘的T型?  它对操作有何影响?
    4. 我可以信任GDE吗?还是应该信任规范?  如果我不信任GDE,那么我需要有关架构,操作和参数解释的更多详细信息。
    5. 如何计算攻击/发布参数?  如果我信任寄存器默认值和GDE,它们似乎不是过滤器系数,甚至不是3.23 格式。
    6. 为什么找不到任何导致任何压缩的参数组合?

    这是我最近使用过的配置文件。  此版本中的DRC值取自 一用户报告正在工作的线程。  这种情况的要求是,从全标到-44dBfs的任何内容都要压缩到相当于全标度信号的程度,但此时如果我能得到任何信号表明正在发生任何压缩,我会很高兴。  增益系列在-6dBfs的剪辑下,因此0dB阈值(取决于您认为的数据表)可能会也可能不会启动,但我已尝试将阈值从最大值设置为接近最小值(来自GDE)以及其他几种设置, 似乎没有一个对输出有任何影响。  (DRC部分接近开头,但为了完整起见,将包含整个文件。)

    ******************* */
    /** TAS5713初始化的头文件-

    @公司
    Otto工程

    @文件名
    tas5713_const.h

    @总结
    包含初始化数据(主要由生成
    tas5713配置程序)以初始化零件。 已使用
    通过drv_tas5713.c通过init序列建立索引。

    */
    ******************* */

    #ifndef _TAS5713_const_H /*防止多重包含*/
    #define _TAS5713_const_H

    //取消注释以下定义以将双标设置为全通过。
    //#定义NOBQ

    ******************* */
    ******************* */
    /*部分:包含的文件*/
    ******************* */
    ******************* */

    //常量
    uINT8_t tas5713_init_seq[][21]={
    {0x1b,0x00},//启用出厂时钟调整,否则将无法运行
    {0x03,0x90},//已启用PWM高通,在clk错误时软取消静音
    {0x04,0x00},// 16位字长,右对齐
    {0x07,0x30},//主音量,设置为低于启动的最大值
    {0x08,0x60},// CH1音量,设置为提供99dB @-15dBfs
    {0x09,0xf8},// ch2卷,未使用(设置为分钟)
    {0x0a,0xf8},// ch3卷,未使用(设置为分钟)
    {0x0E,0x93},// 21ms @ 48kHz
    {0x19,0x30},//使用所有输出
    {0x25,0x01,0x00,0x22,0x45},//输出A和B至CH1+,C和D至CH1-
    {0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//通道2输出关闭
    {0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00},// CH1 R输入关闭
    {0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//通道2 L输入关闭
    {0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00},// CH2 R输入关闭
    {0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},// CH2内联增益关闭
    {0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00},// CH2 DRC2增益关闭

    // DRC配置
    {0x46,0x00,0x00,0x00,0x03},
    {0x40,0x08,0x00,0x00,0x00,0x07,0xff,0xff,0xff},
    {0x43,0x08,0x00,0x00,0x00,0x07,0xff,0xff,0xff},
    {0x3b,0x00,0x05,0x1e,0xb8,0x00,0x7a,0xe1,0x48},
    {0x3c,0x00,0x06,0x80,0x00,0xff,0xff,0xa9,0x6b},
    {0x3e,0x00,0x05,0x1e,0xb8,0x00,0x7a,0xe1,0x48},
    {0x3f,0x00,0x06,0x80,0x00,0xff,0xff,0xa9,0x6b},

    {0x73,0x01,0xff,0xff,0xff},//输入增益设置为4

    //要在不同的银行写两个字,就必须使用武力
    // TAS5713输入到特定的库中,并将频率的两个字段写下来
    //银行支持。 气缸组2是48kHz的默认值,而气缸组3是
    //默认值为8kHz。 请参阅TI规格SLOS637A第34页。
    {0x50,0x0f,0x70,0x80,0x02},//设置写入到bank 2 (48 KHz)双组

    //未来设计者注意:每个双组包含20个字节,用于5个coeffs:
    // b0,b1,b2,a1,a2。 a0通过归一
    //公约。 但是,TI在这方面违反了惯例...
    // A1和A2值被添加到反馈路径中,而不是
    //减去通常表示的值。 因此,这些迹象必须是存在的
    //在转换为十六进制前更改了A值。 前六位
    //未使用;较低的26为Sxx.xxxx_xxxx_xxxx_xxxx_xxxx_xxx0二进制文件。

    //采用设计的ASN系数:
    // ASN过滤器设计器专业版4.0 v 5.
    // 2017年10月16日(星期一) 10:29:20 GMT
    //
    //**初级过滤器(H1)**
    //过滤器算术=浮点(双精度)
    //体系结构= IIR
    //结构=直接转置形式II
    //响应=带通
    //方法=椭圆
    // Biquad =是
    //稳定=是
    //采样频率= 48kHz
    //筛选顺序=7
    //
    //频段#频率(kHz)属性/波纹(dB)
    // 1 0.000 ,0.100 60.000
    // 2 0.150 ,12.000 0.001
    // 3 13.000 ,24.000 60.000
    //
    // Biquad #1
    //增益= 0.53.0547万
    // B =[ 1.0万00000</xmt-block>0万 ,- 0.0万00000</xmt-block>0万 ,- 1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,- 1.4.003万43972</xmt-block>4.3972万 ,0.6.0654万52878</xmt-block>5.2878万 ]
    //
    // Biquad #2
    //增益= 0.32.6516万
    // B =[ 1.0万00000</xmt-block>0万 ,1.69.2562万83610</xmt-block>8.361万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,- 0.2.6442万72252</xmt-block>7.2252万 ,0.16.5407万56538</xmt-block>5.6538万 ]
    //
    // Biquad #3
    //增益= 0.46.8195万
    // B =[ 1.0万00000</xmt-block>0万 ,1.21.2097万93697</xmt-block>9.3697万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,0.15.2491万27459</xmt-block>2.7459万 ,0.49.6912万40026</xmt-block>4.0026万 ]
    //
    // Biquad #4
    //增益= 0.64.9475万
    // B =[ 1.0万00000</xmt-block>0万 ,0.95.3991万35966</xmt-block>3.5966万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,0.28.8253万20426</xmt-block>2.0426万 ,0.82.901万18764</xmt-block>1.8764万 ]
    //
    // Biquad #5
    //增益= 0.98.577万
    // B =[ 1.0万00000</xmt-block>0万 ,- 1.99.9967万89944</xmt-block>8.9944万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,- 1.97.1236万79514</xmt-block>7.9514万 ,0.97.1634万49156</xmt-block>4.9156万 ]
    //
    // Biquad #6
    //增益= 0.99.3839万
    // B =[ 1.0万00000</xmt-block>0万 ,- 1.99.9905万42837</xmt-block>4.2837万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,- 1.98.7781万70076</xmt-block>7.0076万 ,0.98.8094万07044</xmt-block>0.7044万 ]
    //
    // Biquad #7
    //增益= 0.99.8236万
    // B =[ 1.0万00000</xmt-block>0万 ,- 1.99.9863万47917</xmt-block>4.7917万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,- 1.99.6553万60059</xmt-block>6.0059万 ,0.99.6833万71044</xmt-block>7.1044万 ]
    #ifndef NOBQ
    {0x29,0x00,0x43,0xE8,0xF6,0x00,0x00,0x00,0x03,0xBC,0x17,0x0A,0x00,0x85,0x1F,0xB7,0x03,0xF8,0x3C,0x79},
    {0x2a,0x00,0x29,0xCB,0x46,0x00,0x46,0xBD,0x32,0x00,0x29,0xCB,0x46,0x00,0x03,0x62,0x79,0x03,0xEA,0xD3,0xED},
    {0x2b,0x00,0x3B,0xED,0xD0,0x00,0x48,0xA3,0xC7,0x00,0x3B,0xED,0xD0,0x03,0xEC,0x7B,0x2B,0x03,0xC0,0x65,0x2D},
    {0x2C,0x00,0x53,0x21,0xFF,0x00,0x4F,0x4E,0xD7,0x00,0x53,0x21,0xFF,0x03,0xDB,0x1A,0x85,0x03,0x95,0xE2,0xFF},
    {0x2D,0x00,0x7E,0x2D,0xB6,0x03,0xA5,0x9E,0x00,0x7E,0x2D,0xB6,0x00,0xFC,0x51,0x7C,0x03,0x83,0xA1,0x7C},
    {0x2e,0x00,0x7F,0x36,0x1d,0x03,0x01,0x96,0xD9,0x00,0x7F,0x36,0x1d,0x00,0xFE,0x6f,0xA,1,0x03,0x81,0x86,0x23},
    {0x2F,0x00,0x7F,0xC6,0x32,0x03,0x00,0x78,0x13,0x00,0x7F,0xC6,0x32,0x00,0xFF,0x8F,0x11,0x03,0x80,0x67,0xC1},
    #否则
    {0x29,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2a,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2b,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2D,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2e,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2F,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    #endif

    {0x50,0x0f,0x70,0x80,0x03},//设置写入到库3 (8 KHz)双格数
    //采用设计的ASN系数:
    // ASN过滤器设计器专业版4.0 v 5.
    //星期二,2017年10月17日14:35:29 GMT
    //
    //**初级过滤器(H1)**
    //过滤器算术=浮点(双精度)
    //体系结构= IIR
    //结构=直接转置形式II
    //响应=带通
    //方法=椭圆
    // Biquad =是
    //稳定=是
    //采样频率= 8000Hz
    //筛选顺序=7
    //
    //频段#频率(Hz)属性/波纹(dB)
    // 1 0.000 ,100.000 60.000
    // 2 150.000 ,3500.000 0.001
    // 3 3750.000 ,4000.000 60.000
    //
    // Biquad #1
    //增益= 0.77.5846万
    // B =[ 1.0万00000</xmt-block>0万 ,- 0.0万00000</xmt-block>0万 ,- 1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,- 0.24.327万92020</xmt-block>9.202万 ,- 0.55.1691万05550</xmt-block>0.555万 ]
    //
    // Biquad #2
    //增益= 0.75.3636万
    // B =[ 1.0万00000</xmt-block>0万 ,1.98.6819万96264</xmt-block>9.6264万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,1.43.7939万68716</xmt-block>6.8716万 ,0.56.2662万45893</xmt-block>4.5893万 ]
    //
    // Biquad #3
    //增益= 0.87.1487万
    // B =[ 1.0万00000</xmt-block>0万 ,1.96.1441万17612</xmt-block>1.7612万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,1.67.8025万51648</xmt-block>5.1648万 ,0.79.0028万66141</xmt-block>6.6141万 ]
    //
    // Biquad #4
    //增益= 0.91.8848万
    // B =[ 1.0万00000</xmt-block>0万 ,- 1.99.8837万99509</xmt-block>9.9509万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,- 1.82.8029万69604</xmt-block>6.9604万 ,0.84.1436万47232</xmt-block>4.7232万 ]
    //
    // Biquad #5
    //增益= 0.95.9203万
    // B =[ 1.0万00000</xmt-block>0万 ,- 1.99.658万65214</xmt-block>6.5214万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,- 1.91.9945万88314</xmt-block>8.8314万 ,0.93.0877万44141</xmt-block>4.4141万 ]
    //
    // Biquad #6
    //增益= 0.95.1776万
    // B =[ 1.0万00000</xmt-block>0万 ,1.94.4597万14331</xmt-block>1.4331万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,1.83.0885万71356</xmt-block>7.1356万 ,0.93.9565万98024</xmt-block>9.8024万 ]
    //
    // Biquad #7
    //增益= 0.98.5143万
    // B =[ 1.0万00000</xmt-block>0万 ,- 1.99.5067万83273</xmt-block>8.3273万 ,1.0万00000</xmt-block>0万 ]
    // A =[ 1.0万00000</xmt-block>0万 ,- 1.97.1203万99480</xmt-block>9.948万 ,0.98.1217万92939</xmt-block>9.2939万 ]
    #ifndef NOBQ
    {0x29,0x00,0x63,0x4E,0xEB,0x00,0x00,0x00,0x03,0x9C,0xB1,0x15,0x00,0x1F,0x23,0x80,0x00,0x46,0x9D,0xD0},
    {0x2a,0x00,0x60,0x77,0x24,0x00,0xBF,0xA8,0xCE,0x00,0x60,0x77,0x24,0x03,0x47,0xF1,0x98,0x03,0xB7,0xFA,0xAE},
    {0x2b,0x00,0x6F,0x8C,0xE2,0x00,0xDA,0xCC,0xA6,0x00,0x6F,0x8C,0xE2,0x03,0x29,36,0x76,0x03,0x9A,0xE0,0x58},
    {0x2C,0x00,0x75,0x9C,0xCF,0x03,0x14,0xE9,0x5E,0x00,0x75,0x9C,0xCF,0x00,0xE9,0xFC,0xE0,0x03,0x94,0x4B,0xD0},
    {0x2D,0x00,0x7A,0xC7,0x29,0x03,0x0A,0xDD,0x26,0x00,0x7A,0xC7,0x29,0x00,0xF5,0xC0,0x09,0x03,0x88,0xD9,0x03},
    {0x2e,0x00,0x79,0xD3,0xCB,0x00,0xEC,0xE7,0xB2,0x00,0x79,0xD3,0xCB,0x03,0x15,0xA5,0x8A,0x03,0x87,0xBC,0x4E},
    {0x2F,0x00,0x7E,0x19,0x2A,0x03,0x04,0x6C,0xE3,0x00,0x7E,0x19,0x2A,0x00,0xFC,0x50,0x69,0x03,0x82,0x67,0x74},
    #否则
    {0x29,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2a,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2b,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2D,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2e,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x2F,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    #endif

    {0x50,0x0f,0x70,0x80,0x04},//已启用返回组切换
    {0x05,0x82},//硬静音关闭,中Z斜坡已启用
    };

    #endif /*_tas5713_const.h */

    *********************
    文件结束
    */

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    部分success...it显示3b和3c处的过滤器寄存器必须单独写入每个银行(这似乎很奇怪,因为根据GDE,它们在任何数据速率下都具有相同的值)。 我现在让DRC工作,并尝试通过试验和错误对其进行微调。 如果我能得到以上参数和系数的一些详细信息,这会提高我的progress...it的比率,似乎K=1,O=0,T和T'在任何情况下似乎都没有什么影响。 如果任何人仍然可以访问设计文件,或者如果有可靠,准确的文档,您可以向我指出,我确信可以从它中获得更好的性能。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Steve,
    考虑到我们正在与Mark就该问题进行离线沟通,您能否帮您解决此问题?
    此致,
    郑少文
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的。