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.

[参考译文] SRC4392:AES RXAMLL

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1392617/src4392-aes-rxamll

器件型号:SRC4392
主题中讨论的其他器件: SRC4192

工具与软件:

您好!

我们将使用 SRC4392并尝试设置 RXAMLL (锁丢失时的接收器自动静音)位、以便使器件在失锁时静音。

然而,当这种刺激,我们收到一个定期追击。 有人知道为什么会出现这种情况吗? 如果需要、我可以提供音频/数字位。

谢谢!

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

    Ben、您好!

    听起来你周期性地失去锁很短的一 段时间,因此 它会立即触发静音。 静 音功能本身 通过将输出衰减从电流设置步进至全零数据输出状态来强制 SRC 输出数据为低电平、从而提供了   无爆音静音功能。但是、如果静音开始但立即停止、则可能无法实现无爆音。

    您是否在监视锁定功能?  我想知道、如果您 为输入/输出时钟提供不同的设置、  这个问题 会变得更糟还是更好?  即、您是在"从属"模式还是"主"模式下工作、是否可以尝试使用不同的设置?

    此致

    Arash

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

    尊敬的 Arash:

    当我们从输入中拔出 XLR 时不会发生这种情况、并且我们会监视在这段时间内锁丢失的情况。

    在锁丢失前、似乎会发送大约~640us 的缓冲器、即通过 AES 发送的任何内容。 使用相同的缓冲信息、这似乎每~700ms 重复一次。 例如、我可以发送7kHz 正弦波、然后拔下插头、可以看到~650us 缓冲信息也是7kHz 正弦波。

    我想知道这是否有助于缩小它的范围?

    遗憾的是、我们无法更改时钟、但明天我将查看主/从模式。

    谢谢!

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

    尊敬的 Ben:

    我曾与同事讨论过这个问题、因为敲击噪声通常来自系统中连接的扬声器和直流输入。  因此、我 要做的一个测试是 移除系统中的 SRC、 您仍然会听到追号。  

    一旦您拔下输入、SRC 内部的数据 仍需要通过 器件内部的缓冲器 、而这可能是650us 的输入数据。

    通常  在系统中、通过数字输入经由 DAC 或 D 放大器进入扬声器、您需要找到追击声源 、但一般来说、 只要 CLKS 丢失或输入发生、大多数 DAC 都会产生砰砰噪声。

    此致、

    Arash

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

    尊敬的 Arash:

    不幸的是,如果我把其他一切都保持不变,并从 AES 移动到模拟输入,追击不再存在。 这会定期发生、我可以看到没有锁定。 当我在 DSP 芯片内进行监控时、我们正从 AES 收到这个追击。 这可能是、这种定期从以前的信息中分离出来用于处理 DSP 端的输入音频、但这种追击仅在 AES 在以前解析数据时丢失锁定时发生、而不是以任何其他方式(例如使用 Dante、模拟输入或使用 AES 时、它已锁定)。

    这是一个发生情况的示例、我将把 AES 传递至 DSP 的输入、它接着绕过所有处理、然后进入 DAC (值得注意的是、我可以看到这个追击发生在 DSP 代码中的 DAC 之前)。

    以下是 AES 锁定时范围内的输出音频:

    这里是 AES 由于重复的音频突发失去锁定时的输出(左侧显示重复的突发、右侧显示这些突发的一部分放大):

    如果您想了解更多有关寄存器设置的信息、我也可以提供这些信息。

    我今天会试着看看主/从,但我很忙,所以可能明天更有可能。

    谢谢!

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

    尊敬的 Ben:

    Arash 今天不在办公室、因此他明天会查看你的报告并提供反馈。 如果您最终收到任何新信息、请与我们分享。

    谢谢!
    Jeff McPherson

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

    尊敬的 Jeff 和 Arash:

    谢谢你。 遗憾的是、我们无法更改 SRC 时钟 以在主模式下生成 CLK、因为这是另一个板提供的。

    我会让你知道,如果我碰到了其他的东西。

    谢谢!

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

    尊敬的 Ben:

    如果它在某个时候失去锁定、 我唯一能想到的是更改 CLKS 的源并重新检查、或按照前面的建议、以 主/从 CLKS 的不同组合运行、以便您可以更好地了解问题根源。 从我过去的经验来看、这通常是 CLKS 的问题。

    此致、

    Arash

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

    尊敬的 Arash:

    问题不是运行期间 SRC 失去锁定。 问题是、如果没有锁定、它将按照前面所述的方式重复解析出先前的数据。 它只是失去锁当我拉连接(因为我们使用 XLR 电缆作为输入,我可以移除它,以获得锁丢失)。  发生这种情况时、进入 SRC (RX1+和 RX1-)的线路没有任何信息。

    当锁定信号进入 SRC 时、正常运行期间不会发生这种情况。

    如前所述、我不认为我可以更改这部分的主/从/时钟源。 我可以看看输入时钟的示波器、并验证这些时钟源是否正确?

    谢谢!

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

    尊敬的 Arash:

    我可以确认输入时钟都正确、

    谢谢!

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

    尊敬的 Ben:  

    如果它不发生在正常操作和锁没有丢失,然后我相信它正在进行它的操作。 如果这种情况只在失去锁定时发生、我认为我们无法做任何事情。 如何分析信息(数据650us )在它失去锁或 XLR 被拔出并每隔700ms 重复一次后,数据表不告诉我们当 XLR S/PDIF 被拔出时的预期可能需要审查内部结构,我没有权限解释它。

    此致、

    Arash

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

    尊敬的 Arash:

    感谢你的帮助。 不仅仅是在拔下 XLR、甚至在我关闭将 AES 数据传输到输入的器件时、也会看到 XLR 被拉动。 无论我以何种方式尝试强制失锁时都会发生这种情况。

    好了、您知道的任何人都可以访问并能进一步帮助我吗?

    谢谢!

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

    尊敬的 Ben:

    阿拉什在本周再次离职。

    遗憾的是、此器件的设计人员不再在 TI 工作、因此我们无法深入了解出现这种情况的原因。 正如 Arash 所说、这可能是设备的预期功能、而且用户看到的效果只是一个限制。

    此致、
    Jeff McPherson

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

    尊敬的 Jeff 和 Arash:

    所以 SRC4392静音功能发生锁丢失时有不静音的限制?

    谢谢!

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

    尊敬的 Ben:

    对不起、我没有原来的问题。  

    我在之前的 e2e 中发现此信息可能会有所帮助:

    SRC4192中唯一一个能够在信号丢失时自动静音的 IP 是 DIR、这是通过设置寄存器0E 中的 RXMLL 位来实现的。 如果 DIR 在输入信号上失去锁定、这将使其自身静音。 软件中完成的所有其它静音都是必须由主机控制器设定的手动静音。 这就是我们具有 LOCK、RDY 和 MUTE 引脚的原因。 如果在 DIR 中失去锁定、则 LOCK 引脚将发生变化、该信号可连接到 MUTE 引脚、以自动使所有输出(而不仅仅是 DIR 输出)静音。

    如果不能跟踪追击、您可能可以使用锁定或静音针作为解决方案。 如果可能、我可以尝试其他测试输入频率。 我在您的图中看到追击和预期信号的频率接近、但并不相同。 如果两个频率彼此相邻、这可能会给出一些有关所发生情况的线索。

    同时再次读取 RXMLL 函数也不会使 AES3线路上的前导码、P、V、U 或 C 位静音。 在失锁时、DSP 处理这些其他位的方法是否可能是不正确的?

    此致、
    Jeff McPherson

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

    尊敬的 Jeff:

    是的、DIR 是我们想要静音的全部、因此看起来使用 RXMLL 会为我们做到这一点。 我们只想在发生失锁时使 DIR 静音、因此、如果 MUTE 引脚(或寄存器0x2D - MUTE)禁用所有输出、这不是我们想要的功能。

    设置静音寄存器可以摆脱任何追击、但再次说明、如果这也会禁用 DIT、这不是我们想要的。

    这两种频率是相同的、当改变输入频率时也是遵循、在突发图中略有偏离的只是示波器的输出频率、我已经确认了这一点。

    我不确定前导码位的含义是什么? SRC 是否不会通过串行方式将 AES 转换为数字音频?

    谢谢!

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

    尊敬的 Ben:

    很抱歉、我不熟悉这些器件。 您要在从 AES 转换后测量 I2S 数据吗? 然后忽略我对状态位的评论。

    锁销是否显示任何敲击声或是否一直处于高位?

    此致、
    Jeff McPherson

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

    尊敬的 Jeff:

    没关系。 是的、我相信 AES 的 I2S、而且当这一点应用于 DSP 时、我们可以看到/听到追击的声音。

    发生这种情况时、锁定或就绪引脚上不会出现敲击声。 我还可以看到、RXCLKO 在启用时在失去锁定时被拉低。

    谢谢!

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

    尊敬的 Ben:

    如果通过关闭 RXAMLL 位来关闭静音功能、输出会发生什么情况? 如果整个 AES 输入消失了、我预计不会有任何输出。 我还会尝试通过删除 时钟来查看是否有任何变化。

    我认为、该静音功能旨在时钟发生故障时使输出静音、而不是 AES 输入本身、但我可以在 Arash 返回时从他那里得到确认。

    此致、
    Jeff McPherson

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

    尊敬的 Jeff 和 Arash:

    对不起我的收音机沉默,我上星期不在办公室。

    如果关闭 RXAMLL 位、我将获得相同的输出。

    删除这些时钟意味着什么? 如果设计该功能仅用于在时钟发生故障时使输出静音、那么这就解释了我为什么在启用或不启用该位的情况下会获得相同的输出。

    谢谢!

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

    尊敬的 Jeff 和 Arash:

    在数据表 RXAMLL 中规定:"当 AES3编码器和 PLL2都指示失锁时、该位用于设置 DIR 块的自动静音功能。" 在什么情况下检测到此锁定丢失、因为当拉动电缆时/LOCK 引脚会被设置为低电平?

    谢谢!

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

    你(Ben)好

     Jeff 提到、如果不提供 CLK、将 CLK 接地便是可被视为"移除 CLK "的示例之一。 我的理解是、当 CLKS 发生故障时、静音功能开启、这也解释了您的观察。

    当 REF 时钟到 PLL 和 FB 时钟被锁相时、锁定指示器变为高电平。 也就是说、当 PLL 处于稳定状态时、它 被锁定。  通常、过度抖动可能会导致失锁指示、即使 REF 和 FB 被锁定且不存在系统级错误也是如此。

    此致、

    Arash

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

    尊敬的 Arash:

    我假设您所讨论的时钟不是位于 AES 线路上的恢复时钟?

    当 PLL 不处于稳定状态时、这是否是/LOCK 引脚导致这种失锁的唯一指示?

    谢谢!

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

    尊敬的 Ben:

    恢复的时钟是一个输出时钟、意味着 CLKS 来自外部。 对于我所看到的所有 PLL ,锁丢失是唯一的指示。 当然、在 PLL 内部、您可以监控一些电压以查看它们何时达到稳定状态、但在这种情况下 、/LOCK 引脚是唯一的指示。

    此致、

    Arash

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

    尊敬的 Arash:

    对不起,我认为我使用了错误的词"恢复 clk"。 我的意思是、AES 线路上的编码输入时钟与数据丢失了。 因为丢失该时钟会导致/LOCK 引脚做出反应。 我想知道为什么此时钟不算作 RXAMLL 失锁情况、因此不会静音、因为它失去了锁定?

    谢谢!

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

    您好 Ben、 我预计  图67中 PLL 的 clk 丢失会触发/lock 并将计入静音。 这是一个成熟的设备(20年),没有实际的设计,我不能真正评论什么或为什么一个特定的 clk (无论是内部或外部 clk ) 没有触发静音。 它可能被设计为使用有故障的外部时钟静音。 很遗憾无法添加任何评论。

    此致、

    Arash

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

    您好、我可以确认此行为。 任何 DIR 输入失锁后、都会发出恒定的"拇指"声。

    在我的应用中、监视 LOCK 和接收器状态寄存器(可以通过 I2C 或 GPIO 支持来完成)。 如果音频信号丢失、请将连接到主机控制器的端口静音。 这是我找到的唯一有效的解决方法。

    Somewhere in my main IO routines:
    
    // This routine helps to prevent unwanted noise from SPDIF inputs.
    if(SRC4392AudioStreamValid())
    {
    	SRC4392AudioMute(0, 0);	// PortA, unmute
    }
    else
    {
    	SRC4392AudioMute(0, 1);	// PortA, mute
    }
    		
    		
    		
    /*********************************************************************
     * Function:        uint8_t SRC4392AudioStreamValid(void)
     *
     * PreCondition:    None
     *
     * Input:			None
     *
     * Output:          Returns 1, in case an SPDIF signal is locked
     *
     * Side Effects:    None
     *
     * Overview:		None
     *  
     * Note:         None
     ********************************************************************/
    uint8_t SRC4392AudioStreamValid(void)
    {
        uint8_t ret_val = 0;
        uint8_t ReceiverStatus[2];
        // If dir is not locked, no need to check with I2C
        // In case, the IO is not available, completely reply on SW polling
        #ifndef SRC_LOCK_GetValue
            #define SRC_LOCK_GetValue 0
    		if(1)
    	#else
    		if(SRC_LOCK_GetValue() == 0)
        #endif
    		{
    			// Page 0
    			I2C1_Write1ByteRegister(REG_PAGE_SELECTION, 0x00);
    			ReceiverStatus[0] = I2C1_Read1ByteRegister(REG_RECEIVER_IRQ_STATUS_0);
    			ReceiverStatus[1] = I2C1_Read1ByteRegister(REG_RECEIVER_IRQ_STATUS_1);
    			
    			if(ReceiverStatus[0] & 0x03){
    				// Clockrate is valid
    				if((ReceiverStatus[1] & 0xF4) == 0){
    					ret_val = 1;
    				}
    			}
    		}
    		return ret_val;
    }

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

    您好、Stefan、

    感谢本代码、您不直接使用/lock 引脚是否有任何原因? 因为我们不想对此进行轮询、而是想要 IRQ。

    谢谢!

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

    您好!

    原因很简单、我只有 I2C、未连接 LOCK\引脚、因为主机控制器的 IO 非常少。 因此、我构建此例程、使其能够在连接和不连接 LOCK\引脚的产品中使用。 目前、I2C 每50ms 请求一次状态。

    我还尝试使用 RXAMLL (在我的应用中默认设置)、但它不能按预期工作、我收到了这种奇怪的"pffffffttt"噪声。

    参考您的另一个线程、使用该方法可以轻松确定哪个 SRC4392报告了锁定错误。

    e2e.ti.com/.../src4392-src4392-how-does-the-interrupt-mode-level-active-function

    供参考:

    #define REG_RECEIVER_IRQ_STATUS_0      0x13
    #define REG_RECEIVER_IRQ_STATUS_1      0x14

    /*********************************************************************
     * Function:        void SRC4392AudioMute(uint8_t port)
     *
     * PreCondition:    None
     *
     * Input:			channel
     *					0 = PORTA, 1 = PORTB, 2 = ASRC
     *
     * Output:          None
     *
     * Side Effects:    None
     *
     * Overview:		None
     *  
        * Note:         None
     ********************************************************************/
    void SRC4392AudioMute(uint8_t port, uint8_t mute)
    {
    	uint8_t srcdata;
    	switch(port)
    	{
    		case 0:
    			srcdata = I2C1_Read1ByteRegister(REG_PORT_A_CONTROL_1);
    			if(mute)
    			{
    				srcdata |= PORT_CONTROL_MUTE(1);
    			}
    			else
    			{
    				srcdata &= ~PORT_CONTROL_MUTE(1);
    			}
    			I2C1_Write1ByteRegister(REG_PORT_A_CONTROL_1, srcdata);
    			break;
    		case 1:
    			srcdata = I2C1_Read1ByteRegister(REG_PORT_B_CONTROL_1);
    			if(mute)
    			{
    				srcdata |= PORT_CONTROL_MUTE(1);
    			}
    			else
    			{
    				srcdata &= ~PORT_CONTROL_MUTE(1);
    			}
    			I2C1_Write1ByteRegister(REG_PORT_B_CONTROL_1, srcdata);		
    			break;
    		case 2:
    			srcdata = I2C1_Read1ByteRegister(REG_SRC_CONTROL_1);
    			if(mute)
    			{
    				srcdata |= SRC_CTRL_MUTE(1);
    			}
    			else
    			{
    				srcdata &= ~SRC_CTRL_MUTE(1);
    			}
    			I2C1_Write1ByteRegister(REG_SRC_CONTROL_1, srcdata);
    			break;	
    		default:
    			break;	
    	}
    }

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

    谢谢 Stefan。

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

    您好、Stefan、

    很有道理、谢谢! 我们有备用 IO、因此可能只是结束了一个软件以及/lock 和/ready 信号。

    我很高兴使用 RXAMLL 不仅仅是我们得到了怪异的东西。

    感谢您的本代码和您的帮助。

    谢谢!

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

    Ben、您好!

    看来  Stefan 建议的解决方法可以解决您的问题  、我关闭该主题、谢谢。

    此致、

    Arash