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.

[参考译文] TMS320F28P550SJ:如何使 SPI 与 DMA 配合使用

Guru**** 2875760 points

Other Parts Discussed in Thread: LAUNCHXL-F28P55X, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1625745/tms320f28p550sj-how-to-make-spi-work-with-dma

器件型号: TMS320F28P550SJ
主题中讨论的其他器件: LAUNCHXL-F28P55XC2000WARE

尊敬的专家:

在使用 Launchxl-F28P55x 时、我从 C2000Ware_5_02_00_00 中选择“SPI_ex5_loopback_DMA"以“以在 CCS V12 下运行。 但在大坝(线 202)中失败。 我更改为第二个电路板、仍然失败。

相比之下、在 F280049C LaunchPad 上运行的类似示例代码 (SPI_ex3_loopback_dma) 工作正常。   

因为这是示例代码、所以我丢失了。

请验证一下吗?

谢谢、

Jeffrey Jin

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

    您好 Jeffrey、

    感谢您的提问。 您能告诉我、当您尝试运行示例时看到了什么具体的错误吗?

    谢谢、

    IRA

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

    尊敬的 Ira:

    请从“spi_ex5_loopback_dma.c “中查看以下示例代码:

    // DMA 通道 6 ISR
    //
    __interrupt void INT_mySPI0_RX_DMA_ISR (void)


        uint16_t i;

        DMA_STOPChannel (mySPI0_RX_DMA_BASE);
        interrupt_clearACKGroup (INT_mySPI0_RX_DMA_INTERRUPT_ACK_GROUP);

        //
        //检查数据完整性
        //
        对于 (i = 0;i < 128;i++)
       {
           if (RDATA[i]!= i)
           {
               //出现问题。 RDATA 不包含预期数据。
               ESTOP0;
            }
        }

        DONE = 1;
        返回;
    }

    如果 DMA 正常工作、它会通过 SPI 环回将 sData[]传输到 RDATA[]。 如此处所示、sData[]= 0、1、2、3 ...

    如果 RDATA[] 不是 0、1、2、3、... 它将会停止。  

    结果为 RDATA[] 全部为 0。

    谢谢、

    Jeffrey

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

    您好 Jeffrey、

    感谢您的耐心。 我能够在我这边复制您的问题 我尝试了从 C2000Ware_5_05_0_0 和 C2000Ware_6_0_0_0 运行相同的示例、它们运行正常。 我能够在 RDATA 中看到 sdata。 我建议升级到修复此示例的较新版本的 C2000Ware。

    谢谢、

    IRA

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

    尊敬的 Ira:

    问题是 RDATA[]在运行后全部为 0。  

    谢谢、

    Jeffrey  

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

    您好 Jeffrey、

    您是否使用   C2000Ware_5_05_00_00 中的同一示例试用过该工具? 这样我就能在运行后看到正确的 RDATA[]。

    谢谢、

    IRA

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

    尊敬的 Ira:

    好的、我会跟进的。 另一方面、它适用于 位域中的示例。

    谢谢、

    Jeffrey