主题中讨论的其他器件:CC3235SF、 CC3200、 LAUNCHXL-CC3235S、 CC3235S
尊敬的先生:
我正在将 CC3200中成功运行的代码移植到 CC3235SF。 数据通过具有 UDMA 的 GSPI 传入、然后通过 sl_Send()通过 WiFi 发送。
在 CC3235SF 中、如果 sl_Send()的数据包长度大于396字节、GSPI 停止 wokring。 我需要再次对 GSPI 和 UDMA 进行编程、否则不会触发中断:
MAP_SPIReset(GSPI_BASE);
UDMAInit();
MAP_SPIConfigSetExpClk( GSPI_BASE,MAP_PRCMPeripheralClockGet(PRCM_GSPI),SPI_IF_BIT_RATE,SPI_MODE_SLAVE,SPI_SUB_MODE_0,(SPI_HW_CTRL_CS |SPI_3PIN_MODE |SPI_TURBO_OFF |SPI_CS_ACTIVEHIGH |SPI_WL_32));
MAP_SPIIntRegister(GSPI_BASE,interrupt_handler);
MAP_SPIWordCountSet(GSPI_BASE, 0);MAP_SPIFIFOLevelSet(GSPI_BASE, 1, 1);MAP_SPIFIFOEnable(GSPI_BASE, SPI_RX_FIFO);MAP_SPIDmaEnable(GSPI_BASE,SPI_RX_DMA);MAP_SPIIntEnable(GSPI_BASE,SPI_INT_DMARX);MAP_SPIEnable(GSPI_BASE);
重新编程 GSPI 和 UDMA 会破坏传入数据的完整性。
将 SL_Send ()拆分为长度不超过396字节的多个数据包会影响传输速率。
在 CC3200中、sl_Send()数据包长度可能高达1460、不需要对 GSPI UDMA 进行重新编程。
在 CC3235SF 中、LSPI DMA 长度大于396字节会影响 GPSI UDMA。
你有什么建议吗?
感谢你能抽出时间。
此致、
Luke