TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310: spi超Transfer Size Limit传输

Part Number:CC1310

您好!

       我正才使用CC1310F128芯片的SPI从机功能,需要一次性接收10000个字节。但是在SPI应用中了解到,UDMA每次传输最大只能支持1024个字节,超出部分会启动多次1024个字节传输。

       我应该在程序中怎样配置,才能达到不断传输直到所有字节传输完成?

      Transfer Size Limit

          The UDMA controller only supports data transfers of up to 1024 data frames. A transfer with more than 1024 frames will be transmitted/received in multiple 1024 sized portions until all data has been transmitted/received. A data frame can be 4 to 16 bits in length.

Nick Sun:

您好,

收到您的问题了,我们升级到英文论坛给工程师看下,有答复尽快给到您。

,

Nick Sun:

您好,

您不必去配置任何东西,它将由 SPI 驱动程序自动完成,如您发的Transfer Size Limit所示。

作为参考,这里是 2048 字节传输的样子:(使用修改后的 spimaster 示例)

,

Yan:

Nick   您好!

      一: 

           这个是不是将CC1310做为spimaster的发送示例??我这边是将CC1310做为spislave。在另一个MCU做为spimaster时,MCU一次性发送大于1024个字节时,CC1310做为spislave只收到1024个字节,使用的是Slave Mode With Return Partial模式。我这边的MCU做为spimaster时,一次发送2048个字节,中间并不会拉高CSN引脚,而是在2048个字节全部发送完成后再拉高CSN引脚。

    二:

         目前我也再考虑使用Continuous Slave Transfer In SPI_MODE_CALLBACK模式,但是在配置完程序后,可以接收到第一组数据,后续数据一直无法接收。reset以后,又可以正常接收到第一组数据。请问应该怎样使用才能让这个模式持续运行起来?您这边是否有相应的示例可以发我看下??

    谢谢!

,

Yan:

Nick   您好!

    Continuous Slave Transfer In SPI_MODE_CALLBACK模式下只进入一次的原因是因为我在SPI_MODE_CALLBACK模式下调用了SPI_control函数,因为我的MCU做为spimaster发送的数据长度不是固定的,所以需要CC1310做为spislave也可以判断接收未知长度的字节。当我注释掉SPI_control函数时,可以正常循环进入Continuous Slave Transfer In SPI_MODE_CALLBACK模式运行。现在问题在TI的API文档中说明:在SPI_MODE_CALLBACK模式也可以传输未知数量的字节。但是在API中没有具体应用例程。

   以下是原文:

       This use case will perform a transfer in SPI_MODE_BLOCKING until the wanted amount of bytes is transferred or until chip select is deasserted by the SPI master. This SPI_transfer() call can be used when unknown amount of bytes shall be transferred. Note: The partial return is also possible in SPI_MODE_CALLBACK mode.

      麻烦您看下,怎样才能在SPI_MODE_CALLBACK模式下正常传输未知数量的字节???????

       谢谢!

,

Nick Sun:

 您好,

Yan 说:  一:

这确实是个CC1310做为spimaster的发送示例

Yan 说:二:

如果尚未完成,必须在每次回调后重新启用 RX 传输。原因是当接收到 1024 字节时,SPI/UDMA driver认为传输已经完成。

这是与TI资深工程师沟通的帖子(链接),由于您的问题比较复杂,您可以直接和工程师回复,或者由我这边转述。

您可以直接把想咨询的内容(最好是英文)发予我。

感谢您的支持。

,

Yan:

您好,Nick

       我的问题已在英文论坛解决,由于在英文论坛是您创建的帖子,麻烦您标记下已解决。

       谢谢您的帮助!

赞(0)
未经允许不得转载:TI中文支持网 » CC1310: spi超Transfer Size Limit传输
分享到: 更多 (0)