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.

[参考译文] CC3220SF:主控仅 Tx 模式下的 SPI DMA 不能传输所有数据。

Guru**** 2548830 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1025901/cc3220sf-spi-dma-in-master-tx-only-mode-doesn-t-transfer-all-the-data

器件型号:CC3220SF
Thread 中讨论的其他器件:SysConfig

你好!

我目前正在主器件 TX 模式下使用 SPI、并尝试向我的外设发送数据。 如果我将 minDMA 传输大小设置为非常高的值(即不使用 DMA)、我已经成功地发送了数据。 如果我将模式设置为全双工模式、我还能够使用 DMA 发送数据。 但是、当我尝试仅在主 Tx 模式下使用 DMA 发送数据时、它挂起后只能发送33个字节。 很明显、MCU 似乎不会崩溃(如果我有 SPI 超时、我可以看到程序继续执行)、数据就不会发送。 我对下一步的尝试有点失落、因为这似乎是一个 TI 驱动程序问题。 器件 SPI 停止工作后、我有寄存器状态、并附上了输出的外观图片。  

e2e.ti.com/.../5758.GSPIandUDMAregisters.txt

感谢您的任何帮助!   

谢谢!

Vasav

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

    Vasav、您好!

    我仍在处理这个问题。 我不确定这是否是我们的 CC32xx 器件支持的功能;它可能只是 TI 驱动程序功能。 现在、我的潜在修复程序卡在使用 DMA_ERRCLR 进行的 dmaErrorFxn 回调中。 我想了解它为何停留在该部分。 希望我很快能有更多的见解。

    谢谢、

    Jacob

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

    您好、Jacob、  

    我们是否对此有任何更新?

    我们是否有办法上报此问题、以便 TI 的其他人可以帮助您解决此问题?

    Vasav

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

    Vasav、您好!

    尚未更新。 我将就此问题寻求其他支持。

    谢谢、
    Jacob

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

    好的、Jacob、请告诉我、我是否可以做些什么来加快这个过程。  

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

    Vasav、您好!

    在进一步研究这个问题时、我认为这个问题是在构建硬件中断时发生的。 当我调试电路板时,我能够跟踪代码直到 Hwip_construct's IntEnable()。 然后、在 ti_drivers_config.c 中调用 dmaErrorFxn

    您是否看到相同的行为?

    谢谢、
    Jacob

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

    您好、Jacob、我目前没有硬件、因此我无法进行双重检查、但您所描述的内容与上次检查时的内容相比似乎是准确的。

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

    Vasav、您好!

    本周我将为您提供更多更新。

    谢谢、
    Jacob

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

    Vasav、您好!

    经过一些额外的调试后、我可以得出结论、TI 驱动程序(SPI.c)当前不支持 SPI 半双工模式、即使我们的器件支持该模式。 我在内部对此问题提出了一个错误。  在 SysConfig 中更改双工模式后、 ti_drivers_config.c 进行了以下更改:

    也许您可以尝试使用 TI-RTOS 或 TI-RTOS7而不是 FreeRTOS 来查看您的问题是否得到解决?  

    谢谢、

    Jacob  

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

    您好、Jacob、我想跟进此问题、看看内部是否有任何问题的更新? 我还没有在 TI-RTOS 中尝试过、但下周我将会尝试。 谢谢! Vasav

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

    您好 Vasav、

    我还没有听说过任何更新 。 我可以确认问题已在内部提交并已讨论过。 如果您现在需要修复,可以重新编写驱动程序以支持半双工。 请参阅 CC3220 TRM 中的第8.3.2节 、了解一些想法:

      

    谢谢、
    Jacob