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.

[参考译文] DIX4192:通过 SPDIF 发送和接收用户数据时出现问题

Guru**** 2390755 points
Other Parts Discussed in Thread: DIX4192

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1236494/dix4192-problems-sending-and-receiving-user-data-through-spdif

部件号:DIX4192

大家好、

我们客户的问题之一、您能提供一些故障排除建议吗?

DIX4192使用 SPDIF 的状态位发送和接收用户数据。 目前、可以通过 SPDIF 发送数据、但无法接收数据。  使用示波器捕获可以查看状态位中的用户数据。

将 GPO3配置为 RX 块启动、将 GPO2配置为 RX INT、将 GPO1配置为 TX INT。  配置相应的寄存器。

打开 RBTI 的中断、接收块开始信号、2ms 延时后 RXBTD 置1、等待 RBTI 中断、进入后读取用户数据和状态寄存器。  

当前的问题是主控制板发送的数据可以被接收、而 DIX4192发送的数据偶尔也可以被主控制板接收。 这样做的原因是什么?

数据块启动 时序可能存在问题吗? 根据此设置开始发送块:

此致、

罗艾米

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

    大家好、Amy、从描述来看、 他们的系统中似乎存在一个块启动计时问题、因为这些 IC 中的许多问题都与时序相关。

    他们可以发送给我时钟和 DIT 块开始计时,并将看看它。

    此致、

    阿拉什

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

    尊敬的  Arash:

    以下是客户反馈:

    我很  抱歉 没有 回复 你 ,直到现在,但我发现有一个问题的板。 我已对其进行重新布局、并发现问题仍然存在。

    我设置了两个板、一个作为主板、另一个作为从板。 LED 灯连接到 LOCK 引脚、指示锁定状态。 我发现主设备的 LED 显示屏不稳定、而从设备的 LED 持续亮起。

    4)开启 MBTI 中断、将 GPIO1设置为 TX INT、下面是用于抓取的时序图。

    下面是第一个要放大的绿色框的时序、中间缺少 TX INT 触发器

    第二个要放大的绿色框的时序、中间缺少两个 TX INT 触发条件

    我的 TX 块开始位置在 RX 开始块中断中、下面是 TX 块开始处理

    while (1)
    {
    switch (状态)
    {
    情形0:
    if (tx_sync_get ()==1)
    {
    状态=1;
    计数= 0;

    否则
    {
    计数++;
    if (计数>100000)
    {
    TX_BLS_CLEAR ();
    STATE = 0;
    计数= 0;
    返回;


    中断;
    情形1:
    if (tx_sync_get ()==0)
    {
    状态=2;
    TX_BLS_SET ();
    //TX_BLS_CLEAR ();
    计数= 0;

    否则
    {
    计数++;
    if (计数>100000)
    {
    TX_BLS_CLEAR ();
    STATE = 0;
    计数= 0;
    返回;


    中断;
    情形2:
    if (tx_sync_get ()==1)
    {
    状态=3;
    计数= 0;

    否则
    {
    计数++;
    if (计数>100000)
    {
    TX_BLS_CLEAR ();
    STATE = 0;
    计数= 0;
    返回;


    中断;
    情形3:
    if (tx_sync_get ()==0)
    {
    TX_BLS_CLEAR ();
    STATE = 0;
    计数= 0;
    返回;

    否则
    {
    计数++;
    if (计数>100000)
    {
    TX_BLS_CLEAR ();
    STATE = 0;
    计数= 0;
    返回;


    中断;
    默认值:
    中断;


    您能帮我确认问题出在哪里、如何处理吗? 谢谢!

    顺便说一下、如果在 RX 块启动中断期间屏蔽 TX 块启动、则主机 端的锁定指示 LED 可以稳定。

    此致、

    罗艾米

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

    您好 Amy、

     如果  在 RX 块启动中断期间屏蔽了 TX 块启动、那么主器件上的锁定指示 LED 指示灯稳定、听上去好像器件正常。 还要看您发送的图表、发送到器件的指令中 可能导致该错误的原因。  

    由于我不确定所有这些状态和情况的含义,为了进行调试,我将重复 一个 案例的条件   ,所有其他案例,看看问题是否与特定案例的说明有关。 这需要替换几个案例、以查看 其中一个导致临时停机的案例中是否有特定说明。

    只有当 AES3解码器和 PLL2都指示一个锁定条件时、锁定输出才有效。 如果   上面没有中断的指令、请检查为什么 AES3解码器和 PLL2不处于锁定状态。

    他可以检查的寄存器很少:寄存器02:全局中断状态(只读)字段描述

    寄存器11:接收器 PLL1配置寄存器3字段说明

    另请参阅图17。 通过 GPO 引脚的 DIR 通道状态和用户数据串行输出格式。

    此致、

    阿拉什

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

    因为我会离开办公室10天,我现在关闭这个线程 ,你可以打开它,如果你需要更多的帮助或有任何问题 .  

    此致、

    阿拉什