微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3200 SPI DMA

CC3200 SPI DMA

时间:10-02 整理:3721RD 点击:

您好!

      请问CC3200 SPI的DMA模式怎么使用,有相关的例程 或者是相关的文档介绍吗?

    谢谢!

7024.spi_demo_DMA.zip

你好,

希望对你有帮助

您好:

     直接调试您提供的例程,在执行完函数void Master_Send(unsigned char *ucBuff,int len) 中的 如下语句:

while( !(MAP_SPIIntStatus(GSPI_BASE,false) & SPI_INT_EOW) );
 
  //SPICSDisable(GSPI_BASE);
  MAP_SPIDisable(GSPI_BASE);

直接跳转到了文件startup.ccs.c文件中的 FaultISR(void)函数中,请问这是为什么?

通过逻辑分析器分析,执行完上述语句发送到SPI端口的数据是正确的。但是每次都是跳转到函数FaultISR(void)中。

 

如果不是调试模式下会不会有这个问题?

直接将程序下载到flash中运行,发一包就不行了,估计也是这个问题!

另SPI DMA一次最多能发送多少字节,是1024字节吗?

请问一般什么情况下会进入中断FaultISR(void)?

这是ARM通用的用法,细节部分你可以参考一下http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0552a/ch02s04s02.html。

不过可能也没必要太深究。你用的是TI的参考板吗?service pack和SDK是不是最新的?

您好!

    请问有CC3200 Ti-RTOS 的SPI 和TCP的例程吗?

谢谢!

TI的yonghua员工,你好,关于你提供的cc3200 spi_dma的代码!

运行到while( !((MAP_SPIIntStatus(GSPI_BASE,false) & SPI_INT_EOW)) );就卡住了

,这句话应该是等待spi的TX发送完毕吧?那为什么一直会死在这里!请TI员工解答一下!

 juneng juneng,你好,帮忙分析一下这个问题,你说,第一次可以接受,而且,收到的

数据是正确的!就是死在while( !(MAP_SPIIntStatus(GSPI_BASE,false) & SPI_INT_EOW) );对吧!

那么,你是采用4线的spi,2块板子收发吗?用的也是Master_Receive和Master_Receive这2个函数吗?

然后打开

IntPrioritySet(INT_GSPI, INT_PRIORITY_LVL_1);
IntEnable(INT_GSPI);

这2个函数,就可以,对吧!谢谢!

SetupTransfer(UDMA_CH30_GSPI_RX,UDMA_MODE_BASIC,len,
UDMA_SIZE_8,UDMA_ARB_1,
(void *)(GSPI_BASE + MCSPI_O_RX0),UDMA_SRC_INC_NONE,
(void *)ucBuff,UDMA_DST_INC_8);

程序提示我找不到SetupTransfer。。

因为最新的SDK 1.1.0的API定义稍微有些不一样, 你可以参照udma的例程里面去进行一下API调用的更改。

SPI DMA有修改好的吗?我也在while( !(MAP_SPIIntStatus(GSPI_BASE,false) & SPI_INT_EOW) );卡死。。。。

您好,

         请问您的SPI DMA调试好了吗?方不方便共享一下?最近在看3200,也遇到这个问题,谢谢~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top