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.

[参考译文] TMS570LC4357:TMS570LC43x MibSPI DMA 示例不工作

Guru**** 2445440 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/628514/tms570lc4357-tms570lc43x-mibspi-dma-example-not-working

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

我已经尝试了 MIBSPIDMA 的示例代码、它工作正常。  

在此示例中、它使用 MIBSPI1。 我将其更改为 MIBSPI3。 我还使用 HALCOGEN 配置了 MIBSPI、但在 RXDATA 中看不到任何变化。

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

    我已附加 main.c 文件。  

    我使用了 HALCOGEN 给出的现有示例。 我使用了 MibSPI3而不是 MibSPI1。  

    我还在无限循环中进行了一些更改。 我每 半秒传输一次数据。  

     我在 RXDATA 中看不到任何变化。  有人能指出我的代码有什么问题吗?

    我还有一个关于 mibspiDmaConfig (mibspiREG3、0、14、15)的问题; 我假设这将为发送器配置 DMA_CH0、其中 DMA_REQ 14和接收器配置15。  但我进行了配置  

    dmaSetChEnable (DMA_CH0、DMA_HW);
    dmaSetChEnable (DMA_CH1、DMA_HW);

    那么 DMA_CH1呢?  我是否需要像 DMA_CH0一样配置 DMA_CH1?  e2e.ti.com/.../0624.example_5F00_mibspiDMA.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我最初也有同样的问题。 由于数据在 CCS 不知情的情况下进行更新(在后台由 DMA 进行)、因此不会显示更改的数据。
    程序工作正常、存储器正确、但观察窗口不更新...
    我必须重新检查我在 CCS 中执行的操作、以查看更改后的数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    啊、我发现了它:

    也许您跳过了与我第一次尝试时相同的指令?

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

    我尝试了视频中提到的步骤。 我能够使 MibSPI 正常工作、以前我能够使它正常工作。 我从 Halcogen 中禁用 MibSPI1驱动程序并启用 MibSPI3驱动程序、并且配置与 MibSPI1相同。 但代码不起作用。 如果您可以查看我的项目、我已经附加了它。

    另一个问题是、即使在 while 循环中传输数据、RXDATA 也只更新一次。 注意:这也仅适用于 MibSPI1.e2e.ti.com/.../7282.SPIMaster.zip

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

    我只能解决 RXDATA 更新一次的问题。 它实际上是  DMACTRL 寄存器中的 OneShot 位。 但我仍然在努力启用 MIBSPI3 DMA。

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

    您能否提供有关在使用 MibSPI3尝试 DMA 时发现的问题类型的更多详细信息? 除基址外、每个模块的步骤应该相同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    问题是 RXDATA 未更新。 我配置的 MIBSPI3与 MIBSPI1相同。 使用 MIBSPI 时、工作正常。 我还按照该示例中所述配置了 MPU。  

    但是、我仍然看不到相同的行为。

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

    在您之前的帖子中、您表示您能够接收数据。 是仅在 MibSPI1上执行该操作、还是您也能够在 MibSPI3上执行该操作、但在启用 DMA 的情况下未执行该操作? 只是想了解我自己的澄清。

    此外、您是否使用 DMA 将数据传输到 Tx 缓冲器中以及用于 Rx? 还要确认、您是在标准 SPI 模式还是在 MibSPI (缓冲)模式下使用该模块?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试了使用 MibSPI1的示例 DMAwithMibSPi,工作正常。 我将给定的示例更改为使用 MibSPI3。 为此、我只更改了 DMA 通道编号和 MibSPI 配置等几个方面、但我对这两个方面都保持了相同的设置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Daniel、您好!

    您的 MibSPI3代码中使用了哪个芯片选择(CS)和哪个 TX 组?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用的是 CS_2和 TX 组4。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Daniel、您好!

    我记得 TG 和 CS 绑定在一起。 CS0 - TG0、CS1 - TG1、CS2 - TG2。 请尝试使用 CS2和 TG2而不是 TG4。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用了 CS_2和 TX 组4。 我尝试了 CS _none 和 TX GROUPG 0、如示例中所述、它也不起作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据数据表、CS 仅影响从机模式。 我在主控模式下使用 MibSPI。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用 CS_0和 TG0。 但请注意、CS0与另一个 SPI 信号进行引脚多路复用。 我假设您使用 MibSPI3作为从器件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用 MIBSPI3作为主器件。