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.

[参考译文] TMS320F28069:在 EMI 测试下、F28069 DMA/McBSP 停止工作

Guru**** 2524460 points
Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1004614/tms320f28069-f28069-dma-mcbsp-stop-work-under-emi-test

器件型号:TMS320F28069
主题中讨论的其他器件:AM3352

尊敬的香榭丽舍

                我的客户使用 F28069 McBSP SPI 从模式连接 AM3352 SPI 端口。   F28069 DMA 通道1用于 McBSP 传输。  DMA 通道2用于 McBSP 接收器数据。  

                该功能正常工作。

                在进行 EMI 测试时、客户报告 McBSP 接收 DMA 停止工作、 DMA 传输计数器寄存器不再更新。  DMA 通道2控制寄存器值为0x2a00。  McBSP 端口寄存器 SPCR1=0X180F 和 SPCR2= 0X4F。  

                我想提出以下问题:

                 1.  看起来像 McBSP 停止发送事件到 DMA 模块、这种错误的潜在原因是什么? 如何恢复?

                    DMA 控制寄存器的值为0x2a00、 TRM 文档中的位9-10为保留域。 Bit9-10默认为零、值1的含义是什么? 是否有任何关于 DMA 停止工作的线索?

                 3.是否有解决这一问题的建议?

                  非常感谢您的支持!

                    简吕

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

    位10中"1"的值不是问题。  在 DMA 模块的评估过程中、这是一个被删除/不受支持的函数。  我觉得逻辑仍然存在、但我们不支持使用它、在这种情况下、将该位设置为客户遇到的问题没有意义。

    从 SPCR1寄存器可以看到、RSYNCERR 和 RFULL 位都是高电平、这意味着既存在同步错误、又存在读取寄存器已满、不会从 DMA 中读取。

    我认为进入 C2000 (在 FSK 信号上)的从器件使能信号可能具有来自 EMI 测试的噪声、如果它被驱动为中间传输(或在不应该对 C2000进行传输时)、这会导致帧同步问题。

    我想看看我们是否可以对该信号进行一些额外的鉴定、以消除 EMI 测试中的噪声。  对于下面的代码、我将假定客户使用 GPIO23作为 MFSXA 信号、但是如果他们使用另一个 GPIO、他们只需在下面的代码中替换它(他们需要验证 GPIO 是否在正确的 QUALPRD 组中)。

    由于这符合 SYSCLK 标准、我不会预计滞后会导致 McBSP 出现问题、而 McBSP 应以低得多的速率计时。  让我们尝试3个或6个样本、看看这是否可以解决问题。

    最棒的
    Matthew

        EALLOW;
        GpioCtrlRegs.GPACTRL.bit.QUALPRD2 = 0;  //set the qual period = to SYSCLK
        GpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 1;   //set the pin qualification to 3 samples
    //  Comment the above and uncomment the below to use 6 samples for the qualification
    //  GpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 2;   //set the pin qualification to 6 samples
        EDIS;

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

    您好、Matthew、

           RSYNCERR 位在 GPIO 滤波器功能被执行后仍然出现。  最后、我们决定添加 McBSP 复位功能以解决此问题。  我们将 RSYNCERR 事件路由到 CPU INT,一旦出现错误,ISR 代码将重置 McBSP。

                此外、我们还请客户尝试无论如何从系统级别提高 EMI 容差。

          再次感谢您的支持!  

                     简